myEcharts.js 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403
  1. var loadGeoJson = {};
  2. var element;
  3. var table;
  4. var slider;
  5. var dom = document.getElementById("container");
  6. var myChart = echarts.init(dom);
  7. var option;
  8. var myCharts = {};
  9. var myTables = {};
  10. myChart.showLoading();
  11. var msurl = 'json/市级_山西.json';
  12. var qxurl = './json/县级_山西.json';
  13. var namefield = "name";
  14. var valuefield = "Shape_Area";
  15. var codefield = "CODE";
  16. var statisticsInfoByXZQ;
  17. var xzqSlider;
  18. var resertEchartsParams = {};
  19. var objList = []
  20. var levelName = ['优等地', '高等地', '中等地', '低等地']
  21. var levelColor = ['rgb(77,179,0)', 'rgb(187,230,0)', 'rgb(237,213,0)', 'rgb(199,139,0)']
  22. var XZQDMName = null
  23. var mapYears = null
  24. var mapYearsType = true
  25. var qixianName = null
  26. var curYear = null
  27. var mapYearsType1 = true
  28. var analysisList = []
  29. var targetType = false
  30. var analysisListShi = null
  31. var analysisListXdata = null
  32. var analysisListXian = null
  33. var analysisListQdata = null
  34. var analysisListQian = null
  35. var analysisListQX = [] // 存储县级数据
  36. var analysisListType = false // 点击县级的状态
  37. //var configInfo = InitialParameter("/Config.json");
  38. //globleUrl = configInfo["modelOrigin"].type + "://" + configInfo["modelOrigin"].value;
  39. let currentText = "" // 点击的文字
  40. let currentYear = '' // 当前年份
  41. let currentXzqdm = '' // 当前行政区代码
  42. let yearData = [] // 全部的年份
  43. let btnType = false // 上面行政区域状态
  44. let dataSheng = null // 省数据
  45. let dataShi = null // 市数据
  46. let dataXian = null // 县数据
  47. let btnMeg = 0 // 按钮的状态
  48. $(".loading").css("line-height", $(".loading").height() + "px");
  49. window.onload = function() {
  50. setTimeout(function() {
  51. layui.use(['form', 'layer', 'element', 'slider', 'table'], function() {
  52. element = layui.element;
  53. table = layui.table;
  54. slider = layui.slider;
  55. init();
  56. timeLine()
  57. echarLinBar("1", "")
  58. echartsBar("1", "")
  59. echartslineBar("1", "")
  60. });
  61. $(".xzqBtn").click(function(e) {
  62. onTabClick(e);
  63. });
  64. }, 5);
  65. }
  66. // 封装的jquery的get方法
  67. function InitialParameter(url) {
  68. var info = null;
  69. $.ajax({
  70. async: false,
  71. url: url,
  72. success: function(result) {
  73. info = result;
  74. },
  75. error: function(result) {
  76. console.log(result);
  77. }
  78. });
  79. return info;
  80. }
  81. // 封装的ajax请求
  82. function getGeoJson(url) {
  83. $.ajaxSettings.async = false;
  84. var geojson = null;
  85. $.get(url, function(results) {
  86. geojson = results;
  87. });
  88. return geojson;
  89. }
  90. // 行政区划数据
  91. function getXZQData() {
  92. return {
  93. "2016": {
  94. "150102": "231",
  95. "150103": "22",
  96. "150104": "221",
  97. "150105": "76",
  98. "150121": "507.378979",
  99. "150122": "70.446859",
  100. "150123": "233.161043",
  101. "150124": "87.138653",
  102. "150125": "53.75949",
  103. "150202": "34",
  104. "150203": "123",
  105. "150204": "763",
  106. "150205": "69.618587",
  107. "150206": "10.997343",
  108. "150207": "451",
  109. "150221": "121.631",
  110. "150222": "232.1993",
  111. "150223": "162.607938",
  112. "150302": "79.347582",
  113. "150303": "216.106506",
  114. "150304": "117.66068",
  115. "150402": "639.210523",
  116. "150402": "281.870306",
  117. "150403": "594.864259",
  118. "150421": "461.192925",
  119. "150422": "77.532357",
  120. "150423": "824.63896",
  121. "150424": "83.229244",
  122. "150425": "1618.996566",
  123. "150426": "494.515183",
  124. "150428": "300.704366",
  125. "150429": "163.34025",
  126. "150430": "126.423867",
  127. "150502": "88.838653",
  128. "150521": "89.102034",
  129. "150522": "44.102228",
  130. "150523": "325.434118",
  131. "150524": "52.526868",
  132. "150525": "126.795964",
  133. "150526": "61.215115",
  134. "150581": "59.073048",
  135. "150602": "602.420675",
  136. "150621": "395.035128",
  137. "150622": "708.06381",
  138. "150623": "245.6431",
  139. "150624": "216.076227",
  140. "150625": "254.09903",
  141. "150626": "911.770879",
  142. "150627": "1259.538331",
  143. "150702": "56.699763",
  144. "150721": "97.133563",
  145. "150722": "619.195029",
  146. "150723": "140.030397",
  147. "150724": "440.572726",
  148. "150725": "254.190343",
  149. "150726": "20.68259",
  150. "150727": "5.693056",
  151. "150781": "75.468311",
  152. "150782": "258.449345",
  153. "150783": "60.431917",
  154. "150784": "38.730268",
  155. "150785": "81.183259",
  156. "150802": "194.530089",
  157. "150821": "114.78101",
  158. "150822": "15.305659",
  159. "150823": "167.568182",
  160. "150824": "414.540064",
  161. "150825": "58.7872",
  162. "150826": "133.218149",
  163. "150902": "260.0014",
  164. "150921": "449.443286",
  165. "150922": "329.047357",
  166. "150923": "102.146917",
  167. "150924": "566.594265",
  168. "150925": "145.176893",
  169. "150926": "604.3128",
  170. "150927": "137.39863",
  171. "150928": "110.854242",
  172. "150929": "136.343695",
  173. "150981": "193.2078",
  174. "152201": "615.707698",
  175. "152202": "62.160748",
  176. "152221": "357.815655",
  177. "152222": "23.709504",
  178. "152223": "317.128348",
  179. "152224": "29.730594",
  180. "152501": "7.334255",
  181. "152502": "2086.174959",
  182. "152522": "26.941754",
  183. "152523": "54.367129",
  184. "152524": "16.059589",
  185. "152525": "310.872563",
  186. "152526": "1075.894023",
  187. "152527": "85.146797",
  188. "152528": "523.83536",
  189. "152529": "239.860635",
  190. "152530": "49.770978",
  191. "152531": "207.098203",
  192. "152921": "1001.650127",
  193. "152922": "246.344865",
  194. "152923": "700.47709"
  195. },
  196. "2017": {
  197. "150102": "231",
  198. "150103": "22",
  199. "150104": "221",
  200. "150105": "76",
  201. "150121": "407.378979",
  202. "150122": "70.446859",
  203. "150123": "233.161043",
  204. "150124": "87.138653",
  205. "150125": "53.75949",
  206. "150202": "34",
  207. "150203": "123",
  208. "150204": "763",
  209. "150205": "69.618587",
  210. "150206": "10.997343",
  211. "150207": "451",
  212. "150221": "121.631",
  213. "150222": "232.1993",
  214. "150223": "162.607938",
  215. "150302": "79.347582",
  216. "150303": "116.106506",
  217. "150304": "117.66068",
  218. "150402": "639.210523",
  219. "150402": "281.870306",
  220. "150403": "594.864259",
  221. "150421": "461.192925",
  222. "150422": "77.532357",
  223. "150423": "824.63896",
  224. "150424": "83.229244",
  225. "150425": "1618.996566",
  226. "150426": "494.515183",
  227. "150428": "300.704366",
  228. "150429": "163.34025",
  229. "150430": "126.423867",
  230. "150502": "88.838653",
  231. "150521": "89.102034",
  232. "150522": "44.102228",
  233. "150523": "325.434118",
  234. "150524": "52.526868",
  235. "150525": "126.795964",
  236. "150526": "61.215115",
  237. "150581": "59.073048",
  238. "150602": "602.420675",
  239. "150621": "395.035128",
  240. "150622": "708.06381",
  241. "150623": "245.6431",
  242. "150624": "216.076227",
  243. "150625": "254.09903",
  244. "150626": "911.770879",
  245. "150627": "759.538331",
  246. "150702": "56.699763",
  247. "150721": "97.133563",
  248. "150722": "619.195029",
  249. "150723": "140.030397",
  250. "150724": "440.572726",
  251. "150725": "254.190343",
  252. "150726": "20.68259",
  253. "150727": "5.693056",
  254. "150781": "75.468311",
  255. "150782": "258.449345",
  256. "150783": "60.431917",
  257. "150784": "38.730268",
  258. "150785": "81.183259",
  259. "150802": "194.530089",
  260. "150821": "114.78101",
  261. "150822": "15.305659",
  262. "150823": "167.568182",
  263. "150824": "414.540064",
  264. "150825": "58.7872",
  265. "150826": "133.218149",
  266. "150902": "260.0014",
  267. "150921": "449.443286",
  268. "150922": "329.047357",
  269. "150923": "102.146917",
  270. "150924": "566.594265",
  271. "150925": "145.176893",
  272. "150926": "604.3128",
  273. "150927": "137.39863",
  274. "150928": "110.854242",
  275. "150929": "136.343695",
  276. "150981": "193.2078",
  277. "152201": "615.707698",
  278. "152202": "62.160748",
  279. "152221": "357.815655",
  280. "152222": "23.709504",
  281. "152223": "317.128348",
  282. "152224": "29.730594",
  283. "152501": "7.334255",
  284. "152502": "2086.174959",
  285. "152522": "26.941754",
  286. "152523": "54.367129",
  287. "152524": "16.059589",
  288. "152525": "310.872563",
  289. "152526": "1075.894023",
  290. "152527": "85.146797",
  291. "152528": "523.83536",
  292. "152529": "239.860635",
  293. "152530": "49.770978",
  294. "152531": "207.098203",
  295. "152921": "1001.650127",
  296. "152922": "246.344865",
  297. "152923": "700.47709"
  298. },
  299. "2018": {
  300. "150102": "231",
  301. "150103": "22",
  302. "150104": "221",
  303. "150105": "76",
  304. "150121": "507.378979",
  305. "150122": "70.446859",
  306. "150123": "233.161043",
  307. "150124": "87.138653",
  308. "150125": "53.75949",
  309. "150202": "34",
  310. "150203": "123",
  311. "150204": "763",
  312. "150205": "69.618587",
  313. "150206": "10.997343",
  314. "150207": "451",
  315. "150221": "121.631",
  316. "150222": "232.1993",
  317. "150223": "162.607938",
  318. "150302": "79.347582",
  319. "150303": "316.106506",
  320. "150304": "117.66068",
  321. "150402": "639.210523",
  322. "150402": "281.870306",
  323. "150403": "594.864259",
  324. "150421": "461.192925",
  325. "150422": "77.532357",
  326. "150423": "824.63896",
  327. "150424": "83.229244",
  328. "150425": "1618.996566",
  329. "150426": "494.515183",
  330. "150428": "300.704366",
  331. "150429": "163.34025",
  332. "150430": "126.423867",
  333. "150502": "88.838653",
  334. "150521": "89.102034",
  335. "150522": "44.102228",
  336. "150523": "325.434118",
  337. "150524": "52.526868",
  338. "150525": "126.795964",
  339. "150526": "61.215115",
  340. "150581": "59.073048",
  341. "150602": "602.420675",
  342. "150621": "395.035128",
  343. "150622": "708.06381",
  344. "150623": "245.6431",
  345. "150624": "216.076227",
  346. "150625": "254.09903",
  347. "150626": "911.770879",
  348. "150627": "859.538331",
  349. "150702": "56.699763",
  350. "150721": "97.133563",
  351. "150722": "619.195029",
  352. "150723": "140.030397",
  353. "150724": "440.572726",
  354. "150725": "254.190343",
  355. "150726": "20.68259",
  356. "150727": "5.693056",
  357. "150781": "75.468311",
  358. "150782": "258.449345",
  359. "150783": "60.431917",
  360. "150784": "38.730268",
  361. "150785": "81.183259",
  362. "150802": "194.530089",
  363. "150821": "114.78101",
  364. "150822": "15.305659",
  365. "150823": "167.568182",
  366. "150824": "414.540064",
  367. "150825": "58.7872",
  368. "150826": "133.218149",
  369. "150902": "260.0014",
  370. "150921": "449.443286",
  371. "150922": "329.047357",
  372. "150923": "102.146917",
  373. "150924": "566.594265",
  374. "150925": "145.176893",
  375. "150926": "604.3128",
  376. "150927": "137.39863",
  377. "150928": "110.854242",
  378. "150929": "136.343695",
  379. "150981": "193.2078",
  380. "152201": "615.707698",
  381. "152202": "62.160748",
  382. "152221": "357.815655",
  383. "152222": "23.709504",
  384. "152223": "317.128348",
  385. "152224": "29.730594",
  386. "152501": "7.334255",
  387. "152502": "2086.174959",
  388. "152522": "26.941754",
  389. "152523": "54.367129",
  390. "152524": "16.059589",
  391. "152525": "310.872563",
  392. "152526": "1075.894023",
  393. "152527": "85.146797",
  394. "152528": "523.83536",
  395. "152529": "239.860635",
  396. "152530": "49.770978",
  397. "152531": "207.098203",
  398. "152921": "1001.650127",
  399. "152922": "246.344865",
  400. "152923": "700.47709"
  401. },
  402. "2019": {
  403. "150102": "231",
  404. "150103": "22",
  405. "150104": "221",
  406. "150105": "76",
  407. "150121": "507.378979",
  408. "150122": "70.446859",
  409. "150123": "233.161043",
  410. "150124": "87.138653",
  411. "150125": "53.75949",
  412. "150202": "34",
  413. "150203": "123",
  414. "150204": "763",
  415. "150205": "69.618587",
  416. "150206": "10.997343",
  417. "150207": "451",
  418. "150221": "121.631",
  419. "150222": "232.1993",
  420. "150223": "162.607938",
  421. "150302": "79.347582",
  422. "150303": "276.106506",
  423. "150304": "117.66068",
  424. "150402": "679.210523",
  425. "150402": "281.870306",
  426. "150403": "594.864259",
  427. "150421": "461.192925",
  428. "150422": "77.532357",
  429. "150423": "824.63896",
  430. "150424": "83.229244",
  431. "150425": "1618.996566",
  432. "150426": "494.515183",
  433. "150428": "300.704366",
  434. "150429": "163.34025",
  435. "150430": "126.423867",
  436. "150502": "88.838653",
  437. "150521": "89.102034",
  438. "150522": "44.102228",
  439. "150523": "325.434118",
  440. "150524": "52.526868",
  441. "150525": "126.795964",
  442. "150526": "61.215115",
  443. "150581": "59.073048",
  444. "150602": "602.420675",
  445. "150621": "395.035128",
  446. "150622": "708.06381",
  447. "150623": "245.6431",
  448. "150624": "216.076227",
  449. "150625": "254.09903",
  450. "150626": "911.770879",
  451. "150627": "759.538331",
  452. "150702": "56.699763",
  453. "150721": "97.133563",
  454. "150722": "619.195029",
  455. "150723": "140.030397",
  456. "150724": "440.572726",
  457. "150725": "254.190343",
  458. "150726": "20.68259",
  459. "150727": "5.693056",
  460. "150781": "75.468311",
  461. "150782": "258.449345",
  462. "150783": "60.431917",
  463. "150784": "38.730268",
  464. "150785": "81.183259",
  465. "150802": "194.530089",
  466. "150821": "114.78101",
  467. "150822": "15.305659",
  468. "150823": "167.568182",
  469. "150824": "414.540064",
  470. "150825": "58.7872",
  471. "150826": "133.218149",
  472. "150902": "260.0014",
  473. "150921": "449.443286",
  474. "150922": "329.047357",
  475. "150923": "102.146917",
  476. "150924": "566.594265",
  477. "150925": "145.176893",
  478. "150926": "604.3128",
  479. "150927": "137.39863",
  480. "150928": "110.854242",
  481. "150929": "136.343695",
  482. "150981": "193.2078",
  483. "152201": "615.707698",
  484. "152202": "62.160748",
  485. "152221": "357.815655",
  486. "152222": "23.709504",
  487. "152223": "317.128348",
  488. "152224": "29.730594",
  489. "152501": "7.334255",
  490. "152502": "2086.174959",
  491. "152522": "26.941754",
  492. "152523": "54.367129",
  493. "152524": "16.059589",
  494. "152525": "310.872563",
  495. "152526": "1075.894023",
  496. "152527": "85.146797",
  497. "152528": "523.83536",
  498. "152529": "239.860635",
  499. "152530": "49.770978",
  500. "152531": "207.098203",
  501. "152921": "1001.650127",
  502. "152922": "246.344865",
  503. "152923": "700.47709"
  504. }
  505. };
  506. // var resultData;
  507. // $.ajax({
  508. // type: globleConfig.ajaxType,
  509. // async: false,
  510. // url: globleConfig.ajax,
  511. // data: {
  512. // "mtype": globleConfig.mtype,
  513. // "dataBaseSelected": globleConfig.dataBaseSelected, // 所选数据库名称,
  514. // "tableTypeSelected": globleConfig.tableTypeSelected,
  515. // "tableDataSelected": XZQConfig.tableDataSelected,
  516. // "dimensionSelected": JSON.stringify(XZQConfig.dimensionSelected),
  517. // "measureSelected": JSON.stringify(XZQConfig.measureSelected),
  518. // "aggregate": XZQConfig.aggregate,
  519. // "filterdata": XZQConfig.filterdata,
  520. // "queryFields": ""
  521. // },
  522. // datatype: 'json',
  523. // success: function (res) {
  524. // var resArr = res.split('||');
  525. // if (resArr.length == 0) {
  526. // console.log("数据请求失败!");
  527. // } else if (resArr.length == 3) {
  528. // if (resArr[2].split("^_^")[0] && resArr[2].split("^_^")[0] != "{}") {
  529. // resultData = JSON.parse(resArr[2].split("^_^")[0]);
  530. // }
  531. // } else {
  532. // if (resArr[0]) {
  533. // resultData = JSON.parse(resArr[0]);
  534. // }
  535. // }
  536. // },
  537. // error: function (err) {
  538. // console.log(err);
  539. // }
  540. // });
  541. // return resultData;
  542. }
  543. // 获取专项统计模块获取登陆信息和点击地图
  544. function init() {
  545. // var list = {};
  546. // for (var attr in TDYTDM.classify) {
  547. // var item = TDYTDM.classify[attr];
  548. // for (var i = 0; i < item.length; i++) {
  549. // list[item[i]] = attr;
  550. // }
  551. // }
  552. // TDYTDM["handle"] = list;
  553. //getGDLBData();
  554. resertEcharts("", "1");
  555. // 点击地图
  556. myChart.on('click', function(params) {
  557. if (params.name) {
  558. $(".loading").show();
  559. setTimeout(function() {
  560. resertEcharts(params.data.code, (parseInt(params.seriesName) + 1).toString(), params.name);
  561. echarLinBar((parseInt(params.seriesName) + 1).toString(), params.data.code)
  562. echartsBar((parseInt(params.seriesName) + 1).toString(), params.data.code)
  563. echartslineBar((parseInt(params.seriesName) + 1).toString(), params.data.code)
  564. }, 10);
  565. }
  566. });
  567. myChart.hideLoading();
  568. }
  569. // 画地图图表
  570. function resertEcharts(xzq, type, name, year) {
  571. if (!year) {
  572. resertEchartsParams = {
  573. xzq: xzq,
  574. type: type,
  575. name: name
  576. }
  577. }
  578. if (!statisticsInfoByXZQ) {
  579. statisticsInfoByXZQ = getXZQData();
  580. if (statisticsInfoByXZQ) {
  581. var years = [];
  582. for (var attr in statisticsInfoByXZQ) {
  583. years.push(parseInt(attr));
  584. }
  585. years.sort(function(a, b) {
  586. return a - b;
  587. });
  588. statisticsInfoByXZQ["years"] = years;
  589. }
  590. // xzqSlider = slider.render({
  591. // elem: '#' + XZQConfig.container,
  592. // min: years[0],
  593. // max: years[years.length - 1],
  594. // theme: '#5470c6',
  595. // //type: 'vertical', //垂直滑块
  596. // showstep: true,
  597. // change: function(data) {
  598. // resertEcharts(null, null, null, data);
  599. // }
  600. // });
  601. statisticsInfoByXZQ["curYear"] = statisticsInfoByXZQ["years"][0];
  602. yearData = years;
  603. }
  604. //curYear = year ? year : statisticsInfoByXZQ["curYear"];
  605. //curYear = statisticsInfoByXZQ["curYear"];
  606. if (year) {
  607. curYear = year
  608. } else {
  609. curYear = statisticsInfoByXZQ["curYear"];
  610. }
  611. var mapYearsText = null
  612. if (mapYearsType) {
  613. mapYearsText = mapYears
  614. mapYearsType = false
  615. } else {
  616. if (mapYearsType1) {
  617. mapYearsText = curYear
  618. } else {
  619. mapYearsText = mapYears
  620. }
  621. }
  622. //let yearSpan = currentYear === '' ? yearData[0] : currentYear
  623. let yearSpan = curYear
  624. $(".yearSpan").html(yearSpan + "年");
  625. statisticsInfoByXZQ["curYear"] = curYear;
  626. var list = [];
  627. var chartType = "";
  628. switch (resertEchartsParams.type) {
  629. case "1": //盟市
  630. btnMeg = 1
  631. var html = "<a class='xzqBtn' value='' type='1' >内蒙古自治区</a>";
  632. elementTemplate(html);
  633. chartType = "MS";
  634. if (!loadGeoJson[chartType]) {
  635. loadGeoJson[chartType] = getGeoJson(msurl);
  636. }
  637. for (var i = 0; i < loadGeoJson[chartType].features.length; i++) {
  638. var info = loadGeoJson[chartType].features[i]["properties"];
  639. var code = info[codefield].substr(0, 4);
  640. var value = 0;
  641. for (var attr in statisticsInfoByXZQ[curYear]) {
  642. if (attr.toString().indexOf(code) == 0) {
  643. value += parseFloat(statisticsInfoByXZQ[curYear][attr]);
  644. }
  645. }
  646. list.push({
  647. name: info[namefield],
  648. value: value ? Math.round(value * 100) / 100 : 0,
  649. code: info[codefield]
  650. });
  651. }
  652. echarts.registerMap('MS', loadGeoJson[chartType]);
  653. break;
  654. case "2": //旗县
  655. btnMeg = 2
  656. var html = "<a class='xzqBtn' value='' type='1' >内蒙古自治区</a>";
  657. html += "<a class='xzqBtn' value='" + resertEchartsParams.xzq + "' type='2' >" + resertEchartsParams.name + "</a>";
  658. qixianName = resertEchartsParams.name
  659. elementTemplate(html);
  660. chartType = resertEchartsParams.xzq.length == 6 ? resertEchartsParams.xzq.substr(0, 4) : resertEchartsParams.xzq;
  661. if (!loadGeoJson["QX"]) {
  662. loadGeoJson["QX"] = getGeoJson(qxurl);
  663. }
  664. var list = [];
  665. var json = {
  666. type: "FeatureCollection",
  667. features: []
  668. };
  669. for (var i = 0; i < loadGeoJson["QX"].features.length; i++) {
  670. var info = loadGeoJson["QX"].features[i]["properties"];
  671. if (info[codefield].indexOf(chartType) > -1) {
  672. list.push({
  673. name: info[namefield],
  674. value: statisticsInfoByXZQ[curYear][info[codefield]] ? Math.round(parseFloat(statisticsInfoByXZQ[curYear][info[codefield]]) * 100) / 100 : 0,
  675. code: info[codefield]
  676. });
  677. json.features.push(loadGeoJson["QX"].features[i]);
  678. }
  679. }
  680. echarts.registerMap(chartType, json);
  681. break;
  682. case "3": //旗县
  683. btnMeg = 3
  684. var html = $(".layui-breadcrumb").text().split(">")[1];
  685. html = "<a class='xzqBtn' value='' type='1' >内蒙古自治区</a><a class='xzqBtn' value='" + resertEchartsParams.xzq.substr(0, 4) + "' type='2' >" + html + "</a>";
  686. html += "<a class='xzqBtn' value='" + resertEchartsParams.xzq + "' type='3' >" + resertEchartsParams.name + "</a>";
  687. elementTemplate(html);
  688. chartType = resertEchartsParams.xzq;
  689. if (!loadGeoJson["QX"]) {
  690. loadGeoJson["QX"] = getGeoJson(qxurl);
  691. }
  692. var list = [];
  693. var json = {
  694. type: "FeatureCollection",
  695. features: []
  696. };
  697. for (var i = 0; i < loadGeoJson["QX"].features.length; i++) {
  698. var info = loadGeoJson["QX"].features[i]["properties"];
  699. if (info[codefield] == chartType) {
  700. list.push({
  701. name: info[namefield],
  702. value: statisticsInfoByXZQ[curYear][info[codefield]] ? Math.round(parseFloat(statisticsInfoByXZQ[curYear][info[codefield]]) * 100) / 100 : 0,
  703. code: info[codefield]
  704. });
  705. json.features.push(loadGeoJson["QX"].features[i]);
  706. break;
  707. }
  708. }
  709. echarts.registerMap(chartType, json);
  710. break;
  711. default:
  712. return $(".loading").hide();
  713. break;
  714. }
  715. list.sort(function(a, b) {
  716. return a.value - b.value
  717. });
  718. analysisList = list
  719. option = {
  720. title: {
  721. // text: '{A| ' + XZQConfig.chartTitle + '}',
  722. text: '{A| 内蒙古自治区供应总量统计分析}',
  723. x: 'left',
  724. //padding: [5, 5, 5, 5],
  725. textStyle: {
  726. align: 'center',
  727. rich: {
  728. A: {
  729. backgroundColor: {
  730. image: XZQConfig.titleImage.image,
  731. },
  732. width: XZQConfig.titleImage.width,
  733. height: XZQConfig.titleImage.height,
  734. color: "#5470c6",
  735. fontSize: 17,
  736. fontWeight: 'bold',
  737. verticalAlign: "middle",
  738. lineHeight: 50,
  739. left: 15
  740. }
  741. }
  742. },
  743. left: 15
  744. },
  745. tooltip: {
  746. trigger: 'item',
  747. show: true,
  748. formatter: function(data) {
  749. var total = 0;
  750. for (var i = 0; i < myChart.getOption().series[0].data.length; i++) {
  751. total += myChart.getOption().series[0].data[i].value;
  752. }
  753. //return data.name + '<br/>' + XZQConfig.title + data.value + XZQConfig.unit;
  754. var per = Math.round(data.value / total * 10000) / 100;
  755. return data.name;
  756. return data.name + '<br/>' + XZQConfig.title + data.value + XZQConfig.unit + '<br/>本级占比:' + per + "%";
  757. }
  758. },
  759. toolbox: {
  760. show: false,
  761. orient: 'vertical',
  762. left: 'right',
  763. top: 'center',
  764. feature: {
  765. saveAsImage: {}
  766. }
  767. },
  768. visualMap: {
  769. min: list[0].value,
  770. max: list[list.length - 1].value,
  771. text: ['高', '低'],
  772. realtime: false,
  773. calculable: true,
  774. inRange: {
  775. //color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
  776. //color: globleConfig.color
  777. color: ['#0000ff30', '#0000ff']
  778. },
  779. orient: 'vertical',
  780. right: '4%',
  781. bottom: '0%',
  782. z: 100
  783. },
  784. series: [{
  785. name: resertEchartsParams.type,
  786. type: 'map',
  787. left: '20%',
  788. roam: true,
  789. mapType: chartType, // 自定义扩展图表类型
  790. label: {
  791. show: true,
  792. //color: "blue",
  793. //fontStyle: 'normal',
  794. //fontWeight: 'normal',
  795. textBorderColor: "white",
  796. textBorderWidth: 1
  797. },
  798. itemStyle: {
  799. normal: {
  800. borderWidth: 1,
  801. borderColor: '#ddd', //区域边框色
  802. //areaColor: '#FFDAB9',//区域背景色
  803. label: {
  804. show: true,
  805. //textBorderColor: "white",
  806. //textBorderWidth: 1,
  807. textStyle: {
  808. color: '#ffffff', //文字颜色
  809. fontSize: 12 //文字大小
  810. }
  811. }
  812. },
  813. emphasis: { // 选中样式
  814. borderWidth: 1,
  815. borderColor: '#00ffff',
  816. color: '#ffffff',
  817. label: {
  818. show: true,
  819. textStyle: {
  820. color: '#ff0000'
  821. }
  822. }
  823. }
  824. },
  825. data: list
  826. }]
  827. };
  828. setTimeout(() => {
  829. window.onresize = function() {
  830. myChart.resize()
  831. }
  832. }, 200)
  833. myChart.clear();
  834. myChart.setOption(option);
  835. // if (year) {
  836. // var data = filterArray(myTables["myChartTable2"].config.dataStore, [{
  837. // field: "QDRQ",
  838. // value: year,
  839. // type: "like"
  840. // }]);
  841. // myTables["myChartTable2"].reload({
  842. // data: data
  843. // }, false);
  844. // } else {
  845. // // createVisualizationCharts(resertEchartsParams.xzq ? chartType : "")
  846. // }
  847. }
  848. // 为行政区域赋值,点击行政区域
  849. function elementTemplate(html) {
  850. $(".layui-breadcrumb").html(html);
  851. element ? element.render() : null;
  852. $(".xzqBtn").click(function(e) {
  853. onTabClick(e);
  854. });
  855. }
  856. // 点击行政区域文字信息
  857. function onTabClick(e) {
  858. $(".loading").show();
  859. setTimeout(function() {
  860. resertEcharts($(e.target).attr("value"), $(e.target).attr("type"), $(e.target).html());
  861. echarLinBar($(e.target).attr("type"), $(e.target).attr("value"))
  862. echartsBar($(e.target).attr("type"), $(e.target).attr("value"))
  863. echartslineBar($(e.target).attr("type"), $(e.target).attr("value"))
  864. btnType = true
  865. }, 50);
  866. }
  867. // 画地图的图表
  868. function createVisualizationCharts(xzq) {
  869. for (var attr in chartsConfig) {
  870. var params = chartsConfig[attr];
  871. if (!params.able) {
  872. continue;
  873. }
  874. var queryFields = "";
  875. if (params.queryFields) {
  876. for (var k = 0; k < params.queryFields.length; k++) {
  877. queryFields += params.queryFields[k].name + ",";
  878. }
  879. queryFields = queryFields.substring(0, queryFields.length - 1);
  880. }
  881. var resultData;
  882. var where = globleConfig.XZQFIELD + " like '" + xzq + "%'"
  883. $.ajax({
  884. type: globleConfig.ajaxType,
  885. async: false,
  886. url: globleConfig.ajax,
  887. data: {
  888. "mtype": globleConfig.mtype,
  889. "dataBaseSelected": globleConfig.dataBaseSelected, // 所选数据库名称,
  890. "tableTypeSelected": globleConfig.tableTypeSelected,
  891. "tableDataSelected": params.tableDataSelected,
  892. "dimensionSelected": params.dimensionSelected ? JSON.stringify(params.dimensionSelected) : "",
  893. "measureSelected": params.measureSelected ? JSON.stringify(params.measureSelected) : "",
  894. "aggregate": params.aggregate,
  895. "filterdata": xzq ? (params.filterdata ? params.filterdata + " and " + where : where) : params.filterdata,
  896. "queryFields": queryFields
  897. },
  898. datatype: 'json',
  899. success: function(res) {
  900. var resArr = res.split('||');
  901. if (resArr.length == 0) {
  902. console.log("数据请求失败!");
  903. } else if (resArr.length == 3) {
  904. if (resArr[2].split("^_^")[0] && resArr[2].split("^_^")[0] != "{}") {
  905. resultData = JSON.parse(resArr[2].split("^_^")[0]);
  906. }
  907. } else {
  908. if (resArr[0]) {
  909. resultData = JSON.parse(resArr[0]);
  910. }
  911. }
  912. },
  913. error: function(err) {
  914. console.log(err);
  915. }
  916. });
  917. if (resultData) {
  918. createVisualizationChartsHandle(params, resultData);
  919. } else {
  920. //$("#" + params.container).html(params.noText);
  921. alert(params.noText);
  922. }
  923. }
  924. $(".loading").hide();
  925. }
  926. //得到随机的颜色值
  927. function randomColor() {
  928. var r = Math.floor(Math.random() * 256);
  929. var g = Math.floor(Math.random() * 256);
  930. var b = Math.floor(Math.random() * 256);
  931. return "rgb(" + r + "," + g + "," + b + ")";
  932. }
  933. // 一维数组转换为二维数组
  934. function arrTrans(num, arr) {
  935. const iconsArr = [];
  936. arr.forEach((item, index) => {
  937. const page = Math.floor(index / num); // 计算该元素为第几个素组内
  938. if (!iconsArr[page]) { // 判断是否存在
  939. iconsArr[page] = [];
  940. }
  941. iconsArr[page].push(item);
  942. });
  943. return iconsArr;
  944. }
  945. var arableNF = null
  946. var arableXZQDM
  947. var objIndex = 0
  948. var objIndexXZQ = 0
  949. var objIndexXZQ1 = 0
  950. var oldobjList = xzLineDataList = []
  951. var objIndexNF = 0
  952. var arableType = false
  953. var oldArble = null
  954. var dlDjData = []
  955. // 排序的一个公用函数 传入排序的属性值 从大到小
  956. function creatCompare(propertyName) {
  957. return function(obj1, obj2) {
  958. var value1 = obj1[propertyName];
  959. var value2 = obj2[propertyName];
  960. if (value1 < value2) {
  961. return -1
  962. } else if (value1 > value2) {
  963. return 1
  964. } else {
  965. return 0
  966. }
  967. }
  968. }
  969. // 时间轴样式
  970. function timeLine() {
  971. let timeLineLeft = -15
  972. // selected
  973. let timeLinehtml = ''
  974. yearData.map((item, index) => {
  975. if (index == 0) {
  976. timeLinehtml += `
  977. <li>
  978. <a class="order_item selected" style="left:${timeLineLeft += 20}%;">${item}</a>
  979. </li>
  980. `
  981. } else {
  982. timeLinehtml += `
  983. <li>
  984. <a class="order_item" style="left:${timeLineLeft += 20}%;">${item}</a>
  985. </li>
  986. `
  987. }
  988. })
  989. $('.time_line ol').html(timeLinehtml)
  990. targetType = true
  991. $('.order_item').on('click', function(e) {
  992. let timeText = e.target.innerHTML
  993. $(this).addClass('selected')
  994. $(this).parent().siblings().find('.order_item').removeClass('selected')
  995. currentYear = timeText
  996. //resertEcharts(null, null, null, parseInt(timeText));
  997. //resertEcharts($(e.target).attr("value"), $(e.target).attr("type"), $(e.target).html(), parseInt(timeText));
  998. resertEcharts("", "1", "", currentYear)
  999. // if (currentXzqdm == "150000") {
  1000. // getGDLBData(null, currentYear)
  1001. // } else {
  1002. // getGDLBData(currentXzqdm, currentYear)
  1003. // }
  1004. })
  1005. }
  1006. //第二图表
  1007. function echarLinBar(type, xzq) {
  1008. var pewgData = []; //批而未供
  1009. var gewyData = []; //供而未用
  1010. var chwyData = []; //拆后未用
  1011. var yewjData = []; //用而未尽
  1012. var xData2 = getLinData();
  1013. switch (type) {
  1014. case "1": //盟市
  1015. for (var i = 2016; i <= 2019; i++) {
  1016. var pewgvalue = 0
  1017. var gewyvalue = 0;
  1018. var chwyvalue = 0;
  1019. var yewjvalue = 0;
  1020. for (var attr in xData2["批而未供"][i]) {
  1021. pewgvalue += parseFloat(xData2["批而未供"][i][attr]);
  1022. }
  1023. pewgData.push(Math.floor(pewgvalue * 100) / 100)
  1024. for (var attr in xData2["供而未用"][i]) {
  1025. gewyvalue += parseFloat(xData2["供而未用"][i][attr]);
  1026. }
  1027. gewyData.push(Math.floor(gewyvalue * 100) / 100)
  1028. for (var attr in xData2["拆后未用"][i]) {
  1029. chwyvalue += parseFloat(xData2["拆后未用"][i][attr]);
  1030. }
  1031. chwyData.push(Math.floor(chwyvalue * 100) / 100)
  1032. for (var attr in xData2["用而未尽"][i]) {
  1033. yewjvalue += parseFloat(xData2["用而未尽"][i][attr]);
  1034. }
  1035. yewjData.push(Math.floor(yewjvalue * 100) / 100)
  1036. }
  1037. break;
  1038. case "2": //旗县
  1039. var code = xzq.substr(0, 4);
  1040. for (var i = 2016; i <= 2019; i++) {
  1041. var pewgvalue = 0
  1042. var gewyvalue = 0;
  1043. var chwyvalue = 0;
  1044. var yewjvalue = 0;
  1045. for (var attr in xData2["批而未供"][i]) {
  1046. if (attr.toString().indexOf(code) == 0) {
  1047. pewgvalue += parseFloat(xData2["批而未供"][i][attr]);
  1048. }
  1049. }
  1050. pewgData.push(Math.floor(pewgvalue * 100) / 100)
  1051. for (var attr in xData2["供而未用"][i]) {
  1052. if (attr.toString().indexOf(code) == 0) {
  1053. gewyvalue += parseFloat(xData2["供而未用"][i][attr]);
  1054. }
  1055. }
  1056. gewyData.push(Math.floor(gewyvalue * 100) / 100)
  1057. for (var attr in xData2["拆后未用"][i]) {
  1058. if (attr.toString().indexOf(code) == 0) {
  1059. chwyvalue += parseFloat(xData2["拆后未用"][i][attr]);
  1060. }
  1061. }
  1062. chwyData.push(Math.floor(chwyvalue * 100) / 100)
  1063. for (var attr in xData2["用而未尽"][i]) {
  1064. if (attr.toString().indexOf(code) == 0) {
  1065. yewjvalue += parseFloat(xData2["用而未尽"][i][attr]);
  1066. }
  1067. }
  1068. yewjData.push(Math.floor(yewjvalue * 100) / 100)
  1069. }
  1070. case "3": //旗县
  1071. for (var i = 2016; i <= 2019; i++) {
  1072. var pewgvalue = 0
  1073. var gewyvalue = 0;
  1074. var chwyvalue = 0;
  1075. var yewjvalue = 0;
  1076. for (var attr in xData2["批而未供"][i]) {
  1077. if (attr.toString() == xzq) {
  1078. pewgvalue += parseFloat(xData2["批而未供"][i][attr]);
  1079. }
  1080. }
  1081. pewgData.push(Math.floor(pewgvalue * 100) / 100)
  1082. for (var attr in xData2["供而未用"][i]) {
  1083. if (attr.toString() == xzq) {
  1084. gewyvalue += parseFloat(xData2["供而未用"][i][attr]);
  1085. }
  1086. }
  1087. gewyData.push(Math.floor(gewyvalue * 100) / 100)
  1088. for (var attr in xData2["拆后未用"][i]) {
  1089. if (attr.toString() == xzq) {
  1090. chwyvalue += parseFloat(xData2["拆后未用"][i][attr]);
  1091. }
  1092. }
  1093. chwyData.push(Math.floor(chwyvalue * 100) / 100)
  1094. for (var attr in xData2["用而未尽"][i]) {
  1095. if (attr.toString() == xzq) {
  1096. yewjvalue += parseFloat(xData2["用而未尽"][i][attr]);
  1097. }
  1098. }
  1099. yewjData.push(Math.floor(yewjvalue * 100) / 100)
  1100. }
  1101. break;
  1102. default:
  1103. break;
  1104. }
  1105. var option1 = {
  1106. // title: {
  1107. // text: '折线图堆叠'
  1108. // },
  1109. tooltip: {
  1110. trigger: 'axis'
  1111. },
  1112. legend: {
  1113. data: ['批而未供', '供而未用', '拆后未用', '用而未尽']
  1114. },
  1115. grid: {
  1116. left: '3%',
  1117. right: '4%',
  1118. bottom: '3%',
  1119. containLabel: true
  1120. },
  1121. toolbox: {
  1122. feature: {
  1123. saveAsImage: {}
  1124. }
  1125. },
  1126. xAxis: {
  1127. type: 'category',
  1128. boundaryGap: false,
  1129. data: ['2016', '2017', '2018', '2019']
  1130. },
  1131. yAxis: {
  1132. type: 'value'
  1133. },
  1134. series: [{
  1135. name: '批而未供',
  1136. type: 'line',
  1137. data: pewgData
  1138. },
  1139. {
  1140. name: '供而未用',
  1141. type: 'line',
  1142. data: gewyData
  1143. },
  1144. {
  1145. name: '拆后未用',
  1146. type: 'line',
  1147. data: chwyData
  1148. },
  1149. {
  1150. name: '用而未尽',
  1151. type: 'line',
  1152. data: yewjData
  1153. }
  1154. ]
  1155. };
  1156. var myChart1 = echarts.init(document.getElementById('containerClass1'));
  1157. myChart1.setOption(option1);
  1158. }
  1159. //第4图标
  1160. function echartslineBar(type, xzq) {
  1161. var rateData = []; //使用率
  1162. var xData2 = getLinData();
  1163. var sumData = getXZQData();
  1164. switch (type) {
  1165. case "1": //盟市
  1166. for (var i = 2016; i <= 2019; i++) {
  1167. var gewyvalue = 0;
  1168. var sumValue = 0;
  1169. var rateValue;
  1170. for (var attr in xData2["供而未用"][i]) {
  1171. gewyvalue += parseFloat(xData2["供而未用"][i][attr]);
  1172. }
  1173. for (var attr1 in sumData[i]) {
  1174. sumValue += parseFloat(sumData[i][attr1]);
  1175. }
  1176. rateValue = (gewyvalue / sumValue) * 100;
  1177. rateData.push(Math.floor(rateValue * 100) / 100)
  1178. }
  1179. break;
  1180. case "2": //旗县
  1181. var code = xzq.substr(0, 4);
  1182. for (var i = 2016; i <= 2019; i++) {
  1183. var gewyvalue = 0;
  1184. var sumValue = 0;
  1185. var rateValue;
  1186. for (var attr in xData2["供而未用"][i]) {
  1187. if (attr.toString().indexOf(code) == 0) {
  1188. gewyvalue += parseFloat(xData2["供而未用"][i][attr]);
  1189. }
  1190. }
  1191. for (var attr1 in sumData[i]) {
  1192. if (attr1.toString().indexOf(code) == 0) {
  1193. sumValue += parseFloat(sumData[i][attr1]);
  1194. }
  1195. }
  1196. rateValue = (gewyvalue / sumValue) * 100;
  1197. rateData.push(Math.floor(rateValue * 100) / 100)
  1198. }
  1199. case "3": //旗县
  1200. for (var i = 2016; i <= 2019; i++) {
  1201. var gewyvalue = 0;
  1202. var sumValue = 0;
  1203. var rateValue;
  1204. for (var attr in xData2["供而未用"][i]) {
  1205. if (attr.toString() == xzq) {
  1206. gewyvalue += parseFloat(xData2["供而未用"][i][attr]);
  1207. }
  1208. }
  1209. for (var attr1 in sumData[i]) {
  1210. if (attr1.toString() == xzq) {
  1211. sumValue += parseFloat(sumData[i][attr1]);
  1212. }
  1213. }
  1214. rateValue = (gewyvalue / sumValue) * 100;
  1215. rateData.push(Math.floor(rateValue * 100) / 100)
  1216. }
  1217. break;
  1218. default:
  1219. break;
  1220. }
  1221. var option4 = {
  1222. // title: {
  1223. // text: '建设用地时候用率'
  1224. // },
  1225. tooltip: {
  1226. trigger: 'axis'
  1227. },
  1228. legend: {
  1229. data: ['使用率']
  1230. },
  1231. xAxis: {
  1232. type: 'category',
  1233. data: ['2016', '2017', '2018', '2019']
  1234. },
  1235. yAxis: {
  1236. type: 'value'
  1237. },
  1238. series: [{
  1239. name: "使用率",
  1240. data: rateData,
  1241. type: 'line'
  1242. }]
  1243. };
  1244. var myChart4 = echarts.init(document.getElementById('containerClass4'));
  1245. myChart4.setOption(option4);
  1246. }
  1247. //第三图标
  1248. function echartsBar(type, xzq) {
  1249. var pewgData = []; //批而未供
  1250. var chaData = [0]; //差值
  1251. var xData2 = getLinData();
  1252. switch (type) {
  1253. case "1": //盟市
  1254. for (var i = 2016; i <= 2019; i++) {
  1255. var pewgvalue = 0
  1256. var chaValue;
  1257. for (var attr in xData2["批而未供"][i]) {
  1258. pewgvalue += parseFloat(xData2["批而未供"][i][attr]);
  1259. }
  1260. pewgData.push(Math.floor(pewgvalue * 100) / 100)
  1261. }
  1262. for (var x = 0; x < pewgData.length; x++) {
  1263. if (pewgData.length - 1 == x) {
  1264. break;
  1265. }
  1266. chaValue = pewgData[x + 1] - pewgData[x]
  1267. if (chaValue < 0) {
  1268. chaValue = 0;
  1269. }
  1270. chaData.push(chaValue)
  1271. }
  1272. break;
  1273. case "2": //旗县
  1274. var code = xzq.substr(0, 4);
  1275. for (var i = 2016; i <= 2019; i++) {
  1276. var pewgvalue = 0
  1277. for (var attr in xData2["批而未供"][i]) {
  1278. if (attr.toString().indexOf(code) == 0) {
  1279. pewgvalue += parseFloat(xData2["批而未供"][i][attr]);
  1280. }
  1281. }
  1282. pewgData.push(Math.floor(pewgvalue * 100) / 100)
  1283. for (var x = 0; x < pewgData.length; x++) {
  1284. if (pewgData.length - 1 == x) {
  1285. break;
  1286. }
  1287. chaValue = pewgData[x + 1] - pewgData[x]
  1288. if (chaValue < 0) {
  1289. chaValue = 0;
  1290. }
  1291. chaData.push(chaValue)
  1292. }
  1293. }
  1294. break;
  1295. case "3": //旗县
  1296. for (var i = 2016; i <= 2019; i++) {
  1297. var pewgvalue = 0
  1298. for (var attr in xData2["批而未供"][i]) {
  1299. if (attr.toString() == xzq) {
  1300. pewgvalue += parseFloat(xData2["批而未供"][i][attr]);
  1301. }
  1302. }
  1303. pewgData.push(Math.floor(pewgvalue * 100) / 100)
  1304. for (var x = 0; x < pewgData.length; x++) {
  1305. if (pewgData.length - 1 == x) {
  1306. break;
  1307. }
  1308. chaValue = pewgData[x + 1] - pewgData[x]
  1309. if (chaValue < 0) {
  1310. chaValue = 0;
  1311. }
  1312. chaData.push(chaValue)
  1313. }
  1314. }
  1315. break;
  1316. default:
  1317. break;
  1318. }
  1319. var option3 = {
  1320. tooltip: {
  1321. trigger: 'axis'
  1322. },
  1323. legend: {
  1324. data: ['批而未供', '差值']
  1325. },
  1326. xAxis: {
  1327. type: 'category',
  1328. data: ["2016", "2017", "2018", "2019"]
  1329. },
  1330. yAxis: {
  1331. type: 'value'
  1332. },
  1333. series: [{
  1334. name: "批而未供",
  1335. data: pewgData,
  1336. type: 'bar'
  1337. },
  1338. {
  1339. name: "差值",
  1340. data: chaData,
  1341. type: 'bar'
  1342. }
  1343. ]
  1344. };
  1345. var myChart3 = echarts.init(document.getElementById('containerClass3'));
  1346. myChart3.setOption(option3);
  1347. }