index3.js 61 KB

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