Browse Source

新增表规则

zhbyyy 2 years ago
parent
commit
95e1724cf0

+ 3 - 3
manpowerPort/index2JNKG.html

@@ -148,16 +148,16 @@
               <div class="box-center">
                 <div class="t">
                   <p>{{centerData.changeInfo[0].value1}}<span>%</span></p>
-                  <p>部机构压缩率</p>
+                  <p>部机构压缩率</p>
                 </div>
                 <div class="flex">
                   <div>
                     <p style="color:#FBE139">{{numFormat(centerData.changeInfo[0].value2)}}</p>
-                    <p>改革前部机构平均数</p>
+                    <p>改革前部机构平均数</p>
                   </div>
                   <div>
                     <p style="color:#17AC76">{{numFormat(centerData.changeInfo[0].value3)}}</p>
-                    <p>改革后部机构平均数
+                    <p>改革后部机构平均数
                     </p>
                   </div>
                 </div>

+ 3 - 3
manpowerPort/index3MT.html

@@ -147,16 +147,16 @@
               <div class="box-center">
                 <div class="t">
                   <p>{{centerData.changeInfo[0].value1}}<span>%</span></p>
-                  <p>部机构压缩率</p>
+                  <p>部机构压缩率</p>
                 </div>
                 <div class="flex">
                   <div>
                     <p style="color:#FBE139">{{numFormat(centerData.changeInfo[0].value2)}}</p>
-                    <p>改革前部机构平均数</p>
+                    <p>改革前部机构平均数</p>
                   </div>
                   <div>
                     <p style="color:#17AC76">{{numFormat(centerData.changeInfo[0].value3)}}</p>
-                    <p>改革后部机构平均数
+                    <p>改革后部机构平均数
                     </p>
                   </div>
                 </div>

+ 3 - 3
manpowerPort/index4SY.html

@@ -150,16 +150,16 @@
               <div class="box-center">
                 <div class="t">
                   <p>{{centerData.changeInfo[0].value1}}<span>%</span></p>
-                  <p>部机构压缩率</p>
+                  <p>部机构压缩率</p>
                 </div>
                 <div class="flex">
                   <div>
                     <p style="color:#FBE139">{{numFormat(centerData.changeInfo[0].value2)}}</p>
-                    <p>改革前部机构平均数</p>
+                    <p>改革前部机构平均数</p>
                   </div>
                   <div>
                     <p style="color:#17AC76">numFormat({{centerData.changeInfo[0].value3}})</p>
-                    <p>改革后部机构平均数
+                    <p>改革后部机构平均数
                     </p>
                   </div>
                 </div>

+ 182 - 167
manpowerPort/js/index.js

@@ -5,13 +5,13 @@ let app = new Vue({
   data () {
     return {
       // paymentShow:false, // 定薪酬弹窗
-      echartC1:{
-        national:'',
-        province:''
+      echartC1: {
+        national: '',
+        province: ''
       },
-      echartC2:{
-        national:'',
-        province:''
+      echartC2: {
+        national: '',
+        province: ''
       },
       app_token: '',
       twinkle7: [],
@@ -33,7 +33,7 @@ let app = new Vue({
       },
       centerData: '',
       storageRecordConfig: {
-        header: ['', '时间', '所属集团', '工作情况'],
+        header: ['', '时间', '公司名称', '工作情况'],
         headerBGC: '#05507b33',
         oddRowBGC: '#69c0ff0f',
         // waitTime: '50000',
@@ -244,27 +244,6 @@ let app = new Vue({
       this.time = formatDate()
     }, 1000)
     this.centerData = data
-    // // 左侧图表
-    // this.initChartL1()
-    // this.initChartL2()
-    // this.initChartL3()
-    // this.initChartL4()
-    // this.initChartL5()
-    // this.initChartL6()
-    // this.initChartL7()
-    // this.initChartL8()
-    // // 中间图表
-    // this.initChartC1()
-    // this.initChartC2()
-    // // 右侧图表
-    // this.initChartR1()
-    // this.initChartR2()
-    // this.initChartR3()
-    // this.initChartR4()
-    // this.initChartR5()
-    // this.initChartR6()
-    // this.initChartR7()
-    // this.initChartR8()
   },
   beforeDestroy () {
     if (this.timer) {
@@ -407,9 +386,11 @@ let app = new Vue({
           // 各省属企业共享服务中心/事业部数
           dataL2[0] = []
           dataL2[1] = []
+          dataL2[2] = []
           res.orgData.area1.card2.forEach(item => {
             dataL2[1].push(item['ZBPZ0045'])
             dataL2[0].push(item['ZBPZ0024'])
+            dataL2[2].push(item['ZBPZ0044'])
           })
 
           // 定职数
@@ -447,6 +428,7 @@ let app = new Vue({
           // 各省属企业总部员额数
           dataL6[0] = []
           dataL6[1] = []
+          dataL6[2] = []
           res.orgData.area3.card2.forEach(item => {
             dataL6[0].push(item['ZBPZ0033'])
             dataL6[1].push(item['ZBPZ0053'])
@@ -677,7 +659,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '部机构数核定上限',
+            name: '部机构数核定上限',
             type: 'line',
             // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             smooth: true, //平滑曲线显示
@@ -700,7 +682,7 @@ let app = new Vue({
             data: dataL1[2],
           },
           {
-            name: '六定改革前部机构数',
+            name: '六定改革前部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -720,21 +702,25 @@ let app = new Vue({
             data: dataL1[0],
           },
           {
-            name: '当前各省属企业部机构数',
+            name: '当前各省属企业部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#69c0ff',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
             data: dataL1[1],
@@ -746,8 +732,8 @@ let app = new Vue({
         // },
       }
 
-      option.title.text = '各省属企业部机构数'
-      option.legend.data = ['六定改革前总部机构数', '当前各省属企业总部机构数', '总部机构数核定上限']
+      option.title.text = '各省属企业部机构数'
+      option.legend.data = ['六定改革前本部机构数', '当前各省属企业本部机构数', '本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -765,7 +751,50 @@ let app = new Vue({
         color: ['#69c0ff'],
         series: [
           {
-            name: '当前共享服务中心/事业部数',
+            name: '当前本部共享服务中心/事业部数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '华阳新材') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              color: params => {
+                if (params.value > dataL2[1][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL2[0],
+          },
+          {
+            name: '六定改革前本部共享服务中心/事业部核定上限',
             type: 'bar',
             barWidth: 15,
             label: {
@@ -814,10 +843,10 @@ let app = new Vue({
                 }
               },
             },
-            data: dataL2[0],
+            data: dataL2[2],
           },
           {
-            name: '共享服务中心/事业部核定上限',
+            name: '本部共享服务中心/事业部核定上限',
             type: 'line',
             // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             smooth: true, //平滑曲线显示
@@ -860,8 +889,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各省属企业共享服务中心/事业部数'
-      option.legend.data = ['当前共享服务中心/事业部数', '共享服务中心/事业部核定上限']
+      option.title.text = '各省属企业本部共享服务中心/事业部数'
+      option.legend.data = ['当前本部共享服务中心/事业部数', '本部共享服务中心/事业部核定上限', '六定改革前本部共享服务中心/事业部核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -994,7 +1023,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '六定改革前部中层管理人数',
+            name: '六定改革前部中层管理人数',
             type: 'bar',
             barWidth: 15,
             label: {
@@ -1033,7 +1062,7 @@ let app = new Vue({
             data: dataL4[0],
           },
           {
-            name: '当前部中层管理人数',
+            name: '当前部中层管理人数',
             type: 'bar',
             barWidth: 15,
             label: {
@@ -1057,22 +1086,28 @@ let app = new Vue({
             },
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#6480f3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataL4[1],
           },
           {
-            name: '总部中层管理人数核定上限',
+            name: '部中层管理人数核定上限',
             type: 'line',
             yAxisIndex: 1,
             smooth: true, //平滑曲线显示
@@ -1115,8 +1150,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各省属企业部中层管理人数'
-      option.legend.data = ['六定改革前总部中层管理人数', '当前总部中层管理人数', '总部中层管理人数核定上限']
+      option.title.text = '各省属企业部中层管理人数'
+      option.legend.data = ['六定改革前本部中层管理人数', '当前本部中层管理人数', '本部中层管理人数核定上限']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -1159,22 +1194,28 @@ let app = new Vue({
             },
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#69c0ff',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.dataIndex > 0 && Math.abs(params.value - dataL5[0][params.dataIndex - 1]) > 0.1) {
+                    return 'yellow'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#69c0ff',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                }
               },
             },
             data: dataL5[0],
           },
           {
-            name: '去年同期人数变化率',
+            name: '总人数同比变化',
             type: 'line',
             yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             smooth: true, //平滑曲线显示
@@ -1219,7 +1260,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各省属企业总人数'
-      option.legend.data = ['各省属企业总人数', '去年同期人数变化率']
+      option.legend.data = ['各省属企业总人数', '总人数同比变化']
       option.legend.show = true
       option.yAxis[0] = {
         type: 'value',
@@ -1271,7 +1312,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '部员额数',
+            name: '部员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1292,7 +1333,28 @@ let app = new Vue({
             data: dataL6[0],
           },
           {
-            name: '总部员额数核定上限',
+            name: '六定改革前本部员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '本部员额数核定上限',
             type: 'line',
             yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             smooth: true, //平滑曲线显示
@@ -1316,8 +1378,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各省属企业部员额数'
-      option.legend.data = ['总部员额数', '总部员额数核定上限']
+      option.title.text = '各省属企业部员额数'
+      option.legend.data = ['本部员额数', '六定改革前本部员额数', '本部员额数核定上限']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -1368,7 +1430,10 @@ let app = new Vue({
               color: params => {
                 if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL7[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -1379,7 +1444,6 @@ let app = new Vue({
             },
             data: dataL7[0],
           },
-
           {
             name: '劳动生产率同比变化',
             type: 'line',
@@ -1513,7 +1577,10 @@ let app = new Vue({
               color: params => {
                 if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL8[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -1657,8 +1724,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && c1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1673,52 +1740,6 @@ let app = new Vue({
                 }
               },
             },
-
-            // markPoint:{
-            //   symbolSize: 1,
-            //   symbolOffset: [0, '50%'],
-            //   label:{
-            //     show: true,
-            //     fontSize:18,
-            //     color: '#fff',
-            //     backgroundColor: 'rgba(38,48,59,0.6)',
-            //     borderColor: '#aaa',
-            //     borderWidth: 1,
-            //     borderRadius: 4,
-            //     padding: [4, 10],
-            //     lineHeight: 26,
-            //     position: 'top',
-            //     distance: 20,
-            //     // formatter: data =>{
-            //     //   console.log('11',data)
-            //     // },
-            //     formatter: [
-            //       '{a|这段文本采用样式a}',
-            //       '这段用默认样式{x|这段用样式x}'
-            //     ].join('\n'),
-            //     rich: {
-            //       a: {
-            //           color: 'yellow',
-            //           lineHeight: 10
-            //       },
-            //       b: {
-            //           // backgroundColor: {
-            //           //     image: './images/alert.png'
-            //           // },
-            //           height: 40
-            //       },
-            //       x: {
-            //           fontSize: 18,
-            //           borderColor: '#449933',
-            //           borderRadius: 4
-            //       },
-            //     }
-            //   },
-            //   // itemStyle: {
-            //   //   color: 'rgba(38,48,59,0.6)'
-            //   // },
-            //   data:[{value:'117.48', xAxis: '国际能源', yAxis: 127 },{value:'138.83', xAxis: '汾酒集团', yAxis: 148 }]
-            // },
             markLine: {
               data: [
                 {
@@ -1729,26 +1750,13 @@ let app = new Vue({
                   },
                   label: {
                     formatter: '{b}',
-                    position: 'end',
+                    position: 'middle',
                     padding: [20, 100, 10, 10],
                     fontSize: 16,
                     color: '#fff',
 
                   },
                 },
-                // {
-                //   name: '',
-                //   yAxis: 0,
-                //   lineStyle: {
-                //     color: '#fff',
-                //   },
-                //   label: {
-                //     formatter: '{b}',
-                //     position: 'end',
-                //     fontSize: 16,
-                //     color: '#fff',
-                //   },
-                // },
                 {
                   name: '央企平均水平',
                   yAxis: this.echartC1.province,
@@ -1811,13 +1819,11 @@ let app = new Vue({
               }
             },
 
-            // data: [50, 40, 60, 20, 45, 30, 60, 100, 45, 40, 50, 20, 60, 80, 45, 70, 50, 40],
             data: c1[1],
           },
         ],
       }
       option.title.text = '各省属企业全员劳动生产率'
-      // option.legend.data = [ '全员劳动生产率(万/人)','全员劳动生产率同比']
       option.legend.show = true
       option.grid.right = '15%'
       option.tooltip.formatter = '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
@@ -1911,8 +1917,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && c2[0][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -2229,7 +2235,7 @@ let app = new Vue({
             data: dataR3[0],
           },
           {
-            name: '2022年累计招聘数',
+            name: '2022年招聘人数和2023年当前累计招聘之和',
             type: 'bar',
             barWidth: 15,
             yAxisIndex: 1,
@@ -2289,7 +2295,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各省属企业年利润与当年累计招聘人数'
-      option.legend.data = ['2022年利润(万)', '2022年累计招聘数']
+      option.legend.data = ['2022年利润(万)', '2022年招聘人数和2023年当前累计招聘之和']
       option.legend.show = true
       option.yAxis[0] = {
         max: function (value) {
@@ -2366,7 +2372,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -2386,21 +2392,30 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
@@ -2408,7 +2423,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各省属企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
       option.yAxis[0] = {
         //type: 'log',
@@ -2523,7 +2538,7 @@ let app = new Vue({
         color: ['#69c0ff'],
         series: [
           {
-            name: '2022年利润累计涨幅率',
+            name: '月利润总额同期变化率',
             type: 'line',
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
@@ -2566,7 +2581,7 @@ let app = new Vue({
           },
 
           {
-            name: '2022年薪酬累计涨幅率',
+            name: '月薪酬总额同期变化率',
             type: 'line',
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
@@ -2640,7 +2655,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各省属企业利润与薪酬变动情况'
-      option.legend.data = ['2022年利润累计涨幅率', '2022年薪酬累计涨幅率']
+      option.legend.data = ['月利润总额同期变化率', '月薪酬总额同期变化率']
       option.tooltip.formatter = '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
       option.yAxis[0].axisLabel.formatter = '{value} %'
       myChart.setOption(option)

+ 277 - 95
manpowerPort/js/index2.js

@@ -4,6 +4,14 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
+      echartC1:{
+        national:'',
+        province:''
+      },
+      echartC2:{
+        national:'',
+        province:''
+      },
       titleName: '',
       access_token: '',
       orgNumber: '', // 上级的id
@@ -395,6 +403,10 @@ let app = new Vue({
             dataC2[1].push(item['ZBPZ0040'])
             dataC2[0].push(item['ZBPZ0041'])
           })
+          this.echartC1.national = res.orgData.area9.card1[0].ZBPZ0097
+          this.echartC1.province = res.orgData.area9.card1[0].ZBPZ0096
+          this.echartC2.national = res.orgData.area9.card2[0].ZBPZ0099
+          this.echartC2.province = res.orgData.area9.card2[0].ZBPZ0098
              // 数据整理
           dataL7[0].forEach((item, index) => {
             if (dataL7[1][index] < 0 && dataL7[0][index] > 0) {
@@ -506,7 +518,30 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前各二级企业本部机构数',
+            name: '六个二级企业本部机构数核定上限',
+            type: 'line',
+            // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL1[2],
+          },
+          {
+            name: '六定改革前各二级企业本部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -514,7 +549,7 @@ let app = new Vue({
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#43ede3',
                   },
                   {
                     offset: 1,
@@ -525,10 +560,39 @@ let app = new Vue({
             },
             data: dataL1[0],
           },
+          {
+            name: '当前各二级企业本部机构数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL1[1],
+          },
         ],
+        // tooltip: {
+        //   trigger: 'item',
+        //   position: 'top'
+        // },
       }
-      option.title.text = '各二级企业本部机构数'
-      option.legend.data = ['当前各二级企业本部机构数']
+
+      option.title.text = '本部机构数'
+      option.legend.data = ['六定改革前各二级企业本部机构数', '当前各二级企业本部机构数', '六个二级企业本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -624,32 +688,28 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前管理人员数',
+            name: '六定改革前各二级企业本部中层管理人数',
             type: 'bar',
-            barWidth: 12,
-            smooth: true, //平滑曲线显示
-            showAllSymbol: true, //显示所有图形。
-            symbol: 'circle', //标记的图形为实心圆
-            symbolSize: 8, //标记的大小
-            smooth: false,
-            itemStyle: {
-              //折线拐点标志的样式
-              color: '#B889EA',
-              borderColor: '#B889EA',
-              width: 2,
-              shadowColor: '#B889EA',
-              shadowBlur: 4,
-            },
-            lineStyle: {
-              color: '#B889EA',
-              width: 2,
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
             },
-            data: dataL4[0]
-          },
-          {
-            name: '管理人员数占总人数比值',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -664,51 +724,106 @@ let app = new Vue({
                 ]),
               },
             },
-            data: dataL4[1],
-            markLine: {
-              data: [
-                {
-                  name: '管理人员比值核定上限',
-                  yAxis: 15,
-                  lineStyle: {
-                    color: '#fff',
-                  },
-                  label: {
-                    formatter: '{b}',
-                    position: 'middle',
-                    color: '#fff',
-                  },
+            data: dataL4[0],
+          },
+          {
+            name: '当前各二级企业本部中层管理人数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#6480f3',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
                 }
-              ],
-              label: {
-                distance: [20, 8],
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
+            data: dataL4[1],
+          },
+          {
+            name: '各二级企业本部中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#fbe138',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL4[2],
           },
         ],
       }
-      option.title.text = '各二级企业管理人员数'
-      option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
+      option.title.text = '各二级企业本部中层管理人数'
+      option.legend.data = ['六定改革前各二级企业本部中层管理人数', '当前各二级企业本部中层管理人数', '各二级企业本部中层管理人数核定上限']
       option.legend.show = true
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
-      }
       option.yAxis.push({
-        type: 'value',
-        max: 20,
-        axisLine: {
-          show: false,
-        },
         splitLine: {
           show: false,
         },
-        axisLabel: {
-          show: true,
-          formatter: '{value} %',
-          textStyle: {
-            color: 'rgba(250,250,250,0.6)',
-          },
+        axisLine: {
+          show: false,
         },
       })
       myChart.setOption(option)
@@ -794,7 +909,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '本部员额数',
+            name: '当前各二级企业本部员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -814,17 +929,60 @@ let app = new Vue({
             },
             data: dataL6[0],
           },
+          {
+            name: '六定改革前各二级企业本部员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '各二级企业本部员额数核定上限值',
+            type: 'line',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL6[1],
+          },
         ],
       }
       option.title.text = '各二级企业本部员额数'
-      option.legend.data = ['本部员额数']
+      option.legend.data = ['当前各二级企业本部员额数', '六定改革前各二级企业本部员额数','各二级企业本部员额数核定上限值']
       option.legend.show = true
       option.yAxis.push({
-        type: 'value',
-        axisLine: {
+        splitLine: {
           show: false,
         },
-        splitLine: {
+        axisLine: {
           show: false,
         },
       })
@@ -1104,8 +1262,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1128,7 +1286,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 50.13,
+                  yAxis: this.echartC1.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1141,7 +1299,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 69.4,
+                  yAxis: this.echartC1.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1250,8 +1408,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1271,7 +1429,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 67.09,
+                  yAxis: this.echartC2.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1284,7 +1442,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 81,
+                  yAxis: this.echartC2.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1564,7 +1722,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1584,39 +1742,63 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
           },
         ],
       }
-      option.title.text = '各二级企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.title.text = '各省属企业"退二进一"完成情况'
+      option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
-      option.yAxis.push({
-        type: 'value',
-        splitLine: {
-          show: false,
-        },
+      option.yAxis[0] = {
+        //type: 'log',
+        //min: 1,
+        //logBase: 3,
         axisLine: {
           show: false,
         },
-      })
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: '#68b4dd66',
+            type: 'dashed',
+          },
+        },
+        axisLabel: {
+          show: true,
+          formatter: function (value) {
+            return value === 1 ? 0 : value
+          },
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+      }
       myChart.setOption(option)
     },
     initChartR5 () {

+ 440 - 230
manpowerPort/js/index2JNKG.js

@@ -4,6 +4,14 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
+      echartC1:{
+        national:'',
+        province:''
+      },
+      echartC2:{
+        national:'',
+        province:''
+      },
       titleName: '',
       access_token: '',
       orgNumber: '', // 上级的id
@@ -143,28 +151,28 @@ let app = new Vue({
     }
   },
   beforeMount () {
-    dataL7[0].forEach((item, index) => {
-      if (dataL7[1][index] < 0 && dataL7[0][index] > 0) {
-        let obj = { value: [companyList[index].name, dataL7[0][index]], symbolSize: 15 }
-        this.twinkle7.push(obj)
-      }
-    })
-    //  if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
-    dataL8[0].forEach((item, index) => {
-      if (dataL8[1][index] < 0 && dataL8[0][index] > 0) {
-        let obj = { value: [companyList[index].name, dataL8[0][index]], symbolSize: 15 }
-        this.twinkle8.push(obj)
-      }
-    })
-    // params.value > 0 && fjxdataL2[0][params.dataIndex] < 0
-    dataR6[0].forEach((item, index) => {
-      if (dataR6[1][index] > 0 && dataR6[0][index] < 0) {
-        let obj = { value: [companyList[index].name, dataR6[1][index]], symbolSize: 15 }
-        this.twinkleR6.push(obj)
-      }
-    })
+    // dataL7[0].forEach((item, index) => {
+    //   if (dataL7[1][index] < 0 && dataL7[0][index] > 0) {
+    //     let obj = { value: [companyList[index].name, dataL7[0][index]], symbolSize: 15 }
+    //     this.twinkle7.push(obj)
+    //   }
+    // })
+    // //  if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
+    // dataL8[0].forEach((item, index) => {
+    //   if (dataL8[1][index] < 0 && dataL8[0][index] > 0) {
+    //     let obj = { value: [companyList[index].name, dataL8[0][index]], symbolSize: 15 }
+    //     this.twinkle8.push(obj)
+    //   }
+    // })
+    // // params.value > 0 && fjxdataL2[0][params.dataIndex] < 0
+    // dataR6[0].forEach((item, index) => {
+    //   if (dataR6[1][index] > 0 && dataR6[0][index] < 0) {
+    //     let obj = { value: [companyList[index].name, dataR6[1][index]], symbolSize: 15 }
+    //     this.twinkleR6.push(obj)
+    //   }
+    // })
 
-    console.log(this.twinkleR6)
+    // console.log(this.twinkleR6)
   },
   mounted () {
     this.getUrlParams()
@@ -173,27 +181,6 @@ let app = new Vue({
       this.time = formatDate()
     }, 1000)
     this.centerData = data
-    // 左侧图表
-    // this.initChartL1()
-    // this.initChartL2()
-    // this.initChartL3()
-    // this.initChartL4()
-    // this.initChartL5()
-    // this.initChartL6()
-    // this.initChartL7()
-    // this.initChartL8()
-    // // 中间图表
-    // this.initChartC1()
-    // this.initChartC2()
-    // // 右侧图表
-    // this.initChartR1()
-    // this.initChartR2()
-    // this.initChartR3()
-    // this.initChartR4()
-    // this.initChartR5()
-    // this.initChartR6()
-    // this.initChartR7()
-    // this.initChartR8()
   },
   beforeDestroy () {
     if (this.timer) {
@@ -410,12 +397,12 @@ let app = new Vue({
             }
           })
           // params.value > 0 && fjxdataL2[0][params.dataIndex] < 0
-          fjxdataL2[0].forEach((item, index) => {
-            if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
-              let obj = { value: [companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
-              this.twinkleR6.push(obj)
-            }
-          })
+          // fjxdataL2[0].forEach((item, index) => {
+          //   if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
+          //     let obj = { value: [companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
+          //     this.twinkleR6.push(obj)
+          //   }
+          // })
           this.generateEcharts()
           resolve(1)
         })
@@ -506,7 +493,30 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前各二级企业本部机构数',
+            name: '六个二级企业本部机构数核定上限',
+            type: 'line',
+            // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL1[2],
+          },
+          {
+            name: '六定改革前各二级企业本部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -514,7 +524,7 @@ let app = new Vue({
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#43ede3',
                   },
                   {
                     offset: 1,
@@ -525,10 +535,39 @@ let app = new Vue({
             },
             data: dataL1[0],
           },
+          {
+            name: '当前各二级企业本部机构数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL1[1],
+          },
         ],
+        // tooltip: {
+        //   trigger: 'item',
+        //   position: 'top'
+        // },
       }
-      option.title.text = '各二级企业本部机构数'
-      option.legend.data = ['当前各二级企业本部机构数']
+
+      option.title.text = '本部机构数'
+      option.legend.data = ['六定改革前各二级企业本部机构数', '当前各二级企业本部机构数', '六个二级企业本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -584,7 +623,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前本部中层管理人数',
+            name: '当前各二级管理人员数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -603,30 +642,10 @@ let app = new Vue({
             },
             data: dataL3[0],
           },
-        ],
-      }
-      option.title.text = '各二级企业本部中层管理人数'
-      option.legend.data = ['当前本部中层管理人数']
-      option.yAxis.push({
-        type: 'value',
-        axisLine: {
-          show: false,
-        },
-        splitLine: {
-          show: false,
-        },
-      })
-      myChart.setOption(option)
-    },
-    initChartL4 () {
-      let myChart = echarts.init(this.$refs['echartL4'])
-      let option = {
-        ..._.cloneDeep(this.commonOption),
-        series: [
           {
-            name: '当前管理人员数',
-            type: 'bar',
-            barWidth: 12,
+            name: '各二级管理人员数占总人数比值',
+            type: 'line',
+            yAxisIndex: 1,
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
@@ -634,41 +653,20 @@ let app = new Vue({
             smooth: false,
             itemStyle: {
               //折线拐点标志的样式
-              color: '#B889EA',
-              borderColor: '#B889EA',
+              color: '#fbe138',
+              borderColor: '#fbe138',
               width: 2,
-              shadowColor: '#B889EA',
+              shadowColor: '#fbe138',
               shadowBlur: 4,
             },
             lineStyle: {
-              color: '#B889EA',
+              color: '#fbe138',
               width: 2,
             },
-            data: dataL4[0]
-          },
-          {
-            name: '管理人员数占总人数比值',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
-            itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#69c0ff',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
-              },
-            },
-            data: dataL4[1],
             markLine: {
               data: [
                 {
-                  name: '管理人员比值核定上限',
+                  name: '管理人员数占总人数的合理比值线',
                   yAxis: 15,
                   lineStyle: {
                     color: '#fff',
@@ -677,26 +675,47 @@ let app = new Vue({
                     formatter: '{b}',
                     position: 'middle',
                     color: '#fff',
+                    fontSize: 16,
                   },
-                }
+                },
               ],
               label: {
                 distance: [20, 8],
               },
             },
+            data: dataL3[1],
           },
         ],
       }
       option.title.text = '各二级企业管理人员数'
-      option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
-      option.legend.show = true
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
+      option.legend.data = ['当前各二级管理人员数', '各二级管理人员数占总人数比值']
+      option.yAxis[0] = {
+        type: 'log',
+        min: 1,
+        logBase: 10,
+        axisLine: {
+          show: false,
+        },
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: '#68b4dd66',
+            type: 'dashed',
+          },
+        },
+        axisLabel: {
+          show: true,
+          formatter: function (value) {
+            return value === 1 ? 0 : value
+          },
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
       }
       option.yAxis.push({
         type: 'value',
-        max: 20,
+        max: 15,
         axisLine: {
           show: false,
         },
@@ -711,23 +730,88 @@ let app = new Vue({
           },
         },
       })
+      option.tooltip.formatter = '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
       myChart.setOption(option)
     },
-    initChartL5 () {
-      let myChart = echarts.init(this.$refs['echartL5'])
+    initChartL4 () {
+      let myChart = echarts.init(this.$refs['echartL4'])
       let option = {
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '各二级企业总人数',
+            name: '六定改革前各二级中层管理人数',
             type: 'bar',
             barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
+              },
+            },
+            data: dataL4[0],
+          },
+          {
+            name: '当前各二级中层管理人数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#6480f3',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#6480f3',
                   },
                   {
                     offset: 1,
@@ -736,6 +820,94 @@ let app = new Vue({
                 ]),
               },
             },
+            data: dataL4[1],
+          },
+          {
+            name: '各二级中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#fbe138',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL4[2],
+          },
+        ],
+      }
+      option.title.text = '各二级企业本部中层管理人数'
+      option.legend.data = ['六定改革前各二级中层管理人数', '当前各二级中层管理人数', '各二级中层管理人数核定上限']
+      option.legend.show = true
+      option.yAxis.push({
+        splitLine: {
+          show: false,
+        },
+        axisLine: {
+          show: false,
+        },
+      })
+      myChart.setOption(option)
+    },
+    initChartL5 () {
+      let myChart = echarts.init(this.$refs['echartL5'])
+      let option = {
+        ..._.cloneDeep(this.commonOption),
+        series: [
+          {
+            name: '各二级企业总人数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.dataIndex > 0 && Math.abs(params.value - dataL5[0][params.dataIndex - 1]) > 0.1) {
+                    return 'yellow'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#69c0ff',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                }
+              },
+            },
             data: dataL5[0],
           },
           {
@@ -794,7 +966,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '本部员额数',
+            name: '各二级员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -814,17 +986,60 @@ let app = new Vue({
             },
             data: dataL6[0],
           },
+          {
+            name: '六定改革前各二级员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '各二级员额数核定上限',
+            type: 'line',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL6[1],
+          },
         ],
       }
       option.title.text = '各二级企业本部员额数'
-      option.legend.data = ['本部员额数']
+      option.legend.data = ['各二级员额数', '六定改革前各二级员额数','各二级员额数核定上限']
       option.legend.show = true
       option.yAxis.push({
-        type: 'value',
-        axisLine: {
+        splitLine: {
           show: false,
         },
-        splitLine: {
+        axisLine: {
           show: false,
         },
       })
@@ -848,7 +1063,10 @@ let app = new Vue({
               color: params => {
                 if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL7[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -863,7 +1081,7 @@ let app = new Vue({
             data: dataL7[0],
           },
           {
-            name: '全员劳动生产率同比变化',
+            name: '劳动生产率同比变化',
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
@@ -917,8 +1135,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '人数变化和全员劳动生产率变化分析'
-      option.legend.data = ['人数变化', '全员劳动生产率同比变化']
+      option.title.text = '人数变化和全员劳动生产率变化分析'
+      option.legend.data = ['人数变化', '劳动生产率同比变化']
       option.legend.show = true
       option.tooltip = {
         trigger: 'axis',
@@ -982,7 +1200,10 @@ let app = new Vue({
               color: params => {
                 if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL8[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -1037,7 +1258,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '人数变化和人工利润率变化分析'
+      option.title.text = '人数变化和人工成本利润率变化分析'
       option.legend.data = ['人数变化', '人工成本利润率同比变化']
       option.legend.show = true
       option.tooltip = {
@@ -1104,8 +1325,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1128,7 +1349,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 50.13,
+                  yAxis: this.echartC1.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1141,7 +1362,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 69.4,
+                  yAxis: this.echartC1.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1250,8 +1471,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1271,7 +1492,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 67.09,
+                  yAxis: this.echartC2.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1284,7 +1505,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 81,
+                  yAxis: this.echartC2.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1403,7 +1624,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各二级企业招聘需求公告人次情况'
+      option.title.text = '各二级企业招聘需求公示人次'
       option.legend.data = ['招聘需求公告次数', '招聘需求公告累计招聘人次']
       option.legend.show = true
       option.yAxis.push({
@@ -1509,7 +1730,7 @@ let app = new Vue({
             data: dataR3[0],
           },
           {
-            name: '2022年累计招聘数',
+            name: '2022年招聘人数和2023年当前累计招聘之和',
             yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             type: 'bar',
             barWidth: 15,
@@ -1535,8 +1756,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各二级企业年利润与招聘情况分析'
-      option.legend.data = ['2022年利润(万)', '2022年累计招聘数']
+      option.title.text = '各二级企业年利润与当年累计招聘人数'
+      option.legend.data = ['2022年利润(万)', '2022年招聘人数和2023年当前累计招聘之和']
       option.legend.show = true
       option.yAxis.push({
         type: 'value',
@@ -1564,7 +1785,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1584,21 +1805,30 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
@@ -1606,7 +1836,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各二级企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
       option.yAxis.push({
         type: 'value',
@@ -1687,13 +1917,33 @@ let app = new Vue({
         color: ['#69c0ff'],
         series: [
           {
-            name: '2022年利润累计涨幅率',
+            name: '各二级月利润总额同期变化率',
             type: 'line',
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
             symbolSize: 8, //标记的大小
             smooth: false,
+            label: {
+              normal: {
+                show: true,
+                lineHeight: '20',
+                position: 'top',
+                textStyle: {
+                  color: '#B889EA',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '文旅集团') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               //折线拐点标志的样式
               color: '#B889EA',
@@ -1706,16 +1956,40 @@ let app = new Vue({
               color: '#B889EA',
               width: 2,
             },
-            data: dataR6[0],
+            data: fjxdataL2[0],
           },
+
           {
-            name: '2022年薪酬累计涨幅率',
+            name: '各二级月薪酬总额同期变化率',
             type: 'line',
-            barWidth: 15,
-            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 12, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                lineHeight: '35',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '文旅集团') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               color: params => {
-                if (params.value > 0 && dataR6[0][params.dataIndex] < 0) {
+                if (params.value > 0 && fjxdataL2[0][params.dataIndex] < 0) {
                   return 'yellow'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -1731,7 +2005,11 @@ let app = new Vue({
                 }
               },
             },
-            data: dataR6[1],
+            lineStyle: {
+              color: '#69C0FF',
+              width: 2,
+            },
+            data: fjxdataL2[1],
           },
           {
             type: 'effectScatter',
@@ -1744,7 +2022,7 @@ let app = new Vue({
             },
             hoverAnimation: true,
             itemStyle: {
-              color: 'red'
+              color: 'yellow'
             },
             lineStyle: {
               color: '#43ede3',
@@ -1756,77 +2034,9 @@ let app = new Vue({
         ],
       }
       option.title.text = '各二级企业利润与薪酬变动情况'
-      option.legend.data = ['2022年利润累计涨幅率', '2022年薪酬累计涨幅率']
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
-      }
-      option.yAxis = [
-        {
-          max: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          min: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (-Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (-Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          type: 'value',
-          axisLine: {
-            show: false,
-          },
-          splitLine: {
-            show: true,
-            lineStyle: {
-              color: '#68b4dd66',
-              type: 'dashed',
-            },
-          },
-          axisLabel: {
-            show: true,
-            formatter: '{value} %',
-            textStyle: {
-              color: 'rgba(250,250,250,0.6)',
-            },
-          },
-        },
-        {
-          max: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          min: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (-Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (-Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          type: 'value',
-          splitLine: {
-            show: false,
-          },
-          axisLine: {
-            show: false,
-          },
-          axisLabel: {
-            show: true,
-            formatter: '{value} %',
-            textStyle: {
-              color: 'rgba(250,250,250,0.6)',
-            },
-          },
-        }
-      ]
+      option.legend.data = ['各二级月利润总额同期变化率', '各二级月薪酬总额同期变化率']
+      option.tooltip.formatter = '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
+      option.yAxis[0].axisLabel.formatter = '{value} %'
       myChart.setOption(option)
     },
     initChartR7 () {
@@ -1877,7 +2087,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '任期制考核完成率',
+            name: '任期制考核管理',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1898,7 +2108,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各二级企业任期制契约化完成率'
+      option.title.text = '各二级企业任期制契约化管理'
       option.tooltip = {
         trigger: 'axis',
         formatter: '{a0}:{c0}' + '%'

+ 281 - 97
manpowerPort/js/index3.js

@@ -4,6 +4,14 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
+      echartC1:{
+        national:'',
+        province:''
+      },
+      echartC2:{
+        national:'',
+        province:''
+      },
       titleName: '',
       twinkle7: [],
       twinkle8: [],
@@ -419,6 +427,10 @@ let app = new Vue({
             dataC2[1].push(item['ZBPZ0040'])
             dataC2[0].push(item['ZBPZ0041'])
           })
+          this.echartC1.national = res.orgData.area9.card1[0].ZBPZ0097
+          this.echartC1.province = res.orgData.area9.card1[0].ZBPZ0096
+          this.echartC2.national = res.orgData.area9.card2[0].ZBPZ0099
+          this.echartC2.province = res.orgData.area9.card2[0].ZBPZ0098
           // 数据整理
           dataL7[0].forEach((item, index) => {
             if (dataL7[1][index] < 0 && dataL7[0][index] > 0) {
@@ -434,12 +446,12 @@ let app = new Vue({
             }
           })
           // params.value > 0 && fjxdataL2[0][params.dataIndex] < 0
-          fjxdataL2[0].forEach((item, index) => {
-            if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
-              let obj = { value: [companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
-              this.twinkleR6.push(obj)
-            }
-          })
+          // fjxdataL2[0].forEach((item, index) => {
+          //   if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
+          //     let obj = { value: [companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
+          //     this.twinkleR6.push(obj)
+          //   }
+          // })
           this.generateEcharts()
           resolve(1)
         })
@@ -485,7 +497,30 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前各三级企业本部机构数',
+            name: '六个三级企业本部机构数核定上限',
+            type: 'line',
+            // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL1[2],
+          },
+          {
+            name: '六定改革前各三级企业本部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -493,7 +528,7 @@ let app = new Vue({
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#43ede3',
                   },
                   {
                     offset: 1,
@@ -504,10 +539,39 @@ let app = new Vue({
             },
             data: dataL1[0],
           },
+          {
+            name: '当前各三级企业本部机构数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL1[1],
+          },
         ],
+        // tooltip: {
+        //   trigger: 'item',
+        //   position: 'top'
+        // },
       }
-      option.title.text = '各三级企业本部机构数'
-      option.legend.data = ['当前各三级企业本部机构数']
+
+      option.title.text = '本部机构数'
+      option.legend.data = ['六定改革前各三级企业本部机构数', '当前各三级企业本部机构数', '六个三级企业本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -604,32 +668,28 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前管理人员数',
+            name: '六定改革前各三级企业本部中层管理人数',
             type: 'bar',
-            barWidth: 12,
-            smooth: true, //平滑曲线显示
-            showAllSymbol: true, //显示所有图形。
-            symbol: 'circle', //标记的图形为实心圆
-            symbolSize: 8, //标记的大小
-            smooth: false,
-            itemStyle: {
-              //折线拐点标志的样式
-              color: '#B889EA',
-              borderColor: '#B889EA',
-              width: 2,
-              shadowColor: '#B889EA',
-              shadowBlur: 4,
-            },
-            lineStyle: {
-              color: '#B889EA',
-              width: 2,
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
             },
-            data: dataL4[0],
-          },
-          {
-            name: '管理人员数占总人数比值',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -644,51 +704,106 @@ let app = new Vue({
                 ]),
               },
             },
-            data: dataL4[1],
-            markLine: {
-              data: [
-                {
-                  name: '管理人员比值核定上限',
-                  yAxis: 15,
-                  lineStyle: {
-                    color: '#fff',
-                  },
-                  label: {
-                    formatter: '{b}',
-                    position: 'middle',
-                    color: '#fff',
-                  },
+            data: dataL4[0],
+          },
+          {
+            name: '当前各三级企业本部中层管理人数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#6480f3',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
                 }
-              ],
-              label: {
-                distance: [20, 8],
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
+            data: dataL4[1],
+          },
+          {
+            name: '各三级企业本部中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#fbe138',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL4[2],
           },
         ],
       }
-      option.title.text = '各三级企业管理人员数'
-      option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
+      option.title.text = '各三级企业本部中层管理人数'
+      option.legend.data = ['六定改革前各三级企业本部中层管理人数', '当前各三级企业本部中层管理人数', '各三级企业本部中层管理人数核定上限']
       option.legend.show = true
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
-      }
       option.yAxis.push({
-        max: 20,
-        type: 'value',
-        axisLine: {
-          show: false,
-        },
         splitLine: {
           show: false,
         },
-        axisLabel: {
-          show: true,
-          formatter: '{value} %',
-          textStyle: {
-            color: 'rgba(250,250,250,0.6)',
-          },
+        axisLine: {
+          show: false,
         },
       })
       myChart.setOption(option)
@@ -774,7 +889,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '本部员额数',
+            name: '当前各三级企业本部员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -794,10 +909,54 @@ let app = new Vue({
             },
             data: dataL6[0],
           },
+          {
+            name: '六定改革前各三级企业本部员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '各三级企业本部员额数核定上限值',
+            type: 'line',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL6[1],
+          },
         ],
       }
       option.title.text = '各三级企业本部员额数'
-      option.legend.data = ['本部员额数']
+      option.legend.data = ['当前各三级企业本部员额数', '六定改革前各三级企业本部员额数','各三级企业本部员额数核定上限值']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -1065,8 +1224,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1090,7 +1249,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 50.13,
+                  yAxis: this.echartC1.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1103,7 +1262,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 69.4,
+                  yAxis: this.echartC1.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1210,8 +1369,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1231,7 +1390,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 67.09,
+                  yAxis: this.echartC2.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1244,7 +1403,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 81,
+                  yAxis: this.echartC2.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1584,7 +1743,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1604,38 +1763,63 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
           },
         ],
       }
-      option.title.text = '各三级企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.title.text = '各省属企业"退二进一"完成情况'
+      option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
-      option.yAxis.push({
-        splitLine: {
-          show: false,
-        },
+      option.yAxis[0] = {
+        //type: 'log',
+        //min: 1,
+        //logBase: 3,
         axisLine: {
           show: false,
         },
-      })
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: '#68b4dd66',
+            type: 'dashed',
+          },
+        },
+        axisLabel: {
+          show: true,
+          formatter: function (value) {
+            return value === 1 ? 0 : value
+          },
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+      }
       myChart.setOption(option)
     },
     initChartR5 () {

+ 412 - 184
manpowerPort/js/index3MT.js

@@ -4,6 +4,14 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
+      echartC1:{
+        national:'',
+        province:''
+      },
+      echartC2:{
+        national:'',
+        province:''
+      },
       titleName: '',
       twinkle7: [],
       twinkle8: [],
@@ -434,12 +442,12 @@ let app = new Vue({
             }
           })
           // params.value > 0 && fjxdataL2[0][params.dataIndex] < 0
-          fjxdataL2[0].forEach((item, index) => {
-            if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
-              let obj = { value: [companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
-              this.twinkleR6.push(obj)
-            }
-          })
+          // fjxdataL2[0].forEach((item, index) => {
+          //   if (fjxdataL2[1][index] > 0 && fjxdataL2[0][index] < 0) {
+          //     let obj = { value: [companyList[index].name, fjxdataL2[1][index]], symbolSize: 15 }
+          //     this.twinkleR6.push(obj)
+          //   }
+          // })
           this.generateEcharts()
           resolve(1)
         })
@@ -481,7 +489,30 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前各三级企业本部机构数',
+            name: '六个二级企业本部机构数核定上限',
+            type: 'line',
+            // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL1[2],
+          },
+          {
+            name: '六定改革前各二级企业本部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -489,7 +520,7 @@ let app = new Vue({
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#43ede3',
                   },
                   {
                     offset: 1,
@@ -500,10 +531,39 @@ let app = new Vue({
             },
             data: dataL1[0],
           },
+          {
+            name: '当前各二级企业本部机构数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL1[1],
+          },
         ],
+        // tooltip: {
+        //   trigger: 'item',
+        //   position: 'top'
+        // },
       }
-      option.title.text = '各三级企业本部机构数'
-      option.legend.data = ['当前各三级企业本部机构数']
+
+      option.title.text = '本部机构数'
+      option.legend.data = ['六定改革前各二级企业本部机构数', '当前各二级企业本部机构数', '六个二级企业本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -555,12 +615,11 @@ let app = new Vue({
     },
     initChartL3 () {
       let myChart = echarts.init(this.$refs['echartL3'])
-      console.log(this.commonOption, "this.commonOption")
       let option = {
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前总部中层管理人数',
+            name: '当前各三级管理人员数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -579,30 +638,10 @@ let app = new Vue({
             },
             data: dataL3[0],
           },
-        ],
-      }
-      option.title.text = '各三级企业本部中层管理人数'
-      option.legend.data = ['当前总部中层管理人数']
-      option.yAxis.push({
-        type: 'value',
-        axisLine: {
-          show: false,
-        },
-        splitLine: {
-          show: false,
-        },
-      })
-      myChart.setOption(option)
-    },
-    initChartL4 () {
-      let myChart = echarts.init(this.$refs['echartL4'])
-      let option = {
-        ..._.cloneDeep(this.commonOption),
-        series: [
           {
-            name: '当前管理人员数',
-            type: 'bar',
-            barWidth: 12,
+            name: '各三级管理人员数占总人数比值',
+            type: 'line',
+            yAxisIndex: 1,
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
@@ -610,41 +649,20 @@ let app = new Vue({
             smooth: false,
             itemStyle: {
               //折线拐点标志的样式
-              color: '#B889EA',
-              borderColor: '#B889EA',
+              color: '#fbe138',
+              borderColor: '#fbe138',
               width: 2,
-              shadowColor: '#B889EA',
+              shadowColor: '#fbe138',
               shadowBlur: 4,
             },
             lineStyle: {
-              color: '#B889EA',
+              color: '#fbe138',
               width: 2,
             },
-            data: dataL4[0],
-          },
-          {
-            name: '管理人员数占总人数比值',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
-            itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#69c0ff',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
-              },
-            },
-            data: dataL4[1],
             markLine: {
               data: [
                 {
-                  name: '管理人员比值核定上限',
+                  name: '管理人员数占总人数的合理比值线',
                   yAxis: 15,
                   lineStyle: {
                     color: '#fff',
@@ -653,26 +671,47 @@ let app = new Vue({
                     formatter: '{b}',
                     position: 'middle',
                     color: '#fff',
+                    fontSize: 16,
                   },
-                }
+                },
               ],
               label: {
                 distance: [20, 8],
               },
             },
+            data: dataL3[1],
           },
         ],
       }
       option.title.text = '各三级企业管理人员数'
-      option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
-      option.legend.show = true
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
+      option.legend.data = ['当前各三级管理人员数', '各三级管理人员数占总人数比值']
+      option.yAxis[0] = {
+        type: 'log',
+        min: 1,
+        logBase: 10,
+        axisLine: {
+          show: false,
+        },
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: '#68b4dd66',
+            type: 'dashed',
+          },
+        },
+        axisLabel: {
+          show: true,
+          formatter: function (value) {
+            return value === 1 ? 0 : value
+          },
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
       }
       option.yAxis.push({
-        max: 20,
         type: 'value',
+        max: 15,
         axisLine: {
           show: false,
         },
@@ -687,23 +726,88 @@ let app = new Vue({
           },
         },
       })
+      option.tooltip.formatter = '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
       myChart.setOption(option)
     },
-    initChartL5 () {
-      let myChart = echarts.init(this.$refs['echartL5'])
+    initChartL4 () {
+      let myChart = echarts.init(this.$refs['echartL4'])
       let option = {
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '各三级企业总人数',
+            name: '六定改革前各三级中层管理人数',
             type: 'bar',
             barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
+              },
+            },
+            data: dataL4[0],
+          },
+          {
+            name: '当前各三级中层管理人数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#6480f3',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#6480f3',
                   },
                   {
                     offset: 1,
@@ -712,6 +816,94 @@ let app = new Vue({
                 ]),
               },
             },
+            data: dataL4[1],
+          },
+          {
+            name: '各三级中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#fbe138',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL4[2],
+          },
+        ],
+      }
+      option.title.text = '各三级企业本部中层管理人数'
+      option.legend.data = ['六定改革前各三级中层管理人数', '当前各三级中层管理人数', '各三级中层管理人数核定上限']
+      option.legend.show = true
+      option.yAxis.push({
+        splitLine: {
+          show: false,
+        },
+        axisLine: {
+          show: false,
+        },
+      })
+      myChart.setOption(option)
+    },
+    initChartL5 () {
+      let myChart = echarts.init(this.$refs['echartL5'])
+      let option = {
+        ..._.cloneDeep(this.commonOption),
+        series: [
+          {
+            name: '各三级企业总人数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.dataIndex > 0 && Math.abs(params.value - dataL5[0][params.dataIndex - 1]) > 0.1) {
+                    return 'yellow'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#69c0ff',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                }
+              },
+            },
             data: dataL5[0],
           },
           {
@@ -770,7 +962,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '本部员额数',
+            name: '各三级员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -790,10 +982,54 @@ let app = new Vue({
             },
             data: dataL6[0],
           },
+          {
+            name: '六定改革前各三级员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '各三级员额数核定上限',
+            type: 'line',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL6[1],
+          },
         ],
       }
       option.title.text = '各三级企业本部员额数'
-      option.legend.data = ['本部员额数']
+      option.legend.data = ['各三级员额数', '六定改革前各三级员额数','各三级员额数核定上限']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -823,7 +1059,10 @@ let app = new Vue({
               color: params => {
                 if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL7[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -834,7 +1073,7 @@ let app = new Vue({
             data: dataL7[0],
           },
           {
-            name: '全员劳动生产率同比变化',
+            name: '劳动生产率同比变化',
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
@@ -874,8 +1113,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '人数变化和全员劳动生产率变化分析'
-      option.legend.data = ['人数变化', '全员劳动生产率同比变化']
+      option.title.text = '人数变化和全员劳动生产率变化分析'
+      option.legend.data = ['人数变化', '劳动生产率同比变化']
       option.legend.show = true
       option.tooltip = {
         trigger: 'axis',
@@ -939,7 +1178,10 @@ let app = new Vue({
               color: params => {
                 if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL8[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -994,7 +1236,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '人数变化和人工利润率变化分析'
+      option.title.text = '人数变化和人工成本利润率变化分析'
       option.legend.data = ['人数变化', '人工成本利润率同比变化']
       option.legend.show = true
       option.tooltip = {
@@ -1061,8 +1303,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1086,7 +1328,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 50.13,
+                  yAxis: this.echartC1.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1099,7 +1341,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 69.4,
+                  yAxis: this.echartC1.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1206,8 +1448,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1227,7 +1469,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 67.09,
+                  yAxis: this.echartC2.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1240,7 +1482,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 81,
+                  yAxis: this.echartC2.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1360,7 +1602,7 @@ let app = new Vue({
 
         ],
       }
-      option.title.text = '各三级企业招聘需求公告人次情况'
+      option.title.text = '各三级企业招聘招聘需求公示人次'
       option.legend.data = ['招聘需求公告次数', '招聘需求公告累计招聘人次']
       option.legend.show = true
       option.yAxis.push({
@@ -1465,7 +1707,7 @@ let app = new Vue({
             data: dataR3[0],
           },
           {
-            name: '2022年累计招聘数',
+            name: '2022年招聘人数和2023年当前累计招聘之和',
             yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             type: 'bar',
             barWidth: 15,
@@ -1491,8 +1733,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各三级企业年利润与招聘情况分析'
-      option.legend.data = ['2022年利润(万)', '2022年累计招聘数']
+      option.title.text = '各三级企业年利润与当年累计招聘人数'
+      option.legend.data = ['2022年利润(万)', '2022年招聘人数和2023年当前累计招聘之和']
       option.legend.show = true
       option.yAxis[0].max = function (value) {
         if (Math.abs(value.max) > Math.abs(value.min)) {
@@ -1580,7 +1822,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1600,21 +1842,30 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
@@ -1622,7 +1873,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各三级企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -1701,13 +1952,33 @@ let app = new Vue({
         color: ['#69c0ff'],
         series: [
           {
-            name: '2022年利润累计涨幅率',
+            name: '各三级月利润总额同期变化率',
             type: 'line',
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
             symbolSize: 8, //标记的大小
             smooth: false,
+            label: {
+              normal: {
+                show: true,
+                lineHeight: '20',
+                position: 'top',
+                textStyle: {
+                  color: '#B889EA',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '文旅集团') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               //折线拐点标志的样式
               color: '#B889EA',
@@ -1720,20 +1991,40 @@ let app = new Vue({
               color: '#B889EA',
               width: 2,
             },
-            data: dataR6[0],
+            data: fjxdataL2[0],
           },
+
           {
-            name: '2022年薪酬累计涨幅率',
+            name: '各三级月薪酬总额同期变化率',
             type: 'line',
-            barWidth: 15,
-            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
             symbolSize: 12, //标记的大小
             smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                lineHeight: '35',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '文旅集团') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               color: params => {
-                if (params.value > 0 && dataR6[0][params.dataIndex] < 0) {
+                if (params.value > 0 && fjxdataL2[0][params.dataIndex] < 0) {
                   return 'yellow'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -1749,10 +2040,13 @@ let app = new Vue({
                 }
               },
             },
-            data: dataR6[1],
+            lineStyle: {
+              color: '#69C0FF',
+              width: 2,
+            },
+            data: fjxdataL2[1],
           },
           {
-            yAxisIndex: 1,
             type: 'effectScatter',
             coordinateSystem: 'cartesian2d',
             showEffectOn: 'render',
@@ -1775,75 +2069,9 @@ let app = new Vue({
         ],
       }
       option.title.text = '各三级企业利润与薪酬变动情况'
-      option.legend.data = ['2022年利润累计涨幅率', '2022年薪酬累计涨幅率']
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
-      }
-      option.yAxis = [
-        {
-          max: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          min: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (-Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (-Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          splitLine: {
-            show: true,
-            lineStyle: {
-              color: '#68b4dd66',
-              type: 'dashed',
-            },
-          },
-          axisLine: {
-            show: false,
-          },
-          axisLabel: {
-            show: true,
-            formatter: '{value} %',
-            textStyle: {
-              color: 'rgba(250,250,250,0.6)',
-            },
-          },
-        },
-        {
-          max: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          min: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (-Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (-Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          splitLine: {
-            show: false,
-          },
-          axisLine: {
-            show: false,
-          },
-          axisLabel: {
-            show: true,
-            formatter: '{value} %',
-            textStyle: {
-              color: 'rgba(250,250,250,0.6)',
-            },
-          },
-        }
-      ]
+      option.legend.data = ['各三级月利润总额同期变化率', '各三级月薪酬总额同期变化率']
+      option.tooltip.formatter = '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
+      option.yAxis[0].axisLabel.formatter = '{value} %'
       myChart.setOption(option)
     },
     initChartR7 () {
@@ -1894,7 +2122,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '任期制契约化完成率',
+            name: '任期制契约化管理',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1915,7 +2143,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各三级企业任期制契约化完成率'
+      option.title.text = '各三级企业任期制契约化管理'
       option.tooltip = {
         trigger: 'axis',
         formatter: '{a0}:{c0}' + '%'

+ 277 - 93
manpowerPort/js/index4.js

@@ -4,6 +4,14 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
+      echartC1:{
+        national:'',
+        province:''
+      },
+      echartC2:{
+        national:'',
+        province:''
+      },
       titleName: '',
       twinkle7: [],
       twinkle8: [],
@@ -371,6 +379,10 @@ let app = new Vue({
             dataC2[1].push(item['ZBPZ0040'])
             dataC2[0].push(item['ZBPZ0041'])
           })
+          this.echartC1.national = res.orgData.area9.card1[0].ZBPZ0097
+          this.echartC1.province = res.orgData.area9.card1[0].ZBPZ0096
+          this.echartC2.national = res.orgData.area9.card2[0].ZBPZ0099
+          this.echartC2.province = res.orgData.area9.card2[0].ZBPZ0098
           dataL7[0].forEach((item, index) => {
             if (dataL7[1][index] < 0 && dataL7[0][index] > 0) {
               let obj = { value: [companyList[index].name, dataL7[0][index]], symbolSize: 15 }
@@ -436,7 +448,30 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前各四级企业本部机构数',
+            name: '六个四级企业本部机构数核定上限',
+            type: 'line',
+            // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL1[2],
+          },
+          {
+            name: '六定改革前各四级企业本部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -444,7 +479,7 @@ let app = new Vue({
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#43ede3',
                   },
                   {
                     offset: 1,
@@ -455,10 +490,39 @@ let app = new Vue({
             },
             data: dataL1[0],
           },
+          {
+            name: '当前各四级企业本部机构数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL1[1],
+          },
         ],
+        // tooltip: {
+        //   trigger: 'item',
+        //   position: 'top'
+        // },
       }
-      option.title.text = '各四级企业本部机构数'
-      option.legend.data = ['当前各四级企业本部机构数']
+
+      option.title.text = '本部机构数'
+      option.legend.data = ['六定改革前各四级企业本部机构数', '当前各四级企业本部机构数', '六个四级企业本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -555,32 +619,28 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前管理人员数',
+            name: '六定改革前各四级企业本部中层管理人数',
             type: 'bar',
-            barWidth: 12,
-            smooth: true, //平滑曲线显示
-            showAllSymbol: true, //显示所有图形。
-            symbol: 'circle', //标记的图形为实心圆
-            symbolSize: 8, //标记的大小
-            smooth: false,
-            itemStyle: {
-              //折线拐点标志的样式
-              color: '#B889EA',
-              borderColor: '#B889EA',
-              width: 2,
-              shadowColor: '#B889EA',
-              shadowBlur: 4,
-            },
-            lineStyle: {
-              color: '#B889EA',
-              width: 2,
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
             },
-            data: dataL4[0],
-          },
-          {
-            name: '管理人员数占总人数比值',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -590,56 +650,111 @@ let app = new Vue({
                   },
                   {
                     offset: 1,
-                    color: '#69c0ff',
+                    color: '#082550',
                   },
                 ]),
               },
             },
-            data: dataL4[1],
-            markLine: {
-              data: [
-                {
-                  name: '管理人员比值核定上限',
-                  yAxis: 15,
-                  lineStyle: {
-                    color: '#fff',
-                  },
-                  label: {
-                    formatter: '{b}',
-                    position: 'middle',
-                    color: '#fff',
-                  },
+            data: dataL4[0],
+          },
+          {
+            name: '当前各四级企业本部中层管理人数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#6480f3',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
                 }
-              ],
-              label: {
-                distance: [20, 8],
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
+            data: dataL4[1],
+          },
+          {
+            name: '各四级企业本部中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#fbe138',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL4[2],
           },
         ],
       }
-      option.title.text = '各四级企业管理人员数'
-      option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
+      option.title.text = '各四级企业本部中层管理人数'
+      option.legend.data = ['六定改革前各四级企业本部中层管理人数', '当前各四级企业本部中层管理人数', '各四级企业本部中层管理人数核定上限']
       option.legend.show = true
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
-      }
       option.yAxis.push({
-        max: 100,
-        type: 'value',
-        axisLine: {
-          show: false,
-        },
         splitLine: {
           show: false,
         },
-        axisLabel: {
-          show: true,
-          formatter: '{value} %',
-          textStyle: {
-            color: 'rgba(250,250,250,0.6)',
-          },
+        axisLine: {
+          show: false,
         },
       })
       myChart.setOption(option)
@@ -725,7 +840,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '本部员额数',
+            name: '当前各二级企业本部员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -745,10 +860,54 @@ let app = new Vue({
             },
             data: dataL6[0],
           },
+          {
+            name: '六定改革前各二级企业本部员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '各二级企业本部员额数核定上限值',
+            type: 'line',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL6[1],
+          },
         ],
       }
-      option.title.text = '各四级企业本部员额数'
-      option.legend.data = ['本部员额数']
+      option.title.text = '各级企业本部员额数'
+      option.legend.data = ['当前各二级企业本部员额数', '六定改革前各二级企业本部员额数','各二级企业本部员额数核定上限值']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -1016,8 +1175,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1042,7 +1201,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 50.13,
+                  yAxis: this.echartC1.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1055,7 +1214,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 69.4,
+                  yAxis: this.echartC1.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1162,8 +1321,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1183,7 +1342,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 67.09,
+                  yAxis: this.echartC2.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1196,7 +1355,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 81,
+                  yAxis: this.echartC2.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1503,7 +1662,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1523,38 +1682,63 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
           },
         ],
       }
-      option.title.text = '各四级企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.title.text = '各省属企业"退二进一"完成情况'
+      option.legend.data = ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
-      option.yAxis.push({
-        splitLine: {
-          show: false,
-        },
+      option.yAxis[0] = {
+        //type: 'log',
+        //min: 1,
+        //logBase: 3,
         axisLine: {
           show: false,
         },
-      })
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: '#68b4dd66',
+            type: 'dashed',
+          },
+        },
+        axisLabel: {
+          show: true,
+          formatter: function (value) {
+            return value === 1 ? 0 : value
+          },
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
+      }
       myChart.setOption(option)
     },
     initChartR5 () {

+ 402 - 179
manpowerPort/js/index4SY.js

@@ -4,6 +4,14 @@ let app = new Vue({
   el: '#app',
   data () {
     return {
+      echartC1:{
+        national:'',
+        province:''
+      },
+      echartC2:{
+        national:'',
+        province:''
+      },
       titleName: '',
       twinkle7: [],
       twinkle8: [],
@@ -459,7 +467,30 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前各四级企业本部机构数',
+            name: '六个二级企业本部机构数核定上限',
+            type: 'line',
+            // yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL1[2],
+          },
+          {
+            name: '六定改革前各二级企业本部机构数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -467,7 +498,7 @@ let app = new Vue({
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#43ede3',
                   },
                   {
                     offset: 1,
@@ -478,10 +509,39 @@ let app = new Vue({
             },
             data: dataL1[0],
           },
+          {
+            name: '当前各二级企业本部机构数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              color: params => {
+                if (params.value > 0 && dataL1[2][params.dataIndex]) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
+              },
+            },
+            data: dataL1[1],
+          },
         ],
+        // tooltip: {
+        //   trigger: 'item',
+        //   position: 'top'
+        // },
       }
-      option.title.text = '各四级企业本部机构数'
-      option.legend.data = ['当前各四级企业本部机构数']
+
+      option.title.text = '本部机构数'
+      option.legend.data = ['六定改革前各二级企业本部机构数', '当前各二级企业本部机构数', '六个二级企业本部机构数核定上限']
       option.yAxis.push({
         splitLine: {
           show: false,
@@ -533,12 +593,11 @@ let app = new Vue({
     },
     initChartL3 () {
       let myChart = echarts.init(this.$refs['echartL3'])
-      console.log(this.commonOption, "this.commonOption")
       let option = {
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '当前本部中层管理人数',
+            name: '当前各四级管理人员数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -557,30 +616,10 @@ let app = new Vue({
             },
             data: dataL3[0],
           },
-        ],
-      }
-      option.title.text = '各四级企业本部中层管理人数'
-      option.legend.data = ['当前本部中层管理人数']
-      option.yAxis.push({
-        type: 'value',
-        axisLine: {
-          show: false,
-        },
-        splitLine: {
-          show: false,
-        },
-      })
-      myChart.setOption(option)
-    },
-    initChartL4 () {
-      let myChart = echarts.init(this.$refs['echartL4'])
-      let option = {
-        ..._.cloneDeep(this.commonOption),
-        series: [
           {
-            name: '当前管理人员数',
-            type: 'bar',
-            barWidth: 12,
+            name: '各四级管理人员数占总人数比值',
+            type: 'line',
+            yAxisIndex: 1,
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
@@ -588,41 +627,20 @@ let app = new Vue({
             smooth: false,
             itemStyle: {
               //折线拐点标志的样式
-              color: '#B889EA',
-              borderColor: '#B889EA',
+              color: '#fbe138',
+              borderColor: '#fbe138',
               width: 2,
-              shadowColor: '#B889EA',
+              shadowColor: '#fbe138',
               shadowBlur: 4,
             },
             lineStyle: {
-              color: '#B889EA',
+              color: '#fbe138',
               width: 2,
             },
-            data: dataL4[0],
-          },
-          {
-            name: '管理人员数占总人数比值',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
-            itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#69c0ff',
-                  },
-                  {
-                    offset: 1,
-                    color: '#69c0ff',
-                  },
-                ]),
-              },
-            },
-            data: dataL4[1],
             markLine: {
               data: [
                 {
-                  name: '管理人员比值核定上限',
+                  name: '管理人员数占总人数的合理比值线',
                   yAxis: 15,
                   lineStyle: {
                     color: '#fff',
@@ -631,26 +649,47 @@ let app = new Vue({
                     formatter: '{b}',
                     position: 'middle',
                     color: '#fff',
+                    fontSize: 16,
                   },
-                }
+                },
               ],
               label: {
                 distance: [20, 8],
               },
             },
+            data: dataL3[1],
           },
         ],
       }
       option.title.text = '各四级企业管理人员数'
-      option.legend.data = ['当前管理人员数', '管理人员数占总人数比值']
-      option.legend.show = true
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
+      option.legend.data = ['当前各四级管理人员数', '各四级管理人员数占总人数比值']
+      option.yAxis[0] = {
+        type: 'log',
+        min: 1,
+        logBase: 10,
+        axisLine: {
+          show: false,
+        },
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: '#68b4dd66',
+            type: 'dashed',
+          },
+        },
+        axisLabel: {
+          show: true,
+          formatter: function (value) {
+            return value === 1 ? 0 : value
+          },
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        },
       }
       option.yAxis.push({
-        max: 100,
         type: 'value',
+        max: 15,
         axisLine: {
           show: false,
         },
@@ -665,23 +704,88 @@ let app = new Vue({
           },
         },
       })
+      option.tooltip.formatter = '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%'
       myChart.setOption(option)
     },
-    initChartL5 () {
-      let myChart = echarts.init(this.$refs['echartL5'])
+    initChartL4 () {
+      let myChart = echarts.init(this.$refs['echartL4'])
       let option = {
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '各四级企业总人数',
+            name: '六定改革前各四级中层管理人数',
             type: 'bar',
             barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.value > 0 && dataL4[2][params.dataIndex] || params.value > 0 && dataL4[0][params.dataIndex]) {
+                    return 'red'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
+              },
+            },
+            data: dataL4[0],
+          },
+          {
+            name: '当前各四级中层管理人数',
+            type: 'bar',
+            barWidth: 15,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#6480f3',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                   {
                     offset: 0,
-                    color: '#69c0ff',
+                    color: '#6480f3',
                   },
                   {
                     offset: 1,
@@ -690,6 +794,94 @@ let app = new Vue({
                 ]),
               },
             },
+            data: dataL4[1],
+          },
+          {
+            name: '各四级中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                textStyle: {
+                  color: '#fbe138',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '云时代') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL4[2],
+          },
+        ],
+      }
+      option.title.text = '各四级企业本部中层管理人数'
+      option.legend.data = ['六定改革前各四级中层管理人数', '当前各四级中层管理人数', '各四级中层管理人数核定上限']
+      option.legend.show = true
+      option.yAxis.push({
+        splitLine: {
+          show: false,
+        },
+        axisLine: {
+          show: false,
+        },
+      })
+      myChart.setOption(option)
+    },
+    initChartL5 () {
+      let myChart = echarts.init(this.$refs['echartL5'])
+      let option = {
+        ..._.cloneDeep(this.commonOption),
+        series: [
+          {
+            name: '各四级企业总人数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                color: params => {
+                  if (params.dataIndex > 0 && Math.abs(params.value - dataL5[0][params.dataIndex - 1]) > 0.1) {
+                    return 'yellow'
+                  } else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#69c0ff',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                }
+              },
+            },
             data: dataL5[0],
           },
           {
@@ -748,7 +940,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '本部员额数',
+            name: '各四级员额数',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -768,10 +960,54 @@ let app = new Vue({
             },
             data: dataL6[0],
           },
+          {
+            name: '六定改革前各四级员额数',
+            type: 'bar',
+            barWidth: 15,
+            itemStyle: {
+              normal: {
+                barBorderRadius: [10, 10, 0, 0],
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  {
+                    offset: 0,
+                    color: '#43ede3',
+                  },
+                  {
+                    offset: 1,
+                    color: '#082550',
+                  },
+                ]),
+              },
+            },
+            data: dataL6[2],
+          },
+          {
+            name: '各四级员额数核定上限',
+            type: 'line',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            smooth: true, //平滑曲线显示
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 8, //标记的大小
+            smooth: false,
+            itemStyle: {
+              //折线拐点标志的样式
+              color: '#fbe138',
+              borderColor: '#fbe138',
+              width: 2,
+              shadowColor: '#fbe138',
+              shadowBlur: 4,
+            },
+            lineStyle: {
+              color: '#fbe138',
+              width: 2,
+            },
+            data: dataL6[1],
+          },
         ],
       }
       option.title.text = '各四级企业本部员额数'
-      option.legend.data = ['本部员额数']
+      option.legend.data = ['各四级员额数', '六定改革前各四级员额数','各四级员额数核定上限']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -801,7 +1037,10 @@ let app = new Vue({
               color: params => {
                 if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL7[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -812,7 +1051,7 @@ let app = new Vue({
             data: dataL7[0],
           },
           {
-            name: '全员劳动生产率同比变化',
+            name: '劳动生产率同比变化',
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
@@ -852,8 +1091,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '人数变化和全员劳动生产率变化分析'
-      option.legend.data = ['人数变化', '全员劳动生产率同比变化']
+      option.title.text = '人数变化和全员劳动生产率变化分析'
+      option.legend.data = ['人数变化', '劳动生产率同比变化']
       option.legend.show = true
       option.tooltip = {
         trigger: 'axis',
@@ -917,7 +1156,10 @@ let app = new Vue({
               color: params => {
                 if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
                   return 'red'
-                } else {
+                } else if (params.value < 0 && dataL8[1][params.dataIndex] > 0) {
+                  return 'green'
+                }
+                else {
                   return '#43ede3'
                 }
               },
@@ -972,7 +1214,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '人数变化和人工利润率变化分析'
+      option.title.text = '人数变化和人工成本利润率变化分析'
       option.legend.data = ['人数变化', '人工成本利润率同比变化']
       option.legend.show = true
       option.tooltip = {
@@ -1039,8 +1281,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC1[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC1.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1065,7 +1307,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 50.13,
+                  yAxis: this.echartC1.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1078,7 +1320,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 69.4,
+                  yAxis: this.echartC1.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1185,8 +1427,8 @@ let app = new Vue({
               color: params => {
                 if (params.value < 0 && dataC2[1][params.dataIndex] < 0) {
                   return 'red'
-                } else if (params.value < 0) {
-                  return 'yellow'
+                } else if (params.value > this.echartC2.province) {
+                  return 'green'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                     {
@@ -1206,7 +1448,7 @@ let app = new Vue({
               data: [
                 {
                   name: '省属企业平均水平',
-                  yAxis: 67.09,
+                  yAxis: this.echartC2.province,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1219,7 +1461,7 @@ let app = new Vue({
                 },
                 {
                   name: '央企平均水平',
-                  yAxis: 81,
+                  yAxis: this.echartC2.national,
                   lineStyle: {
                     color: '#fff',
                   },
@@ -1339,7 +1581,7 @@ let app = new Vue({
 
         ],
       }
-      option.title.text = '各四级企业招聘需求公告人次情况'
+      option.title.text = '各四级企业招聘招聘需求公示人次'
       option.legend.data = ['招聘需求公告次数', '招聘需求公告累计招聘人次']
       option.legend.show = true
       option.yAxis.push({
@@ -1443,7 +1685,7 @@ let app = new Vue({
             data: dataR3[0],
           },
           {
-            name: '2022年累计招聘数',
+            name: '2022年招聘人数和2023年当前累计招聘之和',
             type: 'bar',
             yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             barWidth: 15,
@@ -1469,8 +1711,8 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各四级企业年利润与招聘情况分析'
-      option.legend.data = ['2022年利润(万)', '2022年累计招聘数']
+      option.title.text = '各四级企业年利润与当年累计招聘人数'
+      option.legend.data = ['2022年利润(万)', '2022年招聘人数和2023年当前累计招聘之和']
       option.legend.show = true
       option.yAxis[0].max = function (value) {
         if (Math.abs(value.max) > Math.abs(value.min)) {
@@ -1526,7 +1768,7 @@ let app = new Vue({
         ..._.cloneDeep(commonOptions),
         series: [
           {
-            name: '2022年退出人数',
+            name: '2022年退出人数和2023年当前累计退出人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1546,21 +1788,30 @@ let app = new Vue({
             data: dataR4[0],
           },
           {
-            name: '2022年累计招聘人数',
+            name: '2022年招聘人数和2023年当前累计招聘人数之和',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
               normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+                color: params => {
+                  if (params.value / dataR4[0][params.dataIndex] > 3) {
+                    return 'green'
+                  } else if (params.value / 2 < dataR4[0][params.dataIndex]) {
+                    return 'yellow'
+                  }
+                  else {
+                    return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                      {
+                        offset: 0,
+                        color: '#6480f3',
+                      },
+                      {
+                        offset: 1,
+                        color: '#082550',
+                      },
+                    ])
+                  }
+                },
               },
             },
             data: dataR4[1],
@@ -1568,7 +1819,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各四级企业"退二进一"完成情况'
-      option.legend.data = ['2022年退出人数', '2022年累计招聘人数']
+      option.legend.data =  ['2022年退出人数和2023年当前累计退出人数之和', '2022年招聘人数和2023年当前累计招聘人数之和']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -1647,13 +1898,33 @@ let app = new Vue({
         color: ['#69c0ff'],
         series: [
           {
-            name: '2022年利润累计涨幅率',
+            name: '各四级月利润总额同期变化率',
             type: 'line',
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
             symbolSize: 8, //标记的大小
             smooth: false,
+            label: {
+              normal: {
+                show: true,
+                lineHeight: '20',
+                position: 'top',
+                textStyle: {
+                  color: '#B889EA',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '文旅集团') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               //折线拐点标志的样式
               color: '#B889EA',
@@ -1666,20 +1937,40 @@ let app = new Vue({
               color: '#B889EA',
               width: 2,
             },
-            data: dataR6[0],
+            data: fjxdataL2[0],
           },
+
           {
-            name: '2022年薪酬累计涨幅率',
+            name: '各四级月薪酬总额同期变化率',
             type: 'line',
-            barWidth: 15,
-            yAxisIndex: 1,
+            smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
             symbolSize: 12, //标记的大小
             smooth: false,
+            label: {
+              normal: {
+                show: true,
+                position: 'top',
+                lineHeight: '35',
+                textStyle: {
+                  color: '#69c0ff',
+                  fontStyle: 'normal',
+                  textAlign: 'left',
+                  fontSize: 16,
+                },
+                formatter: function (data) {
+                  if (data.name == '文旅集团') {
+                    return data.value
+                  } else {
+                    return ''
+                  }
+                }
+              }
+            },
             itemStyle: {
               color: params => {
-                if (params.value > 0 && dataR6[0][params.dataIndex] < 0) {
+                if (params.value > 0 && fjxdataL2[0][params.dataIndex] < 0) {
                   return 'yellow'
                 } else {
                   return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -1699,10 +1990,9 @@ let app = new Vue({
               color: '#69C0FF',
               width: 2,
             },
-            data: dataR6[1],
+            data: fjxdataL2[1],
           },
           {
-            yAxisIndex: 1,
             type: 'effectScatter',
             coordinateSystem: 'cartesian2d',
             showEffectOn: 'render',
@@ -1724,77 +2014,10 @@ let app = new Vue({
           },
         ],
       }
-
       option.title.text = '各四级企业利润与薪酬变动情况'
-      option.legend.data = ['2022年利润累计涨幅率', '2022年薪酬累计涨幅率']
-      option.tooltip = {
-        trigger: 'axis',
-        formatter: '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
-      }
-      option.yAxis = [
-        {
-          max: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          min: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (-Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (-Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          splitLine: {
-            show: true,
-            lineStyle: {
-              color: '#68b4dd66',
-              type: 'dashed',
-            },
-          },
-          axisLine: {
-            show: false,
-          },
-          axisLabel: {
-            show: true,
-            formatter: '{value} %',
-            textStyle: {
-              color: 'rgba(250,250,250,0.6)',
-            },
-          },
-        },
-        {
-          max: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          min: function (value) {
-            if (Math.abs(value.max) > Math.abs(value.min)) {
-              return (-Math.abs(value.max) * 1.2).toFixed(2);
-            } else {
-              return (-Math.abs(value.min) * 1.2).toFixed(2);
-            }
-          },
-          splitLine: {
-            show: false,
-          },
-          axisLine: {
-            show: false,
-          },
-          axisLabel: {
-            show: true,
-            formatter: '{value} %',
-            textStyle: {
-              color: 'rgba(250,250,250,0.6)',
-            },
-          },
-        }
-      ]
+      option.legend.data = ['各四级月利润总额同期变化率', '各四级月薪酬总额同期变化率']
+      option.tooltip.formatter = '{a0}:{c0}' + '%' + '<br/>' + '{a1}:{c1}' + '%'
+      option.yAxis[0].axisLabel.formatter = '{value} %'
       myChart.setOption(option)
     },
     initChartR7 () {
@@ -1845,7 +2068,7 @@ let app = new Vue({
         ..._.cloneDeep(this.commonOption),
         series: [
           {
-            name: '任期制契约化完成率',
+            name: '任期制契约化管理',
             type: 'bar',
             barWidth: 15,
             itemStyle: {
@@ -1866,7 +2089,7 @@ let app = new Vue({
           },
         ],
       }
-      option.title.text = '各四级企业任期制契约化完成率'
+      option.title.text = '各四级企业任期制契约化管理'
       option.tooltip = {
         trigger: 'axis',
         formatter: '{a0}:{c0}' + '%'