index2.js 72 KB

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