Просмотр исходного кода

Merge branch 'main' of https://git.sxidc.com/kingdee_large_screen/pc_kingdee_large_screen

l1448442195@163.com 1 год назад
Родитель
Сommit
d9484016dc

+ 27 - 13
investment/investHome.html

@@ -29,6 +29,18 @@
               <div class="my-panel">
                 <div class="panel-title">
                   <span class="text">投资关键指标</span>
+                  <span class="right-date">
+                    <el-date-picker
+                      v-model="year"
+                      prefix-icon="el-icon-date"
+                      size="small"
+                      type="year"
+                      popper-class="date-popper"
+                      :clearable="false"
+                      :editable="false"
+                      placeholder="选择年">
+                    </el-date-picker>
+                  </span>
                 </div>
                 <div class="content">
                   <div class="boxs">
@@ -38,8 +50,8 @@
                         <i class="el-icon-more"></i>
                       </p>
                       <p>
-                        <i><span class="num">825.60</span>亿</i>
-                        <span class="change"><img src="./images/down.png" /> 12.1%</span>
+                        <i><span class="num">1324.08</span>亿</i>
+                        <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
                       </p>
                     </div>
                     <div>
@@ -48,8 +60,8 @@
                         <i class="el-icon-more"></i>
                       </p>
                       <p>
-                        <i><span class="num">654</span>个</i>
-                        <span class="change"><img src="./images/down.png" /> 12.1%</span>
+                        <i><span class="num">442</span>个</i>
+                        <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
                       </p>
                     </div>
                     <div>
@@ -58,8 +70,8 @@
                         <i class="el-icon-more"></i>
                       </p>
                       <p>
-                        <i><span class="num">825.60</span>亿</i>
-                        <span class="change up"><img src="./images/up.png" /> 12.1%</span>
+                        <i><span class="num">1169.91</span>亿</i>
+                        <!-- <span class="change up"><img src="./images/up.png" /> 12.1%</span> -->
                       </p>
                     </div>
                     <div>
@@ -68,8 +80,8 @@
                         <i class="el-icon-more"></i>
                       </p>
                       <p>
-                        <i><span class="num">325.00</span>亿</i>
-                        <span class="change"><img src="./images/down.png" /> 12.1%</span>
+                        <i><span class="num">154.17</span>亿</i>
+                        <!-- <span class="change"><img src="./images/down.png" /> 12.1%</span> -->
                       </p>
                     </div>
                   </div>
@@ -79,7 +91,7 @@
             <dv-border-box-8 :dur="11">
               <div class="my-panel">
                 <div class="panel-title">
-                  <span class="text">五个一体化</span>
+                  <span class="text">投资阶段</span>
                 </div>
                 <div ref="echartL1" class="content"></div>
               </div>
@@ -94,7 +106,7 @@
             </dv-border-box-8>
           </div>
           <div class="center">
-            <div class="top">
+            <!-- <div class="top">
               <div class="box">
                 <div class="t">
                   <img src="./images/center1.png"/>
@@ -127,10 +139,12 @@
                   </div>
                 </div>
               </div>
-            </div>
+            </div> -->
             <div class="map-box">
               <div ref="echarts-map" style="height: 100%;"></div>
-              <div class="status">
+            <!-- 项目状态 -->
+
+              <!-- <div class="status">
                 <p>项目状态</p>
                 <ul style="padding-left: 30px;">
                   <li>完成决策: <i>15</i></li>
@@ -138,7 +152,7 @@
                   <li>退出: <i>15</i></li>
                   <li>终止: <i>15</i></li>
                 </ul>
-              </div>
+              </div> -->
             </div>
           </div>
           <div class="right">

+ 102 - 36
investment/js/investHome.js

@@ -1,6 +1,6 @@
 let app = new Vue({
   el: '#app',
-  data() {
+  data () {
     return {
       year: '2022',
       time: '',
@@ -12,19 +12,21 @@ let app = new Vue({
         content: '{nt}个',
       },
       storageRecordConfig: {
-        header: ['项目名称', '投资金额',  '项目进度'],
+        header: ['项目名称', '投资金额', '项目进度'],
         headerBGC: '#05507b33',
         oddRowBGC: '#05507b33',
         evenRowBGC: '',
         headerHeight: '40',
         rowNum: 4,
-        align: ['center'],
+        align: ['center', 'center', 'center'],
         data: [
-          ['工程建设项目', '21.2亿', '施工图设计'],
-          ['工程建设项目', '21.2亿', '施工图设计'],
-          ['工程建设项目', '21.2亿', '施工图设计'],
-          ['工程建设项目', '21.2亿', '施工图设计'],
-          ['工程建设项目', '21.2亿', '施工图设计'],
+          ['山煤河曲2×350MW低热值煤发电项目', '35.00亿', '决策审批中'],
+          ['泊里煤矿项目', '50.09亿', '决策完成'],
+          ['七元煤矿项目', '50.77亿', '决策完成'],
+          ['新源智慧建设运行总部', '9.83亿', '决策完成'],
+          ['潇河国际会展中心', '43.59亿', '决策完成'],
+          ['山西·潇河新城酒店', '40.30亿', '决策完成'],
+          ['平舒铁路专用线项目', '18.62亿', '决策完成'],
         ],
       },
       companyList: [
@@ -49,18 +51,18 @@ let app = new Vue({
       ],
     }
   },
-  created() {
+  created () {
     this.time = formatDate()
-    this.timer = setInterval(()=> {
+    this.timer = setInterval(() => {
       this.time = formatDate()
-    },1000)
+    }, 1000)
   },
-  beforeDestroy() {
+  beforeDestroy () {
     if (this.timer) {
       clearInterval(this.timer);
     }
   },
-  mounted() {
+  mounted () {
     // 左侧图表
     this.initChartL1()
     this.initChartL2()
@@ -68,7 +70,7 @@ let app = new Vue({
     this.initChinaChart()
   },
   methods: {
-    convertData(data) {
+    convertData (data) {
       var res = []
       for (var i = 0; i < data.length; i++) {
         var geoCoord = this.geoCoordMap[data[i].name]
@@ -81,7 +83,7 @@ let app = new Vue({
       }
       return res
     },
-    initChinaChart() {
+    initChinaChart () {
       var data = [
         { name: '吕梁市', value: 150 },
         { name: '大同市', value: 190 },
@@ -327,6 +329,8 @@ let app = new Vue({
         // 地区经纬度
         this.geoCoordMap[name] = v.properties.cp
       })
+      // <p>当前阶段:<span>可论证阶段</span></p>
+      // <p>时间节点:<span>2021.10-2022.10</span></p>
 
       myChart.setOption({
         tooltip: {
@@ -338,13 +342,13 @@ let app = new Vue({
               <div class="tooltip-cont">
                 <p>新开工:<span>工程建设项目</span></p>
                 <p>总投资额:<span>${params.data.value}亿</span></p>
-                <p>当前阶段:<span>可论证阶段</span></p>
-                <p>时间节点:<span>2021.10-2022.10</span></p>
             </div>`
+            callback(ticket, tipHtml)
             return tipHtml
           },
         },
         visualMap: {
+          show: false,
           min: 0,
           max: 300,
           right: 0,
@@ -354,7 +358,7 @@ let app = new Vue({
             color: '#f1f1f1'
           },
           realtime: false,
-          calculable: true,
+          calculable: false,
           inRange: {
             color: ['lightskyblue', '#2754b7']
           }
@@ -517,13 +521,13 @@ let app = new Vue({
         ],
       })
     },
-    initChartL1() {
+    initChartL1 () {
       let myChart = echarts.init(this.$refs['echartL1'])
       let option = {
         tooltip: {
           trigger: 'item',
         },
-        color: ['#6682f5','#8ba2ff','#69c0ff','#43ede3'],
+        color: ['#6682f5', '#8ba2ff', '#69c0ff', '#43ede3'],
         legend: {
           top: 'center',
           orient: 'vertical',
@@ -555,20 +559,20 @@ let app = new Vue({
       }
       myChart.setOption(option)
     },
-    initChartL2() {
+    initChartL2 () {
       let myChart = echarts.init(this.$refs['echartL2'])
       let option = {
         tooltip: {
           trigger: 'axis',
           axisPointer: {
-            type: 'shadow',
+            type: 'cross',
           },
         },
         grid: {
           top: '16%',
           right: '3%',
           left: '10%',
-          bottom: '10%',
+          bottom: '22%',
         },
         legend: {
           top: '1',
@@ -578,7 +582,27 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: ['山西焦煤', '山西文旅', '潞安化工', '晋能控股', '山西建投'],
+          data: [
+            '家寨水控',
+            '山西建设',
+            '华新燃气',
+            '国际能源',
+            '汾酒集团',
+            '大地控股',
+            '晋能控股',
+            '华远陆港',
+            '山西焦煤',
+            '潞安化工',
+            '华阳新材',
+            '太重集团',
+            '文旅集团',
+            '航产集团',
+            '华舰体育',
+            '神农科技',
+            '云时代',
+            '山西交控'
+
+          ],
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -591,6 +615,7 @@ let app = new Vue({
           },
           axisLabel: {
             show: true,
+            rotate: 50,
             textStyle: {
               color: 'rgba(255,255,255,0.6)', //X轴文字颜色
             },
@@ -627,7 +652,7 @@ let app = new Vue({
           {
             name: '计划投资',
             type: 'bar',
-            barWidth: 15,
+            barWidth: 10,
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -642,12 +667,31 @@ let app = new Vue({
                 ]),
               },
             },
-            data: [900, 600, 500, 450, 500],
+            data: [
+              46.99,
+              218.3,
+              31.83,
+              64.20,
+              14.03,
+              47.05,
+              385.2,
+              97.57,
+              189.0,
+              106.8,
+              82.95,
+              80.01,
+              26.79,
+              41.09,
+              5.33,
+              14.76,
+              63.45,
+              346.36
+            ],
           },
           {
             name: '实际投资',
             type: 'bar',
-            barWidth: 15,
+            barWidth: 10,
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -662,26 +706,46 @@ let app = new Vue({
                 ]),
               },
             },
-            data: [500, 900, 600, 800, 450],
+            data: [
+              50.89,
+              143.84,
+              25.20,
+              12.19,
+              7.69,
+              23.93,
+              224.89,
+              112.67,
+              121.59,
+              59.93,
+              71.34,
+              42.46,
+              9.64,
+              42.67,
+              0.80,
+              5.84,
+              32.60,
+              335.91
+            ],
           },
         ],
       }
       myChart.setOption(option)
     },
-    initChartR1() {
+    initChartR1 () {
       let myChart = echarts.init(this.$refs['echartR1'])
       let option = {
         tooltip: {
           trigger: 'axis',
+          formatter: '{a0}:{c0}' + '<br/>' + '{a1}:{c1}' + '%',
           axisPointer: {
-            type: 'shadow',
+            type: 'cross',
           },
         },
         grid: {
           top: '16%',
           right: '10%',
           left: '10%',
-          bottom: '10%',
+          bottom: '15%',
         },
         legend: {
           top: '1',
@@ -690,7 +754,7 @@ let app = new Vue({
           },
         },
         xAxis: {
-          data: ['煤炭', '火电', '焦化', '物流贸易', '文旅康养','水务','生物','冶金','建材'],
+          data: ['煤炭', '火电', '焦化', '物流贸易', '文旅康养', '水务', '生物', '冶金', '建材'],
           axisLine: {
             show: true, //隐藏X轴轴线
             lineStyle: {
@@ -703,6 +767,7 @@ let app = new Vue({
           },
           axisLabel: {
             show: true,
+            rotate: 20,
             textStyle: {
               color: 'rgba(255,255,255,0.6)', //X轴文字颜色
             },
@@ -737,18 +802,19 @@ let app = new Vue({
           },
           {
             type: 'value',
-            name: '%',
+            name: '',
             nameTextStyle: {
               color: 'rgba(255,255,255,0.6)',
             },
             axisLine: {
-              show: true,
+              show: false,
               lineStyle: {
                 color: '#3D7495',
               },
             },
             axisLabel: {
               show: true,
+              formatter: '{value} %',
               textStyle: {
                 color: 'rgba(250,250,250,0.6)',
               },
@@ -774,7 +840,7 @@ let app = new Vue({
                 ]),
               },
             },
-            data: [900, 600, 500, 450, 500,900, 600, 500, 450],
+            data: [900, 600, 500, 450, 500, 900, 600, 500, 450],
           },
           {
             type: 'line',
@@ -786,7 +852,7 @@ let app = new Vue({
                 color: '#FBE139',
               },
             },
-            data: [60, 50, 45, 50,100,45,60,45,20],
+            data: [60, 50, 45, 50, 100, 45, 60, 45, 20],
           },
         ],
       }

+ 72 - 5
investment/styles/investHome.css

@@ -46,7 +46,7 @@ body {
   font-size: 12px;
 }
 .main-color {
-  color: #0bf1ff;
+  color: #40A9FF;
 }
 .danger-color {
   color: #f15450 !important;
@@ -103,7 +103,7 @@ a {
   display: flex;
   height: calc(100vh - 25px);
   background: url('../images/content-bg.png') no-repeat center bottom;
-  background-size: 80%;
+  background-size: 100% 100%;
   display: flex;
   padding-bottom: 65px;
 }
@@ -252,7 +252,7 @@ a {
   display: flex;
   flex-wrap: wrap;
   padding: 10px;
-  color: #05fbfe;
+  color: #40A9FF;
 }
 .boxs > div {
   flex: 0 0 50%;
@@ -310,18 +310,81 @@ a {
 .el-progress-bar__outer {
   background-color: #005094;
 }
+.tooltip-cont {
+  margin: -15px;
+  border: 1px solid #3699FF;
+  border-radius: 8px;
+  padding: 15px;
+  background-color: rgb(39 122 145 / 0.36);
+}
 .tooltip-cont p {
   line-height: 1.8;
   color: #f3f3f3;
+  position: relative;
+  padding-left: 12px;
+}
+.tooltip-cont p::before {
+  position: absolute;
+  display: inline-block;
+  content: '';
+  left: 0px;
+  top: 10px;
+  width: 5px;
+  height: 5px;
+  border-radius: 50%;
+  background-color: #40A9FF;
 }
 .tooltip-cont span{
-  color: #15F7FF;
+  color: #69C0FF;
+}
+.right-date {
+ position: absolute;
+  right: 15px;
+  width: 85px;
+}
+.date-popper {
+  background-color: #20414b;
+  border: 1px solid #3699FF;
+  border-radius: 8px;
+}
+.el-popper[x-placement^=bottom] .popper__arrow {
+  border-bottom-color: #3699FF;
+}
+.el-popper[x-placement^="bottom"] .popper__arrow::after {
+  border-bottom-color: #20414b;
+}
+.date-popper .el-date-picker__header-label {
+  color: #d6cfcf;
+}
+.el-picker-panel__icon-btn {
+  color: #fff;
+}
+.date-popper .el-year-table td {
+  padding: 10px 3px;
+}
+.date-popper .el-year-table td .cell {
+  color: #d6cfcf;
+}
+.right-date .el-date-editor--year {
+  width: 100%;
+}
+.right-date .el-date-editor--year .el-input__inner{
+  background: rgba(0,80,148,0.3);
+  border: 1px solid #21C1FF;
+  border-radius: 4px 12px 4px 4px;
+  color: #fff;
+  padding: 0 15px;
+}
+.right-date .el-date-editor--year .el-input__prefix {
+  left: auto;
+  right: 5px;
+  color: #40A9FF;
 }
 .el-progress__text {
   color: #fff;
 }
 .map-box {
-  height: calc(100% - 150px);
+  height: 100%;
   position: relative;
   padding: 30px 0;
 }
@@ -348,3 +411,7 @@ a {
   font-weight: 600;
   color: #40A9FF;
 }
+.dv-scroll-board .header {
+  font-weight: 600 !important;
+  color: #2ABBFF;
+}

+ 19 - 11
manpower/index.html

@@ -49,13 +49,13 @@
           <div class="my-panel">
             <div class="panel-title flex-between">
               <span class="text">定职数</span>
-              <span class="tip-window" @click="handleShowTip(0)">智能分析</span>
+              <span class="tip-window" @click="handleShowTip(1)">智能分析</span>
             </div>
             <div class="content flex">
               <div ref="echartL3" style="flex: 1;height: 100%;"></div>
               <div style="flex: 1;height: 100%; position: relative;">
                 <div ref="echartL4" style="height: 100%; width: 100%;"></div>
-                <div class="icon" @click="handleShowTip(0)">?</div>
+                <div class="icon" @click="handleShowTip2(0)">?</div>
               </div>
             </div>
           </div>
@@ -64,7 +64,7 @@
           <div class="my-panel">
             <div class="panel-title flex-between">
               <span class="text">定员额</span>
-              <span class="tip-window" @click="handleShowTip(1)">智能分析</span>
+              <span class="tip-window" @click="handleShowTip(2)">智能分析</span>
             </div>
             <div class="content flex flex-wrap">
               <div ref="echartL5" style="flex: 0 0 49.9%;height: 50%;"></div>
@@ -161,12 +161,12 @@
           <div class="my-panel">
             <div class="panel-title flex-between">
               <span class="text">核心指标监测</span>
-              <span class="tip-window" @click="handleShowTip(2)">智能分析</span>
+              <span class="tip-window" @click="handleShowTip(3)">智能分析</span>
             </div>
             <div class="content flex">
               <div style="flex: 1;height: 100%; position: relative;">
                 <div ref="echartC1" style="flex: 1;height: 100%;"></div>
-                <div class="icon" @click="handleShowTip(0)">?</div>
+                <div class="icon" @click="handleShowTip2(1)">?</div>
               </div>
               <div ref="echartC2" style="flex: 1;height: 100%;"></div>
             </div>
@@ -196,7 +196,7 @@
           <div class="my-panel">
             <div class="panel-title flex-between">
               <span class="text">定机制</span>
-              <span class="tip-window" @click="handleShowTip(0)">智能分析</span>
+              <span class="tip-window" @click="handleShowTip(4)">智能分析</span>
             </div>
             <div class="content flex flex-wrap">
               <div ref="echartR1" style="flex: 0 0 49.9%;height: 50%;"></div>
@@ -210,7 +210,7 @@
           <div class="my-panel">
             <div class="panel-title flex-between">
               <span class="text">定薪酬</span>
-              <span class="tip-window" @click="handleShowTip(3)">智能分析</span>
+              <span class="tip-window" @click="handleShowTip(5)">智能分析</span>
             </div>
             <div class="content flex">
               <div ref="echartR5" style="flex: 1;height: 100%;"></div>
@@ -222,7 +222,7 @@
           <div class="my-panel">
             <div class="panel-title flex-between">
               <span class="text">定任期</span>
-              <span class="tip-window" @click="handleShowTip(0)">智能分析</span>
+              <span class="tip-window" @click="handleShowTip(6)">智能分析</span>
             </div>
             <div class="content flex">
               <div ref="echartR7" style="flex: 1;height: 100%;"></div>
@@ -239,9 +239,17 @@
 
     <div class="tip" @click="showTip = false" v-if="showTip">
       <div class="tip-box">
-        <div class="tip-content">{{tipData[tipNum]}}</div>
-        <!-- <div class="btm20">全员劳动生产率从去年前的人均XX万元提升到XX万元;在岗职工平均工资从去年前的人均XX万元提升到XX万元。</div>
-        <div>打破工资“大锅饭”,所有盈利企业工资增幅不高于利润增幅。实行薪酬“双挂钩”,省属企业负责人绩效年薪与经营业绩考核结果挂钩后,还要与企业经济效益挂钩。</div> -->
+        <div class="tip-content">
+          <div class="btm10" v-for="(item,index) in tipData[tipNum]" :key="index"> {{item}}</div>
+        </div>
+      </div>
+    </div>
+
+    <div class="tip" @click="showTip2 = false" v-if="showTip2">
+      <div class="tip-box">
+        <div class="tip-content">
+          <div class="btm10" v-for="(item,index) in tipData2[tipNum]" :key="index"> {{item}}</div>
+        </div>
       </div>
     </div>
   </div>

+ 3 - 0
manpower/index4.html

@@ -27,6 +27,9 @@
     <header class="my-header">
       <span class="left" @click="handleGoBack"><img style="width: 70px;height: 70px;" src="./images/back.png"></img>
       </span>
+      <!--  -->
+      <span class="left2" @click="handleGoIndex">返回首页</img>
+      </span>
       <span>山西三元煤业股份有限公司</span>
       <span class="right">{{time}}</span>
     </header>

+ 4 - 3
manpower/js/data.js

@@ -48,7 +48,7 @@ const dataL1 = [
   [21, 21, 21, 21, 13, 13, 6, 13, 13, 14, 14, 12, 15, 15, 12, 15, 12, 13],
 ]
 const dataL2 = [
-  [16, 8, 12, 10, 11, 1, 0, 8, 8, 0, 7, 0, 5, 10, 0, 0, 0, 6],
+  [11, 8, 12, 10, 11, 0, 0, 5, 0, 0, 7, 0, 4, 0, 0, 0, 0, 6],
   [11, 10, 6, 10, 12, 0, 0, 5, 0, 5, 7, 0, 4, 0, 0, 0, 0, 10],
 ]
 const dataL3 = [
@@ -57,7 +57,8 @@ const dataL3 = [
 ]
 const dataL4 = [
   [142, 189, 58, 59, 39, 32, 12, 36, 66, 36, 72, 41, 28, 161, 63, 10, 69, 28],
-  [109, 65, 42, 44, 36, 34, 8, 62, 45, 28, 51, 98, 40, 30, 20, 99, 51, 24],
+  [59, 70, 71, 67, 38, 29, 2, 36, 32, 31, 36, 28, 37, 64, 25, 20, 10, 21],
+  [59, 70, 71, 67, 38, 29, 22, 36, 32, 31, 36, 28, 37, 64, 25, 33, 18, 34]
 ]
 const dataL5 = [
   [173826, 352494, 54039, 108985, 23512, 8484, 2430, 16357, 7351, 4452, 38863, 3242, 35183, 13285, 1937, 14733, 302, 1052],
@@ -65,7 +66,7 @@ const dataL5 = [
 ]
 
 const dataL6 = [
-  [146, 360, 400, 185, 220, 180, 30, 200, 200, 141, 235, 120, 200, 315, 50, 118, 100, 157],
+  [146, 360, 400, 185, 220, 180, 30, 200, 200, 141, 170, 120, 200, 315, 50, 118, 100, 157],
   [400, 400, 400, 400, 200, 180, 50, 200, 200, 177, 170, 120, 200, 330, 80, 186, 100, 150],
 ]
 const dataL7 = [

+ 2 - 2
manpower/js/data2.js

@@ -77,8 +77,8 @@ const dataC1 = [
   [61, -12, 54, 127, 24, 2, 27, -8, 7]
 ]
 const dataC2 = [
-  [305, 8, 120.00, 79, 72, 415, 15, 571, 40],
-  [105, 323, 182, 1769.00, 43.00, -30, 686, -33, 78]
+  [105, 323, 182, 1769.00, 43.00, -30, 686, -33, 78],
+  [305, 8, 120.00, 79, 72, 415, 15, 571, 40]
 ]
 const dataR1 = [
   [1, 1, 1, 1, 1, 1, 1, 1, 1],

+ 5 - 5
manpower/js/data3.js

@@ -68,19 +68,19 @@ const dataL6 = [
 ]
 const dataL7 = [
   [-57.00, 20.00, -14.00, -8.00, 0.00, 9.00, 0.00, -4.00, 0.00, -2.00],
-  [2006, 46, 2, 6, -8, 46, 17, -44, 24, -80]
+  [null, 46, 2, 6, -8, 46, 17, -44, 24, -80]
 ]
 const dataL8 = [
   [-57.00, 20.00, -14.00, -8.00, 0.00, 9.00, 0.00, -4.00, 0.00, -2.00],
-  [469.09, 117.06, -43.01, -16.89, -33.33, 35.19, 15.56, -75.42, 2733.33, -222.00]
+  [469.09, 117.06, -43.01, -16.89, -33.33, 35.19, 15.56, -75.42, null, -222.00]
 ]
 const dataC1 = [
   [321.15, 233.91, 170.76, 157.08, 156.96, 150.38, 114.21, 113.93, 40.54, 3.46],
-  [2006, 46, 2, 6, -8, 46, 17, -44, 24, -80]
+  [null, 46, 2, 6, -8, 46, 17, -44, 24, -80]
 ]
 const dataC2 = [
-  [812.00, 547.00, 212.00, 251.00, 272.00, 315.00, 401.00, 87.00, 85.00, -161.00],
-  [469.09, 117.06, -43.01, -16.89, -33.33, 35.19, 15.56, -75.42, 2733.33, -222.00]
+  [469.09, 117.06, -43.01, -16.89, -33.33, 35.19, 15.56, -75.42, null, -222.00],
+  [812.00, 547.00, 212.00, 251.00, 272.00, 315.00, 401.00, 87.00, 85.00, -161.00]
 ]
 const dataR1 = [
   [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

+ 3 - 2
manpower/js/data4.js

@@ -67,8 +67,9 @@ const dataC1 = [
   [-18.20, 0.00, 95.39, -35.61, -71.34, 0.00, 0.00, 0.00]
 ]
 const dataC2 = [
-  [0.00, 0.00, 235.35, -141.02, -138.66, -125.17, -417.93, -3675.51],
-  [0.00, 0.00, 780.62, 242.97, 18.09, -52.24, 3.12, 24.68]
+  [0.00, 0.00, 780.62, 242.97, 18.09, -52.24, 3.12, 24.68],
+  [0.00, 0.00, 235.35, -141.02, -138.66, -125.17, -417.93, -3675.51]
+  
 ]
 const dataR1 = [
   [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

+ 36 - 4
manpower/js/fjx.js

@@ -16,8 +16,40 @@ const fjxdataL1 = [
   ]
 
   const tipData = [
-    '全员劳动生产率从去年前的人均XX万元提升到XX万元;在岗职工平均工资从去年前的人均XX万元提升到XX万元。打破工资“大锅饭”,所有盈利企业工资增幅不高于利润增幅。实行薪酬“双挂钩”,省属企业负责人绩效年薪与经营业绩考核结果挂钩后,还要与企业经济效益挂钩。全员劳动生产率从去年前的人均XX万元提升到XX万元;在岗职工平均工资从去年前的人均XX万元提升到XX万元。打破工资“大锅饭”,所有盈利企业工资增幅不高于利润增幅。实行薪酬“双挂钩”,省属企业负责人绩效年薪与经营业绩考核结果挂钩后,还要与企业经济效益挂钩果挂钩后,还要与企业经济效益挂钩。',
-    '全员劳动生产率从去年前的人均XX万元提升到XX万元;在岗职工平均工资从去年前的人均XX万元提升到XX万元。打破工资“大锅饭”,所有盈利企业工资增幅不高于利润增幅。实行薪酬“双挂钩”,省属企业负责人绩效年薪与经营业绩考核结果挂钩后,还要与企业经济效益挂钩2。',
-    '全员劳动生产率从去年前的人均XX万元提升到XX万元;在岗职工平均工资从去年前的人均XX万元提升到XX万元。打破工资“大锅饭”,所有盈利企业工资增幅不高于利润增幅。实行薪酬“双挂钩”,省属企业负责人绩效年薪与经营业绩考核结果挂钩后,还要与企业经济效益挂钩3。',
-    '全员劳动生产率从去年前的人均XX万元提升到XX万元;在岗职工平均工资从去年前的人均XX万元提升到XX万元。打破工资“大锅饭”,所有盈利企业工资增幅不高于利润增幅。实行薪酬“双挂钩”,省属企业负责人绩效年薪与经营业绩考核结果挂钩后,还要与企业经济效益挂钩4。'
+    [
+      '华阳新材12月总部设立的共享服务中心及事业部数共12个,“六定”常态机制核定上限为6个,未严格执行机构配置限额有关规定'
+    ],
+    [
+      '云时代中层管理人员对比六定前有所增长,是因为在此期间发生了组织兼并。'
+    ],
+    [
+      '1.	华舰体育总人数比去年同期增长490%,主要原因是业务发展需要;',
+      '2.	华阳新材人数下降了24%,主要是自然减员结果;',
+      '3.	文旅集团全员劳动生产率同比下降33%,人工成本利润率同比下降470%,企业总人数增长2%;',
+      '4.	大地控股的全员劳动生产率同比下降7%,人工成本利润率同比下降4%,企业总人数增长14%;',
+      '5.	华舰体育全员劳动生产率同比增长56%,同时企业总人数增长490%,明显高于全员劳动率增长幅度,值得关注;',
+    ],
+    [
+      '1.	国际能源全员劳动生产率较高,因为扭亏减亏成效显著;',
+      '2.	汾酒集团全员劳动生产率较高,因为企业效益好人均产值较高;',
+      '3.	文旅集团、航产集团人工成本利润率为负,且与去年同期比有所下降,需重点关注;',
+      '4.	国际能源、华舰体育人工成本利润率为负,但相比去年有所改善;',
+      '5.	山西焦煤、晋能控股、华阳新材、太重集团、国际能源、华远陆港、交控集团等8家企业人工成本利润率增长且总人数下降;',
+    ],
+    [
+      '1.	文旅集团2022年利润为负,同时累计招聘46人;',
+      '2.	航产集团2022年利润为负,同时累计招聘199人;',
+      '3.	国际能源2022年利润为负,同时累计招聘190人',
+      '4.	华舰体育2022年利润为负,同时累计招聘12人;',
+    ],
+    [
+      '1.	文旅集团2022年利润同比降低524%,同时薪酬总额增长5.27%;',
+      '2.	航产集团2022年利润同比降低160%,同时薪酬总额增长5.27%;',
+      '3.	华舰体育2022年利润同比降低20%,同时薪酬总额增长5.28%',
+    ]
+  ]
+
+  const tipData2 = [
+    ['管理人员是指有直接下属、具有人员管理职责的人员,不包括财务人员、人力资源等管理部门中不负有人员管理职能的具体工作人员。'],
+    ['全员劳动生产率=劳动生产总值/平均在岗职工人数']
   ]

+ 175 - 101
manpower/js/index.js

@@ -5,6 +5,7 @@ let app = new Vue({
   data () {
     return {
       showTip: false,
+      showTip2: false,
       tipNum: '',
       tipData: tipData,
       time: '',
@@ -57,10 +58,6 @@ let app = new Vue({
           ['<span class="lightOut"><span class="	light yellow	"></span></span>', '	2022.12.07	 ', '	华舰体育	 ', '	六定相关文件未按要求备案	 '],
           ['<span class="lightOut"><span class="	light yellow	"></span></span>', '	2022.12.07	 ', '	文旅集团	 ', '	六定相关文件未按要求备案	 '],
           ['<span class="lightOut"><span class="	light yellow	"></span></span>', '	2022.12.07	 ', '	水控集团	 ', '	六定相关文件未按要求备案	 '],
-
-
-
-
         ],
         // data: [
         //   ['<span style-"display:inline-block; width:15px;height:15px;border-radius:50%;background-color:green;"></span>', '2022年1月', '山西焦煤', '已经开展高层次人才引进工作'],
@@ -92,7 +89,6 @@ let app = new Vue({
           ['<span class="lightOut"><span class="	light yellow	"></span></span>', '	航产集团	 ', '	经营业绩考核12月数据未获取	 ', '	2022.12.01-12.31	 ', '	15	 '],
           ['<span class="lightOut"><span class="	light yellow	"></span></span>', '	华舰体育	 ', '	经营业绩考核12月数据未获取	 ', '	2022.12.01-12.31	 ', '	15	 '],
           ['<span class="lightOut"><span class="	light yellow	"></span></span>', '	文旅集团	 ', '	六定长效机制情况数据更新错误	 ', '	2022.12.01-12.31	 ', '	-	 '],
-
         ],
       },
       companyList: companyList,
@@ -219,6 +215,10 @@ let app = new Vue({
       this.showTip = true
       this.tipNum = index
     },
+    handleShowTip2(index) {
+      this.showTip2 = true
+      this.tipNum = index
+    },
     handleGoPage (url) {
       if (url.length) {
         window.location.href = url
@@ -562,10 +562,33 @@ let app = new Vue({
             },
             data: dataL4[1],
           },
+          {
+            name: '总部中层管理人数核定上限',
+            type: 'line',
+            yAxisIndex: 1,
+            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: dataL4[2],
+          },
         ],
       }
       option.title.text = '各省属企业总部中层管理人数'
-      option.legend.data = ['六定改革前总部中层管理人数', '当前总部中层管理人数']
+      option.legend.data = ['六定改革前总部中层管理人数', '当前总部中层管理人数','总部中层管理人数核定上限']
       option.legend.show = true
       option.yAxis.push({
         splitLine: {
@@ -742,7 +765,7 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL7'])
       let option = {
         ..._.cloneDeep(this.commonOption),
-        color: ['#b889ea'],
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
@@ -750,15 +773,16 @@ let app = new Vue({
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
-            symbolSize: 8, //标记的大小
+            symbolSize: 15, //标记的大小
             smooth: false,
             itemStyle: {
-              //折线拐点标志的样式
-              color: '#43ede3',
-              borderColor: '#43ede3',
-              width: 2,
-              shadowColor: '#43ede3',
-              shadowBlur: 4,
+              color: params => {
+                if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
+              },
             },
             lineStyle: {
               color: '#43ede3',
@@ -766,6 +790,7 @@ let app = new Vue({
             },
             data: dataL7[0],
           },
+
           {
             name: '劳动生产率同比变化',
             type: 'line',
@@ -776,17 +801,12 @@ let app = new Vue({
             symbolSize: 15, //标记的大小
             smooth: false,
             itemStyle: {
-              color: params => {
-                if (dataL7[0][params.dataIndex] > 0 && params.value < 0) {
-                  return 'red'
-                } else {
-                  return '#b889ea'
-                }
-              },
-            },
-            lineStyle: {
+              //折线拐点标志的样式
               color: '#b889ea',
+              borderColor: '#b889ea',
               width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
             data: dataL7[1],
           },
@@ -830,7 +850,7 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL8'])
       let option = {
         ..._.cloneDeep(this.commonOption),
-        color: ['#b889ea'],
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
@@ -838,15 +858,16 @@ let app = new Vue({
             smooth: true, //平滑曲线显示
             showAllSymbol: true, //显示所有图形。
             symbol: 'circle', //标记的图形为实心圆
-            symbolSize: 8, //标记的大小
+            symbolSize: 15, //标记的大小
             smooth: false,
             itemStyle: {
-              //折线拐点标志的样式
-              color: '#43ede3',
-              borderColor: '#43ede3',
-              width: 2,
-              shadowColor: '#43ede3',
-              shadowBlur: 4,
+              color: params => {
+                if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
+              },
             },
             lineStyle: {
               color: '#43ede3',
@@ -863,14 +884,14 @@ let app = new Vue({
             symbolSize: 15, //标记的大小
             smooth: false,
             itemStyle: {
-              color: params => {
-                if (dataL8[0][params.dataIndex] > 0 && params.value < 0) {
-                  return 'red'
-                } else {
-                  return '#b889ea'
-                }
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
+            
             lineStyle: {
               color: '#b889ea',
               width: 2,
@@ -878,6 +899,13 @@ let app = new Vue({
             data: dataL8[1],
           },
         ],
+        // tooltip: {
+        //   trigger: 'axis',
+        //   formatter(params){
+        //     console.log(params)
+        //     return params[0]
+        //   }
+        // }
       }
       option.title.text = '人数变化和人工成本利润率变化分析'
       option.legend.data = ['人数变化', '人工成本利润率同比变化']
@@ -917,29 +945,6 @@ let app = new Vue({
                 }
               },
             },
-            data: c1[0],
-          },
-          {
-            name: '全员劳动生产率同比',
-            type: 'line',
-            yAxisIndex: 1,
-            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,
-            },
             markLine: {
               data: [
                 {
@@ -955,19 +960,19 @@ let app = new Vue({
                     color: '#fff',
                   },
                 },
-                {
-                  name: '',
-                  yAxis: 0,
-                  lineStyle: {
-                    color: '#fff',
-                  },
-                  label: {
-                    formatter: '{b}',
-                    position: 'end',
-                    fontSize: 16,
-                    color: '#fff',
-                  },
-                },
+                // {
+                //   name: '',
+                //   yAxis: 0,
+                //   lineStyle: {
+                //     color: '#fff',
+                //   },
+                //   label: {
+                //     formatter: '{b}',
+                //     position: 'end',
+                //     fontSize: 16,
+                //     color: '#fff',
+                //   },
+                // },
                 {
                   name: '央企平均水平',
                   yAxis: 69.4,
@@ -986,6 +991,30 @@ let app = new Vue({
                 distance: [50, 0],
               },
             },
+            data: c1[0],
+          },
+          {
+            name: '全员劳动生产率同比',
+            type: 'line',
+            yAxisIndex: 1,
+            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,
+            },
+            
             // data: [50, 40, 60, 20, 45, 30, 60, 100, 45, 40, 50, 20, 60, 80, 45, 70, 50, 40],
             data: c1[1],
           },
@@ -1342,6 +1371,7 @@ let app = new Vue({
       commonOptions.yAxis[0].splitNumber = 2
       let option = {
         ..._.cloneDeep(commonOptions),
+        color: ['#45DAD1'],
         series: [
           {
             name: '2022年利润(万)',
@@ -1369,19 +1399,37 @@ let app = new Vue({
             barWidth: 15,
             yAxisIndex: 1,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#45DAD1',
-                  },
-                  {
-                    offset: 1,
-                    color: '#082550',
-                  },
-                ]),
+              color: params => {
+                if (params.value > 0 && dataR3[0][params.dataIndex] < 0) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#45DAD1',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
+            // itemStyle: {
+            //   normal: {
+            //     color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+            //       {
+            //         offset: 0,
+            //         color: '#45DAD1',
+            //       },
+            //       {
+            //         offset: 1,
+            //         color: '#082550',
+            //       },
+            //     ]),
+            //   },
+            // },
             data: dataR3[1],
           },
         ],
@@ -1389,21 +1437,19 @@ let app = new Vue({
       option.title.text = '各省属企业年利润与当年累计招聘人数'
       option.legend.data = ['2022年利润(万)', '2022年累计招聘数']
       option.legend.show = true
-      option.yAxis[0].max = 
-      option.yAxis[0].min = 
       option.yAxis[0] = {
         max: function (value) {
           if (Math.abs(value.max) > Math.abs(value.min)) {
-            return (Math.abs(value.max) * 1.2).toFixed(2);
+            return (Math.abs(value.max) * 1.2).toFixed(2)
           } else {
-            return (Math.abs(value.min) * 1.2).toFixed(2);
+            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);
+            return (-Math.abs(value.max) * 1.2).toFixed(2)
           } else {
-            return (-Math.abs(value.min) * 1.2).toFixed(2);
+            return (-Math.abs(value.min) * 1.2).toFixed(2)
           }
         },
         type: 'value',
@@ -1443,19 +1489,18 @@ let app = new Vue({
         },
         max: function (value) {
           if (Math.abs(value.max) > Math.abs(value.min)) {
-            return (Math.abs(value.max) * 1.2).toFixed(2);
+            return (Math.abs(value.max) * 1.2).toFixed(2)
           } else {
-            return (Math.abs(value.min) * 1.2).toFixed(2);
+            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);
+            return (-Math.abs(value.max) * 1.2).toFixed(2)
           } else {
-            return (-Math.abs(value.min) * 1.2).toFixed(2);
+            return (-Math.abs(value.min) * 1.2).toFixed(2)
           }
-        }
-
+        },
       })
       myChart.setOption(option)
     },
@@ -1546,6 +1591,26 @@ let app = new Vue({
             name: '去年同期在岗职工平均薪酬',
             type: 'bar',
             barWidth: 15,
+            markLine: {
+              data: [
+                {
+                  name: '省属企业平均水平',
+                  yAxis: 9333.33,
+                  lineStyle: {
+                    color: '#fff',
+                  },
+                  label: {
+                    formatter: '{b}',
+                    position: 'middle',
+                    fontSize: 16,
+                    color: '#fff',
+                  },
+                }
+              ],
+              label: {
+                distance: [50, 0],
+              },
+            },
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -1694,9 +1759,18 @@ let app = new Vue({
         ],
       }
       option.title.text = '各省属企业全员绩效考核'
-      option.legend.show = false
-      option.tooltip.formatter = '{a0}:{c0}' + '%'
-      option.yAxis[0].axisLabel.formatter = '{value} %'
+      option.legend.show = true
+      option.tooltip = {
+        trigger: 'axis',
+        formatter: '{a0}:{c0}' + '%'
+      },
+        option.yAxis[0].axisLabel = {
+          show: true,
+          formatter: '{value} %',
+          textStyle: {
+            color: 'rgba(250,250,250,0.6)',
+          },
+        }
       myChart.setOption(option)
     },
     initChartR8 () {
@@ -1727,7 +1801,7 @@ let app = new Vue({
         ],
       }
       option.title.text = '各省属企业任期制契约化管理'
-      option.legend.show = false
+      option.legend.show = true
       option.tooltip.formatter = '{a0}:{c0}' + '%'
       option.yAxis[0].axisLabel.formatter = '{value} %'
       myChart.setOption(option)

+ 103 - 76
manpower/js/index2.js

@@ -535,25 +535,29 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL7'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
             type: 'line',
             barWidth: 15,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#43ede3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#43ede3',
-                  },
-                ]),
+              color: params => {
+                if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
               },
             },
+            lineStyle: {
+              color: '#43ede3',
+              width: 2,
+            },
             // markLine: {
             //   data: [{ type: 'average', name: 'Avg' }],
             // },
@@ -564,20 +568,31 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#b889ea',
-                  },
-                  {
-                    offset: 1,
-                    color: '#b889ea',
-                  },
-                ]),
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
+            // itemStyle: {
+            //   normal: {
+            //     color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+            //       {
+            //         offset: 0,
+            //         color: '#b889ea',
+            //       },
+            //       {
+            //         offset: 1,
+            //         color: '#b889ea',
+            //       },
+            //     ]),
+            //   },
+            // },
             data: dataL7[1],
           },
         ],
@@ -633,25 +648,29 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL8'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
             type: 'line',
             barWidth: 15,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#43ede3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#43ede3',
-                  },
-                ]),
+              color: params => {
+                if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
               },
             },
+            lineStyle: {
+              color: '#43ede3',
+              width: 2,
+            },
             // markLine: {
             //   data: [{ type: 'average', name: 'Avg' }],
             // },
@@ -662,19 +681,17 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#b889ea',
-                  },
-                  {
-                    offset: 1,
-                    color: '#b889ea',
-                  },
-                ]),
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
             data: dataL8[1],
           },
@@ -767,13 +784,6 @@ let app = new Vue({
               color: '#B889EA',
               width: 2,
             },
-            data: dataC1[0],
-
-          },
-          {
-            name: '全员劳动生产率同比变化',
-            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
-            type: 'line',
             markLine: {
               data: [
                 {
@@ -805,6 +815,13 @@ let app = new Vue({
                 distance: [20, 8],
               },
             },
+            data: dataC1[0],
+
+          },
+          {
+            name: '全员劳动生产率同比变化',
+            yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
+            type: 'line',
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -1124,6 +1141,7 @@ let app = new Vue({
       commonOptions.yAxis[0].splitNumber = 2
       let option = {
         ..._.cloneDeep(commonOptions),
+        color: ['#45DAD1'],
         series: [
           {
             name: '2022年利润(万)',
@@ -1151,17 +1169,21 @@ let app = new Vue({
             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 > 0 && dataR3[0][params.dataIndex] < 0) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#45DAD1',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
             data: dataR3[1],
@@ -1181,7 +1203,7 @@ let app = new Vue({
         },
         axisLabel: {
           show: true,
-          formatter: '{value} %',
+          formatter: '{value} ',
           textStyle: {
             color: 'rgba(250,250,250,0.6)',
           },
@@ -1317,6 +1339,7 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartR6'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#69c0ff'],
         series: [
           {
             name: '2022年利润累计涨幅率',
@@ -1346,17 +1369,21 @@ let app = new Vue({
             barWidth: 15,
             yAxisIndex: 1,
             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 && dataR6[0][params.dataIndex] < 0) {
+                  return 'yellow'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
             data: dataR6[1],

+ 82 - 68
manpower/js/index3.js

@@ -536,23 +536,23 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL7'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
             type: 'line',
             barWidth: 15,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#43ede3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#43ede3',
-                  },
-                ]),
+              color: params => {
+                if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
               },
             },
             // markLine: {
@@ -565,19 +565,17 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#b889ea',
-                  },
-                  {
-                    offset: 1,
-                    color: '#b889ea',
-                  },
-                ]),
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
             data: dataL7[1],
           },
@@ -634,25 +632,29 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL8'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
             type: 'line',
             barWidth: 15,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#43ede3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#43ede3',
-                  },
-                ]),
+              color: params => {
+                if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
               },
             },
+            lineStyle: {
+              color: '#43ede3',
+              width: 2,
+            },
             // markLine: {
             //   data: [{ type: 'average', name: 'Avg' }],
             // },
@@ -663,19 +665,17 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#b889ea',
-                  },
-                  {
-                    offset: 1,
-                    color: '#b889ea',
-                  },
-                ]),
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
             data: dataL8[1],
           },
@@ -1124,6 +1124,7 @@ let app = new Vue({
       commonOptions.yAxis[0].splitNumber = 2
       let option = {
         ..._.cloneDeep(commonOptions),
+        color: ['#45DAD1'],
         series: [
           {
             name: '2022年利润(万)',
@@ -1151,17 +1152,21 @@ let app = new Vue({
             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 > 0 && dataR3[0][params.dataIndex] < 0) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#45DAD1',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
             data: dataR3[1],
@@ -1375,6 +1380,7 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartR6'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#69c0ff'],
         series: [
           {
             name: '2022年利润累计涨幅率',
@@ -1403,18 +1409,26 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 12, //标记的大小
+            smooth: false,
             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 && dataR6[0][params.dataIndex] < 0) {
+                  return 'yellow'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
             data: dataR6[1],

+ 89 - 68
manpower/js/index4.js

@@ -182,6 +182,9 @@ let app = new Vue({
         window.location.href = url
       }
     },
+    handleGoIndex () {
+      window.location.href = './index.html'
+    },
     handleGoBack () {
       window.history.go(-1)
     },
@@ -538,23 +541,23 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL7'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
             type: 'line',
             barWidth: 15,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#43ede3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#43ede3',
-                  },
-                ]),
+              color: params => {
+                if (dataL7[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
               },
             },
             // markLine: {
@@ -567,19 +570,17 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#b889ea',
-                  },
-                  {
-                    offset: 1,
-                    color: '#b889ea',
-                  },
-                ]),
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
             data: dataL7[1],
           },
@@ -636,25 +637,29 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartL8'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#43ede3'],
         series: [
           {
             name: '人数变化',
             type: 'line',
             barWidth: 15,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#43ede3',
-                  },
-                  {
-                    offset: 1,
-                    color: '#43ede3',
-                  },
-                ]),
+              color: params => {
+                if (dataL8[1][params.dataIndex] < 0 && params.value > 0) {
+                  return 'red'
+                } else {
+                  return '#43ede3'
+                }
               },
             },
+            lineStyle: {
+              color: '#43ede3',
+              width: 2,
+            },
             // markLine: {
             //   data: [{ type: 'average', name: 'Avg' }],
             // },
@@ -665,19 +670,17 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             // yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 15, //标记的大小
+            smooth: false,
             itemStyle: {
-              normal: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  {
-                    offset: 0,
-                    color: '#b889ea',
-                  },
-                  {
-                    offset: 1,
-                    color: '#b889ea',
-                  },
-                ]),
-              },
+              //折线拐点标志的样式
+              color: '#b889ea',
+              borderColor: '#b889ea',
+              width: 2,
+              shadowColor: '#b889ea',
+              shadowBlur: 4,
             },
             data: dataL8[1],
           },
@@ -1126,6 +1129,7 @@ let app = new Vue({
       commonOptions.yAxis[0].splitNumber = 2
       let option = {
         ..._.cloneDeep(commonOptions),
+        color: ['#45DAD1'],
         series: [
           {
             name: '2022年利润(万)',
@@ -1153,17 +1157,21 @@ let app = new Vue({
             yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
             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 > 0 && dataR3[0][params.dataIndex] < 0) {
+                  return 'red'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#45DAD1',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
             data: dataR3[1],
@@ -1345,6 +1353,7 @@ let app = new Vue({
       let myChart = echarts.init(this.$refs['echartR6'])
       let option = {
         ..._.cloneDeep(this.commonOption),
+        color: ['#69c0ff'],
         series: [
           {
             name: '2022年利润累计涨幅率',
@@ -1373,20 +1382,32 @@ let app = new Vue({
             type: 'line',
             barWidth: 15,
             yAxisIndex: 1,
+            showAllSymbol: true, //显示所有图形。
+            symbol: 'circle', //标记的图形为实心圆
+            symbolSize: 12, //标记的大小
+            smooth: false,
             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 && dataR6[0][params.dataIndex] < 0) {
+                  return 'yellow'
+                } else {
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                    {
+                      offset: 0,
+                      color: '#69c0ff',
+                    },
+                    {
+                      offset: 1,
+                      color: '#082550',
+                    },
+                  ])
+                }
               },
             },
+            lineStyle: {
+              color: '#69C0FF',
+              width: 2,
+            },
             data: dataR6[1],
           },
         ],

+ 13 - 0
manpower/styles/index.css

@@ -103,10 +103,23 @@ a {
 .my-header span.left {
   position: absolute;
   left: 100px;
+  height: 50px;
   top: 40px;
   font-size: 30px;
   cursor: pointer;
 }
+.my-header span.left2 {
+  position: absolute;
+  left: 300px;
+  top: 20px;
+  height: 100px;
+  line-height: 100px;
+  display: inline-block;
+  width: 180px;
+  font-size: 36px;
+  cursor: pointer;
+}
+
 .my-header span.right {
   position: absolute;
   right: 100px;