index.js 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532
  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. showTip: false,
  8. tipNum: '',
  9. time: '',
  10. year: '2022',
  11. config1: {
  12. number: [100],
  13. content: '{nt}个',
  14. },
  15. centerData: '',
  16. storageRecordConfig: {
  17. header: ['时间', '所属集团', '工作情况'],
  18. headerBGC: '#05507b33',
  19. oddRowBGC: '#69c0ff0f',
  20. evenRowBGC: '',
  21. headerHeight: '40',
  22. rowNum: 4,
  23. align: ['center'],
  24. data: [
  25. ['2022年1月', '山西焦煤', '已经开展高层次人才引进工作'],
  26. ['2022年2月', '山西文旅', '不能按期完成序时进度'],
  27. ['2022年3月', '大地控股', '已经实现中长期激励机制贯彻'],
  28. ['2022年4月', '国际能源', '薪酬结果没有做到公开'],
  29. ['2022年5月', '山西焦煤', '已经开展高层次人才引进工作'],
  30. ['2022年6月', '山西焦煤', '不能按期完成序时进度'],
  31. ],
  32. },
  33. storageRecordConfig2: {
  34. header: ['企业名称', '预警内容', '数据抓取日期', '累计未获取数据日期'],
  35. headerBGC: '#05507b33',
  36. oddRowBGC: '#05507b33',
  37. evenRowBGC: '',
  38. headerHeight: '40',
  39. rowNum: 4,
  40. align: ['center', 'center', 'center', 'center'],
  41. data: [
  42. ['山西焦煤', '经营业绩考核延迟更新', '2022.12.01-12.31', '3天'],
  43. ['山西文旅', '六定长效机制情况未更新', '2022.12.01-12.31', '7天'],
  44. ['大地控股', '经营业绩考核延迟更新', '2022.12.01-12.31', '3天'],
  45. ['国际能源', '六定长效机制情况未更新', '2022.12.01-12.31', '1天'],
  46. ['山西焦煤', '经营业绩考核延迟更新', '2022.12.01-12.31', '3天'],
  47. ['山西焦煤', '六定长效机制情况未更新', '2022.12.01-12.31', '3天'],
  48. ],
  49. },
  50. companyList: companyList,
  51. commonOption: {
  52. title: {
  53. text: 'xxx',
  54. x: 'center',
  55. y: '3%',
  56. textStyle: {
  57. color: '#69C0FF',
  58. fontSize: 24,
  59. },
  60. },
  61. tooltip: {
  62. trigger: 'axis',
  63. axisPointer: {
  64. type: 'shadow',
  65. },
  66. },
  67. grid: {
  68. top: '22%',
  69. right: '5%',
  70. left: '8%',
  71. bottom: '20%',
  72. },
  73. legend: {
  74. data: '',
  75. top: '12%',
  76. right: '5%',
  77. textStyle: {
  78. color: 'rgba(250,250,250,0.6)',
  79. fontSize: 16,
  80. },
  81. },
  82. xAxis: {
  83. data: companyList.map(item => item.name),
  84. axisLine: {
  85. show: false, //隐藏X轴轴线
  86. lineStyle: {
  87. color: '#005094',
  88. width: 1,
  89. },
  90. },
  91. axisTick: {
  92. show: false, //隐藏X轴刻度
  93. },
  94. axisLabel: {
  95. show: true,
  96. rotate: 50,
  97. textStyle: {
  98. color: 'rgba(255,255,255,0.6)', //X轴文字颜色
  99. fontSize: 16,
  100. },
  101. },
  102. },
  103. yAxis: [
  104. {
  105. type: 'value',
  106. nameTextStyle: {
  107. color: '#ebf8ac',
  108. fontSize: 16,
  109. },
  110. splitLine: {
  111. show: true,
  112. lineStyle: {
  113. color: '#68b4dd66',
  114. type: 'dashed',
  115. },
  116. },
  117. axisLine: {
  118. show: false,
  119. },
  120. axisLabel: {
  121. show: true,
  122. textStyle: {
  123. color: 'rgba(250,250,250,0.6)',
  124. fontSize: 16,
  125. },
  126. },
  127. },
  128. ],
  129. },
  130. }
  131. },
  132. mounted () {
  133. this.time = formatDate()
  134. this.timer = setInterval(() => {
  135. this.time = formatDate()
  136. }, 1000)
  137. this.centerData = data
  138. // 左侧图表
  139. this.initChartL1()
  140. this.initChartL2()
  141. this.initChartL3()
  142. this.initChartL4()
  143. this.initChartL5()
  144. this.initChartL6()
  145. this.initChartL7()
  146. this.initChartL8()
  147. // 中间图表
  148. this.initChartC1()
  149. this.initChartC2()
  150. // 右侧图表
  151. this.initChartR1()
  152. this.initChartR2()
  153. this.initChartR3()
  154. this.initChartR4()
  155. this.initChartR5()
  156. this.initChartR6()
  157. this.initChartR7()
  158. this.initChartR8()
  159. },
  160. beforeDestroy () {
  161. if (this.timer) {
  162. clearInterval(this.timer);
  163. }
  164. },
  165. methods: {
  166. handleShowTip(index){
  167. this.showTip = true
  168. this.tipNum = index
  169. },
  170. handleGoPage(url){
  171. window.location.href = url
  172. },
  173. numFormat (value) {
  174. if (!value) return '0'
  175. var intPart = Number(value).toFixed(0) // 获取整数部分
  176. var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断
  177. var floatPart = '.00' // 预定义小数部分
  178. var value2Array = value.toString().split('.')
  179. // =2表示数据有小数位
  180. if (value2Array.length === 2) {
  181. floatPart = value2Array[1].toString() // 拿到小数部分
  182. if (floatPart.length === 1) {
  183. // 补0
  184. return intPartFormat + '.' + floatPart + '0'
  185. } else {
  186. return intPartFormat + '.' + floatPart
  187. }
  188. } else {
  189. return intPartFormat
  190. }
  191. },
  192. initChartL1 () {
  193. let myChart = echarts.init(this.$refs['echartL1'])
  194. let option = {
  195. ..._.cloneDeep(this.commonOption),
  196. series: [
  197. {
  198. name: '总部机构数核定上限',
  199. type: 'line',
  200. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  201. smooth: true, //平滑曲线显示
  202. showAllSymbol: true, //显示所有图形。
  203. symbol: 'circle', //标记的图形为实心圆
  204. symbolSize: 8, //标记的大小
  205. smooth: false,
  206. itemStyle: {
  207. //折线拐点标志的样式
  208. color: '#fbe138',
  209. borderColor: '#fbe138',
  210. width: 2,
  211. shadowColor: '#fbe138',
  212. shadowBlur: 4,
  213. },
  214. lineStyle: {
  215. color: '#fbe138',
  216. width: 2,
  217. },
  218. data: dataL1[2],
  219. },
  220. {
  221. name: '六定改革前总部机构数',
  222. type: 'bar',
  223. barWidth: 15,
  224. itemStyle: {
  225. normal: {
  226. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  227. {
  228. offset: 0,
  229. color: '#43ede3',
  230. },
  231. {
  232. offset: 1,
  233. color: '#082550',
  234. },
  235. ]),
  236. },
  237. },
  238. data: dataL1[0],
  239. },
  240. {
  241. name: '当前各省属企业总部机构数',
  242. type: 'bar',
  243. barWidth: 15,
  244. itemStyle: {
  245. normal: {
  246. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  247. {
  248. offset: 0,
  249. color: '#69c0ff',
  250. },
  251. {
  252. offset: 1,
  253. color: '#082550',
  254. },
  255. ]),
  256. },
  257. },
  258. data: dataL1[1],
  259. },
  260. ],
  261. }
  262. option.title.text = '当前各省属企业总部机构数'
  263. option.legend.data = ['六定改革前总部机构数', '当前各省属企业总部机构数', '总部机构数核定上限']
  264. option.yAxis.push({
  265. splitLine: {
  266. show: false,
  267. },
  268. axisLine: {
  269. show: false,
  270. },
  271. })
  272. myChart.setOption(option)
  273. },
  274. initChartL2 () {
  275. let myChart = echarts.init(this.$refs['echartL2'])
  276. let option = {
  277. ..._.cloneDeep(this.commonOption),
  278. series: [
  279. {
  280. name: '当前共享服务中心/事业部数',
  281. type: 'bar',
  282. barWidth: 15,
  283. itemStyle: {
  284. normal: {
  285. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  286. {
  287. offset: 0,
  288. color: '#69c0ff',
  289. },
  290. {
  291. offset: 1,
  292. color: '#082550',
  293. },
  294. ]),
  295. },
  296. },
  297. data: dataL2[0]
  298. },
  299. {
  300. name: '共享服务中心/事业部核定上限',
  301. type: 'line',
  302. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  303. smooth: true, //平滑曲线显示
  304. showAllSymbol: true, //显示所有图形。
  305. symbol: 'circle', //标记的图形为实心圆
  306. symbolSize: 8, //标记的大小
  307. smooth: false,
  308. itemStyle: {
  309. //折线拐点标志的样式
  310. color: '#fbe138',
  311. borderColor: '#fbe138',
  312. width: 2,
  313. shadowColor: '#fbe138',
  314. shadowBlur: 4,
  315. },
  316. lineStyle: {
  317. color: '#fbe138',
  318. width: 2,
  319. },
  320. data: dataL2[1],
  321. },
  322. ],
  323. }
  324. option.title.text = '各省属企业共享服务中心/事业部数'
  325. option.legend.data = ['当前共享服务中心/事业部数', '共享服务中心/事业部核定上限']
  326. option.yAxis.push({
  327. splitLine: {
  328. show: false,
  329. },
  330. axisLine: {
  331. show: false,
  332. },
  333. })
  334. myChart.setOption(option)
  335. },
  336. initChartL3 () {
  337. let myChart = echarts.init(this.$refs['echartL3'])
  338. console.log(this.commonOption, "this.commonOption")
  339. let option = {
  340. ..._.cloneDeep(this.commonOption),
  341. series: [
  342. {
  343. name: '当前管理人员数',
  344. type: 'bar',
  345. barWidth: 15,
  346. itemStyle: {
  347. normal: {
  348. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  349. {
  350. offset: 0,
  351. color: '#5e7ae9',
  352. },
  353. {
  354. offset: 1,
  355. color: '#082550',
  356. },
  357. ]),
  358. },
  359. },
  360. data: dataL3[0],
  361. },
  362. {
  363. name: '管理人员数占总人数比值',
  364. type: 'line',
  365. yAxisIndex: 1,
  366. smooth: true, //平滑曲线显示
  367. showAllSymbol: true, //显示所有图形。
  368. symbol: 'circle', //标记的图形为实心圆
  369. symbolSize: 8, //标记的大小
  370. smooth: false,
  371. itemStyle: {
  372. //折线拐点标志的样式
  373. color: '#fbe138',
  374. borderColor: '#fbe138',
  375. width: 2,
  376. shadowColor: '#fbe138',
  377. shadowBlur: 4,
  378. },
  379. lineStyle: {
  380. color: '#fbe138',
  381. width: 2,
  382. },
  383. markLine: {
  384. data: [
  385. {
  386. name: '管理人员数占总人数的合理比值线',
  387. yAxis: 15,
  388. lineStyle: {
  389. color: '#fff',
  390. },
  391. label: {
  392. formatter: '{b}',
  393. position: 'middle',
  394. color: '#fff',
  395. fontSize: 16
  396. },
  397. },
  398. ],
  399. label: {
  400. distance: [20, 8],
  401. },
  402. },
  403. data: dataL3[1],
  404. },
  405. ],
  406. }
  407. option.title.text = '各省属企业管理人员数'
  408. option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
  409. option.yAxis[0] = {
  410. type: 'log',
  411. min:1,
  412. logBase:10,
  413. axisLine: {
  414. show: false,
  415. },
  416. splitLine: {
  417. show: false,
  418. },
  419. axisLabel: {
  420. show: true,
  421. formatter: function(value) {
  422. return value === 1 ? 0 : value
  423. },
  424. textStyle: {
  425. color: 'rgba(250,250,250,0.6)',
  426. },
  427. },
  428. }
  429. option.yAxis.push({
  430. type: 'value',
  431. max: 15,
  432. axisLine: {
  433. show: false,
  434. },
  435. splitLine: {
  436. show: false,
  437. },
  438. axisLabel: {
  439. show: true,
  440. formatter: '{value} %',
  441. textStyle: {
  442. color: 'rgba(250,250,250,0.6)',
  443. },
  444. },
  445. })
  446. myChart.setOption(option)
  447. },
  448. initChartL4 () {
  449. let myChart = echarts.init(this.$refs['echartL4'])
  450. let option = {
  451. ..._.cloneDeep(this.commonOption),
  452. series: [
  453. {
  454. name: '六定改革前总部中层管理人数',
  455. type: 'bar',
  456. barWidth: 15,
  457. itemStyle: {
  458. normal: {
  459. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  460. {
  461. offset: 0,
  462. color: '#69c0ff',
  463. },
  464. {
  465. offset: 1,
  466. color: '#082550',
  467. },
  468. ]),
  469. },
  470. },
  471. data: dataL4[0],
  472. },
  473. {
  474. name: '当前总部中层管理人数',
  475. type: 'bar',
  476. barWidth: 15,
  477. itemStyle: {
  478. normal: {
  479. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  480. {
  481. offset: 0,
  482. color: '#6480f3',
  483. },
  484. {
  485. offset: 1,
  486. color: '#082550',
  487. },
  488. ]),
  489. },
  490. },
  491. data: dataL4[1],
  492. },
  493. ],
  494. }
  495. option.title.text = '各省属企业总部中层管理人数'
  496. option.legend.data = ['六定改革前总部中层管理人数', '当前总部中层管理人数']
  497. option.legend.show = true
  498. option.yAxis.push({
  499. splitLine: {
  500. show: false,
  501. },
  502. axisLine: {
  503. show: false,
  504. },
  505. })
  506. myChart.setOption(option)
  507. },
  508. initChartL5 () {
  509. let myChart = echarts.init(this.$refs['echartL5'])
  510. let option = {
  511. ..._.cloneDeep(this.commonOption),
  512. series: [
  513. {
  514. name: '各省属企业总人数',
  515. type: 'bar',
  516. barWidth: 15,
  517. itemStyle: {
  518. normal: {
  519. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  520. {
  521. offset: 0,
  522. color: '#69c0ff',
  523. },
  524. {
  525. offset: 1,
  526. color: '#082550',
  527. },
  528. ]),
  529. },
  530. },
  531. data: dataL5[0],
  532. },
  533. {
  534. name: '去年同期人数变化率',
  535. type: 'line',
  536. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  537. smooth: true, //平滑曲线显示
  538. showAllSymbol: true, //显示所有图形。
  539. symbol: 'circle', //标记的图形为实心圆
  540. symbolSize: 8, //标记的大小
  541. smooth: false,
  542. itemStyle: {
  543. //折线拐点标志的样式
  544. color: '#b889ea',
  545. borderColor: '#b889ea',
  546. width: 2,
  547. shadowColor: '#b889ea',
  548. shadowBlur: 4,
  549. },
  550. lineStyle: {
  551. color: '#b889ea',
  552. width: 2,
  553. },
  554. data: dataL5[1],
  555. },
  556. ],
  557. }
  558. option.title.text = '各省属企业总人数'
  559. option.legend.data = ['各省属企业总人数', '去年同期人数变化率']
  560. option.legend.show = true
  561. option.yAxis[0] = {
  562. type: 'log',
  563. min: 1,
  564. logBase: 10,
  565. axisLine: {
  566. show: false,
  567. },
  568. splitLine: {
  569. show: false,
  570. },
  571. axisLabel: {
  572. show: true,
  573. formatter: function(value) {
  574. return value === 1 ? 0 : value
  575. },
  576. textStyle: {
  577. color: 'rgba(250,250,250,0.6)',
  578. },
  579. },
  580. }
  581. option.yAxis.push({
  582. type: 'value',
  583. axisLine: {
  584. show: false,
  585. },
  586. splitLine: {
  587. show: false,
  588. },
  589. axisLabel: {
  590. show: true,
  591. formatter: '{value} %',
  592. textStyle: {
  593. color: 'rgba(250,250,250,0.6)',
  594. },
  595. },
  596. })
  597. myChart.setOption(option)
  598. },
  599. initChartL6 () {
  600. let myChart = echarts.init(this.$refs['echartL6'])
  601. let option = {
  602. ..._.cloneDeep(this.commonOption),
  603. series: [
  604. {
  605. name: '总部员额数',
  606. type: 'bar',
  607. barWidth: 15,
  608. itemStyle: {
  609. normal: {
  610. barBorderRadius: [10, 10, 0, 0],
  611. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  612. {
  613. offset: 0,
  614. color: '#43ede3',
  615. },
  616. {
  617. offset: 1,
  618. color: '#082550',
  619. },
  620. ]),
  621. },
  622. },
  623. data: dataL6[0],
  624. },
  625. {
  626. name: '总部员额数核定上限',
  627. type: 'line',
  628. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  629. smooth: true, //平滑曲线显示
  630. showAllSymbol: true, //显示所有图形。
  631. symbol: 'circle', //标记的图形为实心圆
  632. symbolSize: 8, //标记的大小
  633. smooth: false,
  634. itemStyle: {
  635. //折线拐点标志的样式
  636. color: '#fbe138',
  637. borderColor: '#fbe138',
  638. width: 2,
  639. shadowColor: '#fbe138',
  640. shadowBlur: 4,
  641. },
  642. lineStyle: {
  643. color: '#fbe138',
  644. width: 2,
  645. },
  646. data: dataL6[1],
  647. }
  648. ],
  649. }
  650. option.title.text = '各省属企业总部员额数'
  651. option.legend.data = ['总部员额数', '总部员额数核定上限']
  652. option.legend.show = true
  653. option.yAxis.push({
  654. splitLine: {
  655. show: false,
  656. },
  657. axisLine: {
  658. show: false,
  659. },
  660. })
  661. myChart.setOption(option)
  662. },
  663. initChartL7 () {
  664. let myChart = echarts.init(this.$refs['echartL7'])
  665. let option = {
  666. ..._.cloneDeep(this.commonOption),
  667. series: [
  668. {
  669. name: '人数变化',
  670. type: 'line',
  671. smooth: true, //平滑曲线显示
  672. showAllSymbol: true, //显示所有图形。
  673. symbol: 'circle', //标记的图形为实心圆
  674. symbolSize: 8, //标记的大小
  675. smooth: false,
  676. itemStyle: {
  677. //折线拐点标志的样式
  678. color: '#43ede3',
  679. borderColor: '#43ede3',
  680. width: 2,
  681. shadowColor: '#43ede3',
  682. shadowBlur: 4,
  683. },
  684. lineStyle: {
  685. color: '#43ede3',
  686. width: 2,
  687. },
  688. data: dataL7[0],
  689. },
  690. {
  691. name: '劳动生产率同比变化',
  692. type: 'line',
  693. yAxisIndex: 1,
  694. smooth: true, //平滑曲线显示
  695. showAllSymbol: true, //显示所有图形。
  696. symbol: 'circle', //标记的图形为实心圆
  697. symbolSize: 8, //标记的大小
  698. smooth: false,
  699. itemStyle: {
  700. //折线拐点标志的样式
  701. color: '#b889ea',
  702. borderColor: '#b889ea',
  703. width: 2,
  704. shadowColor: '#b889ea',
  705. shadowBlur: 4,
  706. },
  707. lineStyle: {
  708. color: '#b889ea',
  709. width: 2,
  710. },
  711. data: dataL7[1],
  712. },
  713. ],
  714. }
  715. option.title.text = '人数变化和全员劳动生产率变化分析'
  716. option.legend.data = ['人数变化', '劳动生产率同比变化']
  717. option.legend.show = true
  718. option.yAxis[0].axisLabel.formatter = '{value} %',
  719. option.yAxis.push({
  720. type: 'value',
  721. axisLine: {
  722. show: false,
  723. },
  724. splitLine: {
  725. show: false,
  726. },
  727. axisLabel: {
  728. show: true,
  729. formatter: '{value} %',
  730. textStyle: {
  731. color: 'rgba(250,250,250,0.6)',
  732. },
  733. },
  734. })
  735. myChart.setOption(option)
  736. },
  737. initChartL8 () {
  738. let myChart = echarts.init(this.$refs['echartL8'])
  739. let option = {
  740. ..._.cloneDeep(this.commonOption),
  741. series: [
  742. {
  743. name: '人数变化',
  744. type: 'line',
  745. smooth: true, //平滑曲线显示
  746. showAllSymbol: true, //显示所有图形。
  747. symbol: 'circle', //标记的图形为实心圆
  748. symbolSize: 8, //标记的大小
  749. smooth: false,
  750. itemStyle: {
  751. //折线拐点标志的样式
  752. color: '#43ede3',
  753. borderColor: '#43ede3',
  754. width: 2,
  755. shadowColor: '#43ede3',
  756. shadowBlur: 4,
  757. },
  758. lineStyle: {
  759. color: '#43ede3',
  760. width: 2,
  761. },
  762. data: dataL8[0],
  763. },
  764. {
  765. name: '人工成本利润率同比变化',
  766. type: 'line',
  767. smooth: true, //平滑曲线显示
  768. showAllSymbol: true, //显示所有图形。
  769. symbol: 'circle', //标记的图形为实心圆
  770. symbolSize: 8, //标记的大小
  771. smooth: false,
  772. itemStyle: {
  773. //折线拐点标志的样式
  774. color: '#b889ea',
  775. borderColor: '#b889ea',
  776. width: 2,
  777. shadowColor: '#b889ea',
  778. shadowBlur: 4,
  779. },
  780. lineStyle: {
  781. color: '#b889ea',
  782. width: 2,
  783. },
  784. data: dataL8[1],
  785. },
  786. ],
  787. }
  788. option.title.text = '人数变化和人工成本利润率变化分析'
  789. option.legend.data = ['人数变化','人工成本利润率同比变化']
  790. option.legend.show = true
  791. option.yAxis[0].axisLabel.formatter = '{value} %',
  792. myChart.setOption(option)
  793. },
  794. // 中间图表---------------------------------------------开始
  795. initChartC1 () {
  796. let myChart = echarts.init(this.$refs['echartC1'])
  797. let option = {
  798. ..._.cloneDeep(this.commonOption),
  799. series: [
  800. {
  801. name: '全员劳动生产率(万/人)',
  802. type: 'bar',
  803. barWidth: 12,
  804. smooth: true, //平滑曲线显示
  805. showAllSymbol: true, //显示所有图形。
  806. symbol: 'circle', //标记的图形为实心圆
  807. symbolSize: 8, //标记的大小
  808. smooth: false,
  809. itemStyle: {
  810. //折线拐点标志的样式
  811. color: '#69c0ff',
  812. borderColor: '#69c0ff',
  813. width: 2,
  814. shadowColor: '#69c0ff',
  815. shadowBlur: 4,
  816. },
  817. lineStyle: {
  818. color: '#69c0ff',
  819. width: 2,
  820. },
  821. // data: [60, 50, 80, 80, 90, 55, 40, 60, 50, 80, 90, 55, 40, 60, 50, 90, 55, 40],
  822. data: c1[0],
  823. },
  824. {
  825. name: '全员劳动生产率同比',
  826. yAxisIndex: 1,
  827. type: 'line',
  828. itemStyle: {
  829. normal: {
  830. color: '#B889EA',
  831. },
  832. },
  833. markLine: {
  834. data: [
  835. {
  836. name: '省属企业平均水平',
  837. yAxis: 50.13,
  838. lineStyle: {
  839. color: '#fff',
  840. },
  841. label: {
  842. formatter: '{b}',
  843. position: 'middle',
  844. fontSize: 16,
  845. color: '#fff',
  846. },
  847. },
  848. {
  849. name: '',
  850. yAxis: 0,
  851. lineStyle: {
  852. color: '#fff',
  853. },
  854. label: {
  855. formatter: '{b}',
  856. position: 'end',
  857. fontSize: 16,
  858. color: '#fff',
  859. },
  860. },
  861. {
  862. name: '央企平均水平',
  863. yAxis: 69.4,
  864. lineStyle: {
  865. type: 'dashed',
  866. color: '#fff',
  867. },
  868. label: {
  869. formatter: '{b}',
  870. position: 'end',
  871. color: '#fff',
  872. fontSize: 16,
  873. },
  874. },
  875. ],
  876. label: {
  877. distance: [20, 8],
  878. },
  879. },
  880. // data: [50, 40, 60, 20, 45, 30, 60, 100, 45, 40, 50, 20, 60, 80, 45, 70, 50, 40],
  881. data: c1[1],
  882. },
  883. ],
  884. }
  885. option.title.text = '当前各省属企业全员劳动生产率'
  886. option.legend.data = ['全员劳动生产率同比', '全员劳动生产率(万/人)']
  887. option.legend.show = true
  888. option.grid.right = '15%'
  889. option.yAxis.push({
  890. type: 'value',
  891. axisLine: {
  892. show: false,
  893. },
  894. splitLine: {
  895. show: false,
  896. },
  897. axisLabel: {
  898. show: true,
  899. formatter: '{value} %',
  900. textStyle: {
  901. color: 'rgba(250,250,250,0.6)',
  902. },
  903. },
  904. })
  905. myChart.setOption(option)
  906. },
  907. initChartC2 () {
  908. let myChart = echarts.init(this.$refs['echartC2'])
  909. let option = {
  910. ..._.cloneDeep(this.commonOption),
  911. series: [
  912. {
  913. name: '人工成本利润同比',
  914. type: 'line',
  915. yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  916. smooth: true, //平滑曲线显示
  917. showAllSymbol: true, //显示所有图形。
  918. symbol: 'circle', //标记的图形为实心圆
  919. symbolSize: 8, //标记的大小
  920. smooth: false,
  921. itemStyle: {
  922. //折线拐点标志的样式
  923. color: '#B889EA',
  924. borderColor: '#B889EA',
  925. width: 2,
  926. shadowColor: '#B889EA',
  927. shadowBlur: 4,
  928. },
  929. lineStyle: {
  930. color: '#B889EA',
  931. width: 2,
  932. },
  933. // data: [60, 50, 80, 80, 90, 55, 40, 60, 50, 80, 90, 55, 40, 60, 50, 90, 55, 40],
  934. data: c2[0],
  935. markLine: {
  936. data: [
  937. {
  938. name: '省属企业平均水平',
  939. yAxis: 67.09,
  940. lineStyle: {
  941. color: '#fff',
  942. },
  943. label: {
  944. formatter: '{b}',
  945. position: 'end',
  946. color: '#fff',
  947. },
  948. },
  949. {
  950. name: '央企平均水平',
  951. yAxis: 81,
  952. lineStyle: {
  953. color: '#fff',
  954. },
  955. label: {
  956. formatter: '{b}',
  957. position: 'middle',
  958. color: '#fff',
  959. },
  960. },
  961. ],
  962. label: {
  963. distance: [20, 8],
  964. },
  965. },
  966. },
  967. {
  968. name: '人工成本利润率',
  969. type: 'bar',
  970. barWidth: 15,
  971. itemStyle: {
  972. normal: {
  973. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  974. {
  975. offset: 0,
  976. color: '#69c0ff',
  977. },
  978. {
  979. offset: 1,
  980. color: '#082550',
  981. },
  982. ]),
  983. },
  984. },
  985. itemStyle: {
  986. color: params => {
  987. if( params.value < 0 && c2[0][params.dataIndex] < 0) {
  988. return 'red'
  989. } else if(c2[0][params.dataIndex] < 0) {
  990. return 'yellow'
  991. } else {
  992. return '#69c0ff'
  993. }
  994. },
  995. },
  996. data: c2[1]
  997. },
  998. ],
  999. }
  1000. option.title.text = '人工成本利润率'
  1001. option.legend.data = ['人工成本利润同比', '人工成本利润率']
  1002. option.legend.show = true
  1003. option.grid.right = '15%'
  1004. option.yAxis[0].axisLabel.formatter = '{value} %',
  1005. option.yAxis.push({
  1006. splitLine: {
  1007. show: false,
  1008. },
  1009. axisLine: {
  1010. show: false,
  1011. },
  1012. })
  1013. myChart.setOption(option)
  1014. },
  1015. // 右侧图表---------------------------------------------开始
  1016. initChartR1 () {
  1017. let myChart = echarts.init(this.$refs['echartR1'])
  1018. let commonOptions = this.commonOption
  1019. commonOptions.yAxis[0].splitNumber = 2
  1020. let dataTemp = []
  1021. let dataTemp2 = []
  1022. dataR1[0].forEach(item => {
  1023. dataTemp.push(item+1);
  1024. });
  1025. dataR1[1].forEach(item => {
  1026. dataTemp2.push(item+1);
  1027. });
  1028. let option = {
  1029. ..._.cloneDeep(commonOptions),
  1030. series: [
  1031. {
  1032. name: '招聘需求公告次数',
  1033. type: 'bar',
  1034. barWidth: 15,
  1035. itemStyle: {
  1036. normal: {
  1037. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1038. {
  1039. offset: 0,
  1040. color: '#69c0ff',
  1041. },
  1042. {
  1043. offset: 1,
  1044. color: '#082550',
  1045. },
  1046. ]),
  1047. },
  1048. },
  1049. data: dataTemp,
  1050. },
  1051. {
  1052. name: '招聘需求公告累计招聘人次',
  1053. type: 'bar',
  1054. barWidth: 15,
  1055. itemStyle: {
  1056. normal: {
  1057. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1058. {
  1059. offset: 0,
  1060. color: '#43ede3',
  1061. },
  1062. {
  1063. offset: 1,
  1064. color: '#082550',
  1065. },
  1066. ]),
  1067. },
  1068. },
  1069. data: dataTemp2,
  1070. },
  1071. ],
  1072. }
  1073. option.title.text = '当前各省属企业招聘需求公示人次'
  1074. option.legend.data = ['招聘需求公告次数', '招聘需求公告累计招聘人次']
  1075. option.legend.show = true
  1076. option.tooltip.formatter = function(value){
  1077. return value[0].axisValue+':'+ (value[0].value -1)+'<br>'+
  1078. value[1].axisValue+':'+ (value[1].value-1)
  1079. }
  1080. option.yAxis[0] = {
  1081. type: 'log',
  1082. min: 1,
  1083. logBase: 10,
  1084. axisLine: {
  1085. show: false,
  1086. },
  1087. splitLine: {
  1088. show: false,
  1089. },
  1090. axisLabel: {
  1091. show: true,
  1092. formatter: function(value) {
  1093. return value === 1 ? 0 : value
  1094. },
  1095. textStyle: {
  1096. color: 'rgba(250,250,250,0.6)',
  1097. },
  1098. },
  1099. }
  1100. myChart.setOption(option)
  1101. },
  1102. initChartR2 () {
  1103. let myChart = echarts.init(this.$refs['echartR2'])
  1104. let commonOptions = this.commonOption
  1105. commonOptions.yAxis[0].splitNumber = 2
  1106. let option = {
  1107. ..._.cloneDeep(commonOptions),
  1108. series: [
  1109. {
  1110. name: '录用结果公示次数',
  1111. type: 'bar',
  1112. barWidth: 15,
  1113. itemStyle: {
  1114. normal: {
  1115. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1116. {
  1117. offset: 0,
  1118. color: '#69c0ff',
  1119. },
  1120. {
  1121. offset: 1,
  1122. color: '#082550',
  1123. },
  1124. ]),
  1125. },
  1126. },
  1127. data: dataR2[0],
  1128. },
  1129. {
  1130. name: '录用结果公示累计公示人数',
  1131. type: 'bar',
  1132. barWidth: 15,
  1133. itemStyle: {
  1134. normal: {
  1135. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1136. {
  1137. offset: 0,
  1138. color: '#45DAD1',
  1139. },
  1140. {
  1141. offset: 1,
  1142. color: '#082550',
  1143. },
  1144. ]),
  1145. },
  1146. },
  1147. data: dataR2[1],
  1148. },
  1149. ],
  1150. }
  1151. option.title.text = '当前各省属企业录用结果公示人次'
  1152. option.legend.data = ['录用结果公示次数', '录用结果公示累计公示人数']
  1153. option.legend.show = true
  1154. option.yAxis[0] = {
  1155. type: 'log',
  1156. min: 1,
  1157. logBase: 10,
  1158. axisLine: {
  1159. show: false,
  1160. },
  1161. splitLine: {
  1162. show: false,
  1163. },
  1164. axisLabel: {
  1165. show: true,
  1166. formatter: function(value) {
  1167. return value === 1 ? 0 : value
  1168. },
  1169. textStyle: {
  1170. color: 'rgba(250,250,250,0.6)',
  1171. },
  1172. },
  1173. }
  1174. myChart.setOption(option)
  1175. },
  1176. initChartR3 () {
  1177. let myChart = echarts.init(this.$refs['echartR3'])
  1178. let commonOptions = this.commonOption
  1179. commonOptions.yAxis[0].splitNumber = 2
  1180. let option = {
  1181. ..._.cloneDeep(commonOptions),
  1182. series: [
  1183. {
  1184. name: '2022年利润(万)',
  1185. type: 'bar',
  1186. barWidth: 15,
  1187. itemStyle: {
  1188. normal: {
  1189. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1190. {
  1191. offset: 0,
  1192. color: '#69c0ff',
  1193. },
  1194. {
  1195. offset: 1,
  1196. color: '#082550',
  1197. },
  1198. ]),
  1199. },
  1200. },
  1201. data: dataR3[0],
  1202. },
  1203. {
  1204. name: '2022年累计招聘数',
  1205. type: 'bar',
  1206. barWidth: 15,
  1207. itemStyle: {
  1208. normal: {
  1209. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1210. {
  1211. offset: 0,
  1212. color: '#45DAD1',
  1213. },
  1214. {
  1215. offset: 1,
  1216. color: '#082550',
  1217. },
  1218. ]),
  1219. },
  1220. },
  1221. data: dataR3[1],
  1222. },
  1223. ],
  1224. }
  1225. option.title.text = '各省属企业年利润与当年累计招聘人数'
  1226. option.legend.data = ['2022年利润(万)', '2022年累计招聘数']
  1227. option.legend.show = true
  1228. option.yAxis[0] = {
  1229. type: 'log',
  1230. min: 1,
  1231. logBase: 10,
  1232. axisLine: {
  1233. show: false,
  1234. },
  1235. splitLine: {
  1236. show: false,
  1237. },
  1238. axisLabel: {
  1239. show: true,
  1240. formatter: function(value) {
  1241. return value === 1 ? 0 : value
  1242. },
  1243. textStyle: {
  1244. color: 'rgba(250,250,250,0.6)',
  1245. },
  1246. },
  1247. }
  1248. myChart.setOption(option)
  1249. },
  1250. initChartR4 () {
  1251. let myChart = echarts.init(this.$refs['echartR4'])
  1252. let commonOptions = this.commonOption
  1253. commonOptions.yAxis[0].splitNumber = 2
  1254. let option = {
  1255. ..._.cloneDeep(commonOptions),
  1256. series: [
  1257. {
  1258. name: '2022年退出人数',
  1259. type: 'bar',
  1260. barWidth: 15,
  1261. itemStyle: {
  1262. normal: {
  1263. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1264. {
  1265. offset: 0,
  1266. color: '#69c0ff',
  1267. },
  1268. {
  1269. offset: 1,
  1270. color: '#082550',
  1271. },
  1272. ]),
  1273. },
  1274. },
  1275. data: dataR4[0],
  1276. },
  1277. {
  1278. name: '2022年累计招聘人数',
  1279. type: 'bar',
  1280. barWidth: 15,
  1281. itemStyle: {
  1282. normal: {
  1283. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1284. {
  1285. offset: 0,
  1286. color: '#45DAD1',
  1287. },
  1288. {
  1289. offset: 1,
  1290. color: '#082550',
  1291. },
  1292. ]),
  1293. },
  1294. },
  1295. data: dataR4[1],
  1296. },
  1297. ],
  1298. }
  1299. option.title.text = '各省属企业"退二进一"完成情况'
  1300. option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
  1301. option.legend.show = true
  1302. option.yAxis[0] = {
  1303. type: 'log',
  1304. min: 1,
  1305. logBase: 10,
  1306. axisLine: {
  1307. show: false,
  1308. },
  1309. splitLine: {
  1310. show: false,
  1311. },
  1312. axisLabel: {
  1313. show: true,
  1314. formatter: function(value) {
  1315. return value === 1 ? 0 : value
  1316. },
  1317. textStyle: {
  1318. color: 'rgba(250,250,250,0.6)',
  1319. },
  1320. },
  1321. }
  1322. myChart.setOption(option)
  1323. },
  1324. initChartR5 () {
  1325. let myChart = echarts.init(this.$refs['echartR5'])
  1326. let option = {
  1327. ..._.cloneDeep(this.commonOption),
  1328. series: [
  1329. {
  1330. name: '去年同期在岗职工平均薪酬',
  1331. type: 'bar',
  1332. barWidth: 15,
  1333. itemStyle: {
  1334. normal: {
  1335. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1336. {
  1337. offset: 0,
  1338. color: '#6682F5',
  1339. },
  1340. {
  1341. offset: 1,
  1342. color: '#082550',
  1343. },
  1344. ]),
  1345. },
  1346. },
  1347. data: fjxdataL1[0],
  1348. },
  1349. {
  1350. name: '在岗职工平均薪酬',
  1351. type: 'bar',
  1352. barWidth: 15,
  1353. itemStyle: {
  1354. normal: {
  1355. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1356. {
  1357. offset: 0,
  1358. color: '#69c0ff',
  1359. },
  1360. {
  1361. offset: 1,
  1362. color: '#082550',
  1363. },
  1364. ]),
  1365. },
  1366. },
  1367. data: fjxdataL1[1],
  1368. },
  1369. ],
  1370. }
  1371. option.title.text = '各省属企业在岗职工平均薪酬'
  1372. option.legend.data = ['去年同期在岗职工平均薪酬', '在岗职工平均薪酬']
  1373. option.legend.show = true
  1374. option.yAxis.push({
  1375. splitLine: {
  1376. show: false,
  1377. },
  1378. axisLine: {
  1379. show: false,
  1380. },
  1381. })
  1382. myChart.setOption(option)
  1383. },
  1384. initChartR6 () {
  1385. let myChart = echarts.init(this.$refs['echartR6'])
  1386. let option = {
  1387. ..._.cloneDeep(this.commonOption),
  1388. series: [
  1389. {
  1390. name: '2022年利润累计涨幅率',
  1391. type: 'line',
  1392. smooth: true, //平滑曲线显示
  1393. showAllSymbol: true, //显示所有图形。
  1394. symbol: 'circle', //标记的图形为实心圆
  1395. symbolSize: 8, //标记的大小
  1396. smooth: false,
  1397. itemStyle: {
  1398. //折线拐点标志的样式
  1399. color: '#B889EA',
  1400. borderColor: '#B889EA',
  1401. width: 2,
  1402. shadowColor: '#B889EA',
  1403. shadowBlur: 4,
  1404. },
  1405. lineStyle: {
  1406. color: '#B889EA',
  1407. width: 2,
  1408. },
  1409. data: fjxdataL2[0],
  1410. },
  1411. {
  1412. name: '2022年薪酬累计涨幅率',
  1413. type: 'line',
  1414. barWidth: 15,
  1415. itemStyle: {
  1416. normal: {
  1417. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1418. {
  1419. offset: 0,
  1420. color: '#69C0FF',
  1421. },
  1422. {
  1423. offset: 1,
  1424. color: '#082550',
  1425. },
  1426. ]),
  1427. },
  1428. },
  1429. data: fjxdataL2[1],
  1430. },
  1431. ],
  1432. }
  1433. option.title.text = '各省属企业月利润与月薪酬变动情况'
  1434. option.legend.data = ['2022年利润累计涨幅率', '2022年薪酬累计涨幅率']
  1435. option.yAxis.push({
  1436. splitLine: {
  1437. show: false,
  1438. },
  1439. axisLine: {
  1440. show: false,
  1441. },
  1442. })
  1443. myChart.setOption(option)
  1444. },
  1445. initChartR7 () {
  1446. let myChart = echarts.init(this.$refs['echartR7'])
  1447. let option = {
  1448. ..._.cloneDeep(this.commonOption),
  1449. series: [
  1450. {
  1451. name: '全员绩效考核完成率',
  1452. type: 'bar',
  1453. barWidth: 15,
  1454. itemStyle: {
  1455. normal: {
  1456. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1457. {
  1458. offset: 0,
  1459. color: '#B889EA',
  1460. },
  1461. {
  1462. offset: 1,
  1463. color: '#082550',
  1464. },
  1465. ]),
  1466. },
  1467. },
  1468. data: fjxdataL3[0],
  1469. },
  1470. ],
  1471. }
  1472. option.title.text = '各省属企业全员绩效考核'
  1473. // option.legend.data = ['劳动合同签约完成率', '目标值']
  1474. option.yAxis.push({
  1475. splitLine: {
  1476. show: false,
  1477. },
  1478. axisLine: {
  1479. show: false,
  1480. },
  1481. })
  1482. myChart.setOption(option)
  1483. },
  1484. initChartR8 () {
  1485. let myChart = echarts.init(this.$refs['echartR8'])
  1486. let option = {
  1487. ..._.cloneDeep(this.commonOption),
  1488. series: [
  1489. {
  1490. name: '任期制考核完成率',
  1491. type: 'bar',
  1492. barWidth: 15,
  1493. itemStyle: {
  1494. normal: {
  1495. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  1496. {
  1497. offset: 0,
  1498. color: '#43ede3',
  1499. },
  1500. {
  1501. offset: 1,
  1502. color: '#082550',
  1503. },
  1504. ]),
  1505. },
  1506. },
  1507. data: fjxdataL4[0],
  1508. },
  1509. ],
  1510. }
  1511. option.title.text = '各省属企业任期制考核'
  1512. option.yAxis.push({
  1513. splitLine: {
  1514. show: false,
  1515. },
  1516. axisLine: {
  1517. show: false,
  1518. },
  1519. })
  1520. myChart.setOption(option)
  1521. },
  1522. },
  1523. })