index3.js 76 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475
  1. let barImg =
  2. 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAADNRJREFUaEPNmXmQFNd9x9/Zr3u6Z2ZndzkiLeYwYhctJUtgC8GGQ46MBLYsjAURQnKSckWKkz+SkuWUnarElqtSsV2W/Kccq+Kq6EIFGAwpEEFSWIRYgQKSIrFiF3EsBskcuztX3+/oVPfMLMMesKxklbtq6tXMTk9/+rff/v6OB8HEDzjxU4fOjCbyGxO5cP05Ezm/xlkPfF3w13PRsWAhAMurfytX1nb/8ne79SpQurp2xutYwOOCHy907Xt1awxahkOAQQCBEJXX8IOQCMQvxipQyY3EN3HFDdSArwk+HuhRgBcgMLuIEgDXxcnKc5X3Mqis9QdmKnlL85U1lZLJeiKrADgSfzYc+Krg14IeBrwcgdnnKpAxbAwqPAyyCgJhonRKR5HkCXSkFIQIJReHmKqy6ytAHAWKKALEkMkNDMG3SAA6Kzc08gZGxOBq0MOAF+Akur6PAG9EILQJSJsIaISYIsRKEAyURJFGMIg0CKIIAggjAMMIhkIChBUiQjpEkyAUApQdBTRLADqogK6ratQr/4FrgI8FPTpwLbqmQyyc0ZTgWOEUBRLjyACUSoQjRumS9f94d+7G6evyH53ZtH/jz/4bBpxzrCT0AAdYSiRdjgiVtiyFwDHFUNSvlMuYGh8NenTgcooAJSEwEDVxpKkQ0chkmoowo4zSSEQUE4396YbHH043TbnvzNGDP50+b9EPiv0fb+168annpQgDSCDnAecIygA6QYg0xR0JQ+ApDhCOQNoVw3Q+Kvhw6LGB4wdMJzQFNV2JgERYY8RkRkR0hglkCGrGF1c/+qDVOGVl9/7tTwx+9OHFxhtvmty+5L4f2wO/33F4+zMvqSj0pIgCKPxAOIEHZRggwoQbhT7wBQfxA3sZfEypjOa91c+qGo4jHAMzqKWQwRTxqYpSBqVIR9S0EGM6xNi8ZcUD66zc1BU9Xbt/buc/LgJEAVAcZJpbsjctXPE9d+DCy//36sYtkZSOCgJfccfmXPkIuh4SOneVF4AgCscDPhy6+r7qEjUNM6AlEY6BlZEiFBpIT2cQoSlCdWvusq/fn8pN/fLJI3t/5dl5JwKYIIKgEiqCQAojkzM/f9udj7r5868d27dji+C+rQR3lV8uCR55CCoPSRgmEQ9AeFnjI1yl4kbVp7V+hWD2bJK4RJDFsYZTETGuAGZWFmKUJtSy5iz52loz27TsdHfX875jh5BQDSNMAYAQgCiSSvJI8FA309rM9kUPeYX+zp43dm4R3LYjqcoqsIsJOPLcJOJQeInGWVFWXOWEqLrJkL6vhE1uopo4YlkYJWpCi0lfMcWMFCEghWJgRDPY0LOti7+6xsg0L+072rWZ81AiTFNIIwwBTJNwRAAoILkKRaAkdzVNw59rX/SAn+//n95Du7ZJzy9GipcScAFcFHgu1lHgRHaQuEo24KM8mFH80/WpuZI8Yll4OrUaY2CgKYgMYlATMrMBIpjButkw546V9xsNzUvOvH9oq+AcQMbShFIDE8KYmbWmzV3Y9rsPDh0P3WJJChEIzr0oCMpE0+D0eQu/6eUv7j1+aPdW6TuFSEWlKHAKwuMOipSHdRDag3YADJ8nCejEkEyG5FEHXn34iowmsoBCV8wyMEQWwkYGajSDsd4wp+OedXpD87IzR9/6rRQBgkzPYspMhDRDT2esGfMWtxHKmAiDsK+765hfLtlKhZ7kgRMFfpFSpqa1L1wTR/x418ubpfQLUchLSnolGSkbBbbnRsRPZHI52kNuUgOurO3tGOTzJI4yaMpqukKGwtQkGrOopmcx0Rpv6vjaeiPTuKyv+81tkocEa0YDpCyDCU3p6YZsS9uXZhLKtFruFTzgZ3v/93RQKhSk4G4k/LIM/DwmTMYRD4uDr/V27XxJhn6BizCPwsAWkjs+Uh4YKIZJtHM5Abq7Y+ikQqyDXo5A+yWUQGuaZgJTl5Fp4DRLI4wzmKaa2pev2cDMhrtOHz2wmQeCIIM1YaJnscYsZmUz0+YsmIkppcOLBSk4P3f8SF9ol0uce2UZ+kXlBQOUaWLmvEVrg3L+1e7Xt70guTugpCzJclDG0PEc4PjAy3DQLDnonqSq9ckw6FjPsTQY0AxADGUxEwMtTfVU462rHv6WZjasPPFO54th4BOkGc2EsRzGWoZlcg0tc+bPxFSjcSxyKQ38RcdM8J9dp0HeCZOnRgouPzp+5JRfzOelDEsiCPIq9Pp1zZCz5i97MCwXdr27+7lngQjzvnBLyA4cDwgvscBEIpd1XRfpBRjMGMCgRLR0c1YTdmBg07IgS+Vu/+bffptZma/3HNr9jOfYGmGpZqIbTYjoOSPT0NzS+sVZiFIaRRHIpRj47t1toNliYMAOwZN7joFBJwAQQqAEl2d7D5/0i4VLSvh5GXqD3HMvGak0b7vjnkcCJ7/trS2//HUUuHmppI2h8O3BcgAyIgR9TRKAI4lEroRuuUCAq1Mrl9KFRClspTNL13//O1o6u6b79d8+5ZQGCGSpKdQwJlHNaGLpxsnT5i6ciwnRogiAhpQ2BFyTSAL+yjGQt8PEuaUU/OwHhz4IioMXufAGpOv2y9A7n840qZuXrn7MLRc2Hdj403+XdrlEsHLtvOuDlM/BuSliJHR7OwHFIh6CFrq57NF/XpttvvGxt1/Z+ETp0tkIadYUaqSmEmZMSuUm3TDjliXzISIsimQC/NiKSoSHHzH4U68cA4N2CBDGIBIiPP3e/ne8wqVzIvAucc89r0L7QsOUz6Fb73rgX0oXzv6s85l/3UaI7wxBZ7MSdHcnieZypGvQjqbF/iw4s9b8+NebTx7ufPbDt187R/T0JKIbUzE1phJdb25ddO+XWcrKSSnjvAf+/q5W0Do1MwK49sGHF8vgF3t6AIQYYExA4NulngM7XpW+f0ly77zw7QvCdy+2fenuGdO/0LF224++/SDGnuMUXB+YYQgq0LE81EjomjyGIn3DP7yz54Univ0fw/pIGw2TWmbesuQ2iGNpVCL93RVzQZM15HZDNzDohOCpPT1gwA6GIt33/oF33PyFKyKdmXQDnP+Vh35YujjeSIMFGIym6Q0/+I5mZr7x/t7Nv/Cc0miavhkTQmNN58yREomBn9zTA+IEV9P0uWNvHfOKAxcF9/prmjYzTaJ96erHw3Jxy+sbf/L0+DQdQ4/lHvf/3V8zM72q9+DuZ1zX1q9wj2yuuaV1wSxEKu7RaLIhbdeAB2y/zj2OnPTL+UsqrHMP0wpbF658JLQL29/6zdP/cR3uUS1Hx/DpW1Y+/Fe6lV1x8vDe5wMRavU+radzuRtb58/CVMOJT5sa+MuOmeDZrr5EEpd9+u1TXjFfUDIo1nxaY7qYfdvyDaFT2PXuruv26WpG7Mc0qe5Gz4gPMyt356n33tgiwrqMyIy0bqUzLXMWzMDkckaMJZNIQnB57vjbp0K7NJQRpe8Pahrls+Z1rPWd/KvdnRPKiOOrPVqX3LtesxqW/u7owW1ChBQzPQeJnq6rPWYRjSWZMY5wUnv0HD4dlPIFqXhc55dlEOQxpWJG+6JvBKX8vt4D/7VxgrVH/LCPr8pr7Vj5AGto7jhz9OAOKcKRVV774rlE0zUR+mHfB2/2+HaxrEStyguKlGpqWvvtq/3C4L7jb+7cLHmQn0iVV+1i6tqsa9TTbXesWssamhfHEechhyPq6fZFN589eqgnsPMlqerqaUbB9LgsLfTv6z348oTr6VrbVfXs8XcubXesur8S8Te3DO9coigxjCjuXOIMKDl3KNXwjHmL13qF/td7D+7c+kk6l+G94nX1iG3L7l1rZBqX9r1/4DnPdcTwHjGSQkgpgrhHnNW+6CG3PLivZ/+OLSJwyp+0R6yPNgBgjG48HtJEyBjZjd+3LpWbvPzEkb1P+3bBH9GNWznz8wvufMTJX+js2bd906fVjY/SmV/f3OMLX1n/52Zu6p/1du18slw4X6rNPazcDdm2xSsft/O/3/Penpc2RZx7inP305p7XBv8GhOm21f/zYZU4+R7jnZu/WH+/Kn+xj+ZNbl92Zof2QPndx3e/qsX/xATplqBM2ysUPdgjjLLIxFm8dCxNstb8uD3vmU1T763790D/zbj1o5/Kg9c2P7GCz9/DgEVCiDDeBgpPuVZ3tXBxzs1fej7q3JTp6/Lnz+zaf/zP9n1WUxNRwO/nHhqk6d4mD58Ps20eKg+cj6NqQRBOHI+HQ/XhyZJya7AJ5pPjwF+9Z0AS48LJpnIq34nAEAc2X4oP4udgDHA60Zn8TdiychmmMyu6/dbIgUBrGxfJEc8xo1n0Lg/+kPvuVwF/I97d2s4eL011mqWquP8ce0j1jesow3iR2toq3PTMXvdz2THdvjVr7YzNibpsD9cc6NztB/6f4ffQsan0xs3AAAAAElFTkSuQmCC'
  3. let app = new Vue({
  4. el: '#app',
  5. data () {
  6. return {
  7. start: 0,
  8. end: 9,
  9. touch: true,
  10. timeCommon: '',
  11. echartC1: {
  12. national: '',
  13. province: ''
  14. },
  15. echartC2: {
  16. national: '',
  17. province: ''
  18. },
  19. titleName: '',
  20. twinkle7: [],
  21. twinkle8: [],
  22. twinkleR6: [],
  23. showTip: false,
  24. tipNum: '',
  25. time: '',
  26. year: '2022',
  27. config1: {
  28. number: [100],
  29. content: '{nt}个',
  30. },
  31. centerData: '',
  32. storageRecordConfig: {
  33. header: ['', '公司名称', '工作情况'],
  34. headerBGC: '#05507b33',
  35. oddRowBGC: '#69c0ff0f',
  36. evenRowBGC: '',
  37. headerHeight: '50',
  38. rowNum: 4,
  39. align: ['center', 'center', 'center', 'center'],
  40. data: [],
  41. },
  42. storageRecordConfig2: {
  43. header: ['企业名称', '预警内容', '数据抓取日期', '累计未获取数据日期'],
  44. headerBGC: '#05507b33',
  45. oddRowBGC: '#05507b33',
  46. evenRowBGC: '',
  47. headerHeight: '50',
  48. rowNum: 4,
  49. align: ['center', 'center', 'center', 'center'],
  50. data: [],
  51. },
  52. companyList: companyList,
  53. companyListTitle: companyListTitle,
  54. commonOption: []
  55. }
  56. },
  57. beforeMount () {
  58. },
  59. mounted () {
  60. this.getUrlParams()
  61. this.time = formatDate()
  62. this.timer = setInterval(() => {
  63. this.time = formatDate()
  64. }, 1000)
  65. this.centerData = data
  66. },
  67. beforeDestroy () {
  68. clearInterval(this.timer);
  69. clearInterval(this.timeCommon);
  70. },
  71. methods: {
  72. handleGoIndex () {
  73. window.location.href = './index.html'
  74. },
  75. change () {
  76. if (this.end < this.companyList.length) {
  77. this.start += 9
  78. this.end += 9
  79. } else {
  80. this.start = 0
  81. this.end = 9
  82. }
  83. },
  84. judgeCarousel () {
  85. let a = {
  86. title: {
  87. text: 'xxx',
  88. x: 'center',
  89. y: '3%',
  90. textStyle: {
  91. color: '#69C0FF',
  92. fontSize: 24,
  93. },
  94. },
  95. tooltip: {
  96. trigger: 'axis',
  97. axisPointer: {
  98. type: 'shadow',
  99. },
  100. },
  101. grid: {
  102. top: '22%',
  103. right: '5%',
  104. left: '8%',
  105. bottom: '25%',
  106. },
  107. legend: {
  108. data: '',
  109. top: '12%',
  110. right: '5%',
  111. textStyle: {
  112. color: 'rgba(250,250,250,0.6)',
  113. fontSize: 16,
  114. },
  115. },
  116. xAxis: {
  117. // data: companyList.map(item => item.name),
  118. data: '',
  119. axisLine: {
  120. show: true, //隐藏X轴轴线
  121. lineStyle: {
  122. color: '#005094',
  123. width: 1,
  124. },
  125. },
  126. axisTick: {
  127. show: false, //隐藏X轴刻度
  128. },
  129. axisLabel: {
  130. show: true,
  131. rotate: 15,
  132. textStyle: {
  133. color: 'rgba(255,255,255,0.6)', //X轴文字颜色
  134. fontSize: 16,
  135. },
  136. },
  137. },
  138. yAxis: [
  139. {
  140. type: 'value',
  141. nameTextStyle: {
  142. color: '#ebf8ac',
  143. fontSize: 16,
  144. },
  145. splitLine: {
  146. show: true,
  147. lineStyle: {
  148. color: '#68b4dd66',
  149. type: 'dashed',
  150. },
  151. },
  152. axisLine: {
  153. show: false,
  154. },
  155. axisLabel: {
  156. show: true,
  157. textStyle: {
  158. color: 'rgba(250,250,250,0.6)',
  159. fontSize: 16,
  160. },
  161. },
  162. },
  163. ],
  164. }
  165. a.xAxis.data = this.companyList.map(item => item.name)
  166. if (this.companyList.length > 18) {
  167. a.dataZoom = [
  168. {
  169. // start: 9,//默认为@
  170. // end: 100,//黑认认为1@0
  171. type: "slider",
  172. show: false,
  173. // xAxisIndex: [0]
  174. handlesize: 0,//滑动条的 左右2个滑动条的大小
  175. startValue: 17,// 初始显示值
  176. endValue: 0,// 结束显示值
  177. height: 10,//组件高度
  178. left: "5%",
  179. right: "4%",//右边的距离
  180. bottom: "25%",//底边的距离
  181. borderColor: "#939",
  182. fillerColor: "#269cdb",
  183. borderRadius: 5,
  184. backgroundColor: "#33384b",//两边未选中的滑动条区域的额色
  185. showDataShadow: false,//是否显示数据阴影
  186. showDetail: false,//即拖拽时候是否显示详细数值信息
  187. truerealtime: true,//是否实时更新
  188. filterMode: "filter"
  189. }, {
  190. type: 'inside',
  191. show: true,
  192. start: 1,
  193. end: 100,
  194. zoomOnMouseWheel:false, //滚轮是否触发缩放
  195. moveOnMouseMove:false, //鼠标滚轮触发滚动
  196. }
  197. ]
  198. }
  199. this.commonOption = a
  200. },
  201. generateEcharts () {
  202. // 左侧图表
  203. this.initChartL1()
  204. // this.initChartL2()
  205. this.initChartL3()
  206. // this.initChartL4()
  207. // this.initChartL5()
  208. this.initChartL6()
  209. // this.initChartL7()
  210. // this.initChartL8()
  211. // 中间图表
  212. this.initChartC1()
  213. this.initChartC2()
  214. // 右侧图表
  215. // this.initChartR1()
  216. // this.initChartR2()
  217. // this.initChartR3()
  218. this.initChartR4()
  219. this.initChartR5()
  220. // this.initChartR6()
  221. this.initChartR7()
  222. // this.initChartR8()
  223. },
  224. // 获取地址栏参数
  225. getUrlParams (id) {
  226. let url = window.location.href
  227. // 通过 ? 分割获取后面的参数字符串
  228. let urlStr = url.split('?')[1]
  229. // 创建空对象存储参数
  230. let obj = {};
  231. // 再通过 & 将每一个参数单独分割出来
  232. let paramsArr = urlStr.split('&')
  233. for (let i = 0, len = paramsArr.length; i < len; i++) {
  234. // 再通过 = 将每一个参数分割为 key:value 的形式
  235. let arr = paramsArr[i].split('=')
  236. obj[arr[0]] = arr[1];
  237. }
  238. this.access_token = obj.access_token
  239. this.orgNumber = obj.id
  240. this.titleName = decodeURIComponent(obj.name)
  241. // Promise.all([this.getData(), this.getInstitutional()])
  242. // .then((arr) => {
  243. // this.generateEcharts()
  244. // })
  245. // .catch((err) => console.log(err));
  246. this.getInstitutional()
  247. },
  248. // 获取组织机构
  249. getInstitutional () {
  250. return new Promise((resolve, err) => {
  251. let value = {
  252. access_token: this.access_token,
  253. "Data": {
  254. "paramType": "ORG",
  255. "orgNumber": this.orgNumber
  256. // "orgNumber": '1494979736584079360'
  257. }
  258. }
  259. post('/ierp/kapi/v2/mdnb/mdnb_das/Data/CockpitScreen', value).then(res => {
  260. this.companyList = res.data.map(item => {
  261. return { name: item.orgName, id: item.orgNumber }
  262. })
  263. this.getData()
  264. this.judgeCarousel()
  265. resolve(1);
  266. })
  267. });
  268. },
  269. getData () {
  270. let that = this
  271. return new Promise((resolve, err) => {
  272. let value = {
  273. access_token: this.access_token,
  274. "Data": {
  275. "paramType": "DATA",
  276. "orgNumber": this.orgNumber
  277. }
  278. }
  279. post('/ierp/kapi/v2/mdnb/mdnb_das/Data/CockpitScreen', value).then(res => {
  280. res.orgData = res.data[0]
  281. // 定机构
  282. // 弹窗
  283. // return
  284. // 左侧图表
  285. tipData.analysis[0] = res.orgData.area1.intAnalysis.map(item => item.analysis)
  286. //各二级企业本部机构数
  287. dataL1[0] = []
  288. dataL1[1] = []
  289. dataL1[2] = []
  290. res.orgData.area1.card1.forEach(item => {
  291. dataL1[0].push(item['ZBPZ0088'])
  292. dataL1[1].push(item['ZBPZ0010'])
  293. dataL1[2].push(item['ZBPZ0089'])
  294. })
  295. // 各二级企业所属架构数
  296. dataL2[0] = []
  297. res.orgData.area1.card2.forEach(item => {
  298. dataL2[0].push(item['ZBPZ0024'])
  299. })
  300. // 定职数
  301. // 弹窗
  302. // 左侧图表
  303. tipData.analysis[2] = res.orgData.area2.intAnalysis.map(item => item.analysis)
  304. //各二级企业本部中层管理人数
  305. dataL3[0] = []
  306. res.orgData.area2.card1.forEach(item => {
  307. dataL3[0].push(item['ZBPZ0091'])
  308. })
  309. // 各二级企业管理人员数
  310. dataL4[1] = []
  311. dataL4[0] = []
  312. dataL4[2] = []
  313. res.orgData.area2.card1.forEach(item => {
  314. dataL4[1].push(item['ZBPZ0091'])
  315. dataL4[0].push(item['ZBPZ0093'])
  316. dataL4[2].push(item['ZBPZ0092'])
  317. })
  318. // 定员额
  319. // 弹窗
  320. tipData.analysis[1] = res.orgData.area3.intAnalysis.map(item => item.analysis)
  321. // 各二级企业总人数
  322. dataL5[0] = []
  323. dataL5[1] = []
  324. dataL5[2] = []
  325. res.orgData.area3.card1.forEach(item => {
  326. dataL5[0].push(item['ZBPZ0006'])
  327. dataL5[1].push(item['ZBPZ0050'])
  328. dataL5[2].push(item['ZBPZ0051'])
  329. })
  330. // 各二级企业本部员额数
  331. dataL6[0] = []
  332. dataL6[2] = []
  333. dataL6[1] = []
  334. res.orgData.area3.card2.forEach(item => {
  335. dataL6[0].push(item['ZBPZ0031'])
  336. dataL6[2].push(item['ZBPZ0094'])
  337. dataL6[1].push(item['ZBPZ0095'])
  338. })
  339. // 人数变化和全员劳动生产率变化率分析
  340. dataL7[0] = []
  341. dataL7[1] = []
  342. res.orgData.area3.card3.forEach(item => {
  343. dataL7[0].push(item['ZBPZ0050'])
  344. dataL7[1].push(item['ZBPZ0039'])
  345. })
  346. // 人数变化和人工利润率变化分析
  347. dataL8[0] = []
  348. dataL8[1] = []
  349. res.orgData.area3.card4.forEach(item => {
  350. dataL8[0].push(item['ZBPZ0050'])
  351. dataL8[1].push(item['ZBPZ0041'])
  352. })
  353. // 定机制
  354. // 弹窗
  355. tipData.analysis[6] = res.orgData.area4.intAnalysis.map(item => item.analysis)
  356. // 各二级企业招聘需求公告人次情况
  357. dataR1[0] = []
  358. dataR1[1] = []
  359. res.orgData.area4.card1.forEach(item => {
  360. dataR1[0].push(item['ZBPZ0057'])
  361. dataR1[1].push(item['ZBPZ0058'])
  362. })
  363. // 各二级企业录用结果公示人次
  364. dataR2[0] = []
  365. dataR2[1] = []
  366. res.orgData.area4.card2.forEach(item => {
  367. dataR2[0].push(item['ZBPZ0059'])
  368. dataR2[1].push(item['ZBPZ0060'])
  369. })
  370. // 各二级企业年利润与招聘情况分析
  371. dataR3[0] = []
  372. dataR3[1] = []
  373. res.orgData.area4.card3.forEach(item => {
  374. dataR3[0].push(item['ZBPZ0054'])
  375. dataR3[1].push(item['ZBPZ0055'])
  376. })
  377. // 各二级企业"退二进一"完成情况
  378. dataR4[0] = []
  379. dataR4[1] = []
  380. res.orgData.area4.card4.forEach(item => {
  381. dataR4[0].push(item['ZBPZ0056'])
  382. dataR4[1].push(item['ZBPZ0055'])
  383. })
  384. // 定薪酬
  385. // 弹窗
  386. tipData.analysis[5] = res.orgData.area5.intAnalysis.map(item => item.analysis)
  387. // 各二级企业在岗职工平均薪酬
  388. dataR5[0] = []
  389. dataR5[1] = []
  390. res.orgData.area5.card1.forEach(item => {
  391. dataR5[0].push(item['ZBPZ0064'])
  392. dataR5[1].push(item['ZBPZ0063'])
  393. })
  394. // 各二级企业利润与薪酬变动情况
  395. dataR6[0] = []
  396. dataR6[1] = []
  397. res.orgData.area5.card2.forEach(item => {
  398. dataR6[0].push(item['ZBPZ0061'])
  399. dataR6[1].push(item['ZBPZ0062'])
  400. })
  401. // 定任期
  402. // 弹窗
  403. tipData.analysis[6] = res.orgData.area6.intAnalysis.map(item => item.analysis)
  404. // 各二级企业全员绩效考核
  405. dataR7[0] = []
  406. res.orgData.area6.card1.forEach(item => {
  407. dataR7[0].push(item['ZBPZ0066'])
  408. })
  409. // 各二级企业任期制契约化考核完成率
  410. dataR8[0] = []
  411. res.orgData.area6.card2.forEach(item => {
  412. dataR8[0].push(item['ZBPZ0065'])
  413. })
  414. // 中间
  415. // 架岗人员
  416. this.centerData.info.value1 = res.orgData.area7.ZBPZ0037
  417. this.centerData.info.value2 = res.orgData.area7.ZBPZ0038
  418. this.centerData.info.value3 = res.orgData.area7.ZBPZ0006
  419. // 六定改革成效
  420. // this.centerData.changeInfo[0].value1 = res.orgData.area8.ZBPZ0067
  421. // this.centerData.changeInfo[0].value2 = res.orgData.area8.ZBPZ0068
  422. // this.centerData.changeInfo[0].value3 = res.orgData.area8.ZBPZ0069
  423. this.centerData.changeInfo[0].value1 = res.orgData.area8.ZBPZ0077
  424. this.centerData.changeInfo[0].value2 = res.orgData.area8.ZBPZ0078
  425. this.centerData.changeInfo[0].value3 = res.orgData.area8.ZBPZ0079
  426. this.centerData.changeInfo[2].value1 = res.orgData.area8.ZBPZ0074
  427. this.centerData.changeInfo[2].value2 = res.orgData.area8.ZBPZ0075
  428. this.centerData.changeInfo[2].value3 = res.orgData.area8.ZBPZ0076
  429. this.centerData.changeInfo[1].value1 = res.orgData.area8.ZBPZ0071
  430. this.centerData.changeInfo[1].value2 = res.orgData.area8.ZBPZ0072
  431. this.centerData.changeInfo[1].value3 = res.orgData.area8.ZBPZ0073
  432. // 核心指标监测
  433. // 弹窗
  434. tipData.analysis[3] = res.orgData.area9.intAnalysis.map(item => item.analysis)
  435. // 各二级企业全员劳动生产率
  436. dataC1[0] = []
  437. dataC1[1] = []
  438. res.orgData.area9.card1.forEach(item => {
  439. dataC1[0].push(item['ZBPZ0035'])
  440. dataC1[1].push(item['ZBPZ0039'])
  441. })
  442. // 各二级企业人工成本利润率
  443. dataC2[1] = []
  444. dataC2[0] = []
  445. res.orgData.area9.card2.forEach(item => {
  446. dataC2[1].push(item['ZBPZ0040'])
  447. dataC2[0].push(item['ZBPZ0041'])
  448. })
  449. this.echartC1.national = res.orgData.area9.card1[0].ZBPZ0097
  450. this.echartC1.province = res.orgData.area9.card1[0].ZBPZ0096
  451. this.echartC2.national = res.orgData.area9.card2[0].ZBPZ0099
  452. this.echartC2.province = res.orgData.area9.card2[0].ZBPZ0098
  453. // 分析预警中心
  454. // 工作台分析
  455. this.storageRecordConfig.data = []
  456. res.orgData.area10.card1.forEach(item => {
  457. this.storageRecordConfig.data.push(['<span class="lightOut"><span class="light ' + (item.lightsup === '0' ? 'red' : item.lightsup === '1' ? 'yellow' : 'green') + '"></span></span>', item.enterprise, item.work])
  458. })
  459. this.storageRecordConfig = { ...this.storageRecordConfig }
  460. // 数据库预警
  461. // this.storageRecordConfig2.data = []
  462. // res.orgData.area10.card2.forEach(item => {
  463. // this.storageRecordConfig.data.push(['<span class="lightOut"><span class="light ' + (item.lightsup === '0' ? 'red' : item.lightsup === '1' ? 'yellow' : 'green') + '"></span></span>', item.warning, item.date])
  464. // })
  465. // 数据整理
  466. dataL7[0].forEach((item, index) => {
  467. if (dataL7[1][index] < 0 && dataL7[0][index] > 0) {
  468. let obj = { value: [this.companyList[index].name, dataL7[0][index]], symbolSize: 15 }
  469. this.twinkle7.push(obj)
  470. }
  471. })
  472. // if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
  473. dataL8[0].forEach((item, index) => {
  474. if (dataL8[1][index] < 0 && dataL8[0][index] > 0) {
  475. let obj = { value: [this.companyList[index].name, dataL8[0][index]], symbolSize: 15 }
  476. this.twinkle8.push(obj)
  477. }
  478. })
  479. // params.value > 0 && fjxdataL2[0][params.dataIndex] < 0
  480. // fjxdataL2[0].forEach((item, index) => {
  481. // if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
  482. // let obj = { value: [this.companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
  483. // this.twinkleR6.push(obj)
  484. // }
  485. // })
  486. this.tipData = tipData.analysis
  487. this.generateEcharts()
  488. if (this.companyList.length > 18) {
  489. this.timeCommon = setInterval(() => {
  490. if (that.touch) {
  491. if (that.commonOption.dataZoom[0].startValue < that.companyList.length) {
  492. that.commonOption.dataZoom[0].endValue += 18
  493. that.commonOption.dataZoom[0].startValue += 18
  494. } else {
  495. that.commonOption.dataZoom[0].endValue = 0
  496. that.commonOption.dataZoom[0].startValue = 18
  497. }
  498. that.generateEcharts()
  499. }
  500. }, 15000)
  501. }
  502. resolve(1)
  503. })
  504. });
  505. },
  506. handleShowTip (index) {
  507. this.showTip = true
  508. this.tipNum = index
  509. },
  510. handleGoPage (id, name) {
  511. if (name == '山西三元煤业股份有限公司') {
  512. window.location.href = './index4SY.html?id=' + id + `&access_token=${this.access_token}` + `&name=${name}`
  513. } else {
  514. window.location.href = './index4.html?id=' + id + `&access_token=${this.access_token}` + `&name=${name}`
  515. }
  516. },
  517. handleGoBack () {
  518. window.history.go(-1)
  519. },
  520. numFormat (value) {
  521. if (!value) return '0'
  522. // var intPart = Number(value).toFixed(0) // 获取整数部分
  523. var intPart = parseInt(value)// 获取整数部分
  524. var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断
  525. var floatPart = '.00' // 预定义小数部分
  526. var value2Array = value.toString().split('.')
  527. // =2表示数据有小数位
  528. if (value2Array.length === 2) {
  529. floatPart = value2Array[1].toString() // 拿到小数部分
  530. if (floatPart.length === 1) {
  531. // 补0
  532. return intPartFormat + '.' + floatPart + '0'
  533. } else {
  534. return intPartFormat + '.' + floatPart
  535. }
  536. } else {
  537. return intPartFormat
  538. }
  539. },
  540. initChartL1 () {
  541. let myChart = echarts.init(this.$refs['echartL1'])
  542. let option = {
  543. ..._.cloneDeep(this.commonOption),
  544. color: [
  545. {
  546. x: 0,
  547. y: 0,
  548. x2: 0,
  549. y2: 1,
  550. colorStops: [{
  551. offset: 0,
  552. color: '#5e7ae9',
  553. },
  554. {
  555. offset: 1,
  556. color: '#082550',
  557. },],
  558. }
  559. ],
  560. series: [
  561. {
  562. name: '各三级企业本部机构数核定上限',
  563. type: 'line',
  564. // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  565. smooth: true, //平滑曲线显示
  566. showAllSymbol: true, //显示所有图形。
  567. symbol: 'circle', //标记的图形为实心圆
  568. symbolSize: 8, //标记的大小
  569. smooth: false,
  570. itemStyle: {
  571. //折线拐点标志的样式
  572. color: '#fbe138',
  573. borderColor: '#fbe138',
  574. width: 2,
  575. shadowColor: '#fbe138',
  576. shadowBlur: 4,
  577. },
  578. lineStyle: {
  579. color: '#fbe138',
  580. width: 2,
  581. },
  582. data: dataL1[2],
  583. },
  584. {
  585. name: '六定改革前各三级企业本部机构数',
  586. type: 'bar',
  587. barWidth: 15,
  588. itemStyle: {
  589. normal: {
  590. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  591. {
  592. offset: 0,
  593. color: '#43ede3',
  594. },
  595. {
  596. offset: 1,
  597. color: '#082550',
  598. },
  599. ]),
  600. },
  601. },
  602. data: dataL1[0],
  603. },
  604. {
  605. name: '当前各三级企业本部机构数',
  606. type: 'bar',
  607. barWidth: 15,
  608. itemStyle: {
  609. normal: {
  610. color: params => {
  611. if (params.value > dataL1[2][params.dataIndex]) {
  612. return 'yellow'
  613. } else {
  614. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  615. {
  616. offset: 0,
  617. color: '#5e7ae9',
  618. },
  619. {
  620. offset: 1,
  621. color: '#082550',
  622. },
  623. ])
  624. }
  625. },
  626. },
  627. },
  628. data: dataL1[1],
  629. },
  630. ],
  631. // tooltip: {
  632. // trigger: 'item',
  633. // position: 'top'
  634. // },
  635. }
  636. option.title.text = '本部机构数'
  637. option.legend.data = ['六定改革前各三级企业本部机构数', '当前各三级企业本部机构数', '各三级企业本部机构数核定上限']
  638. option.yAxis.push({
  639. splitLine: {
  640. show: false,
  641. },
  642. axisLine: {
  643. show: false,
  644. },
  645. })
  646. myChart.setOption(option)
  647. },
  648. initChartL2 () {
  649. let myChart = echarts.init(this.$refs['echartL2'])
  650. let option = {
  651. ..._.cloneDeep(this.commonOption),
  652. color: [
  653. {
  654. x: 0,
  655. y: 0,
  656. x2: 0,
  657. y2: 1,
  658. colorStops: [{
  659. offset: 0,
  660. color: '#69c0ff',
  661. },
  662. {
  663. offset: 1,
  664. color: '#082550',
  665. },],
  666. }
  667. ],
  668. series: [
  669. {
  670. name: '当前各三级企业所属架构数',
  671. type: 'bar',
  672. barWidth: 15,
  673. itemStyle: {
  674. normal: {
  675. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  676. {
  677. offset: 0,
  678. color: '#69c0ff',
  679. },
  680. {
  681. offset: 1,
  682. color: '#082550',
  683. },
  684. ]),
  685. },
  686. },
  687. data: dataL2[0]
  688. }
  689. ],
  690. }
  691. option.title.text = '各三级企业所属架构数'
  692. option.legend.data = ['当前各三级企业所属架构数']
  693. option.yAxis.push({
  694. splitLine: {
  695. show: false,
  696. },
  697. axisLine: {
  698. show: false,
  699. },
  700. })
  701. myChart.setOption(option)
  702. },
  703. initChartL3 () {
  704. let myChart = echarts.init(this.$refs['echartL3'])
  705. let option = {
  706. ..._.cloneDeep(this.commonOption),
  707. color: [
  708. {
  709. x: 0,
  710. y: 0,
  711. x2: 0,
  712. y2: 1,
  713. colorStops: [{
  714. offset: 0,
  715. color: '#6480f3',
  716. },
  717. {
  718. offset: 1,
  719. color: '#082550',
  720. },],
  721. }
  722. ],
  723. series: [
  724. {
  725. name: '六定改革前各三级本部中层管理人数',
  726. type: 'bar',
  727. barWidth: 15,
  728. label: {
  729. normal: {
  730. show: true,
  731. position: 'top',
  732. textStyle: {
  733. color: '#69c0ff',
  734. fontStyle: 'normal',
  735. textAlign: 'left',
  736. fontSize: 16,
  737. },
  738. formatter: function (data) {
  739. if (data.name == '云时代') {
  740. return data.value
  741. } else {
  742. return ''
  743. }
  744. }
  745. }
  746. },
  747. itemStyle: {
  748. normal: {
  749. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  750. {
  751. offset: 0,
  752. color: '#6480f3',
  753. },
  754. {
  755. offset: 1,
  756. color: '#082550',
  757. },
  758. ]),
  759. },
  760. },
  761. data: dataL4[0],
  762. },
  763. {
  764. name: '当前各三级本部中层管理人数',
  765. type: 'bar',
  766. barWidth: 15,
  767. label: {
  768. normal: {
  769. show: true,
  770. position: 'top',
  771. textStyle: {
  772. color: '#6480f3',
  773. fontStyle: 'normal',
  774. textAlign: 'left',
  775. fontSize: 16,
  776. },
  777. formatter: function (data) {
  778. if (data.name == '云时代') {
  779. return data.value
  780. } else {
  781. return ''
  782. }
  783. }
  784. }
  785. },
  786. itemStyle: {
  787. normal: {
  788. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  789. {
  790. offset: 0,
  791. color: '#43ede3',
  792. },
  793. {
  794. offset: 1,
  795. color: '#082550',
  796. },
  797. ]),
  798. },
  799. },
  800. data: dataL4[1],
  801. },
  802. {
  803. name: '各三级本部中层管理人数核定上限',
  804. type: 'line',
  805. // yAxisIndex: 1,
  806. smooth: true, //平滑曲线显示
  807. showAllSymbol: true, //显示所有图形。
  808. symbol: 'circle', //标记的图形为实心圆
  809. symbolSize: 8, //标记的大小
  810. smooth: false,
  811. label: {
  812. normal: {
  813. show: true,
  814. position: 'top',
  815. textStyle: {
  816. color: '#fbe138',
  817. fontStyle: 'normal',
  818. textAlign: 'left',
  819. fontSize: 16,
  820. },
  821. formatter: function (data) {
  822. if (data.name == '云时代') {
  823. return data.value
  824. } else {
  825. return ''
  826. }
  827. }
  828. }
  829. },
  830. itemStyle: {
  831. //折线拐点标志的样式
  832. color: '#fbe138',
  833. borderColor: '#fbe138',
  834. width: 2,
  835. shadowColor: '#fbe138',
  836. shadowBlur: 4,
  837. },
  838. lineStyle: {
  839. color: '#fbe138',
  840. width: 2,
  841. },
  842. data: dataL4[2],
  843. },
  844. ],
  845. }
  846. option.title.text = '各三级企业本部中层管理人数'
  847. option.legend.data = ['六定改革前各三级本部中层管理人数', '当前各三级本部中层管理人数', '各三级本部中层管理人数核定上限']
  848. option.yAxis.push({
  849. type: 'value',
  850. axisLine: {
  851. show: false,
  852. },
  853. splitLine: {
  854. show: false,
  855. },
  856. })
  857. myChart.setOption(option)
  858. },
  859. initChartL4 () {
  860. let myChart = echarts.init(this.$refs['echartL4'])
  861. let option = {
  862. ..._.cloneDeep(this.commonOption),
  863. color: [
  864. {
  865. x: 0,
  866. y: 0,
  867. x2: 0,
  868. y2: 1,
  869. colorStops: [{
  870. offset: 0,
  871. color: '#6480f3',
  872. },
  873. {
  874. offset: 1,
  875. color: '#082550',
  876. },],
  877. }
  878. ],
  879. series: [
  880. {
  881. name: '六定改革前各三级本部中层管理人数',
  882. type: 'bar',
  883. barWidth: 15,
  884. label: {
  885. normal: {
  886. show: true,
  887. position: 'top',
  888. textStyle: {
  889. color: '#69c0ff',
  890. fontStyle: 'normal',
  891. textAlign: 'left',
  892. fontSize: 16,
  893. },
  894. formatter: function (data) {
  895. if (data.name == '云时代') {
  896. return data.value
  897. } else {
  898. return ''
  899. }
  900. }
  901. }
  902. },
  903. itemStyle: {
  904. normal: {
  905. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  906. {
  907. offset: 0,
  908. color: '#6480f3',
  909. },
  910. {
  911. offset: 1,
  912. color: '#082550',
  913. },
  914. ]),
  915. },
  916. },
  917. data: dataL4[0],
  918. },
  919. {
  920. name: '当前各三级本部中层管理人数',
  921. type: 'bar',
  922. barWidth: 15,
  923. label: {
  924. normal: {
  925. show: true,
  926. position: 'top',
  927. textStyle: {
  928. color: '#6480f3',
  929. fontStyle: 'normal',
  930. textAlign: 'left',
  931. fontSize: 16,
  932. },
  933. formatter: function (data) {
  934. if (data.name == '云时代') {
  935. return data.value
  936. } else {
  937. return ''
  938. }
  939. }
  940. }
  941. },
  942. itemStyle: {
  943. normal: {
  944. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  945. {
  946. offset: 0,
  947. color: '#43ede3',
  948. },
  949. {
  950. offset: 1,
  951. color: '#082550',
  952. },
  953. ]),
  954. },
  955. },
  956. data: dataL4[1],
  957. },
  958. {
  959. name: '各三级本部中层管理人数核定上限',
  960. type: 'line',
  961. // yAxisIndex: 1,
  962. smooth: true, //平滑曲线显示
  963. showAllSymbol: true, //显示所有图形。
  964. symbol: 'circle', //标记的图形为实心圆
  965. symbolSize: 8, //标记的大小
  966. smooth: false,
  967. label: {
  968. normal: {
  969. show: true,
  970. position: 'top',
  971. textStyle: {
  972. color: '#fbe138',
  973. fontStyle: 'normal',
  974. textAlign: 'left',
  975. fontSize: 16,
  976. },
  977. formatter: function (data) {
  978. if (data.name == '云时代') {
  979. return data.value
  980. } else {
  981. return ''
  982. }
  983. }
  984. }
  985. },
  986. itemStyle: {
  987. //折线拐点标志的样式
  988. color: '#fbe138',
  989. borderColor: '#fbe138',
  990. width: 2,
  991. shadowColor: '#fbe138',
  992. shadowBlur: 4,
  993. },
  994. lineStyle: {
  995. color: '#fbe138',
  996. width: 2,
  997. },
  998. data: dataL4[2],
  999. },
  1000. ],
  1001. }
  1002. option.title.text = '各三级企业本部中层管理人数'
  1003. option.legend.data = ['六定改革前各三级本部中层管理人数', '当前各三级本部中层管理人数', '各三级本部中层管理人数核定上限']
  1004. option.legend.show = true
  1005. // option.yAxis.push({
  1006. // splitLine: {
  1007. // show: false,
  1008. // },
  1009. // axisLine: {
  1010. // show: false,
  1011. // },
  1012. // })
  1013. myChart.setOption(option)
  1014. },
  1015. initChartL5 () {
  1016. let myChart = echarts.init(this.$refs['echartL5'])
  1017. let option = {
  1018. ..._.cloneDeep(this.commonOption),
  1019. color: [
  1020. {
  1021. x: 0,
  1022. y: 0,
  1023. x2: 0,
  1024. y2: 1,
  1025. colorStops: [{
  1026. offset: 0,
  1027. color: '#69c0ff',
  1028. },
  1029. {
  1030. offset: 1,
  1031. color: '#082550',
  1032. },],
  1033. }
  1034. ],
  1035. series: [
  1036. {
  1037. name: '各三级企业总人数',
  1038. type: 'bar',
  1039. barWidth: 15,
  1040. itemStyle: {
  1041. normal: {
  1042. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1043. {
  1044. offset: 0,
  1045. color: '#69c0ff',
  1046. },
  1047. {
  1048. offset: 1,
  1049. color: '#082550',
  1050. },
  1051. ]),
  1052. },
  1053. },
  1054. data: dataL5[0],
  1055. },
  1056. {
  1057. name: '人数变化率',
  1058. type: 'line',
  1059. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  1060. smooth: true, //平滑曲线显示
  1061. showAllSymbol: true, //显示所有图形。
  1062. symbol: 'circle', //标记的图形为实心圆
  1063. symbolSize: 8, //标记的大小
  1064. smooth: false,
  1065. itemStyle: {
  1066. //折线拐点标志的样式
  1067. color: '#b889ea',
  1068. borderColor: '#b889ea',
  1069. width: 2,
  1070. shadowColor: '#b889ea',
  1071. shadowBlur: 4,
  1072. },
  1073. lineStyle: {
  1074. color: '#b889ea',
  1075. width: 2,
  1076. },
  1077. data: dataL5[1],
  1078. },
  1079. ],
  1080. }
  1081. option.title.text = '各三级企业总人数'
  1082. option.legend.data = ['各三级企业总人数', '人数变化率']
  1083. option.legend.show = true
  1084. option.tooltip = {
  1085. trigger: 'axis',
  1086. formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
  1087. }
  1088. option.yAxis.push({
  1089. type: 'value',
  1090. axisLine: {
  1091. show: false,
  1092. },
  1093. splitLine: {
  1094. show: false,
  1095. },
  1096. axisLabel: {
  1097. show: true,
  1098. formatter: '{value} %',
  1099. textStyle: {
  1100. color: 'rgba(250,250,250,0.6)',
  1101. },
  1102. },
  1103. })
  1104. myChart.setOption(option)
  1105. },
  1106. showTipClose () {
  1107. // this.paymentShow = false
  1108. this.showTip = false
  1109. this.showTip2 = false
  1110. this.titleShow = false
  1111. },
  1112. initChartL6 () {
  1113. let myChart = echarts.init(this.$refs['echartL6'])
  1114. let option = {
  1115. ..._.cloneDeep(this.commonOption),
  1116. color: [
  1117. {
  1118. x: 0,
  1119. y: 0,
  1120. x2: 0,
  1121. y2: 1,
  1122. colorStops: [{
  1123. offset: 0,
  1124. color: '#43ede3',
  1125. },
  1126. {
  1127. offset: 1,
  1128. color: '#082550',
  1129. },],
  1130. }
  1131. ],
  1132. series: [
  1133. {
  1134. name: '各三级企业本部员额数',
  1135. type: 'bar',
  1136. barWidth: 15,
  1137. itemStyle: {
  1138. color: params => {
  1139. if (params.value > dataL6[1][params.dataIndex]) {
  1140. return 'red'
  1141. } else {
  1142. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1143. {
  1144. offset: 0,
  1145. color: '#43ede3',
  1146. },
  1147. {
  1148. offset: 1,
  1149. color: '#082550',
  1150. },
  1151. ])
  1152. }
  1153. },
  1154. },
  1155. data: dataL6[0],
  1156. },
  1157. {
  1158. name: '六定改革前各三级企业本部员额数',
  1159. type: 'bar',
  1160. barWidth: 15,
  1161. itemStyle: {
  1162. normal: {
  1163. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1164. {
  1165. offset: 0,
  1166. color: '#5e7ae9',
  1167. },
  1168. {
  1169. offset: 1,
  1170. color: '#082550',
  1171. },
  1172. ]),
  1173. },
  1174. },
  1175. data: dataL6[2],
  1176. },
  1177. {
  1178. name: '各三级企业本部员额数核定上限',
  1179. type: 'line',
  1180. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  1181. smooth: true, //平滑曲线显示
  1182. showAllSymbol: true, //显示所有图形。
  1183. symbol: 'circle', //标记的图形为实心圆
  1184. symbolSize: 8, //标记的大小
  1185. smooth: false,
  1186. itemStyle: {
  1187. //折线拐点标志的样式
  1188. color: '#fbe138',
  1189. borderColor: '#fbe138',
  1190. width: 2,
  1191. shadowColor: '#fbe138',
  1192. shadowBlur: 4,
  1193. },
  1194. lineStyle: {
  1195. color: '#fbe138',
  1196. width: 2,
  1197. },
  1198. data: dataL6[1],
  1199. },
  1200. ],
  1201. }
  1202. option.title.text = '各三级企业本部员额数'
  1203. option.legend.data = ['各三级企业本部员额数', '六定改革前各三级企业本部员额数', '各三级企业本部员额数核定上限']
  1204. option.legend.show = true
  1205. option.yAxis.push({
  1206. splitLine: {
  1207. show: false,
  1208. },
  1209. axisLine: {
  1210. show: false,
  1211. },
  1212. })
  1213. myChart.setOption(option)
  1214. },
  1215. initChartL7 () {
  1216. let myChart = echarts.init(this.$refs['echartL7'])
  1217. let option = {
  1218. ..._.cloneDeep(this.commonOption),
  1219. color: ['#43ede3'],
  1220. series: [
  1221. {
  1222. name: '人数变化',
  1223. type: 'line',
  1224. barWidth: 15,
  1225. showAllSymbol: true, //显示所有图形。
  1226. symbol: 'circle', //标记的图形为实心圆
  1227. symbolSize: 15, //标记的大小
  1228. smooth: false,
  1229. itemStyle: {
  1230. color: params => {
  1231. if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
  1232. return 'red'
  1233. } else {
  1234. return '#43ede3'
  1235. }
  1236. },
  1237. },
  1238. // markLine: {
  1239. // data: [{ type: 'average', name: 'Avg' }],
  1240. // },
  1241. data: dataL7[0],
  1242. },
  1243. {
  1244. name: '全员劳动生产率同比变化',
  1245. type: 'line',
  1246. barWidth: 15,
  1247. // yAxisIndex: 1,
  1248. showAllSymbol: true, //显示所有图形。
  1249. symbol: 'circle', //标记的图形为实心圆
  1250. symbolSize: 15, //标记的大小
  1251. smooth: false,
  1252. itemStyle: {
  1253. //折线拐点标志的样式
  1254. color: '#b889ea',
  1255. borderColor: '#b889ea',
  1256. width: 2,
  1257. shadowColor: '#b889ea',
  1258. shadowBlur: 4,
  1259. },
  1260. data: dataL7[1],
  1261. },
  1262. {
  1263. type: 'effectScatter',
  1264. coordinateSystem: 'cartesian2d',
  1265. showEffectOn: 'render',
  1266. rippleEffect: {
  1267. period: 10,
  1268. scale: 4,
  1269. brushType: 'stroke'
  1270. },
  1271. hoverAnimation: true,
  1272. itemStyle: {
  1273. color: 'red'
  1274. },
  1275. lineStyle: {
  1276. color: '#43ede3',
  1277. width: 2,
  1278. },
  1279. data: this.twinkle7,
  1280. },
  1281. ],
  1282. }
  1283. option.title.text = '人数变化和全员劳动生产率变化率分析'
  1284. option.legend.data = ['人数变化', '全员劳动生产率同比变化']
  1285. option.legend.show = true
  1286. option.tooltip = {
  1287. trigger: 'axis',
  1288. formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
  1289. }
  1290. option.yAxis = [
  1291. {
  1292. type: 'value',
  1293. axisLine: {
  1294. show: false,
  1295. },
  1296. splitLine: {
  1297. show: true,
  1298. lineStyle: {
  1299. color: '#68b4dd66',
  1300. type: 'dashed',
  1301. },
  1302. },
  1303. axisLabel: {
  1304. show: true,
  1305. formatter: '{value} %',
  1306. textStyle: {
  1307. color: 'rgba(250,250,250,0.6)',
  1308. },
  1309. },
  1310. },
  1311. {
  1312. type: 'value',
  1313. axisLine: {
  1314. show: false,
  1315. },
  1316. splitLine: {
  1317. show: false,
  1318. },
  1319. axisLabel: {
  1320. show: true,
  1321. formatter: '{value} %',
  1322. textStyle: {
  1323. color: 'rgba(250,250,250,0.6)',
  1324. },
  1325. },
  1326. }
  1327. ]
  1328. myChart.setOption(option)
  1329. },
  1330. initChartL8 () {
  1331. let myChart = echarts.init(this.$refs['echartL8'])
  1332. let option = {
  1333. ..._.cloneDeep(this.commonOption),
  1334. color: ['#43ede3'],
  1335. series: [
  1336. {
  1337. name: '人数变化',
  1338. type: 'line',
  1339. barWidth: 15,
  1340. showAllSymbol: true, //显示所有图形。
  1341. symbol: 'circle', //标记的图形为实心圆
  1342. symbolSize: 15, //标记的大小
  1343. smooth: false,
  1344. itemStyle: {
  1345. color: params => {
  1346. if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
  1347. return 'red'
  1348. } else {
  1349. return '#43ede3'
  1350. }
  1351. },
  1352. },
  1353. lineStyle: {
  1354. color: '#43ede3',
  1355. width: 2,
  1356. },
  1357. // markLine: {
  1358. // data: [{ type: 'average', name: 'Avg' }],
  1359. // },
  1360. data: dataL8[0],
  1361. },
  1362. {
  1363. name: '人工成本利润率同比变化',
  1364. type: 'line',
  1365. barWidth: 15,
  1366. // yAxisIndex: 1,
  1367. showAllSymbol: true, //显示所有图形。
  1368. symbol: 'circle', //标记的图形为实心圆
  1369. symbolSize: 15, //标记的大小
  1370. smooth: false,
  1371. itemStyle: {
  1372. //折线拐点标志的样式
  1373. color: '#b889ea',
  1374. borderColor: '#b889ea',
  1375. width: 2,
  1376. shadowColor: '#b889ea',
  1377. shadowBlur: 4,
  1378. },
  1379. data: dataL8[1],
  1380. },
  1381. {
  1382. type: 'effectScatter',
  1383. coordinateSystem: 'cartesian2d',
  1384. showEffectOn: 'render',
  1385. rippleEffect: {
  1386. period: 10,
  1387. scale: 4,
  1388. brushType: 'stroke'
  1389. },
  1390. hoverAnimation: true,
  1391. itemStyle: {
  1392. color: 'red'
  1393. },
  1394. lineStyle: {
  1395. color: '#43ede3',
  1396. width: 2,
  1397. },
  1398. data: this.twinkle8,
  1399. },
  1400. ],
  1401. }
  1402. option.title.text = '人数变化和人工利润率变化分析'
  1403. option.legend.data = ['人数变化', '人工成本利润率同比变化']
  1404. option.legend.show = true
  1405. option.tooltip = {
  1406. trigger: 'axis',
  1407. formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
  1408. }
  1409. option.yAxis = [
  1410. {
  1411. type: 'value',
  1412. axisLine: {
  1413. show: false,
  1414. },
  1415. splitLine: {
  1416. show: true,
  1417. lineStyle: {
  1418. color: '#68b4dd66',
  1419. type: 'dashed',
  1420. },
  1421. },
  1422. axisLabel: {
  1423. show: true,
  1424. formatter: '{value} %',
  1425. textStyle: {
  1426. color: 'rgba(250,250,250,0.6)',
  1427. },
  1428. },
  1429. },
  1430. {
  1431. type: 'value',
  1432. axisLine: {
  1433. show: false,
  1434. },
  1435. splitLine: {
  1436. show: false,
  1437. },
  1438. axisLabel: {
  1439. show: true,
  1440. formatter: '{value} %',
  1441. textStyle: {
  1442. color: 'rgba(250,250,250,0.6)',
  1443. },
  1444. },
  1445. }
  1446. ]
  1447. myChart.setOption(option)
  1448. },
  1449. // 中间图表---------------------------------------------开始
  1450. initChartC1 () {
  1451. let myChart = echarts.init(this.$refs['echartC1'])
  1452. let option = {
  1453. ..._.cloneDeep(this.commonOption),
  1454. color: [
  1455. {
  1456. x: 0,
  1457. y: 0,
  1458. x2: 0,
  1459. y2: 1,
  1460. colorStops: [{
  1461. offset: 0,
  1462. color: '#69c0ff',
  1463. },
  1464. {
  1465. offset: 1,
  1466. color: '#082550',
  1467. },],
  1468. }
  1469. ],
  1470. series: [
  1471. {
  1472. name: '全员劳动生产率(万/人)',
  1473. type: 'bar',
  1474. barWidth: 12,
  1475. smooth: true, //平滑曲线显示
  1476. showAllSymbol: true, //显示所有图形。
  1477. symbol: 'circle', //标记的图形为实心圆
  1478. symbolSize: 8, //标记的大小
  1479. smooth: false,
  1480. itemStyle: {
  1481. color: params => {
  1482. if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
  1483. return 'red'
  1484. } else if (params.value > this.echartC1.province) {
  1485. return 'green'
  1486. } else {
  1487. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1488. {
  1489. offset: 0,
  1490. color: '#69c0ff',
  1491. },
  1492. {
  1493. offset: 1,
  1494. color: '#082550',
  1495. },
  1496. ])
  1497. }
  1498. },
  1499. },
  1500. lineStyle: {
  1501. color: '#B889EA',
  1502. width: 2,
  1503. },
  1504. data: dataC1[0],
  1505. markLine: {
  1506. data: [
  1507. {
  1508. name: '省属企业平均水平',
  1509. yAxis: this.echartC1.national,
  1510. lineStyle: {
  1511. color: '#fff',
  1512. },
  1513. label: {
  1514. formatter: '{b}',
  1515. position: 'end',
  1516. padding: [20, 100, 10, 30],
  1517. color: '#fff',
  1518. },
  1519. },
  1520. {
  1521. name: '央企平均水平',
  1522. yAxis: this.echartC1.province,
  1523. lineStyle: {
  1524. color: '#fff',
  1525. },
  1526. label: {
  1527. formatter: '{b}',
  1528. position: 'end',
  1529. padding: [-4, 150, 10, 30],
  1530. color: '#fff',
  1531. },
  1532. },
  1533. ],
  1534. label: {
  1535. distance: [20, 8],
  1536. },
  1537. },
  1538. },
  1539. {
  1540. name: '全员劳动生产率同比变化',
  1541. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  1542. type: 'line',
  1543. itemStyle: {
  1544. normal: {
  1545. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1546. {
  1547. offset: 0,
  1548. color: '#69c0ff',
  1549. },
  1550. {
  1551. offset: 1,
  1552. color: '#082550',
  1553. },
  1554. ]),
  1555. },
  1556. },
  1557. data: dataC1[1],
  1558. },
  1559. ],
  1560. }
  1561. option.title.text = '各三级企业全员劳动生产率'
  1562. option.legend.data = ['全员劳动生产率(万/人)', '全员劳动生产率同比变化']
  1563. option.legend.show = true
  1564. option.grid.right = '15%'
  1565. option.tooltip = {
  1566. show: true,
  1567. trigger: 'axis',
  1568. formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
  1569. }
  1570. option.yAxis.push({
  1571. type: 'value',
  1572. axisLine: {
  1573. show: false,
  1574. },
  1575. splitLine: {
  1576. show: false,
  1577. },
  1578. axisLabel: {
  1579. show: true,
  1580. formatter: '{value} %',
  1581. textStyle: {
  1582. color: 'rgba(250,250,250,0.6)',
  1583. },
  1584. },
  1585. })
  1586. myChart.setOption(option)
  1587. // tools.loopShowTooltip(myChart, option, {
  1588. // nterval: 2000,
  1589. // loopSeries: true,
  1590. // });
  1591. },
  1592. initChartC2 () {
  1593. let myChart = echarts.init(this.$refs['echartC2'])
  1594. let option = {
  1595. ..._.cloneDeep(this.commonOption),
  1596. color: [
  1597. {
  1598. x: 0,
  1599. y: 0,
  1600. x2: 0,
  1601. y2: 1,
  1602. colorStops: [{
  1603. offset: 0,
  1604. color: '#69c0ff',
  1605. },
  1606. {
  1607. offset: 1,
  1608. color: '#082550',
  1609. },],
  1610. }
  1611. ],
  1612. series: [
  1613. {
  1614. name: '人工成本利润率同比变化',
  1615. type: 'line',
  1616. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  1617. smooth: true, //平滑曲线显示
  1618. showAllSymbol: true, //显示所有图形。
  1619. symbol: 'circle', //标记的图形为实心圆
  1620. symbolSize: 8, //标记的大小
  1621. smooth: false,
  1622. itemStyle: {
  1623. //折线拐点标志的样式
  1624. color: '#B889EA',
  1625. borderColor: '#B889EA',
  1626. width: 2,
  1627. shadowColor: '#B889EA',
  1628. shadowBlur: 4,
  1629. },
  1630. lineStyle: {
  1631. color: '#B889EA',
  1632. width: 2,
  1633. },
  1634. data: dataC2[0],
  1635. },
  1636. {
  1637. name: '人工成本利润率',
  1638. type: 'bar',
  1639. barWidth: 15,
  1640. itemStyle: {
  1641. color: params => {
  1642. if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
  1643. return 'red'
  1644. } else if (params.value > this.echartC2.province) {
  1645. return 'green'
  1646. } else {
  1647. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1648. {
  1649. offset: 0,
  1650. color: '#69c0ff',
  1651. },
  1652. {
  1653. offset: 1,
  1654. color: '#082550',
  1655. },
  1656. ])
  1657. }
  1658. },
  1659. },
  1660. data: dataC2[1],
  1661. markLine: {
  1662. data: [
  1663. {
  1664. name: '省属企业平均水平',
  1665. yAxis: this.echartC2.province,
  1666. lineStyle: {
  1667. color: '#fff',
  1668. },
  1669. label: {
  1670. formatter: '{b}',
  1671. position: 'end',
  1672. padding: [24, 100, 10, 30],
  1673. color: '#fff',
  1674. },
  1675. },
  1676. {
  1677. name: '央企平均水平',
  1678. yAxis: this.echartC2.national,
  1679. lineStyle: {
  1680. color: '#fff',
  1681. },
  1682. label: {
  1683. formatter: '{b}',
  1684. position: 'end',
  1685. padding: [-24, 200, 10, 30],
  1686. color: '#fff',
  1687. },
  1688. },
  1689. ],
  1690. label: {
  1691. distance: [20, 8],
  1692. },
  1693. },
  1694. },
  1695. ],
  1696. }
  1697. option.title.text = '各三级企业人工成本利润率'
  1698. option.legend.data = ['人工成本利润率', '人工成本利润率同比变化']
  1699. option.legend.show = true
  1700. option.tooltip = {
  1701. show: true,
  1702. trigger: 'axis',
  1703. formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
  1704. }
  1705. option.grid.right = '15%'
  1706. option.yAxis = [
  1707. {
  1708. axisLine: {
  1709. show: false,
  1710. },
  1711. splitLine: {
  1712. show: true,
  1713. lineStyle: {
  1714. color: '#68b4dd66',
  1715. type: 'dashed',
  1716. },
  1717. },
  1718. axisLabel: {
  1719. show: true,
  1720. formatter: '{value} %',
  1721. textStyle: {
  1722. color: 'rgba(250,250,250,0.6)',
  1723. },
  1724. },
  1725. },
  1726. {
  1727. splitLine: {
  1728. show: false,
  1729. },
  1730. axisLine: {
  1731. show: false,
  1732. },
  1733. axisLabel: {
  1734. show: true,
  1735. formatter: '{value} %',
  1736. textStyle: {
  1737. color: 'rgba(250,250,250,0.6)',
  1738. },
  1739. },
  1740. }
  1741. ]
  1742. myChart.setOption(option)
  1743. // tools.loopShowTooltip(myChart, option, {
  1744. // nterval: 2000,
  1745. // loopSeries: true,
  1746. // });
  1747. },
  1748. // 右侧图表---------------------------------------------开始
  1749. initChartR1 () {
  1750. let myChart = echarts.init(this.$refs['echartR1'])
  1751. let commonOptions = this.commonOption
  1752. commonOptions.yAxis[0].splitNumber = 2
  1753. let option = {
  1754. ..._.cloneDeep(commonOptions),
  1755. series: [
  1756. {
  1757. name: '招聘需求公告次数',
  1758. type: 'bar',
  1759. barWidth: 15,
  1760. itemStyle: {
  1761. normal: {
  1762. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1763. {
  1764. offset: 0,
  1765. color: '#69c0ff',
  1766. },
  1767. {
  1768. offset: 1,
  1769. color: '#082550',
  1770. },
  1771. ]),
  1772. },
  1773. },
  1774. data: dataR1[0],
  1775. },
  1776. {
  1777. name: '招聘需求公告累计公开招聘人数',
  1778. type: 'bar',
  1779. barWidth: 15,
  1780. itemStyle: {
  1781. normal: {
  1782. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1783. {
  1784. offset: 0,
  1785. color: '#43ede3',
  1786. },
  1787. {
  1788. offset: 1,
  1789. color: '#082550',
  1790. },
  1791. ]),
  1792. },
  1793. },
  1794. data: dataR1[1],
  1795. },
  1796. ],
  1797. }
  1798. option.title.text = '各三级企业招聘需求公告人次情况'
  1799. option.legend.data = ['招聘需求公告次数', '招聘需求公告累计公开招聘人数']
  1800. option.legend.show = true
  1801. option.yAxis.push({
  1802. splitLine: {
  1803. show: false,
  1804. },
  1805. axisLine: {
  1806. show: false,
  1807. },
  1808. })
  1809. myChart.setOption(option)
  1810. },
  1811. initChartR2 () {
  1812. let myChart = echarts.init(this.$refs['echartR2'])
  1813. let commonOptions = this.commonOption
  1814. commonOptions.yAxis[0].splitNumber = 2
  1815. let option = {
  1816. ..._.cloneDeep(commonOptions),
  1817. series: [
  1818. {
  1819. name: '录用结果公示次数',
  1820. type: 'bar',
  1821. barWidth: 15,
  1822. itemStyle: {
  1823. normal: {
  1824. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1825. {
  1826. offset: 0,
  1827. color: '#69c0ff',
  1828. },
  1829. {
  1830. offset: 1,
  1831. color: '#082550',
  1832. },
  1833. ]),
  1834. },
  1835. },
  1836. data: dataR2[0],
  1837. },
  1838. {
  1839. name: '录用结果公示累计公示人数',
  1840. type: 'bar',
  1841. barWidth: 15,
  1842. itemStyle: {
  1843. normal: {
  1844. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1845. {
  1846. offset: 0,
  1847. color: '#45DAD1',
  1848. },
  1849. {
  1850. offset: 1,
  1851. color: '#082550',
  1852. },
  1853. ]),
  1854. },
  1855. },
  1856. data: dataR2[1],
  1857. },
  1858. ],
  1859. }
  1860. option.title.text = '各三级企业录用结果公示人次'
  1861. option.legend.data = ['录用结果公示次数', '录用结果公示累计公示人数']
  1862. option.legend.show = true
  1863. option.yAxis.push({
  1864. type: 'value',
  1865. axisLine: {
  1866. show: false,
  1867. },
  1868. splitLine: {
  1869. show: false,
  1870. },
  1871. })
  1872. myChart.setOption(option)
  1873. },
  1874. initChartR3 () {
  1875. let myChart = echarts.init(this.$refs['echartR3'])
  1876. let commonOptions = this.commonOption
  1877. commonOptions.yAxis[0].splitNumber = 2
  1878. let option = {
  1879. ..._.cloneDeep(commonOptions),
  1880. color: [
  1881. {
  1882. x: 0,
  1883. y: 0,
  1884. x2: 0,
  1885. y2: 1,
  1886. colorStops: [{
  1887. offset: 0,
  1888. color: '#45DAD1',
  1889. },
  1890. {
  1891. offset: 1,
  1892. color: '#082550',
  1893. },],
  1894. }
  1895. ],
  1896. series: [
  1897. {
  1898. name: '年利润(万)',
  1899. type: 'bar',
  1900. barWidth: 15,
  1901. itemStyle: {
  1902. normal: {
  1903. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1904. {
  1905. offset: 0,
  1906. color: '#69c0ff',
  1907. },
  1908. {
  1909. offset: 1,
  1910. color: '#082550',
  1911. },
  1912. ]),
  1913. },
  1914. },
  1915. data: dataR3[0],
  1916. },
  1917. {
  1918. name: '2022年累计招聘数',
  1919. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  1920. type: 'bar',
  1921. barWidth: 15,
  1922. itemStyle: {
  1923. color: params => {
  1924. if (params.value > 0 && dataR3[0][params.dataIndex] < 0) {
  1925. return 'red'
  1926. } else {
  1927. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1928. {
  1929. offset: 0,
  1930. color: '#45DAD1',
  1931. },
  1932. {
  1933. offset: 1,
  1934. color: '#082550',
  1935. },
  1936. ])
  1937. }
  1938. },
  1939. },
  1940. data: dataR3[1],
  1941. },
  1942. ],
  1943. }
  1944. option.title.text = '各三级企业年利润与招聘情况分析'
  1945. option.legend.data = ['年利润(万)', '2022年累计招聘数']
  1946. option.legend.show = true
  1947. option.yAxis[0].max = function (value) {
  1948. if (Math.abs(value.max) > Math.abs(value.min)) {
  1949. return (Math.abs(value.max) * 1.2).toFixed(2);
  1950. } else {
  1951. return (Math.abs(value.min) * 1.2).toFixed(2);
  1952. }
  1953. }
  1954. option.yAxis[0].min = function (value) {
  1955. if (Math.abs(value.max) > Math.abs(value.min)) {
  1956. return (-Math.abs(value.max) * 1.2).toFixed(2);
  1957. } else {
  1958. return (-Math.abs(value.min) * 1.2).toFixed(2);
  1959. }
  1960. }
  1961. option.yAxis.push({
  1962. splitLine: {
  1963. show: false,
  1964. },
  1965. axisLine: {
  1966. show: false,
  1967. },
  1968. axisLabel: {
  1969. show: true,
  1970. formatter: '{value}',
  1971. textStyle: {
  1972. color: 'rgba(250,250,250,0.6)',
  1973. },
  1974. },
  1975. max: function (value) {
  1976. if (Math.abs(value.max) > Math.abs(value.min)) {
  1977. return (Math.abs(value.max) * 1.2).toFixed(2);
  1978. } else {
  1979. return (Math.abs(value.min) * 1.2).toFixed(2);
  1980. }
  1981. },
  1982. min: function (value) {
  1983. if (Math.abs(value.max) > Math.abs(value.min)) {
  1984. return (-Math.abs(value.max) * 1.2).toFixed(2);
  1985. } else {
  1986. return (-Math.abs(value.min) * 1.2).toFixed(2);
  1987. }
  1988. }
  1989. })
  1990. // option.yAxis = [
  1991. // {
  1992. // max: function (val) {
  1993. // if (Math.abs(val.max) > Math.abs(val.min)) {
  1994. // return (Math.abs(val.max) * 1.2).toFixed(0)
  1995. // } else {
  1996. // return (Math.abs(val.min) * 1.2).toFixed(0)
  1997. // }
  1998. // },
  1999. // min: function (val) {
  2000. // if (Math.abs(val.max) > Math.abs(val.min)) {
  2001. // return (-Math.abs(val.max) * 1.2).toFixed(0)
  2002. // } else {
  2003. // return (Math.abs(val.min) * 1.2).toFixed(0)
  2004. // }
  2005. // },
  2006. // splitLine: {
  2007. // show: false,
  2008. // },
  2009. // axisLine: {
  2010. // show: false,
  2011. // },
  2012. // axisLabel: {
  2013. // show: true,
  2014. // formatter: '{value}',
  2015. // textStyle: {
  2016. // color: 'rgba(250,250,250,0.6)',
  2017. // },
  2018. // },
  2019. // }
  2020. // ]
  2021. myChart.setOption(option)
  2022. },
  2023. initChartR4 () {
  2024. let myChart = echarts.init(this.$refs['echartR4'])
  2025. let commonOptions = this.commonOption
  2026. commonOptions.yAxis[0].splitNumber = 2
  2027. let option = {
  2028. ..._.cloneDeep(commonOptions),
  2029. color: [
  2030. {
  2031. x: 0,
  2032. y: 0,
  2033. x2: 0,
  2034. y2: 1,
  2035. colorStops: [{
  2036. offset: 0,
  2037. color: '#6480f3',
  2038. },
  2039. {
  2040. offset: 1,
  2041. color: '#082550',
  2042. },],
  2043. }
  2044. ],
  2045. series: [
  2046. {
  2047. name: '2022年退出人数和2023年当前累计退出人数之和',
  2048. type: 'bar',
  2049. barWidth: 15,
  2050. itemStyle: {
  2051. normal: {
  2052. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2053. {
  2054. offset: 0,
  2055. color: '#69c0ff',
  2056. },
  2057. {
  2058. offset: 1,
  2059. color: '#082550',
  2060. },
  2061. ]),
  2062. },
  2063. },
  2064. data: dataR4[0],
  2065. },
  2066. {
  2067. name: '2022年招聘人数和2023年当前累计招聘人数之和',
  2068. type: 'bar',
  2069. barWidth: 15,
  2070. itemStyle: {
  2071. normal: {
  2072. color: params => {
  2073. if (dataR4[0][params.dataIndex] / 2 < params.value) {
  2074. return 'red'
  2075. }
  2076. else {
  2077. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2078. {
  2079. offset: 0,
  2080. color: '#6480f3',
  2081. },
  2082. {
  2083. offset: 1,
  2084. color: '#082550',
  2085. },
  2086. ])
  2087. }
  2088. },
  2089. },
  2090. },
  2091. data: dataR4[1],
  2092. },
  2093. ],
  2094. }
  2095. option.title.text = '各三级企业"退二进一"完成情况'
  2096. option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
  2097. option.legend.show = true
  2098. option.yAxis[0] = {
  2099. //type: 'log',
  2100. //min: 1,
  2101. //logBase: 3,
  2102. axisLine: {
  2103. show: false,
  2104. },
  2105. splitLine: {
  2106. show: true,
  2107. lineStyle: {
  2108. color: '#68b4dd66',
  2109. type: 'dashed',
  2110. },
  2111. },
  2112. axisLabel: {
  2113. show: true,
  2114. formatter: function (value) {
  2115. return value === 1 ? 0 : value
  2116. },
  2117. textStyle: {
  2118. color: 'rgba(250,250,250,0.6)',
  2119. },
  2120. },
  2121. }
  2122. myChart.setOption(option)
  2123. },
  2124. initChartR5 () {
  2125. let myChart = echarts.init(this.$refs['echartR5'])
  2126. let option = {
  2127. ..._.cloneDeep(this.commonOption),
  2128. series: [
  2129. {
  2130. name: '去年同期在岗职工平均薪酬',
  2131. type: 'bar',
  2132. barWidth: 15,
  2133. itemStyle: {
  2134. normal: {
  2135. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2136. {
  2137. offset: 0,
  2138. color: '#69c0ff',
  2139. },
  2140. {
  2141. offset: 1,
  2142. color: '#082550',
  2143. },
  2144. ]),
  2145. },
  2146. },
  2147. data: dataR5[0],
  2148. },
  2149. {
  2150. name: '在岗职工平均薪酬',
  2151. type: 'bar',
  2152. barWidth: 15,
  2153. itemStyle: {
  2154. normal: {
  2155. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2156. {
  2157. offset: 0,
  2158. color: '#6682F5',
  2159. },
  2160. {
  2161. offset: 1,
  2162. color: '#082550',
  2163. },
  2164. ]),
  2165. },
  2166. },
  2167. data: dataR5[1],
  2168. }
  2169. ],
  2170. }
  2171. option.title.text = '各三级企业在岗职工平均薪酬'
  2172. option.legend.data = ['去年同期在岗职工平均薪酬', '在岗职工平均薪酬']
  2173. option.legend.show = true
  2174. option.yAxis.push({
  2175. splitLine: {
  2176. show: false,
  2177. },
  2178. axisLine: {
  2179. show: false,
  2180. },
  2181. })
  2182. myChart.setOption(option)
  2183. },
  2184. initChartR6 () {
  2185. let myChart = echarts.init(this.$refs['echartR6'])
  2186. let option = {
  2187. ..._.cloneDeep(this.commonOption),
  2188. color: ['#69c0ff'],
  2189. series: [
  2190. {
  2191. name: '2022年利润累计涨幅率',
  2192. type: 'line',
  2193. smooth: true, //平滑曲线显示
  2194. showAllSymbol: true, //显示所有图形。
  2195. symbol: 'circle', //标记的图形为实心圆
  2196. symbolSize: 8, //标记的大小
  2197. smooth: false,
  2198. itemStyle: {
  2199. //折线拐点标志的样式
  2200. color: '#B889EA',
  2201. borderColor: '#B889EA',
  2202. width: 2,
  2203. shadowColor: '#B889EA',
  2204. shadowBlur: 4,
  2205. },
  2206. lineStyle: {
  2207. color: '#B889EA',
  2208. width: 2,
  2209. },
  2210. data: dataR6[0],
  2211. },
  2212. {
  2213. name: '2022年薪酬累计涨幅率',
  2214. type: 'line',
  2215. barWidth: 15,
  2216. yAxisIndex: 1,
  2217. showAllSymbol: true, //显示所有图形。
  2218. symbol: 'circle', //标记的图形为实心圆
  2219. symbolSize: 12, //标记的大小
  2220. smooth: false,
  2221. itemStyle: {
  2222. color: params => {
  2223. if (params.value > 0 && dataR6[0][params.dataIndex] < 0) {
  2224. return 'yellow'
  2225. } else {
  2226. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2227. {
  2228. offset: 0,
  2229. color: '#69c0ff',
  2230. },
  2231. {
  2232. offset: 1,
  2233. color: '#082550',
  2234. },
  2235. ])
  2236. }
  2237. },
  2238. },
  2239. data: dataR6[1],
  2240. },
  2241. {
  2242. yAxisIndex: 1,
  2243. type: 'effectScatter',
  2244. coordinateSystem: 'cartesian2d',
  2245. showEffectOn: 'render',
  2246. rippleEffect: {
  2247. period: 10,
  2248. scale: 4,
  2249. brushType: 'stroke'
  2250. },
  2251. hoverAnimation: true,
  2252. itemStyle: {
  2253. color: 'yellow'
  2254. },
  2255. lineStyle: {
  2256. color: '#43ede3',
  2257. width: 2,
  2258. },
  2259. data: this.twinkleR6,
  2260. },
  2261. ],
  2262. }
  2263. option.title.text = '各三级企业利润与薪酬变动情况'
  2264. option.legend.data = ['2022年利润累计涨幅率', '2022年薪酬累计涨幅率']
  2265. option.tooltip = {
  2266. trigger: 'axis',
  2267. formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
  2268. }
  2269. option.yAxis = [
  2270. {
  2271. max: function (value) {
  2272. if (Math.abs(value.max) > Math.abs(value.min)) {
  2273. return (Math.abs(value.max) * 1.2).toFixed(2);
  2274. } else {
  2275. return (Math.abs(value.min) * 1.2).toFixed(2);
  2276. }
  2277. },
  2278. min: function (value) {
  2279. if (Math.abs(value.max) > Math.abs(value.min)) {
  2280. return (-Math.abs(value.max) * 1.2).toFixed(2);
  2281. } else {
  2282. return (-Math.abs(value.min) * 1.2).toFixed(2);
  2283. }
  2284. },
  2285. splitLine: {
  2286. show: true,
  2287. lineStyle: {
  2288. color: '#68b4dd66',
  2289. type: 'dashed',
  2290. },
  2291. },
  2292. axisLine: {
  2293. show: false,
  2294. },
  2295. axisLabel: {
  2296. show: true,
  2297. formatter: '{value} %',
  2298. textStyle: {
  2299. color: 'rgba(250,250,250,0.6)',
  2300. },
  2301. },
  2302. },
  2303. {
  2304. max: function (value) {
  2305. if (Math.abs(value.max) > Math.abs(value.min)) {
  2306. return (Math.abs(value.max) * 1.2).toFixed(2);
  2307. } else {
  2308. return (Math.abs(value.min) * 1.2).toFixed(2);
  2309. }
  2310. },
  2311. min: function (value) {
  2312. if (Math.abs(value.max) > Math.abs(value.min)) {
  2313. return (-Math.abs(value.max) * 1.2).toFixed(2);
  2314. } else {
  2315. return (-Math.abs(value.min) * 1.2).toFixed(2);
  2316. }
  2317. },
  2318. splitLine: {
  2319. show: false,
  2320. },
  2321. axisLine: {
  2322. show: false,
  2323. },
  2324. axisLabel: {
  2325. show: true,
  2326. formatter: '{value} %',
  2327. textStyle: {
  2328. color: 'rgba(250,250,250,0.6)',
  2329. },
  2330. },
  2331. }
  2332. ]
  2333. myChart.setOption(option)
  2334. },
  2335. initChartR7 () {
  2336. let myChart = echarts.init(this.$refs['echartR7'])
  2337. let option = {
  2338. ..._.cloneDeep(this.commonOption),
  2339. color: [
  2340. {
  2341. x: 0,
  2342. y: 0,
  2343. x2: 0,
  2344. y2: 1,
  2345. colorStops: [{
  2346. offset: 0,
  2347. color: '#B889EA',
  2348. },
  2349. {
  2350. offset: 1,
  2351. color: '#082550',
  2352. },],
  2353. }
  2354. ],
  2355. series: [
  2356. {
  2357. name: '全员绩效考核完成率',
  2358. type: 'bar',
  2359. barWidth: 15,
  2360. itemStyle: {
  2361. normal: {
  2362. color: params => {
  2363. if (params.value < 50) {
  2364. return 'yellow'
  2365. }
  2366. else {
  2367. return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2368. {
  2369. offset: 0,
  2370. color: '#B889EA',
  2371. },
  2372. {
  2373. offset: 1,
  2374. color: '#082550',
  2375. },
  2376. ])
  2377. }
  2378. },
  2379. },
  2380. },
  2381. data: dataR7[0],
  2382. },
  2383. ],
  2384. }
  2385. option.title.text = '各三级企业全员绩效考核 '
  2386. // option.legend.data = ['劳动合同签约完成率', '目标值']
  2387. option.tooltip = {
  2388. trigger: 'axis',
  2389. formatter: '{a0}:{c0}' + '%'
  2390. }
  2391. option.yAxis[0].axisLabel = {
  2392. show: true,
  2393. formatter: '{value} %',
  2394. textStyle: {
  2395. color: 'rgba(250,250,250,0.6)',
  2396. },
  2397. }
  2398. myChart.setOption(option)
  2399. },
  2400. initChartR8 () {
  2401. let myChart = echarts.init(this.$refs['echartR8'])
  2402. let option = {
  2403. ..._.cloneDeep(this.commonOption),
  2404. color: [
  2405. {
  2406. x: 0,
  2407. y: 0,
  2408. x2: 0,
  2409. y2: 1,
  2410. colorStops: [{
  2411. offset: 0,
  2412. color: '#43ede3',
  2413. },
  2414. {
  2415. offset: 1,
  2416. color: '#082550',
  2417. },],
  2418. }
  2419. ],
  2420. series: [
  2421. {
  2422. name: '任期制契约化考核完成率',
  2423. type: 'bar',
  2424. barWidth: 15,
  2425. itemStyle: {
  2426. normal: {
  2427. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  2428. {
  2429. offset: 0,
  2430. color: '#43ede3',
  2431. },
  2432. {
  2433. offset: 1,
  2434. color: '#082550',
  2435. },
  2436. ]),
  2437. },
  2438. },
  2439. data: dataR8[0],
  2440. },
  2441. ],
  2442. }
  2443. option.title.text = '各三级企业任期制契约化考核完成率'
  2444. option.tooltip = {
  2445. trigger: 'axis',
  2446. formatter: '{a0}:{c0}' + '%'
  2447. }
  2448. option.yAxis[0].axisLabel = {
  2449. show: true,
  2450. formatter: '{value} %',
  2451. textStyle: {
  2452. color: 'rgba(250,250,250,0.6)',
  2453. },
  2454. }
  2455. myChart.setOption(option)
  2456. },
  2457. },
  2458. })