index.js 96 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420
  1. let app = new Vue({
  2. el: "#app",
  3. data () {
  4. return {
  5. count: 0, //重点项目两线指标轮到哪个
  6. list: [], //重点项目两线指标数组
  7. countType: 0,//重点项目两线指标数组
  8. leftEcharts1: "",
  9. leftEcharts2: "",
  10. leftEcharts3: "",
  11. leftEcharts4: "",
  12. leftEcharts5: "",
  13. leftEcharts6: "",
  14. leftEcharts7: "",
  15. leftEcharts8: "",
  16. leftEcharts9: '',
  17. leftEcharts10: '',
  18. leftEcharts11: '',
  19. leftEcharts12: '',
  20. shanxiMap: "", // 山西地图
  21. industryProportion: 1, // 主辅业占比轮播
  22. industryLayout: 0, //产业布局分析
  23. time1: "", // 4秒定时器
  24. time2: "", // 针对投前产业布局分析的定时器
  25. storageRecordConfig: {
  26. waitTime: '2000',
  27. hoverPause: true,
  28. header: ['企业集团', '项目名 ', '投资总额'],
  29. headerHeight: 80,
  30. headerBGC: '#092853',
  31. oddRowBGC: '#001c42',
  32. evenRowBGC: '#001c42',
  33. // oddRowBGC: '#05507b33',
  34. rowNum: 6,
  35. columnWidth: [150, 450, 150],
  36. align: ['center', 'center', 'center'],
  37. data: [
  38. ['国际能源', '娄烦县120MW智慧光伏发电项目+10%储能', "6.78亿元"],
  39. ['国际能源', '平朔矿区150MW农光储氢一体化项目', "7.84亿元"],
  40. ['汾酒集团', '汾酒2030技改原酒产储能扩建项目(一期)', "91.02亿元"],
  41. ['大地控股', '山西大地控股忻州新店矿业有限公司投资建设年产800万吨精品砂石骨料项目', "8.67亿元"],
  42. ['潞安化工', '分布式光伏发电项目', "2.01亿元"],
  43. ['太重集团', '设立太重(大同)新能源产业投资公司', "0.30亿元"],
  44. ['大地控股', '山西大地宏翔环保科技有限公司电厂固废资源化综合利用建设项目', "3.60亿元"],
  45. ['大地控股', '山西大地海科环保科技有限公司电厂固废资源化综合利用建设项目', "3.11亿元"],
  46. ['汾酒集团', '保健酒园区新增原酒产能项目', "4.98亿元"],
  47. ['汾酒集团', '白玉酒厂改扩建项目', "4.96亿元"],
  48. ['华阳新材', '5GW高效光伏组件制造项目', "4.82亿元"],
  49. ['华新燃气', '吉县—延长输气管道项目(一期工程)', "3.54亿元"],
  50. ['太重集团', '建设液压挖掘机配套油缸项目', "2.60亿元"],
  51. ['华远陆港', '物产集团参股设立项目公司投资建设山西物产万科(太原)综合物流产业园项目', "6.60亿元"],
  52. ['太重集团', '设立昔阳县晶能新能源有限公司', "0.50亿元"],
  53. ['山西建投', '设立山西低碳环保产业集团有限公司', "30.00亿元"],
  54. ['山西建投', '设立山西省太忻经济一体化发展投资集团有限公司', "30.00亿元"],
  55. ['华新燃气', '设立山西华新液化天然气集团有限公司', "3.00亿元"],
  56. ['交控集团', '设立山西交控新能源发展有限公司', "3.00亿元"]
  57. ],
  58. },
  59. meansList: [
  60. {
  61. label: "初步设计",
  62. value: "106",
  63. },
  64. {
  65. label: "详细设计",
  66. value: "103",
  67. },
  68. {
  69. label: "施工",
  70. value: "62",
  71. },
  72. {
  73. label: "完工",
  74. value: "35",
  75. },
  76. {
  77. label: "验收",
  78. value: "42",
  79. },
  80. {
  81. label: "结算",
  82. value: "33",
  83. },
  84. ],
  85. costList: [
  86. {
  87. num: 160,
  88. value: 284,
  89. status: "正偏差",
  90. },
  91. {
  92. num: 280,
  93. value: 129,
  94. status: "容差内",
  95. },
  96. {
  97. num: 103,
  98. value: 1082,
  99. status: "负偏差",
  100. },
  101. ],
  102. investData: {
  103. investList: [
  104. {
  105. name: "大地控股",
  106. yse: "26.79",
  107. yqhte: "9.64",
  108. czrde: "121.59",
  109. jse: "120.13",
  110. fke: "36.4",
  111. url: "./img/logos/logo15.png",
  112. },
  113. {
  114. name: "云时代",
  115. yse: "21.79",
  116. yqhte: "9.64",
  117. czrde: "121.59",
  118. jse: "120.13",
  119. fke: "36.4",
  120. url: "./img/logos/logo16.png",
  121. },
  122. {
  123. name: "华舰体育",
  124. yse: "26.79",
  125. yqhte: "9.64",
  126. czrde: "121.59",
  127. jse: "120.13",
  128. fke: "36.4",
  129. url: "./img/logos/logo17.png",
  130. },
  131. {
  132. name: "神农科技",
  133. yse: "26.79",
  134. yqhte: "9.64",
  135. czrde: "121.59",
  136. jse: "120.13",
  137. fke: "36.4",
  138. url: "./img/logos/logo18.png",
  139. },
  140. {
  141. name: "山西焦煤",
  142. yse: "26.79",
  143. yqhte: "9.64",
  144. czrde: "121.59",
  145. jse: "120.13",
  146. fke: "36.4",
  147. url: "./img/logos/logo1.png",
  148. },
  149. {
  150. name: "晋能控股",
  151. yse: "26.79",
  152. yqhte: "9.64",
  153. czrde: "121.59",
  154. jse: "120.13",
  155. fke: "36.4",
  156. url: "./img/logos/logo2.png",
  157. },
  158. {
  159. name: "华阳新材",
  160. yse: "26.79",
  161. yqhte: "9.64",
  162. czrde: "121.59",
  163. jse: "120.13",
  164. fke: "36.4",
  165. url: "./img/logos/logo3.png",
  166. },
  167. {
  168. name: "潞安化工",
  169. yse: "26.79",
  170. yqhte: "9.64",
  171. czrde: "121.59",
  172. jse: "120.13",
  173. fke: "36.4",
  174. url: "./img/logos/logo4.png",
  175. },
  176. {
  177. name: "华新燃气",
  178. yse: "26.79",
  179. yqhte: "9.64",
  180. czrde: "121.59",
  181. jse: "120.13",
  182. fke: "36.4",
  183. url: "./img/logos/logo5.png",
  184. },
  185. {
  186. name: "太重集团",
  187. yse: "26.79",
  188. yqhte: "9.64",
  189. czrde: "121.59",
  190. jse: "120.13",
  191. fke: "36.4",
  192. url: "./img/logos/logo6.png",
  193. },
  194. {
  195. name: "国际能源",
  196. yse: "26.79",
  197. yqhte: "9.64",
  198. czrde: "121.59",
  199. jse: "120.13",
  200. fke: "36.4",
  201. url: "./img/logos/logo7.png",
  202. },
  203. {
  204. name: "华远陆港",
  205. yse: "26.79",
  206. yqhte: "9.64",
  207. czrde: "121.59",
  208. jse: "120.13",
  209. fke: "36.4",
  210. url: "./img/logos/logo8.png",
  211. },
  212. {
  213. name: "水控集团",
  214. yse: "26.79",
  215. yqhte: "9.64",
  216. czrde: "121.59",
  217. jse: "120.13",
  218. fke: "36.4",
  219. url: "./img/logos/logo9.png",
  220. },
  221. {
  222. name: "文旅集团",
  223. yse: "26.79",
  224. yqhte: "9.64",
  225. czrde: "121.59",
  226. jse: "120.13",
  227. fke: "36.4",
  228. url: "./img/logos/logo10.png",
  229. },
  230. {
  231. name: "交控集团",
  232. yse: "26.79",
  233. yqhte: "9.64",
  234. czrde: "121.59",
  235. jse: "120.13",
  236. fke: "36.4",
  237. url: "./img/logos/logo11.png",
  238. },
  239. {
  240. name: "航产集团",
  241. yse: "26.79",
  242. yqhte: "9.64",
  243. czrde: "121.59",
  244. jse: "120.13",
  245. fke: "36.4",
  246. url: "./img/logos/logo12.png",
  247. },
  248. {
  249. name: "山西建投",
  250. yse: "26.79",
  251. yqhte: "9.64",
  252. czrde: "121.59",
  253. jse: "120.13",
  254. fke: "36.4",
  255. url: "./img/logos/logo13.png",
  256. },
  257. {
  258. name: "汾酒集团",
  259. yse: "26.79",
  260. yqhte: "9.64",
  261. czrde: "121.59",
  262. jse: "120.13",
  263. fke: "36.4",
  264. url: "./img/logos/logo14.png",
  265. },
  266. ],
  267. },
  268. inner: 0,
  269. innerDeg: 0,
  270. timer: null,
  271. witchs: 0,
  272. topIndex: 0,
  273. };
  274. },
  275. created () { },
  276. beforeDestroy () {
  277. clearInterval(this.timer);
  278. clearInterval(this.time1);
  279. clearInterval(this.time2);
  280. },
  281. mounted () {
  282. this.time4s();
  283. this.timeNs();
  284. this.filterLpData();
  285. this.lpRotate();
  286. setTimeout(() => {
  287. this.leftEcharts1Fun();
  288. this.leftEcharts2Fun();
  289. this.leftEcharts3Fun();
  290. this.leftEcharts4Fun();
  291. this.leftEcharts5Fun();
  292. this.leftEcharts6Fun();
  293. this.leftEcharts7Fun();
  294. this.leftEcharts8Fun();
  295. this.leftEcharts9Fun();
  296. this.leftEcharts10Fun();
  297. this.leftEcharts11Fun();
  298. this.leftEcharts12Fun();
  299. this.chinaEchartsFun();
  300. this.initChartR1();
  301. this.initChartR2();
  302. this.initChartR3();
  303. this.initChartR4();
  304. });
  305. },
  306. methods: {
  307. initChartR1 () {
  308. let that = this;
  309. let sumA = 42;
  310. let right5 = [[1, 2, 3, 4, 5, 6]];
  311. let commonCompany = [
  312. "山西焦煤",
  313. "山西焦煤",
  314. "山西焦煤",
  315. "山西焦煤",
  316. "山西焦煤",
  317. "山西焦煤",
  318. ];
  319. // 所有在100范围外的全部变成0,其他值相应增加/减少sumA
  320. // right5.forEach((item) => {
  321. // item.forEach((item2) => {
  322. // if (Number(item2[1]) < 0) {
  323. // item2[1] = that.$set(item2, 1, Number(that.numSub(item2[1], sumA)));
  324. // } else if (Number(item2[1]) > 0) {
  325. // item2[1] = that.$set(item2, 1, Number(item2[1]) + sumA);
  326. // }
  327. // if (Number(item2[1]) < -100 - sumA) {
  328. // item2[1] = that.$set(item2, 1, 0);
  329. // item2[1] = that.$set(item2, 2, 0);
  330. // } else if (Number(item2[1]) > 100 + sumA) {
  331. // item2[1] = that.$set(item2, 1, 0);
  332. // item2[1] = that.$set(item2, 2, 0);
  333. // }
  334. // });
  335. // });
  336. const itemStyle = {
  337. // opacity: 0.8,
  338. shadowBlur: 10,
  339. shadowOffsetX: 0,
  340. shadowOffsetY: 0,
  341. shadowColor: "rgba(0,0,0,0.3)",
  342. };
  343. that.right2Chart = echarts.init(this.$refs["echartR1"]);
  344. that.right2Chart.on("showTip", (params) => {
  345. // 如果是7或者15并且满足防抖则切换
  346. if (
  347. (params.dataIndex == 5 || params.dataIndex == 11) &&
  348. that.echartR2Fd
  349. ) {
  350. that.echartR2Fd = false;
  351. setTimeout(() => {
  352. option.dataZoom[0].endValue = option.dataZoom[0].endValue + 6;
  353. option.dataZoom[0].startValue = option.dataZoom[0].startValue + 6;
  354. that.right2Chart.setOption(option);
  355. // 防止勿刷新做的防抖
  356. setTimeout(() => {
  357. that.echartR2Fd = true;
  358. }, 2000);
  359. }, 1900);
  360. // 如果是17表示到了最后一个,那么重新来一遍
  361. } else if (params.dataIndex == 17 && that.echartR2Fd) {
  362. that.echartR2Fd = false;
  363. setTimeout(() => {
  364. option.dataZoom[0].endValue = 0;
  365. option.dataZoom[0].startValue = 5;
  366. that.right2Chart.setOption(option);
  367. // 防止勿刷新做的防抖
  368. setTimeout(() => {
  369. that.echartR2Fd = true;
  370. }, 2000);
  371. }, 1900);
  372. }
  373. });
  374. let option = {
  375. color: ["#04635E", "#697143", "#4A3042"],
  376. dataZoom: [
  377. {
  378. // start: 9,//默认为@
  379. // end: 100,//黑认认为1@0
  380. type: "slider",
  381. show: false,
  382. // xAxisIndex: [0]
  383. handlesize: 0, //滑动条的 左右2个滑动条的大小
  384. startValue: 5, // 初始显示值
  385. endValue: 0, // 结束显示值
  386. height: 10, //组件高度
  387. left: "5%",
  388. right: "4%", //右边的距离
  389. bottom: "25%", //底边的距离
  390. borderColor: "#939",
  391. fillerColor: "#269cdb",
  392. borderRadius: 5,
  393. backgroundColor: "#33384b", //两边未选中的滑动条区域的额色
  394. showDataShadow: false, //是否显示数据阴影
  395. showDetail: false, //即拖拽时候是否显示详细数值信息
  396. truerealtime: true, //是否实时更新
  397. filterMode: "filter",
  398. },
  399. {
  400. type: "inside",
  401. show: true,
  402. start: 1,
  403. end: 100,
  404. zoomOnMouseWheel: false, //滚轮是否触发缩放
  405. moveOnMouseMove: false, //鼠标滚轮触发滚动
  406. },
  407. ],
  408. legend: {
  409. selectedMode: false,
  410. top: 10,
  411. right: "6%",
  412. data: ["正偏差", "容差", "负偏差"],
  413. textStyle: {
  414. fontSize: 20,
  415. color: "#fff",
  416. fontFamily: "Microsoft YaHei",
  417. },
  418. },
  419. textStyle: {
  420. color: "#fff",
  421. },
  422. // tooltip: {
  423. // show: true,
  424. // trigger: "axis",
  425. // textStyle: {
  426. // color: "#FFF", // 文字的颜色
  427. // fontSize: "20", // 文字字体大小
  428. // fontFamily: "Microsoft YaHei",
  429. // },
  430. // formatter: (data) => {
  431. // return `${
  432. // data[0].value[0]
  433. // }<br /><span style="display:inline-block;border-radius:50%; width:7px;height:7px;background-color:${
  434. // data[0].color
  435. // }"></span> ${data[0].seriesName}:${that.numFormat(
  436. // data[0].data[2]
  437. // )}亿<br /><span style="display:inline-block;border-radius:50%; width:7px;height:7px;background-color:${
  438. // data[1].color
  439. // }"></span> ${data[1].seriesName}:${that.numFormat(
  440. // data[1].data[2]
  441. // )}亿<br /><span style="display:inline-block;border-radius:50%; width:7px;height:7px;background-color:${
  442. // data[2].color
  443. // }"></span> ${data[2].seriesName}:${that.numFormat(
  444. // data[2].data[2]
  445. // )}亿`;
  446. // },
  447. // axisPointer: {
  448. // // // type: 'cross',',
  449. // },
  450. // },
  451. grid: {
  452. top: "10%",
  453. right: "7%",
  454. left: "7%",
  455. bottom: "6%",
  456. },
  457. yAxis: {
  458. min: -101 - sumA,
  459. max: 101 + sumA,
  460. maxInterval: 1,
  461. splitLine: {
  462. show: false,
  463. // interval:,
  464. lineStyle: {
  465. color: "#68b4dd66",
  466. type: "dashed",
  467. },
  468. },
  469. axisLine: {
  470. show: false,
  471. },
  472. axisTick: {
  473. show: false,
  474. },
  475. axisLabel: {
  476. show: true,
  477. // formatter: '{value}',
  478. formatter (data) {
  479. if (data == 100 + sumA) {
  480. return "100%";
  481. } else if (data == -100 - sumA) {
  482. return "-100%";
  483. } else if (data == -5 - sumA) {
  484. return "-5%";
  485. } else if (data == 5 + sumA) {
  486. return "5%";
  487. }
  488. },
  489. textStyle: {
  490. color: "#fff",
  491. fontSize: "20",
  492. fontFamily: "Microsoft YaHei",
  493. },
  494. },
  495. nameTextStyle: {
  496. color: "#fff",
  497. fontSize: 20,
  498. fontFamily: "Microsoft YaHei",
  499. },
  500. },
  501. xAxis: {
  502. data: commonCompany,
  503. axisLine: {
  504. show: false, //隐藏X轴轴线
  505. lineStyle: {
  506. color: "#005094",
  507. width: 1,
  508. },
  509. },
  510. splitLine: {
  511. show: true,
  512. lineStyle: {
  513. color: "#68b4dd66",
  514. type: "dashed",
  515. },
  516. },
  517. axisTick: {
  518. show: true, //隐藏X轴刻度
  519. },
  520. axisLabel: {
  521. show: true,
  522. rotate: 20,
  523. padding: [0, 0, 0, 0],
  524. textStyle: {
  525. color: "#fff", //X轴文字颜色
  526. fontSize: 22,
  527. fontFamily: "Microsoft YaHei",
  528. },
  529. },
  530. },
  531. series: [
  532. {
  533. name: "正偏差",
  534. type: "scatter",
  535. itemStyle: itemStyle,
  536. data: right5[0],
  537. symbolSize: function (data) {
  538. if ((data[2] > 0 && data[2] < 50) || data[2] == 50) {
  539. return 40;
  540. } else if ((data[2] > 50 && data[2] < 100) || data[2] == 100) {
  541. return 70;
  542. } else if (data[2] > 100) {
  543. return 100;
  544. }
  545. },
  546. markLine: {
  547. symbol: "none",
  548. data: [
  549. {
  550. name: "100%",
  551. yAxis: 100 + sumA,
  552. lineStyle: {
  553. // color: '#fff',
  554. },
  555. label: {
  556. show: false,
  557. formatter: "{b}",
  558. position: "right",
  559. color: "#fff",
  560. fontSize: 20,
  561. label: {
  562. show: false,
  563. },
  564. },
  565. },
  566. {
  567. name: "5%",
  568. yAxis: 5 + sumA,
  569. lineStyle: {
  570. // color: '#fff',
  571. },
  572. label: {
  573. show: false,
  574. formatter: "{b}",
  575. position: "right",
  576. color: "#fff",
  577. fontSize: 20,
  578. },
  579. },
  580. {
  581. name: "-5%",
  582. yAxis: -5 - sumA,
  583. lineStyle: {
  584. // color: '#fff',
  585. },
  586. label: {
  587. show: false,
  588. formatter: "{b}",
  589. position: "right",
  590. color: "#fff",
  591. fontSize: 20,
  592. },
  593. },
  594. {
  595. name: "100%",
  596. yAxis: -100 - sumA,
  597. lineStyle: {
  598. // color: '#fff',
  599. },
  600. label: {
  601. show: false,
  602. formatter: "{b}",
  603. position: "right",
  604. color: "#fff",
  605. fontSize: 20,
  606. },
  607. },
  608. ],
  609. },
  610. },
  611. {
  612. name: "容差",
  613. type: "scatter",
  614. itemStyle: itemStyle,
  615. data: right5[1],
  616. symbolSize: function (data) {
  617. if ((data[2] > 0 && data[2] < 50) || data[2] == 50) {
  618. return 40;
  619. } else if ((data[2] > 50 && data[2] < 100) || data[2] == 100) {
  620. return 70;
  621. } else if (data[2] > 100) {
  622. return 100;
  623. }
  624. },
  625. },
  626. {
  627. name: "负偏差",
  628. type: "scatter",
  629. itemStyle: itemStyle,
  630. data: right5[2],
  631. symbolSize: function (data) {
  632. if ((data[2] > 0 && data[2] < 50) || data[2] == 50) {
  633. return 40;
  634. } else if ((data[2] > 50 && data[2] < 100) || data[2] == 100) {
  635. return 70;
  636. } else if (data[2] > 100) {
  637. return 100;
  638. }
  639. },
  640. },
  641. ],
  642. };
  643. that.right2Chart.on("click", function (param) {
  644. if (that.versions) {
  645. that.rightAdd.modelName = 1;
  646. that.rightAdd.substraction =
  647. param.seriesName == "正偏差"
  648. ? 1
  649. : param.seriesName == "容差"
  650. ? 2
  651. : 3;
  652. that.rightAdd.projectStepCode = "";
  653. that.projectNum = 313;
  654. that.rightPenetrateTwo(
  655. 1,
  656. param.seriesName == "正偏差"
  657. ? 1
  658. : param.seriesName == "容差"
  659. ? 2
  660. : 3,
  661. that.findCode(param.name),
  662. "right"
  663. );
  664. } else {
  665. that.projectListTipShow = true;
  666. }
  667. });
  668. that.right2Chart.setOption(option);
  669. tools.loopShowTooltip(that.right2Chart, option, {
  670. interval: 2000,
  671. loopSeries: true,
  672. });
  673. },
  674. initChartR2 () {
  675. let that = this;
  676. that.right1Chart = echarts.init(this.$refs["echartR2"]);
  677. let option = {
  678. color: [
  679. {
  680. type: "linear",
  681. x: 0,
  682. y: 0,
  683. x2: 0,
  684. y2: 1,
  685. colorStops: [
  686. {
  687. offset: 0,
  688. color: "#91231F", // 0% 处的颜色
  689. },
  690. {
  691. offset: 1,
  692. color: "#F98784", // 100% 处的颜色
  693. },
  694. ],
  695. global: false, // 缺省为 false
  696. },
  697. {
  698. type: "linear",
  699. x: 0,
  700. y: 0,
  701. x2: 0,
  702. y2: 1,
  703. colorStops: [
  704. {
  705. offset: 0,
  706. color: "#9F7F00", // 0% 处的颜色
  707. },
  708. {
  709. offset: 1,
  710. color: "#FBE463", // 100% 处的颜色
  711. },
  712. ],
  713. global: false, // 缺省为 false
  714. },
  715. {
  716. type: "linear",
  717. x: 0,
  718. y: 0,
  719. x2: 0,
  720. y2: 1,
  721. colorStops: [
  722. {
  723. offset: 0,
  724. color: "#07806E", // 0% 处的颜色
  725. },
  726. {
  727. offset: 1,
  728. color: "#79FFEB", // 100% 处的颜色
  729. },
  730. ],
  731. global: false, // 缺省为 false
  732. },
  733. ],
  734. legend: {
  735. top: 10,
  736. right: 10,
  737. textStyle: {
  738. fontSize: 20,
  739. color: "#fff",
  740. fontFamily: "Microsoft YaHei",
  741. },
  742. itemStyle: {
  743. borderCap: "round",
  744. },
  745. },
  746. grid: {
  747. left: "3%",
  748. right: "4%",
  749. bottom: "3%",
  750. containLabel: true,
  751. },
  752. xAxis: [
  753. {
  754. type: "category",
  755. data: [
  756. "山西焦煤",
  757. "华阳控股",
  758. "晋能控股",
  759. "潞安化工",
  760. "国际能源",
  761. "云时代",
  762. "航产集团",
  763. ],
  764. axisLine: {
  765. lineStyle: {
  766. color: "#005094",
  767. },
  768. },
  769. axisTick: {
  770. show: false,
  771. },
  772. axisLabel: {
  773. color: "#fff",
  774. rotate: 20,
  775. fontSize: 22,
  776. },
  777. },
  778. ],
  779. yAxis: [
  780. {
  781. type: "value",
  782. axisLabel: {
  783. color: "#fff",
  784. fontSize: 22,
  785. },
  786. splitLine: {
  787. lineStyle: {
  788. type: "dashed",
  789. },
  790. },
  791. },
  792. ],
  793. series: [
  794. {
  795. name: "低风险",
  796. type: "bar",
  797. stack: "Ad",
  798. barWidth: 14,
  799. emphasis: {
  800. focus: "series",
  801. },
  802. itemStyle: {
  803. barBorderRadius: [15, 15, 15, 15],
  804. },
  805. data: [120, 132, 101, 134, 90, 230, 210],
  806. },
  807. {
  808. name: "中风险",
  809. type: "bar",
  810. stack: "Ad",
  811. itemStyle: {
  812. barBorderRadius: [15, 15, 15, 15],
  813. },
  814. emphasis: {
  815. focus: "series",
  816. },
  817. data: [220, 182, 191, 234, 290, 330, 310],
  818. },
  819. {
  820. name: "高风险",
  821. type: "bar",
  822. stack: "Ad",
  823. itemStyle: {
  824. barBorderRadius: [15, 15, 15, 15],
  825. },
  826. emphasis: {
  827. focus: "series",
  828. },
  829. data: [150, 232, 201, 154, 190, 330, 410],
  830. },
  831. ],
  832. };
  833. that.right1Chart.setOption(option);
  834. },
  835. initChartR3 () {
  836. let that = this;
  837. that.right3Chart = echarts.init(this.$refs["echartR3"]);
  838. let option = {
  839. radar: {
  840. // shape: 'circle',
  841. splitNumber: 3,
  842. splitLine: {
  843. lineStyle: {
  844. color: ["#DD5955", "#39e1d0", "#2e3d45"],
  845. },
  846. },
  847. splitArea: {
  848. areaStyle: {
  849. color: [
  850. "rgba(88,247,223,0.2)",
  851. "rgba(255, 224, 54, 0.2)",
  852. "rgba(221,89,85,0.3)",
  853. ],
  854. },
  855. },
  856. indicator: [
  857. { name: "安全风险", max: 25 },
  858. { name: "付款风险", max: 25 },
  859. { name: "合同风险", max: 25 },
  860. { name: "结算风险", max: 25 },
  861. { name: "进度风险", max: 25 },
  862. { name: "质量风险", max: 25 },
  863. ],
  864. },
  865. series: [
  866. {
  867. name: "风险",
  868. type: "radar",
  869. symbol: "circle",
  870. data: [
  871. {
  872. value: [12, 23, 21, 17, 20, 9],
  873. name: "Allocated Budget",
  874. areaStyle: {
  875. color: "#112b75",
  876. },
  877. lineStyle: {
  878. width: 4,
  879. color: "#60C1FF",
  880. },
  881. label: {
  882. fontSize: 22,
  883. },
  884. },
  885. ],
  886. },
  887. ],
  888. };
  889. that.right3Chart.setOption(option);
  890. },
  891. initChartR4 () {
  892. let that = this;
  893. that.right4Chart = echarts.init(this.$refs["echartR4"]);
  894. let option = {
  895. tooltip: {
  896. trigger: "item",
  897. show: true,
  898. formatter: function (p) {
  899. console.info(p);
  900. return p.marker + p.name + " : " + p.value;
  901. },
  902. },
  903. grid: {
  904. left: "3%",
  905. right: "4%",
  906. bottom: "3%",
  907. containLabel: true,
  908. },
  909. xAxis: {
  910. data: ["山西焦煤", "晋能控股", "华阳新材"],
  911. type: "category",
  912. splitLine: {
  913. show: false,
  914. },
  915. axisLine: {
  916. show: true,
  917. lineStyle: {
  918. color: "#fff",
  919. },
  920. },
  921. axisTick: {
  922. show: true,
  923. },
  924. axisLabel: {
  925. color: "#fff",
  926. fontSize: 22,
  927. rotate: 20,
  928. },
  929. },
  930. yAxis: {
  931. type: "value",
  932. splitNumber: 4,
  933. interval: 50,
  934. splitLine: {
  935. show: true,
  936. lineStyle: {
  937. color: "#68B4DD",
  938. type: "dashed",
  939. },
  940. },
  941. axisLine: {
  942. show: false,
  943. },
  944. axisTick: {
  945. show: false,
  946. },
  947. axisLabel: {
  948. color: "#fff",
  949. fontSize: 22,
  950. },
  951. },
  952. series: [
  953. {
  954. type: "bar",
  955. animation: false,
  956. barWidth: 2,
  957. data: [60, 85, 110],
  958. tooltip: {
  959. show: false,
  960. },
  961. itemStyle: {
  962. color: {
  963. x: 0,
  964. y: 0,
  965. x2: 0,
  966. y2: 1,
  967. colorStops: [
  968. {
  969. offset: 0,
  970. color: "rgba(85, 255, 237, 1)", // 0% 处的颜色
  971. },
  972. {
  973. offset: 1,
  974. color: "rgba(66, 142, 255, 0.05)", // 100% 处的颜色
  975. },
  976. ],
  977. },
  978. },
  979. },
  980. {
  981. type: "scatter",
  982. data: [60, 85, 110],
  983. symbolOffset: ["-120%", "0"],
  984. symbolSize: 8,
  985. itemStyle: {
  986. borderWidth: 0,
  987. opacity: 1,
  988. color: "rgba(85, 255, 237, 1)",
  989. shadowColor: "rgba(85, 255, 237, 1)",
  990. shadowBlur: 100,
  991. shadowOffsetX: 100,
  992. },
  993. },
  994. {
  995. type: "bar",
  996. animation: false,
  997. barGap: "800%",
  998. barWidth: 2,
  999. data: [60, 85, 110],
  1000. tooltip: {
  1001. show: false,
  1002. },
  1003. itemStyle: {
  1004. color: {
  1005. x: 0,
  1006. y: 0,
  1007. x2: 0,
  1008. y2: 1,
  1009. colorStops: [
  1010. {
  1011. offset: 0,
  1012. color: "rgba(214, 91, 255, 1)", // 0% 处的颜色
  1013. },
  1014. {
  1015. offset: 1,
  1016. color: "rgba(184, 91, 255, 0.05)", // 100% 处的颜色
  1017. },
  1018. ],
  1019. },
  1020. },
  1021. },
  1022. {
  1023. type: "scatter",
  1024. data: [60, 85, 110],
  1025. symbolOffset: ["110%", "0"],
  1026. symbolSize: 8,
  1027. itemStyle: {
  1028. borderWidth: 0,
  1029. opacity: 1,
  1030. color: "#f2fec3",
  1031. },
  1032. },
  1033. ],
  1034. };
  1035. that.right4Chart.setOption(option);
  1036. },
  1037. clickItem (index) {
  1038. const angle = 360 / this.investData.investList.length;
  1039. this.witchs = index;
  1040. this.inner = index;
  1041. this.innerDeg = this.witchs * angle;
  1042. this.lpRotate();
  1043. },
  1044. lpRotate () {
  1045. const angle = 360 / this.investData.investList.length;
  1046. clearInterval(this.timer);
  1047. this.timer = setInterval(() => {
  1048. this.inner++;
  1049. this.topIndex++;
  1050. this.topIndex = this.topIndex % this.meansList.length;
  1051. this.witchs = this.inner % this.investData.investList.length;
  1052. this.innerDeg = this.inner * angle;
  1053. }, 2000);
  1054. },
  1055. filterLpData () {
  1056. const angle = 360 / this.investData.investList.length;
  1057. for (let i in this.investData.investList) {
  1058. this.investData.investList[i].deg = i * angle;
  1059. this.$set(this.investData.investList, i, {
  1060. ...this.investData.investList[i],
  1061. deg: i * angle,
  1062. });
  1063. }
  1064. },
  1065. // 4秒定时器
  1066. time4s () {
  1067. let that = this;
  1068. // 4秒定时器
  1069. this.time1 = setInterval(() => {
  1070. that.industryProportion == 1
  1071. ? (that.industryProportion = 2)
  1072. : (that.industryProportion = 1);
  1073. that.leftEcharts1.dispose();
  1074. that.leftEcharts2.dispose();
  1075. that.leftEcharts3.dispose();
  1076. that.leftEcharts4.dispose();
  1077. that.leftEcharts1Fun();
  1078. that.leftEcharts2Fun();
  1079. that.leftEcharts3Fun();
  1080. that.leftEcharts4Fun();
  1081. }, 4000);
  1082. },
  1083. // 针对投前产业布局分析的定时器
  1084. timeNs () {
  1085. let that = this;
  1086. this.time2 = setInterval(() => {
  1087. if (that.industryLayout < 3) {
  1088. that.industryLayout = that.industryLayout + 1;
  1089. } else {
  1090. that.industryLayout = 0;
  1091. }
  1092. this.time2 && clearInterval(this.time2);
  1093. this.timeNs();
  1094. that.leftEcharts5.dispose();
  1095. that.leftEcharts5Fun();
  1096. }, left1[that.industryLayout].length * 2000);
  1097. },
  1098. // 主辅业占比点击方法
  1099. industryProportionChange (e) {
  1100. let that = this;
  1101. this.industryProportion = e;
  1102. this.time1 && clearInterval(this.time1);
  1103. that.leftEcharts1.dispose();
  1104. that.leftEcharts2.dispose();
  1105. that.leftEcharts3.dispose();
  1106. that.leftEcharts4.dispose();
  1107. that.leftEcharts1Fun();
  1108. that.leftEcharts2Fun();
  1109. that.leftEcharts3Fun();
  1110. that.leftEcharts4Fun();
  1111. this.time4s();
  1112. },
  1113. // 产业布局分析点击方法
  1114. industryLayoutChange (e) {
  1115. this.industryLayout = e;
  1116. this.time2 && clearInterval(this.time2);
  1117. this.leftEcharts5.dispose();
  1118. this.timeNs()
  1119. this.leftEcharts5Fun();
  1120. },
  1121. yuanChange (value) {
  1122. return Number((value / 100000000).toFixed(2));
  1123. },
  1124. // 逢三折断
  1125. numFormat (value) {
  1126. if (!value) return "0";
  1127. // var intPart = Number(value).toFixed(0) // 获取整数部分
  1128. var intPart = parseInt(value); // 获取整数部分
  1129. var intPartFormat = intPart
  1130. .toString()
  1131. .replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); // 将整数部分逢三一断
  1132. var floatPart = ".00"; // 预定义小数部分
  1133. var value2Array = value.toString().split(".");
  1134. // =2表示数据有小数位
  1135. if (value2Array.length === 2) {
  1136. floatPart = value2Array[1].toString(); // 拿到小数部分
  1137. if (floatPart.length === 1) {
  1138. // 补0
  1139. return intPartFormat + "." + floatPart + "0";
  1140. } else {
  1141. floatPart = floatPart.slice(0, 2);
  1142. return intPartFormat + "." + floatPart;
  1143. }
  1144. } else {
  1145. return intPartFormat;
  1146. }
  1147. },
  1148. leftEcharts1Fun () {
  1149. let that = this;
  1150. this.leftEcharts1 = echarts.init(this.$refs["leftEcharts1"]);
  1151. option = {
  1152. title: {
  1153. text: that.industryProportion == 1 ? "30%" : "70%",
  1154. x: "center",
  1155. y: "center",
  1156. textStyle: {
  1157. fontWeight: "normal",
  1158. color: "#68BDFF",
  1159. fontSize: "20",
  1160. },
  1161. },
  1162. color: ["#68BDFF", "#254F7F"],
  1163. series: [
  1164. {
  1165. name: "Line 1",
  1166. type: "pie",
  1167. clockWise: true,
  1168. radius: ["80%", "100%"],
  1169. itemStyle: {
  1170. normal: {
  1171. label: {
  1172. show: false,
  1173. },
  1174. labelLine: {
  1175. show: false,
  1176. },
  1177. },
  1178. },
  1179. hoverAnimation: false,
  1180. data: [
  1181. {
  1182. value: 80,
  1183. name: "01",
  1184. itemStyle: {
  1185. normal: {
  1186. label: {
  1187. show: false,
  1188. },
  1189. labelLine: {
  1190. show: false,
  1191. },
  1192. },
  1193. },
  1194. },
  1195. {
  1196. name: "02",
  1197. value: 20,
  1198. },
  1199. ],
  1200. },
  1201. ],
  1202. };
  1203. //轮播
  1204. // tools.loopShowTooltip(leftEcharts1, option, {
  1205. // interval: 2000,
  1206. // loopSeries: true,
  1207. // });
  1208. //注册
  1209. that.leftEcharts1.setOption(option);
  1210. },
  1211. leftEcharts2Fun () {
  1212. let that = this;
  1213. this.leftEcharts2 = echarts.init(this.$refs["leftEcharts2"]);
  1214. let nameList = ["a"];
  1215. let valueList = that.industryProportion == 1 ? [30] : [70];
  1216. let total = 100; // 数据总数
  1217. var category = nameList.map((item, index) => {
  1218. return {
  1219. value: valueList[index],
  1220. itemStyle: {
  1221. color: new echarts.graphic.LinearGradient(
  1222. 1,
  1223. 0,
  1224. 0,
  1225. 1,
  1226. [
  1227. {
  1228. offset: 0,
  1229. color: "#40A9FF50",
  1230. },
  1231. {
  1232. offset: 1,
  1233. color: "#40A9FF",
  1234. },
  1235. ],
  1236. false
  1237. ),
  1238. },
  1239. };
  1240. });
  1241. var totalList = [];
  1242. var totalBorderList = [];
  1243. nameList.map((item, index) => {
  1244. totalList.push({
  1245. value: total,
  1246. itemStyle: {
  1247. color: "rgba(51, 147, 236, 0.29)",
  1248. },
  1249. });
  1250. totalBorderList.push({
  1251. value: total,
  1252. itemStyle: {
  1253. borderColor: "rgba(51, 147, 236, 0.29)",
  1254. color: "transparent",
  1255. },
  1256. });
  1257. });
  1258. var datas = [];
  1259. category.forEach((value) => {
  1260. datas.push(value.value);
  1261. });
  1262. option = {
  1263. // backgroundColor: 'rgb(231,238,249)',
  1264. xAxis: {
  1265. max: total,
  1266. splitLine: {
  1267. show: false,
  1268. },
  1269. axisLine: {
  1270. show: false,
  1271. },
  1272. axisLabel: {
  1273. show: false,
  1274. },
  1275. axisTick: {
  1276. show: false,
  1277. },
  1278. },
  1279. grid: {
  1280. left: "0%",
  1281. top: "15%", // 设置条形图的边距
  1282. right: "15%",
  1283. bottom: "5%",
  1284. },
  1285. yAxis: [
  1286. {
  1287. type: "category",
  1288. inverse: false,
  1289. data: nameList,
  1290. axisLine: {
  1291. show: false,
  1292. },
  1293. axisTick: {
  1294. show: false,
  1295. },
  1296. axisLabel: {
  1297. show: false,
  1298. },
  1299. },
  1300. ],
  1301. series: [
  1302. {
  1303. // 内
  1304. type: "bar",
  1305. barWidth: 16,
  1306. barGap: "20%",
  1307. silent: true,
  1308. // label: {
  1309. // normal: {
  1310. // formatter: (item) => {
  1311. // return `${item['name']}:${item['value']} `;
  1312. // },
  1313. // textStyle: {
  1314. // color: 'rgba(105, 120, 136, 1)',
  1315. // fontSize: 14,
  1316. // },
  1317. // position: [0, '-25px'],
  1318. // show: true,
  1319. // },
  1320. // },
  1321. data: category,
  1322. z: 1,
  1323. itemStyle: {
  1324. normal: {
  1325. color: new echarts.graphic.LinearGradient(
  1326. 1,
  1327. 0,
  1328. 0,
  1329. 1,
  1330. [
  1331. {
  1332. offset: 0,
  1333. color: "rgba(81, 193, 156, 1)",
  1334. },
  1335. {
  1336. offset: 1,
  1337. color: "rgba(234, 177, 100, 1)",
  1338. },
  1339. ],
  1340. false
  1341. ),
  1342. },
  1343. },
  1344. animationEasing: "elasticOut",
  1345. },
  1346. {
  1347. // 分隔
  1348. type: "pictorialBar",
  1349. itemStyle: {
  1350. normal: {
  1351. color: "#143362",
  1352. },
  1353. },
  1354. symbolRepeat: "fixed",
  1355. symbolMargin: 8,
  1356. symbol: "rect",
  1357. symbolClip: false,
  1358. symbolSize: [4, 20],
  1359. symbolPosition: "start",
  1360. symbolOffset: [0, -2],
  1361. symbolBoundingData: total,
  1362. data: [total, total, total, total],
  1363. z: 2,
  1364. animationEasing: "elasticOut",
  1365. },
  1366. {
  1367. // label
  1368. type: "pictorialBar",
  1369. symbolBoundingData: total,
  1370. itemStyle: {
  1371. normal: {
  1372. color: "none",
  1373. },
  1374. },
  1375. label: {
  1376. normal: {
  1377. formatter: (params) => {
  1378. var text;
  1379. text = `${((params["data"] * 100) / total).toFixed(2)}亿`;
  1380. return text;
  1381. },
  1382. textStyle: {
  1383. // 图列内容样式
  1384. fontSize: "20",
  1385. fontWeight: 800,
  1386. },
  1387. position: "right",
  1388. offset: [0, -3],
  1389. distance: 10, // 向右偏移位置
  1390. show: true,
  1391. color: "#68BDFF",
  1392. },
  1393. },
  1394. data: datas,
  1395. z: 0,
  1396. },
  1397. {
  1398. name: "外框",
  1399. type: "bar",
  1400. barGap: "-130%", // 设置外框粗细
  1401. data: totalBorderList,
  1402. barWidth: 26,
  1403. itemStyle: {
  1404. normal: {
  1405. // barBorderRadius: [5, 5, 5, 5],
  1406. borderWidth: 1, // 边框宽度
  1407. borderColor: "rgb(51, 147, 236)", // 边框色
  1408. color: "rgb(231,238,249)",
  1409. },
  1410. },
  1411. z: 0,
  1412. },
  1413. ],
  1414. };
  1415. //轮播
  1416. // tools.loopShowTooltip(leftEcharts1, option, {
  1417. // interval: 2000,
  1418. // loopSeries: true,
  1419. // });
  1420. //注册
  1421. that.leftEcharts2.setOption(option);
  1422. },
  1423. leftEcharts3Fun () {
  1424. let that = this;
  1425. this.leftEcharts3 = echarts.init(this.$refs["leftEcharts3"]);
  1426. option = {
  1427. title: {
  1428. text: that.industryProportion == 1 ? "70%" : "30%",
  1429. x: "center",
  1430. y: "center",
  1431. textStyle: {
  1432. fontWeight: "normal",
  1433. color: "#68BDFF",
  1434. fontSize: "20",
  1435. },
  1436. },
  1437. color: ["#5BDCC8", "#254F7F"],
  1438. series: [
  1439. {
  1440. name: "Line 1",
  1441. type: "pie",
  1442. clockWise: true,
  1443. radius: ["80%", "100%"],
  1444. itemStyle: {
  1445. normal: {
  1446. label: {
  1447. show: false,
  1448. },
  1449. labelLine: {
  1450. show: false,
  1451. },
  1452. },
  1453. },
  1454. hoverAnimation: false,
  1455. data: [
  1456. {
  1457. value: 80,
  1458. name: "01",
  1459. itemStyle: {
  1460. normal: {
  1461. label: {
  1462. show: false,
  1463. },
  1464. labelLine: {
  1465. show: false,
  1466. },
  1467. },
  1468. },
  1469. },
  1470. {
  1471. name: "02",
  1472. value: 20,
  1473. },
  1474. ],
  1475. },
  1476. ],
  1477. };
  1478. //轮播
  1479. // tools.loopShowTooltip(leftEcharts1, option, {
  1480. // interval: 2000,
  1481. // loopSeries: true,
  1482. // });
  1483. //注册
  1484. that.leftEcharts3.setOption(option);
  1485. },
  1486. leftEcharts4Fun () {
  1487. let that = this;
  1488. this.leftEcharts4 = echarts.init(this.$refs["leftEcharts4"]);
  1489. let nameList = ["a"];
  1490. let valueList = that.industryProportion == 1 ? [70] : [30];
  1491. let total = 100; // 数据总数
  1492. var category = nameList.map((item, index) => {
  1493. return {
  1494. value: valueList[index],
  1495. itemStyle: {
  1496. color: new echarts.graphic.LinearGradient(
  1497. 1,
  1498. 0,
  1499. 0,
  1500. 1,
  1501. [
  1502. {
  1503. offset: 0,
  1504. color: "#5BDCC850",
  1505. },
  1506. {
  1507. offset: 1,
  1508. color: "#5BDCC8",
  1509. },
  1510. ],
  1511. false
  1512. ),
  1513. },
  1514. };
  1515. });
  1516. var totalList = [];
  1517. var totalBorderList = [];
  1518. nameList.map((item, index) => {
  1519. totalList.push({
  1520. value: total,
  1521. itemStyle: {
  1522. color: "rgba(51, 147, 236, 0.29)",
  1523. },
  1524. });
  1525. totalBorderList.push({
  1526. value: total,
  1527. itemStyle: {
  1528. borderColor: "rgba(51, 147, 236, 0.29)",
  1529. color: "transparent",
  1530. },
  1531. });
  1532. });
  1533. var datas = [];
  1534. category.forEach((value) => {
  1535. datas.push(value.value);
  1536. });
  1537. option = {
  1538. // backgroundColor: 'rgb(231,238,249)',
  1539. xAxis: {
  1540. max: total,
  1541. splitLine: {
  1542. show: false,
  1543. },
  1544. axisLine: {
  1545. show: false,
  1546. },
  1547. axisLabel: {
  1548. show: false,
  1549. },
  1550. axisTick: {
  1551. show: false,
  1552. },
  1553. },
  1554. grid: {
  1555. left: "0%",
  1556. top: "15%", // 设置条形图的边距
  1557. right: "15%",
  1558. bottom: "5%",
  1559. },
  1560. yAxis: [
  1561. {
  1562. type: "category",
  1563. inverse: false,
  1564. data: nameList,
  1565. axisLine: {
  1566. show: false,
  1567. },
  1568. axisTick: {
  1569. show: false,
  1570. },
  1571. axisLabel: {
  1572. show: false,
  1573. },
  1574. },
  1575. ],
  1576. series: [
  1577. {
  1578. // 内
  1579. type: "bar",
  1580. barWidth: 16,
  1581. barGap: "20%",
  1582. silent: true,
  1583. // label: {
  1584. // normal: {
  1585. // formatter: (item) => {
  1586. // return `${item['name']}:${item['value']} `;
  1587. // },
  1588. // textStyle: {
  1589. // color: 'rgba(105, 120, 136, 1)',
  1590. // fontSize: 14,
  1591. // },
  1592. // position: [0, '-25px'],
  1593. // show: true,
  1594. // },
  1595. // },
  1596. data: category,
  1597. z: 1,
  1598. itemStyle: {
  1599. normal: {
  1600. color: new echarts.graphic.LinearGradient(
  1601. 1,
  1602. 0,
  1603. 0,
  1604. 1,
  1605. [
  1606. {
  1607. offset: 0,
  1608. color: "rgba(81, 193, 156, 1)",
  1609. },
  1610. {
  1611. offset: 1,
  1612. color: "rgba(234, 177, 100, 1)",
  1613. },
  1614. ],
  1615. false
  1616. ),
  1617. },
  1618. },
  1619. animationEasing: "elasticOut",
  1620. },
  1621. {
  1622. // 分隔
  1623. type: "pictorialBar",
  1624. itemStyle: {
  1625. normal: {
  1626. color: "#143362",
  1627. },
  1628. },
  1629. symbolRepeat: "fixed",
  1630. symbolMargin: 8,
  1631. symbol: "rect",
  1632. symbolClip: false,
  1633. symbolSize: [4, 20],
  1634. symbolPosition: "start",
  1635. symbolOffset: [0, -2],
  1636. symbolBoundingData: total,
  1637. data: [total, total, total, total],
  1638. z: 2,
  1639. animationEasing: "elasticOut",
  1640. },
  1641. {
  1642. // label
  1643. type: "pictorialBar",
  1644. symbolBoundingData: total,
  1645. itemStyle: {
  1646. normal: {
  1647. color: "none",
  1648. },
  1649. },
  1650. label: {
  1651. normal: {
  1652. formatter: (params) => {
  1653. var text;
  1654. text = `${((params["data"] * 100) / total).toFixed(2)}亿`;
  1655. return text;
  1656. },
  1657. textStyle: {
  1658. // 图列内容样式
  1659. fontSize: "20",
  1660. fontWeight: 800,
  1661. },
  1662. position: "right",
  1663. offset: [0, -3],
  1664. distance: 10, // 向右偏移位置
  1665. show: true,
  1666. color: "#68BDFF",
  1667. },
  1668. },
  1669. data: datas,
  1670. z: 0,
  1671. },
  1672. {
  1673. name: "外框",
  1674. type: "bar",
  1675. barGap: "-130%", // 设置外框粗细
  1676. data: totalBorderList,
  1677. barWidth: 26,
  1678. itemStyle: {
  1679. normal: {
  1680. // barBorderRadius: [5, 5, 5, 5],
  1681. borderWidth: 1, // 边框宽度
  1682. borderColor: "rgb(51, 147, 236)", // 边框色
  1683. color: "rgb(231,238,249)",
  1684. },
  1685. },
  1686. z: 0,
  1687. },
  1688. ],
  1689. };
  1690. //轮播
  1691. // tools.loopShowTooltip(leftEcharts1, option, {
  1692. // interval: 2000,
  1693. // loopSeries: true,
  1694. // });
  1695. //注册
  1696. that.leftEcharts4.setOption(option);
  1697. },
  1698. leftEcharts5Fun () {
  1699. let that = this;
  1700. this.leftEcharts5 = echarts.init(this.$refs["leftEcharts5"]);
  1701. let dataList = [];
  1702. left1[that.industryLayout].forEach((item, index) => {
  1703. dataList[index] = {
  1704. value: item.y,
  1705. name: item.name,
  1706. itemStyle: {
  1707. normal: {
  1708. color: new echarts.graphic.LinearGradient(1, 0, 0, 1, [
  1709. {
  1710. offset: 0,
  1711. color: commonColor2[index], //顶部颜色
  1712. },
  1713. {
  1714. offset: 1,
  1715. color: commonColor[index], // 底部颜色
  1716. },
  1717. ]),
  1718. borderColor: commonColor[index],
  1719. borderWidth: 3,
  1720. },
  1721. },
  1722. };
  1723. });
  1724. let option = {
  1725. tooltip: {
  1726. trigger: "item",
  1727. formatter: function (e) {
  1728. return `<span style="display:inline-block;margin-right:15px;border-radius:10px;width:20px;height:20px;background-color:${e.borderColor
  1729. };"></span>${e.name} ${e.percent}%<br>${e.value}亿 ${left1[that.industryLayout][e.seriesIndex].num
  1730. }个`;
  1731. },
  1732. backgroundColor: "rgba(50,50,50,0.7)", // 提示框浮层的背景颜色
  1733. textStyle: {
  1734. color: "#fff",
  1735. fontStyle: "normal", // 文字字体的风格('normal',无样式;'italic',斜体;'oblique',倾斜字体)
  1736. fontWeight: "normal", // 文字字体的粗细('normal',无样式;'bold',加粗;'bolder',加粗的基础上再加粗;'lighter',变细;数字定义粗细也可以,取值范围100至700)
  1737. fontSize: "28", // 文字字体大小
  1738. },
  1739. },
  1740. legend: {
  1741. top: "center",
  1742. orient: "vertical",
  1743. left: "75%",
  1744. textStyle: {
  1745. color: "#fff",
  1746. fontSize: 28,
  1747. padding: [0, 20],
  1748. },
  1749. },
  1750. graphic: {
  1751. elements: [
  1752. {
  1753. type: "image", //需要填充图片,配置image,如果不需要图片可以配置其他的, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group,
  1754. style: {
  1755. image: "./img/whiteCircle.png", //这里添加图片地址
  1756. width: 80,
  1757. height: 80,
  1758. },
  1759. left: "center", //
  1760. top: "middle", //配置图片居中
  1761. },
  1762. ],
  1763. },
  1764. series: [
  1765. {
  1766. name: "",
  1767. type: "pie",
  1768. radius: ["20%", "80%"],
  1769. labelLine: {
  1770. normal: {
  1771. lineStyle: {
  1772. width: 1,
  1773. },
  1774. },
  1775. },
  1776. label: {
  1777. normal: {
  1778. show: false,
  1779. textStyle: {
  1780. fontSize: 28,
  1781. color: "#fff",
  1782. },
  1783. },
  1784. },
  1785. roseType: "area",
  1786. data: dataList,
  1787. },
  1788. {
  1789. tooltip: {
  1790. show: false,
  1791. },
  1792. type: "pie",
  1793. radius: ["80%", "82%"],
  1794. hoverAnimation: false,
  1795. name: "",
  1796. data: [
  1797. {
  1798. name: "",
  1799. value: 0,
  1800. itemStyle: {
  1801. normal: {
  1802. color: "#345189",
  1803. },
  1804. },
  1805. },
  1806. ],
  1807. },
  1808. ],
  1809. };
  1810. //轮播
  1811. tools.loopShowTooltip(that.leftEcharts5, option, {
  1812. interval: 2000,
  1813. loopSeries: true,
  1814. });
  1815. //注册
  1816. that.leftEcharts5.setOption(option);
  1817. },
  1818. leftEcharts6Fun () {
  1819. let that = this;
  1820. this.leftEcharts6 = echarts.init(this.$refs["leftEcharts6"]);
  1821. var dataArr = 44;
  1822. var colorSet = {
  1823. color: "#22B95E",
  1824. };
  1825. var color1 = {
  1826. type: "linear",
  1827. x: 0,
  1828. y: 0,
  1829. x2: 1,
  1830. y2: 1,
  1831. colorStops: [
  1832. {
  1833. offset: 0,
  1834. color: "rgba(255,255,255,0.1)",
  1835. },
  1836. {
  1837. offset: 1,
  1838. color: "rgba(255,255,255,0.3)",
  1839. },
  1840. ],
  1841. global: false,
  1842. };
  1843. var color2 = {
  1844. type: "linear",
  1845. x: 0,
  1846. y: 0,
  1847. x2: 1,
  1848. y2: 1,
  1849. colorStops: [
  1850. {
  1851. offset: 0,
  1852. color: "#30DBBA",
  1853. },
  1854. {
  1855. offset: 1,
  1856. color: "#2DE696",
  1857. },
  1858. ],
  1859. global: false,
  1860. };
  1861. option = {
  1862. tooltip: {
  1863. formatter: "{a} <br/>{b} : {c}%",
  1864. },
  1865. series: [
  1866. {
  1867. name: "内部进度条",
  1868. type: "gauge",
  1869. // center: ['20%', '50%'],
  1870. radius: "50%",
  1871. splitNumber: 10,
  1872. axisLine: {
  1873. lineStyle: {
  1874. color: [
  1875. [dataArr / 100, "rgba(0,0,0,0)"],
  1876. [1, "rgba(0,0,0,0)"],
  1877. ],
  1878. width: 1,
  1879. },
  1880. },
  1881. axisLabel: {
  1882. show: false,
  1883. },
  1884. axisTick: {
  1885. show: false,
  1886. },
  1887. splitLine: {
  1888. show: false,
  1889. },
  1890. itemStyle: {
  1891. color: "#ffffff",
  1892. },
  1893. detail: {
  1894. formatter: function (value) {
  1895. if (value !== 0) {
  1896. var num = Math.round(value);
  1897. return parseInt(num).toFixed(0) + "%";
  1898. } else {
  1899. return 0;
  1900. }
  1901. },
  1902. offsetCenter: [0, 117],
  1903. textStyle: {
  1904. padding: [0, 0, 0, 0],
  1905. fontSize: 60,
  1906. color: "#58F7DF",
  1907. },
  1908. },
  1909. title: {
  1910. //标题
  1911. show: true,
  1912. offsetCenter: [0, 220], // x, y,单位px
  1913. textStyle: {
  1914. color: "#40A9FF",
  1915. fontSize: 34, //表盘上的标题文字大小
  1916. fontWeight: 400,
  1917. fontFamily: "MicrosoftYaHei",
  1918. },
  1919. },
  1920. data: [
  1921. {
  1922. name: "总额度:1,323.85亿",
  1923. value: dataArr,
  1924. itemStyle: {
  1925. fontSize: "50", //y轴上方单位的大小
  1926. color: "#FFF666",
  1927. fontFamily: "MicrosoftYaHei",
  1928. },
  1929. },
  1930. ],
  1931. pointer: {
  1932. show: true,
  1933. length: "100%",
  1934. radius: "20%",
  1935. width: 3, //指针粗细
  1936. },
  1937. animationDuration: 4000,
  1938. },
  1939. {
  1940. name: "内部阴影",
  1941. type: "gauge",
  1942. radius: "75%",
  1943. splitNumber: 10,
  1944. axisLine: {
  1945. lineStyle: {
  1946. color: [
  1947. [
  1948. dataArr / 100,
  1949. new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  1950. {
  1951. offset: 0,
  1952. color: "#081947",
  1953. },
  1954. {
  1955. offset: 0.5,
  1956. color: "#5DF5A9",
  1957. },
  1958. {
  1959. offset: 1,
  1960. color: "#F6F16A",
  1961. },
  1962. ]),
  1963. ],
  1964. [1, "#0E4889"],
  1965. ],
  1966. width: 70,
  1967. },
  1968. },
  1969. axisLabel: {
  1970. show: false,
  1971. },
  1972. axisTick: {
  1973. show: false,
  1974. },
  1975. splitLine: {
  1976. show: false,
  1977. },
  1978. itemStyle: {
  1979. show: false,
  1980. },
  1981. },
  1982. {
  1983. name: "外部刻度",
  1984. type: "gauge",
  1985. // center: ['20%', '50%'],
  1986. radius: "90%",
  1987. min: 0, //最小刻度
  1988. max: 100, //最大刻度
  1989. splitNumber: 5, //刻度数量
  1990. startAngle: 225,
  1991. endAngle: -45,
  1992. axisLine: {
  1993. show: true,
  1994. lineStyle: {
  1995. width: 1,
  1996. color: [[1, "rgba(0,0,0,0)"]],
  1997. },
  1998. }, //仪表盘轴线
  1999. axisLabel: {
  2000. show: false,
  2001. color: "#ffffff",
  2002. fontSize: 28,
  2003. fontFamily: "SourceHanSansSC-Regular",
  2004. fontWeight: "bold",
  2005. // position: "top",
  2006. distance: -45,
  2007. formatter: function (v) {
  2008. switch (v + "") {
  2009. case "0":
  2010. return "0";
  2011. case "10":
  2012. return "10";
  2013. case "20":
  2014. return "20";
  2015. case "30":
  2016. return "30";
  2017. case "40":
  2018. return "40";
  2019. case "50":
  2020. return "50";
  2021. case "60":
  2022. return "60";
  2023. case "70":
  2024. return "70";
  2025. case "80":
  2026. return "80";
  2027. case "90":
  2028. return "90";
  2029. case "100":
  2030. return "100";
  2031. }
  2032. },
  2033. }, //刻度标签。
  2034. axisTick: {
  2035. show: true,
  2036. splitNumber: 10,
  2037. lineStyle: {
  2038. color: "#3798D7", //用颜色渐变函数不起作用
  2039. width: 1,
  2040. },
  2041. length: -6,
  2042. }, //刻度样式
  2043. splitLine: {
  2044. show: true,
  2045. length: -12,
  2046. lineStyle: {
  2047. color: "#3798D7", //用颜色渐变函数不起作用
  2048. },
  2049. }, //分隔线样式
  2050. detail: {
  2051. show: false,
  2052. },
  2053. },
  2054. {
  2055. //指针上的圆
  2056. type: "pie",
  2057. tooltip: {
  2058. show: false,
  2059. },
  2060. hoverAnimation: false,
  2061. legendHoverLink: false,
  2062. radius: ["0%", "4%"],
  2063. center: ["50%", "50%"],
  2064. label: {
  2065. normal: {
  2066. show: false,
  2067. },
  2068. },
  2069. labelLine: {
  2070. normal: {
  2071. show: false,
  2072. },
  2073. },
  2074. data: [
  2075. {
  2076. value: 120,
  2077. itemStyle: {
  2078. normal: {
  2079. color: "#ffffff",
  2080. },
  2081. },
  2082. },
  2083. ],
  2084. },
  2085. ],
  2086. };
  2087. //轮播
  2088. // tools.loopShowTooltip(leftEcharts1, option, {
  2089. // interval: 2000,
  2090. // loopSeries: true,
  2091. // });
  2092. //注册
  2093. that.leftEcharts6.setOption(option);
  2094. },
  2095. leftEcharts7Fun () {
  2096. let that = this;
  2097. this.leftEcharts7 = echarts.init(this.$refs["leftEcharts7"]);
  2098. let option = {
  2099. title: {
  2100. text: "固定资产进度分布",
  2101. textStyle: {
  2102. color: "#fff",
  2103. fontSize: 28,
  2104. fontWeight: 500,
  2105. fontFamily: "Microsoft YaHei",
  2106. },
  2107. top: "20",
  2108. left: "220",
  2109. },
  2110. textStyle: {
  2111. color: "#fff",
  2112. },
  2113. tooltip: {
  2114. show: false,
  2115. trigger: "axis",
  2116. formatter: function (params) {
  2117. var tip =
  2118. params[0].axisValue +
  2119. "<br/>" +
  2120. params[0].marker +
  2121. params[0].data[1] +
  2122. ":" +
  2123. params[0].data[2] +
  2124. "个," +
  2125. params[0].data[3] +
  2126. "亿元" +
  2127. "<br/>" +
  2128. params[1].marker +
  2129. params[1].data[1] +
  2130. ":" +
  2131. params[1].data[2] +
  2132. "个," +
  2133. params[1].data[3] +
  2134. "亿元";
  2135. return tip;
  2136. },
  2137. textStyle: {
  2138. color: "#ffffff", // 文字的颜色
  2139. fontSize: "20", // 文字字体大小
  2140. fontFamily: "Microsoft YaHei",
  2141. },
  2142. axisPointer: {
  2143. // lineStyle: {
  2144. // type: 'dashed',
  2145. // width: 2,
  2146. // color: 'rgba(255,255,255,0.6)'
  2147. // },
  2148. animation: false,
  2149. },
  2150. },
  2151. grid: {
  2152. top: "0%",
  2153. right: "5%",
  2154. left: "15%",
  2155. bottom: "-10%",
  2156. },
  2157. yAxis: {
  2158. data: ["备案", "特别监管"],
  2159. splitLine: {
  2160. show: false,
  2161. lineStyle: {
  2162. color: "#68b4dd66",
  2163. type: "dashed",
  2164. },
  2165. },
  2166. axisLine: {
  2167. show: false,
  2168. },
  2169. axisLabel: {
  2170. show: true,
  2171. formatter: "{value}",
  2172. textStyle: {
  2173. color: function (data) {
  2174. if (data == "特别监管") {
  2175. return "#40A9FF";
  2176. } else if (data == "备案") {
  2177. return "#5BDCC8";
  2178. }
  2179. },
  2180. fontSize: 20,
  2181. padding: [0, -10, 0, 0],
  2182. fontFamily: "Microsoft YaHei",
  2183. },
  2184. },
  2185. nameTextStyle: {
  2186. color: "#ebf8ac",
  2187. fontSize: 16,
  2188. fontFamily: "Microsoft YaHei",
  2189. },
  2190. },
  2191. xAxis: {
  2192. data: ["项目储备", "项目立项", "可研论证", "投资决策"],
  2193. axisLine: {
  2194. show: true, //隐藏X轴轴线
  2195. lineStyle: {
  2196. color: "red",
  2197. width: 1,
  2198. },
  2199. },
  2200. axisTick: {
  2201. show: false, //隐藏X轴刻度
  2202. },
  2203. axisLabel: {
  2204. show: true,
  2205. textStyle: {
  2206. color: "#fff", //X轴文字颜色
  2207. fontSize: 20,
  2208. padding: [-80, 0, 0, 0],
  2209. fontFamily: "Microsoft YaHei",
  2210. },
  2211. },
  2212. },
  2213. series: [
  2214. {
  2215. name: "特别监管",
  2216. type: "scatter",
  2217. symbol: "circle", //'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  2218. symbolSize: function (data) {
  2219. return Math.sqrt(data[2]) * 5;
  2220. },
  2221. // label: {
  2222. // emphasis: {
  2223. // show: true,
  2224. // formatter: function (param) {
  2225. // return param.data[2];
  2226. // },
  2227. // position: 'top'
  2228. // }
  2229. // },
  2230. itemStyle: {
  2231. normal: {
  2232. color: "#69c0ff",
  2233. },
  2234. },
  2235. // data: left13[0]
  2236. },
  2237. {
  2238. name: "备案",
  2239. type: "scatter",
  2240. symbol: "circle", //'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  2241. symbolSize: function (data) {
  2242. return Math.sqrt(data[2]) * 5;
  2243. },
  2244. // label: {
  2245. // emphasis: {
  2246. // show: true,
  2247. // formatter: function (param) {
  2248. // return param.data[2];
  2249. // },
  2250. // position: 'top'
  2251. // }
  2252. // },
  2253. itemStyle: {
  2254. normal: {
  2255. color: "#957DFF",
  2256. },
  2257. },
  2258. // data: left13[1]
  2259. },
  2260. ],
  2261. };
  2262. //轮播
  2263. // tools.loopShowTooltip(leftEcharts1, option, {
  2264. // interval: 2000,
  2265. // loopSeries: true,
  2266. // });
  2267. //注册
  2268. that.leftEcharts7.setOption(option);
  2269. },
  2270. leftEcharts8Fun () {
  2271. let that = this;
  2272. this.leftEcharts8 = echarts.init(this.$refs["leftEcharts8"]);
  2273. let option = {
  2274. title: {
  2275. text: "固定资产进度分布",
  2276. textStyle: {
  2277. color: "#fff",
  2278. fontSize: 28,
  2279. fontWeight: 500,
  2280. fontFamily: "Microsoft YaHei",
  2281. },
  2282. top: "20",
  2283. left: "220",
  2284. },
  2285. textStyle: {
  2286. color: "#fff",
  2287. },
  2288. tooltip: {
  2289. show: false,
  2290. trigger: "axis",
  2291. formatter: function (params) {
  2292. var tip =
  2293. params[0].axisValue +
  2294. "<br/>" +
  2295. params[0].marker +
  2296. params[0].data[1] +
  2297. ":" +
  2298. params[0].data[2] +
  2299. "个," +
  2300. params[0].data[3] +
  2301. "亿元" +
  2302. "<br/>" +
  2303. params[1].marker +
  2304. params[1].data[1] +
  2305. ":" +
  2306. params[1].data[2] +
  2307. "个," +
  2308. params[1].data[3] +
  2309. "亿元";
  2310. return tip;
  2311. },
  2312. textStyle: {
  2313. color: "#ffffff", // 文字的颜色
  2314. fontSize: "20", // 文字字体大小
  2315. fontFamily: "Microsoft YaHei",
  2316. },
  2317. axisPointer: {
  2318. // lineStyle: {
  2319. // type: 'dashed',
  2320. // width: 2,
  2321. // color: 'rgba(255,255,255,0.6)'
  2322. // },
  2323. animation: false,
  2324. },
  2325. },
  2326. grid: {
  2327. top: "0%",
  2328. right: "5%",
  2329. left: "15%",
  2330. bottom: "-10%",
  2331. },
  2332. yAxis: {
  2333. data: ["备案", "特别监管"],
  2334. splitLine: {
  2335. show: false,
  2336. lineStyle: {
  2337. color: "#68b4dd66",
  2338. type: "dashed",
  2339. },
  2340. },
  2341. axisLine: {
  2342. show: false,
  2343. },
  2344. axisLabel: {
  2345. show: false,
  2346. formatter: "{value}",
  2347. textStyle: {
  2348. color: "#fff",
  2349. fontSize: 20,
  2350. padding: [0, -10, 0, 0],
  2351. fontFamily: "Microsoft YaHei",
  2352. },
  2353. },
  2354. nameTextStyle: {
  2355. color: "#ebf8ac",
  2356. fontSize: 16,
  2357. fontFamily: "Microsoft YaHei",
  2358. },
  2359. },
  2360. xAxis: {
  2361. data: ["项目储备", "项目立项", "可研论证", "投资决策"],
  2362. axisLine: {
  2363. show: true, //隐藏X轴轴线
  2364. lineStyle: {
  2365. color: "red",
  2366. width: 1,
  2367. },
  2368. },
  2369. axisTick: {
  2370. show: false, //隐藏X轴刻度
  2371. },
  2372. axisLabel: {
  2373. show: true,
  2374. textStyle: {
  2375. color: "#fff", //X轴文字颜色
  2376. fontSize: 20,
  2377. padding: [-80, 0, 0, 0],
  2378. fontFamily: "Microsoft YaHei",
  2379. },
  2380. },
  2381. },
  2382. series: [
  2383. {
  2384. name: "特别监管",
  2385. type: "scatter",
  2386. symbol: "circle", //'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  2387. symbolSize: function (data) {
  2388. return Math.sqrt(data[2]) * 5;
  2389. },
  2390. // label: {
  2391. // emphasis: {
  2392. // show: true,
  2393. // formatter: function (param) {
  2394. // return param.data[2];
  2395. // },
  2396. // position: 'top'
  2397. // }
  2398. // },
  2399. itemStyle: {
  2400. normal: {
  2401. color: "#69c0ff",
  2402. },
  2403. },
  2404. // data: left13[0]
  2405. },
  2406. {
  2407. name: "备案",
  2408. type: "scatter",
  2409. symbol: "circle", //'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  2410. symbolSize: function (data) {
  2411. return Math.sqrt(data[2]) * 5;
  2412. },
  2413. // label: {
  2414. // emphasis: {
  2415. // show: true,
  2416. // formatter: function (param) {
  2417. // return param.data[2];
  2418. // },
  2419. // position: 'top'
  2420. // }
  2421. // },
  2422. itemStyle: {
  2423. normal: {
  2424. color: "#957DFF",
  2425. },
  2426. },
  2427. // data: left13[1]
  2428. },
  2429. ],
  2430. };
  2431. //轮播
  2432. // tools.loopShowTooltip(leftEcharts1, option, {
  2433. // interval: 2000,
  2434. // loopSeries: true,
  2435. // });
  2436. //注册
  2437. that.leftEcharts8.setOption(option);
  2438. },
  2439. chinaEchartsFun () {
  2440. let that = this
  2441. this.geoCoordMap = []
  2442. /*获取地图数据*/
  2443. this.shanxiMap = echarts.init(this.$refs["shanxi"]);
  2444. // echarts.registerMap('china', china)
  2445. echarts.registerMap("china", shanxi);
  2446. // var mapFeatures = echarts.getMap('china').geoJson.features
  2447. // mapFeatures.forEach(v => {
  2448. // // 地区名称
  2449. // var name = v.properties.name
  2450. // // 地区经纬度
  2451. // this.geoCoordMap[name] = v.properties.cp
  2452. // data.push({ name: v.properties.name, value: v.properties.cp[0], value2: v.properties.cp[1] })
  2453. // })
  2454. // var data = [
  2455. // { "name": "新疆", value: 29780 },
  2456. // { "name": "西藏", value: 2186 },
  2457. // { "name": "内蒙古", value: 1135 },
  2458. // { "name": "青海", value: 29780 },
  2459. // { "name": "四川", value: 2568 },
  2460. // { "name": "黑龙江", value: 29780 },
  2461. // { "name": "甘肃", value: 6959 },
  2462. // { "name": "云南", value: 5632 },
  2463. // { "name": "广西", value: 6707 },
  2464. // { "name": "湖南", value: 29780 },
  2465. // { "name": "陕西", value: 1894 },
  2466. // { "name": "广东", value: 15769 },
  2467. // { "name": "吉林", value: 8259 },
  2468. // { "name": "河北", value: 5741 },
  2469. // { "name": "湖北", value: 3030 },
  2470. // { "name": "贵州", value: 4542 },
  2471. // { "name": "山东", value: 19780 },
  2472. // { "name": "江西", value: 3157 },
  2473. // { "name": "河南", value: 6690 },
  2474. // { "name": "辽宁", value: 8678 },
  2475. // { "name": "山西", value: 5303 },
  2476. // { "name": "安徽", value: 29780 },
  2477. // { "name": "福建", value: 10259 },
  2478. // { "name": "浙江", value: 3016 },
  2479. // { "name": "江苏", value: 3202 },
  2480. // { "name": "重庆", value: 4540 },
  2481. // { "name": "宁夏", value: 19780 },
  2482. // { "name": "海南", value: 8626 },
  2483. // { "name": "台湾", value: 4361 },
  2484. // { "name": "北京", value: 20000 },
  2485. // { "name": "天津", value: 4080 },
  2486. // { "name": "上海", value: 19780 },
  2487. // { "name": "香港", value: 6991 },
  2488. // { "name": "澳门", value: 13873 },
  2489. // { "name": "南海诸岛", value: 0 }
  2490. // ];
  2491. // var geoCoordMap = {
  2492. // "新疆": [86.9023, 41.148],
  2493. // "西藏": [87.8695, 31.6846],
  2494. // "内蒙古": [110.5977, 41.3408],
  2495. // "青海": [95.2402, 35.4199],
  2496. // "四川": [102.9199, 30.1904],
  2497. // "黑龙江": [128.1445, 46.7156],
  2498. // "甘肃": [102.7129, 38.166],
  2499. // "云南": [101.0652, 24.6807],
  2500. // "广西": [108.7813, 23.6426],
  2501. // "湖南": [111.5332, 27.3779],
  2502. // "陕西": [108.5996, 33.7396],
  2503. // "广东": [113.8668, 22.8076],
  2504. // "吉林": [126.1746, 43.5938],
  2505. // "河北": [115.4004, 38.1688],
  2506. // "湖北": [112.2363, 30.8572],
  2507. // "贵州": [106.6113, 26.6385],
  2508. // "山东": [118.2402, 36.2307],
  2509. // "江西": [115.7156, 27.99],
  2510. // "河南": [113.0668, 33.8818],
  2511. // "辽宁": [123.0438, 41.0889],
  2512. // "山西": [112.44, 37.73],
  2513. // "安徽": [117.2461, 31.0361],
  2514. // "福建": [118.3008, 25.9277],
  2515. // "浙江": [120.498, 29.0918],
  2516. // "江苏": [119.8586, 32.915],
  2517. // "重庆": [107.7539, 29.8904],
  2518. // "宁夏": [105.9961, 37.1096],
  2519. // "海南": [109.9512, 19.2041],
  2520. // "台湾": [120.8254, 23.5986],
  2521. // "北京": [116.4551, 40.2539],
  2522. // "天津": [117.4219, 39.4189],
  2523. // "上海": [121.4648, 31.2891],
  2524. // "香港": [114.6178, 22.3242],
  2525. // "澳门": [113.5547, 21.6484],
  2526. // '南海诸岛': [128.8254, 21.5986]
  2527. // };
  2528. var data = [
  2529. { name: "大同市", value: 6035, value2: 28 },
  2530. { name: "朔州市", value: 3361, value2: 13 },
  2531. { name: "忻州市", value: 7335, value2: 25 },
  2532. { name: "吕梁市", value: 10904, value2: 45 },
  2533. { name: "太原市", value: 25167, value2: 113 },
  2534. { name: "阳泉市", value: 2512, value2: 28 },
  2535. { name: "晋中市", value: 14857, value2: 52 },
  2536. { name: "临汾市", value: 13055, value2: 30 },
  2537. { name: "长治市", value: 10300, value2: 23 },
  2538. { name: "运城市", value: 4106, value2: 23 },
  2539. { name: "晋城市", value: 4543, value2: 31 },
  2540. ];
  2541. var geoCoordMap = {
  2542. 太原市: [112.53, 37.87],
  2543. 大同市: [113.3, 40.12],
  2544. 阳泉市: [113.57, 37.85],
  2545. 长治市: [113.08, 36.18],
  2546. 晋城市: [112.83, 35.52],
  2547. 朔州市: [112.43, 39.33],
  2548. 晋中市: [112.94, 37.4],
  2549. 运城市: [110.97, 35.03],
  2550. 忻州市: [112.53, 38.72],
  2551. 临汾市: [111.5, 36.08],
  2552. 吕梁市: [111.13, 37.52],
  2553. };
  2554. var convertData = function (data) {
  2555. var res = [];
  2556. for (var i = 0; i < data.length; i++) {
  2557. var geoCoord = geoCoordMap[data[i].name];
  2558. if (geoCoord) {
  2559. res.push({
  2560. name: data[i].name,
  2561. value: geoCoord.concat(data[i].value, data[i].value2),
  2562. });
  2563. }
  2564. }
  2565. return res;
  2566. };
  2567. var convertedData = [
  2568. convertData(data),
  2569. convertData(
  2570. data
  2571. .sort(function (a, b) {
  2572. return b.value - a.value;
  2573. })
  2574. .slice(0, 6)
  2575. ),
  2576. ];
  2577. data.sort(function (a, b) {
  2578. return a.value - b.value;
  2579. });
  2580. option = {
  2581. backgroundColor: '#404a5900',
  2582. animation: true,
  2583. animationDuration: 1000,
  2584. animationEasing: "cubicInOut",
  2585. animationDurationUpdate: 1000,
  2586. animationEasingUpdate: "cubicInOut",
  2587. geo: {
  2588. map: "china",
  2589. center: [112.53, 37.67],
  2590. zoom: 4.5,
  2591. label: {
  2592. emphasis: {
  2593. show: false,
  2594. },
  2595. },
  2596. roam: false,
  2597. itemStyle: {
  2598. normal: {
  2599. borderColor: '#7fb3ff',
  2600. borderWidth: 3,
  2601. areaColor: {
  2602. type: 'radial',
  2603. x: 0.5,
  2604. y: 0.5,
  2605. r: 0.8,
  2606. colorStops: [{
  2607. offset: 0,
  2608. color: '#468ff8' // 0% 处的颜色
  2609. }, {
  2610. offset: 1,
  2611. color: '#0a2c6d' // 100% 处的颜色
  2612. }],
  2613. globalCoord: false // 缺省为 false
  2614. },
  2615. // shadowColor: 'rgba(128, 217, 248, 1)',
  2616. shadowColor: '#468ff8',
  2617. shadowOffsetX: -2,
  2618. shadowOffsetY: 2,
  2619. shadowBlur: 20
  2620. },
  2621. emphasis: {
  2622. areaColor: {
  2623. colorStops: [{
  2624. offset: 0,
  2625. color: '#3844aa' // 0% 处的颜色
  2626. }, {
  2627. offset: 1,
  2628. color: '#7284fc' // 100% 处的颜色
  2629. }],
  2630. },
  2631. borderColor: '#b3baff',
  2632. borderWidth: 5
  2633. }
  2634. },
  2635. tooltip: {
  2636. trigger: "item",
  2637. className: "custom-tooltip-box",
  2638. confine: true, // 不超出当前表
  2639. formatter: (params, ticket, callback) => {
  2640. // 清空所有轮播
  2641. for (var k in geoCoordMap) {
  2642. that.shanxiMap.dispatchAction({
  2643. // type: 'geoUnSelect',
  2644. type: 'downplay',
  2645. name: k,
  2646. geoIndex: 0
  2647. })
  2648. that.shanxiMap.dispatchAction({
  2649. // type: 'geoUnSelect',
  2650. type: 'downplay',
  2651. name: k,
  2652. seriesName: params.seriesName
  2653. })
  2654. that.shanxiMap.dispatchAction({
  2655. // type: 'geoUnSelect',
  2656. type: 'downplay',
  2657. name: k,
  2658. seriesName: 'series\u00001'
  2659. })
  2660. }
  2661. that.shanxiMap.dispatchAction({
  2662. // type: 'geoSelect',
  2663. type: 'highlight',
  2664. name: params.name,
  2665. geoIndex: 0
  2666. })
  2667. that.shanxiMap.dispatchAction({
  2668. // type: 'geoSelect',
  2669. type: 'highlight',
  2670. name: params.name,
  2671. seriesName: params.seriesName
  2672. })
  2673. that.shanxiMap.dispatchAction({
  2674. // type: 'geoSelect',
  2675. type: 'highlight',
  2676. name: params.name,
  2677. seriesName: 'series\u00001'
  2678. })
  2679. return `<div class="bgTooltip" style="background: url('../img/shanxi/${params.name}.png') no-repeat center center;background-size: 100% 100%;font-size:36px">
  2680. <div class="flex items-center">
  2681. <img src="./img/yellowArrow.png" style="width: 12px;height: 22px;margin-right:10px" alt=""><span class="fb">${params.name}</span>
  2682. </div>
  2683. <div class="blueIcon flex items-center">项目数量:<span class="fb" style="color:#68BDFF;">${params.value[3]}<span style="font-size:20px" class="fn">个</span></span></div>
  2684. <div class="blueIcon flex items-center">投资总额:<span class="fb" style="color:#68BDFF">${params.value[2]}<span style="font-size:20px" class="fn">亿</span></span></div>
  2685. </div>`
  2686. },
  2687. },
  2688. regions: [
  2689. {
  2690. name: "太原市",
  2691. value: 2000,
  2692. itemStyle: {
  2693. emphasis: {
  2694. borderColor: "#ffe036",
  2695. borderWidth: 5,
  2696. areaColor: {
  2697. type: "radial",
  2698. x: 0.5,
  2699. y: 0.5,
  2700. r: 0.8,
  2701. colorStops: [
  2702. {
  2703. offset: 0,
  2704. color: "#ffe036", // 0% 处的颜色
  2705. },
  2706. {
  2707. offset: 1,
  2708. color: "#7c732a", // 100% 处的颜色
  2709. },
  2710. ],
  2711. globalCoord: false, // 缺省为 false
  2712. },
  2713. },
  2714. },
  2715. },
  2716. {
  2717. name: "南海诸岛",
  2718. itemStyle: {
  2719. // 隐藏地图
  2720. normal: {
  2721. opacity: 0, // 为 0 时不绘制该图形
  2722. },
  2723. },
  2724. label: {
  2725. show: false, // 隐藏文字
  2726. },
  2727. },
  2728. ],
  2729. },
  2730. tooltip: {
  2731. trigger: "item",
  2732. className: "custom-tooltip-box",
  2733. confine: true, // 不超出当前表
  2734. },
  2735. xAxis: {
  2736. type: "value",
  2737. scale: true,
  2738. position: "top",
  2739. boundaryGap: false,
  2740. splitLine: {
  2741. show: false,
  2742. },
  2743. axisLine: {
  2744. show: false,
  2745. },
  2746. axisTick: {
  2747. show: false,
  2748. },
  2749. axisLabel: {
  2750. margin: 2,
  2751. textStyle: {
  2752. color: "#aaa",
  2753. },
  2754. },
  2755. },
  2756. yAxis: {
  2757. type: "category",
  2758. nameGap: 16,
  2759. axisLine: {
  2760. show: false,
  2761. lineStyle: {
  2762. color: "#ddd",
  2763. },
  2764. },
  2765. axisTick: {
  2766. show: false,
  2767. lineStyle: {
  2768. color: "#ddd",
  2769. },
  2770. },
  2771. axisLabel: {
  2772. interval: 0,
  2773. textStyle: {
  2774. color: "#ddd",
  2775. },
  2776. },
  2777. data: categoryData,
  2778. },
  2779. series: [
  2780. {
  2781. type: 'effectScatter',
  2782. colorBy: 'data',
  2783. coordinateSystem: 'geo',
  2784. data: convertedData[0],
  2785. symbolSize: function (val) {
  2786. return Math.max(val[2] / 500, 8);
  2787. },
  2788. showEffectOn: "emphasis",
  2789. rippleEffect: {
  2790. brushType: "stroke",
  2791. color: '#58F7DF'
  2792. },
  2793. hoverAnimation: true,
  2794. label: {
  2795. normal: {
  2796. formatter: "{b}",
  2797. position: "right",
  2798. show: true,
  2799. fontSize: "30",
  2800. color: "#fff",
  2801. },
  2802. },
  2803. itemStyle: {
  2804. normal: {
  2805. color: "#ffc809",
  2806. shadowBlur: 50,
  2807. shadowColor: "#ffc809",
  2808. },
  2809. emphasis: {
  2810. color: '#58F7DF',
  2811. shadowBlur: 50,
  2812. shadowColor: '#58F7DF',
  2813. },
  2814. },
  2815. zlevel: 99
  2816. },
  2817. {
  2818. type: 'effectScatter',
  2819. colorBy: 'data',
  2820. coordinateSystem: 'geo',
  2821. data: [
  2822. {
  2823. "name": "太原市",
  2824. "value": [
  2825. 112.53,
  2826. 37.87,
  2827. 25167,
  2828. 113
  2829. ]
  2830. }
  2831. ],
  2832. symbolSize: function (val) {
  2833. return Math.max(val[2] / 500, 8);
  2834. },
  2835. showEffectOn: "emphasis",
  2836. rippleEffect: {
  2837. brushType: "stroke",
  2838. color: '#DF62F2'
  2839. },
  2840. hoverAnimation: true,
  2841. label: {
  2842. normal: {
  2843. formatter: "{b}",
  2844. position: "right",
  2845. show: true,
  2846. fontSize: "30",
  2847. color: "#fff",
  2848. },
  2849. },
  2850. itemStyle: {
  2851. normal: {
  2852. color: "#ffc809",
  2853. shadowBlur: 50,
  2854. shadowColor: "#ffc809",
  2855. },
  2856. emphasis: {
  2857. color: '#DF62F2',
  2858. shadowBlur: 50,
  2859. shadowColor: '#DF62F2',
  2860. },
  2861. },
  2862. zlevel: 999
  2863. }
  2864. ]
  2865. };
  2866. var categoryData = [];
  2867. var barData = [];
  2868. var sum = 0;
  2869. for (var i = 0; i < data.length; i++) {
  2870. categoryData.push(data[i].name);
  2871. barData.push(data[i].value);
  2872. sum += data[i].value;
  2873. }
  2874. // this.shanxiMap.on('click', function (params) {
  2875. // if (params.name == '山西') {
  2876. // that.shanxiMap.dispose()
  2877. // that.centerShow = true
  2878. // setTimeout(() => {
  2879. // })
  2880. // }
  2881. // })
  2882. tools.loopShowTooltip(this.shanxiMap, option, {
  2883. interval: 2000,
  2884. loopSeries: false,
  2885. seriesIndex: 0
  2886. });
  2887. this.shanxiMap.setOption(option);
  2888. },
  2889. leftEcharts9Fun () {
  2890. let that = this;
  2891. this.leftEcharts9 = echarts.init(this.$refs["leftEcharts9"]);
  2892. // var ROOT_PATH = 'https://echarts.apache.org/examples';
  2893. let option = {
  2894. backgroundColor: '#00000000',
  2895. globe: {
  2896. globeRadius: 55,
  2897. baseTexture: './img/3D/world1.jpg',
  2898. heightTexture: './img/3D/world1.jpg',
  2899. displacementScale: 0.04,
  2900. shading: 'realistic',
  2901. // environment: './img/3D/world2.jpg',
  2902. realisticMaterial: {
  2903. roughness: 0.9
  2904. },
  2905. postEffect: {
  2906. enable: true
  2907. },
  2908. light: {
  2909. main: {
  2910. intensity: 3,
  2911. shadow: true
  2912. },
  2913. }
  2914. }
  2915. };
  2916. that.leftEcharts9.setOption(option);
  2917. },
  2918. leftEcharts10Fun () {
  2919. let that = this;
  2920. this.leftEcharts10 = echarts.init(this.$refs["leftEcharts10"]);
  2921. option = {
  2922. grid: {
  2923. top: 45,
  2924. right: 0,
  2925. left: 80,
  2926. bottom: 80,
  2927. },
  2928. tooltip: {
  2929. show: true,
  2930. trigger: "axis",
  2931. formatter: data => {
  2932. return `${data[0].name}<br /><span style="display:inline-block;border-radius:50%; width:20px;height:20px;background-color:${data[0].color}"></span> ${data[0].seriesName}:${that.numFormat(data[0].value)}亿<br/><span style="display:inline-block;border-radius:50%; width:20px;height:20px;background-color:${data[1].color.colorStops[0].color}"></span> ${data[1].seriesName}:${that.numFormat(data[1].value)}亿`
  2933. },
  2934. axisPointer: {
  2935. // 坐标轴指示器,坐标轴触发有效
  2936. type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
  2937. },
  2938. backgroundColor: "rgba(50,50,50,0.7)", // 提示框浮层的背景颜色
  2939. borderColor: "rgba(50,50,50,0.7)",
  2940. textStyle: {
  2941. color: "#fff",
  2942. fontStyle: "normal", // 文字字体的风格('normal',无样式;'italic',斜体;'oblique',倾斜字体)
  2943. fontWeight: "normal", // 文字字体的粗细('normal',无样式;'bold',加粗;'bolder',加粗的基础上再加粗;'lighter',变细;数字定义粗细也可以,取值范围100至700)
  2944. fontSize: "28", // 文字字体大小
  2945. },
  2946. },
  2947. xAxis: {
  2948. data: commonCompany,
  2949. axisTick: {
  2950. show: false,
  2951. },
  2952. // x轴的字体颜色
  2953. axisLabel: {
  2954. rotate: 40,
  2955. textStyle: {
  2956. color: "white",
  2957. fontSize: '20',
  2958. fontFamily: 'Microsoft YaHei'
  2959. },
  2960. },
  2961. //y轴线的颜色以及宽度
  2962. axisLine: {
  2963. show: true,
  2964. lineStyle: {
  2965. color: "#1E5389",
  2966. width: 1,
  2967. type: "solid",
  2968. },
  2969. },
  2970. },
  2971. yAxis: {
  2972. name: '亿',
  2973. axisTick: {
  2974. lineStyle: {
  2975. color: "#18416F",
  2976. },
  2977. },
  2978. // y轴的字体颜色
  2979. axisLabel: {
  2980. textStyle: {
  2981. color: "white",
  2982. fontSize: '20',
  2983. fontFamily: 'Microsoft YaHei'
  2984. },
  2985. },
  2986. splitLine: {
  2987. show: true,
  2988. lineStyle: {
  2989. color: "#68b4dd66",
  2990. width: 1,
  2991. type: "dashed",
  2992. },
  2993. },
  2994. //y轴线的颜色以及宽度
  2995. axisLine: {
  2996. show: true,
  2997. lineStyle: {
  2998. color: "#1E5389",
  2999. width: 1,
  3000. type: "solid",
  3001. },
  3002. },
  3003. nameTextStyle: {
  3004. color: '#fff',
  3005. fontSize: 20,
  3006. fontFamily: 'Microsoft YaHei'
  3007. },
  3008. },
  3009. series: [
  3010. {
  3011. name: "已用额度",
  3012. type: "pictorialBar",
  3013. symbol: 'fixed',
  3014. symbolSize: [20, 5],
  3015. symbolMargin: 2,
  3016. symbolRepeat: 'repeat',
  3017. data: [26, 36, 16, 46, 26, 36, 16, 46, 26, 36, 16, 46, 26, 36, 16, 46, 26, 36],
  3018. showBackground: false,
  3019. barWidth: "15",
  3020. itemStyle: {
  3021. color: '#40A9FF'
  3022. },
  3023. zlevel: 1
  3024. },
  3025. {
  3026. name: "总额度",
  3027. type: "pictorialBar",
  3028. symbol: 'fixed',
  3029. symbolSize: [30, 5],
  3030. symbolMargin: 2,
  3031. symbolRepeat: 'repeat',
  3032. data: [390, 390, 390, 200, 390, 390, 390, 200, 390, 390, 390, 200, 390, 390, 390, 200, 390, 200],
  3033. barGap: '-130%',
  3034. barWidth: "25",
  3035. itemStyle: {
  3036. color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  3037. {
  3038. offset: 0,
  3039. color: '#b9b7c060',
  3040. },
  3041. {
  3042. offset: 1,
  3043. color: '#b9b7c060',
  3044. },
  3045. ]),
  3046. },
  3047. },
  3048. ]
  3049. };
  3050. //轮播
  3051. tools.loopShowTooltip(that.leftEcharts10, option, {
  3052. interval: 2000,
  3053. loopSeries: true,
  3054. });
  3055. //注册
  3056. that.leftEcharts10.setOption(option);
  3057. },
  3058. // 重点项目两线指标轮播方法
  3059. scrollChange (index) {
  3060. if (index == 18) {
  3061. this.count = -1
  3062. } else {
  3063. this.count = index
  3064. }
  3065. if (this.count > 12 && this.count != 18) {
  3066. this.countType = 1
  3067. } else {
  3068. this.countType = 0
  3069. }
  3070. for (var i = 0; i < this.list.length; i++) {
  3071. if (i == 2) {
  3072. this.list[i].classList.add('light')
  3073. } else {
  3074. this.list[i].classList.remove('light')
  3075. }
  3076. }
  3077. this.leftEcharts11 ? this.leftEcharts11.dispose() : ''
  3078. this.leftEcharts11Fun()
  3079. },
  3080. leftEcharts11Fun () {
  3081. let that = this;
  3082. this.leftEcharts11 = echarts.init(this.$refs["leftEcharts11"]);
  3083. option = {
  3084. tooltip: {
  3085. trigger: 'axis',
  3086. formatter: '指标:' + '{c0}' + '<br/>' + '发展线:' + '{c1}' + '<br/>' + '生存线:' + '{c2}', //+ '<br/>'+ '{a1}:{c1}' + '%',
  3087. axisPointer: {
  3088. type: 'shadow',
  3089. },
  3090. backgroundColor: "rgba(50,50,50,0.7)", // 提示框浮层的背景颜色
  3091. borderColor: "rgba(50,50,50,0.7)",
  3092. textStyle: {
  3093. color: "#fff",
  3094. fontStyle: "normal", // 文字字体的风格('normal',无样式;'italic',斜体;'oblique',倾斜字体)
  3095. fontWeight: "normal", // 文字字体的粗细('normal',无样式;'bold',加粗;'bolder',加粗的基础上再加粗;'lighter',变细;数字定义粗细也可以,取值范围100至700)
  3096. fontSize: "28", // 文字字体大小
  3097. },
  3098. },
  3099. grid: {
  3100. top: '10%',
  3101. right: '5%',
  3102. left: '15%',
  3103. bottom: '20%',
  3104. },
  3105. xAxis: {
  3106. data: ['总投资收益率', '销售利润率', '成本费用利润率', '总资产周转率', '财务内部收益率'],
  3107. // data: left15[this.countType],
  3108. axisLine: {
  3109. show: true, //隐藏X轴轴线
  3110. lineStyle: {
  3111. color: '#005094',
  3112. width: 1,
  3113. },
  3114. },
  3115. axisTick: {
  3116. show: true, //隐藏X轴刻度
  3117. },
  3118. axisLabel: {
  3119. show: true,
  3120. rotate: 30,
  3121. textStyle: {
  3122. color: '#fff', //X轴文字颜色
  3123. fontSize: 20,
  3124. fontFamily: 'Microsoft YaHei'
  3125. },
  3126. },
  3127. },
  3128. yAxis: [
  3129. {
  3130. type: 'value',
  3131. splitLine: {
  3132. show: true,
  3133. lineStyle: {
  3134. color: '#68b4dd66',
  3135. type: 'dashed',
  3136. },
  3137. },
  3138. axisLine: {
  3139. show: false
  3140. },
  3141. axisLabel: {
  3142. show: true,
  3143. formatter: '{value}%',
  3144. textStyle: {
  3145. color: '#fff',
  3146. fontSize: 20,
  3147. fontFamily: 'Microsoft YaHei'
  3148. },
  3149. },
  3150. nameTextStyle: {
  3151. color: '#ebf8ac',
  3152. fontSize: 16,
  3153. fontFamily: 'Microsoft YaHei'
  3154. },
  3155. },
  3156. ],
  3157. series: [
  3158. {
  3159. name: '实际值',
  3160. type: 'bar',
  3161. barWidth: 20,
  3162. itemStyle: {
  3163. normal: {
  3164. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  3165. {
  3166. offset: 0,
  3167. color: '#69c0ff',
  3168. },
  3169. {
  3170. offset: 1,
  3171. color: '#082550',
  3172. },
  3173. ]),
  3174. },
  3175. },
  3176. data: [70, 52, 33, 41, 52],
  3177. // data: this.storageRecordConfig.data.length == 0 ? [] : this.storageRecordConfig.data.length == 1 ? left12[this.count][2] : left12[this.count + 1][2]
  3178. },
  3179. {
  3180. name: '',
  3181. type: 'line',
  3182. barWidth: 15,
  3183. itemStyle: {
  3184. normal: {
  3185. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  3186. {
  3187. offset: 0,
  3188. color: '#69c0ff',
  3189. },
  3190. {
  3191. offset: 1,
  3192. color: 'green',
  3193. },
  3194. ]),
  3195. },
  3196. },
  3197. data: [20, 30, 15, 28, 36],
  3198. // data: this.storageRecordConfig.data.length == 0 ? [] : this.storageRecordConfig.data.length == 1 ? left12[this.count][1] : left12[this.count + 1][1]
  3199. },
  3200. {
  3201. name: '',
  3202. type: 'line',
  3203. barWidth: 15,
  3204. itemStyle: {
  3205. normal: {
  3206. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  3207. {
  3208. offset: 0,
  3209. color: '#69c0ff',
  3210. },
  3211. {
  3212. offset: 1,
  3213. color: 'yellow',
  3214. },
  3215. ]),
  3216. },
  3217. },
  3218. data: [15, 22, 17, 33, 14],
  3219. // data: this.storageRecordConfig.data.length == 0 ? [] : this.storageRecordConfig.data.length == 1 ? left12[this.count][0] : left12[this.count + 1][0]
  3220. },
  3221. ],
  3222. }
  3223. //轮播
  3224. tools.loopShowTooltip(that.leftEcharts11, option, {
  3225. interval: 2000,
  3226. loopSeries: true,
  3227. });
  3228. //注册
  3229. that.leftEcharts11.setOption(option);
  3230. },
  3231. leftEcharts12Fun () {
  3232. let that = this;
  3233. this.leftEcharts12 = echarts.init(this.$refs["leftEcharts12"]);
  3234. var totalData = [{
  3235. name: '传统产业',
  3236. value: 12,
  3237. radio: 0.13
  3238. }, {
  3239. name: '公共基础产业',
  3240. value: 52,
  3241. radio: 0.01
  3242. }, {
  3243. name: '战略性新兴产业',
  3244. value: 15,
  3245. radio: 3.9
  3246. }, {
  3247. name: '特色优势产业',
  3248. value: 56,
  3249. radio: 10.5
  3250. }];
  3251. var data = [];
  3252. for (var i = 0; i < totalData.length; i++) {
  3253. data.push({
  3254. value: totalData[i].value,
  3255. name: totalData[i].name,
  3256. itemStyle: {
  3257. normal: {
  3258. borderWidth: 8,
  3259. shadowBlur: 0,
  3260. borderColor: commonColor[i],
  3261. shadowColor: commonColor[i]
  3262. }
  3263. }
  3264. },
  3265. {
  3266. value: 5,
  3267. name: '',
  3268. itemStyle: {
  3269. normal: {
  3270. label: {
  3271. show: false
  3272. },
  3273. labelLine: {
  3274. show: false
  3275. },
  3276. color: 'rgba(0, 0, 0, 0)',
  3277. borderColor: 'rgba(0, 0, 0, 0)',
  3278. borderWidth: 0
  3279. }
  3280. }
  3281. }
  3282. );
  3283. }
  3284. var seriesOption = [{
  3285. name: '',
  3286. type: 'pie',
  3287. clockWise: false,
  3288. radius: [170, 160],
  3289. center: [260, 250],
  3290. hoverAnimation: false,
  3291. itemStyle: {
  3292. normal: {
  3293. label: {
  3294. show: false,
  3295. }
  3296. }
  3297. },
  3298. data: data
  3299. },
  3300. {
  3301. type: 'pie',
  3302. radius: [120, 120],
  3303. center: [260, 250],
  3304. zlevel: 3,
  3305. silent: true,
  3306. label: {
  3307. normal: {
  3308. show: false
  3309. },
  3310. },
  3311. labelLine: {
  3312. normal: {
  3313. show: false
  3314. }
  3315. },
  3316. data: _pie3()
  3317. },
  3318. ];
  3319. option = {
  3320. color: commonColor,
  3321. title: {
  3322. show: false,
  3323. text: '风险类型123',
  3324. top: '48%',
  3325. textAlign: "center",
  3326. left: "49%",
  3327. textStyle: {
  3328. color: '#fff',
  3329. fontSize: 18,
  3330. fontWeight: '400'
  3331. }
  3332. },
  3333. tooltip: {
  3334. show: false
  3335. },
  3336. legend: {
  3337. icon: "circle",
  3338. orient: 'vertical',
  3339. formatter: function (name) {
  3340. let num
  3341. for (let i = 0; i < totalData.length; i++) {
  3342. if (totalData[i].name === name) {
  3343. num = name + ':' + totalData[i].value + '(' + totalData[i].radio + '%' + ')'
  3344. }
  3345. }
  3346. return num
  3347. },
  3348. data: ['传统产业', '公共基础产业', '战略性新兴产业', '特色优势产业'],
  3349. right: 0,
  3350. bottom: 0,
  3351. align: 'left',
  3352. textStyle: {
  3353. color: '#FFF', // 文字的颜色
  3354. fontSize: '20', // 文字字体大小
  3355. fontFamily: 'Microsoft YaHei'
  3356. },
  3357. itemGap: 20
  3358. },
  3359. toolbox: {
  3360. show: false
  3361. },
  3362. series: seriesOption
  3363. }
  3364. function _pie3 () {
  3365. let dataArr = [];
  3366. for (var i = 0; i < 100; i++) {
  3367. if (i % 2 === 0) {
  3368. dataArr.push({
  3369. name: (i + 1).toString(),
  3370. value: 25,
  3371. itemStyle: {
  3372. normal: {
  3373. color: "#5A5DE0",
  3374. borderWidth: 1,
  3375. borderColor: "#5A5DE0"
  3376. }
  3377. }
  3378. })
  3379. } else {
  3380. dataArr.push({
  3381. name: (i + 1).toString(),
  3382. value: 20,
  3383. itemStyle: {
  3384. normal: {
  3385. color: "rgba(0,0,0,0)",
  3386. borderWidth: 0,
  3387. borderColor: "rgba(0,0,0,0)"
  3388. }
  3389. }
  3390. })
  3391. }
  3392. }
  3393. return dataArr
  3394. }
  3395. //轮播
  3396. tools.loopShowTooltip(that.leftEcharts12, option, {
  3397. interval: 2000,
  3398. loopSeries: true,
  3399. });
  3400. //注册
  3401. that.leftEcharts12.setOption(option);
  3402. },
  3403. },
  3404. });