Browse Source

修改包装总看板

callm 1 year ago
parent
commit
c69f82723a

+ 21 - 2
src/components/packageechart/bottom/bottomLeft2Chart/chart.vue

@@ -75,7 +75,7 @@ export default {
           {
             name: '投入',
             type: 'bar',
-            barWidth: 20,
+            barWidth: 15,
             emphasis: {
               focus: 'series'
             },
@@ -90,7 +90,7 @@ export default {
           {
             name: '产出',
             type: 'bar',
-            barWidth: 20,
+            barWidth: 15,
             stack: 'Ad',
             emphasis: {
               focus: 'series'
@@ -147,6 +147,21 @@ export default {
             emphasis: {
               focus: 'series'
             }
+          }, {
+            name: 'UPH',
+            type: 'bar',
+            barWidth: 15,
+            data:[],
+            //data: [12, 22, 32, 12, 32, 12, 32],
+            emphasis: {
+              focus: 'series'
+            },
+            label: {
+              show: true,
+              position: 'top',
+              fontSize:14,
+              fontWeight: "bold"
+            }
           }
         ]
       },
@@ -192,6 +207,7 @@ export default {
                         let series1 = new Array();
                         let series2 = new Array();
                         let series3 = new Array();
+                        let series4 = new Array();
                         for (let index = 0; index < dataList.length; index++) {
                           const element = dataList[index];
                           xAxis0.push(element.sp_wccode);
@@ -203,12 +219,15 @@ export default {
                           series2.push(element.v_ngqty);
                           //良率
                           series3.push(element.v_okrate);
+                          //UPH
+                          series4.push(element.uph);
                         }
                         this.options.xAxis[0].data = xAxis0;
                         this.options.series[0].data = series0;
                         this.options.series[1].data = series1;
                         this.options.series[2].data = series2;
                         this.options.series[3].data = series3;
+                        this.options.series[4].data = series4;
                        /*let myChart = this.$children[0].chart;
                        myChart.setOption({
                           xAxis: {

+ 5 - 3
src/components/packageechart/bottom/bottomRightChart/chart.vue

@@ -315,15 +315,17 @@ export default {
               markLine: {
                 silent: true,
                 data: [
-                  {
+                  {yAxis: 98}
+                  /*{
                     type: 'average',
+                    value:80,
                     name: '平均值'
-                  }
+                  }*/
                 ],
                 precision: 0,
                 label: {
                   normal: {
-                    formatter: '平均值: \n {c}'
+                    formatter: '目标线: \n {c}'
                   }
                 },
                 lineStyle: {

+ 1 - 1
src/components/packageechart/bottom/bottomRightChart/index.vue

@@ -57,7 +57,7 @@ export default {
       this.cdata.year = dateBase.getFullYear();
       this.cdata.nowdate = (dateBase.getMonth() + 1 < 10 ? "0" + (dateBase.getMonth() + 1) : dateBase.getMonth() + 1)
               +"/"
-              +(dateBase.getDate() + 1 < 10 ? "0" + (dateBase.getDate() + 1) : dateBase.getDate() + 1);
+              +(dateBase.getDate() < 10 ? "0" + (dateBase.getDate()) : dateBase.getDate());
 
       //良率直通图
       var caller1 = 'DAYTURNOUT';

+ 105 - 0
src/components/packageechart/centerLeft/centerChartRate/index.vue

@@ -0,0 +1,105 @@
+<template>
+  <div>
+    <!-- 通过率/达标率 -->
+    <Echart
+        :options="options"
+        :id="id"
+        height="100px"
+        width="150px"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import Echart from '@/common/echart'
+export default {
+  data () {
+    return {
+      options: {},
+    };
+  },
+  components: {
+    Echart,
+  },
+  props: {
+    id: {
+      type: String,
+      required: true,
+      default: "chartRate"
+    },
+    tips: {
+      type: Number,
+      required: true,
+      default: 50
+    },
+    colorObj: {
+      type: Object,
+      default: function () {
+        return {
+          textStyle: "#3fc0fb",
+          series: {
+            color: ["#00bcd44a", "transparent"],
+            dataColor: {
+              normal: "#03a9f4",
+              shadowColor: "#97e2f5"
+            }
+          }
+        };
+      }
+    }
+  },
+  watch: {
+    // tips 是会变更的数据,所以进行监听
+    tips: {
+      handler (newData) {
+        this.options = {
+          title:{
+            text: newData * 1 + "%",
+            x: "center",
+            y: "center",
+            textStyle: {
+              color: this.colorObj.textStyle,
+              fontSize: 15
+            }
+          },
+          series: [
+            {
+              type: "pie",
+              radius: ["95%", "80%"],
+              center: ["50%", "50%"],
+              hoverAnimation: false,
+              color: this.colorObj.series.color,
+              label: {
+                normal: {
+                  show: false
+                }
+              },
+              data: [
+                {
+                  value: newData,
+                  itemStyle: {
+                    normal: {
+                      color: this.colorObj.series.dataColor.normal,
+                      shadowBlur: 10,
+                      shadowColor: this.colorObj.series.dataColor.shadowColor
+                    }
+                  }
+                },
+                {
+                  value: 100 - newData
+                }
+              ],
+              height: '90%',
+            }
+          ]
+        }
+      },
+      immediate: true,
+      deep: true
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 186 - 0
src/components/packageechart/centerLeft/centerLeft1ALLChart/chart.vue

@@ -0,0 +1,186 @@
+<template>
+  <div>
+    <!-- 年度开工率 -->
+    <Echart
+      :options="options"
+      id="centerLeft1ALLChart"
+      height="250px"
+      width="450px"
+      ref="column-board"
+    ></Echart>
+  </div>
+</template>
+
+<script>
+import Echart from '@/common/echart'
+//import { formatDate } from '../../../../utils/index.js'
+export default {
+    data () {
+    return {
+      timing :null,
+      options:{
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'shadow'
+          }
+        },
+        legend: {
+          textStyle: {
+            fontSize: 18
+          },
+          itemWidth: 29,
+          itemHeight: 19
+        },
+        grid: {
+          left: '0%',
+          right: '0%',
+          bottom: '3%',
+          containLabel: true
+        },
+        xAxis: [
+          {
+            type: 'category',
+            axisLabel: {
+              show: false,
+              fontSize: 16,
+              fontWeight: "bold"
+            }
+          }
+        ],
+        yAxis: [
+          {
+            type: 'value',
+            axisLabel: {
+              fontSize: 16
+            }
+          },
+
+        ],
+        series: [
+          {
+            name: '计划数',
+            type: 'bar',
+            barWidth: 70,
+            emphasis: {
+              focus: 'series'
+            },
+            data:[],
+            label: {
+              show: true,
+              position: 'top',
+              fontSize:14,
+              fontWeight: "bold"
+            },
+          },
+          {
+            name: '投入数',
+            type: 'bar',
+            barWidth: 70,
+            emphasis: {
+              focus: 'series'
+            },
+            data:[],
+            label: {
+              show: true,
+              position: 'top',
+              color:'#fff'
+            },
+          },
+          {
+            name: '产出数',
+            type: 'bar',
+            stack: 'Ad',
+            barWidth: 70,
+            data:[],
+            emphasis: {
+              focus: 'series'
+            },
+            label: {
+              show: true,
+              position: 'top',
+              color:'#fff'
+            }
+          },
+          {
+            name: '不良数',
+            type: 'bar',
+            barWidth: 70,
+            data:[],
+            label: {
+              show: true,
+              position: 'top',
+              color:'#fff'
+            },
+            emphasis: {
+              focus: 'series'
+            }
+          }
+        ]
+      },
+    };
+  },
+  components: {
+    Echart, //子组件
+  },
+  props: {
+    cdata: {
+      type: Object,
+      default: () => ({})
+    },
+  },
+
+  mounted() {
+    this.getdata();
+    this.refreshdata();
+  },
+  beforeDestroy () {
+    clearInterval(this.timing)
+  },
+  methods: {
+    refreshdata() {
+      this.timing = setInterval(() => {
+        this.getdata(); //获取-数据
+      }, 30000);
+    },
+    async getdata() {
+      //20220211 -+formatDate(new Date()
+      var caller = 'MAKEQTY';
+      if (sessionStorage.getItem('li_code') == '所有'){
+        caller = 'MAKEQTY!ALL';
+      }
+      await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",{
+        params: {
+          condition: "1=1",
+        }
+      }).then((result)=>{
+                        let dataList = JSON.parse(result.data.data);
+                        let series0 = new Array();
+                        let series1 = new Array();
+                        let series2 = new Array();
+                        let series3 = new Array();
+                        let xAxis0 = new Array();
+                        for (let index = 0; index < dataList.length; index++) {
+                          const element = dataList[index];
+                          xAxis0.push(element.inqty);
+                          series0.push(element.planqty);
+                          //投入
+                          series1.push(element.inqty);
+                          //产出
+                          series2.push(element.outqty);
+                          //不良
+                          series3.push(element.ngqty);
+                        }
+                        this.options.xAxis[0].data = xAxis0;
+                        this.options.series[0].data = series0;
+                        this.options.series[1].data = series1;
+                        this.options.series[2].data = series2;
+                        this.options.series[3].data = series3;
+                      },(result)=>{
+                        console.error(result)
+                      }
+              );
+    }
+  }
+}
+</script>

+ 44 - 0
src/components/packageechart/centerLeft/centerLeft1ALLChart/index.vue

@@ -0,0 +1,44 @@
+<template>
+  <div>
+    <Chart :cdata="cdata" />
+  </div>
+</template>
+
+<script>
+import Chart from './chart.vue'
+export default {
+  data () {
+    return {
+      cdata: {
+        rateData:[
+        ]
+      }
+    };
+  },
+  components: {
+    Chart,
+  },
+  mounted () {
+    //this.setData();
+  },
+  beforeDestroy () {
+    clearInterval(this.intervalId);
+    this.chart.dispose()
+    this.chart.clear()
+    this.chart=null
+  },
+  methods: {
+    // 根据自己的业务情况修改
+    setData () {
+      for (let i = 0; i < this.cdata.barData.length -1; i++) {
+        let rate = this.cdata.barData[i] / this.cdata.lineData[i];
+        this.cdata.rateData.push(rate.toFixed(2));
+      }
+      console.log(this)
+    },
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 1 - 1
src/views/assembly/bottomLeft2.vue

@@ -6,7 +6,7 @@
           <icon name="chart-bar" class="text-icon"></icon>
         </span>
         <div class="d-flex">
-          <span class="fs-xl text mx-2">当日工段投产良率</span>
+          <span class="fs-xl text mx-2">当日生产明细</span>
         </div>
       </div>
       <div>

+ 123 - 159
src/views/assembly/center.vue

@@ -1,211 +1,175 @@
 <template>
   <div id="center">
-   <!-- <div class="up">
-      <div
-        class="bg-color-black item"
-        v-for="item in titleItem"
-        :key="item.title"
-      >
-        <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
-        <div>
-          <dv-digital-flop
-            class="dv-dig-flop ml-1 mt-2 pl-3"
-            :config="item.number"
-          />
+    <!--  <div class="up">
+        <div
+          class="bg-color-black item"
+          v-for="item in titleItem"
+          :key="item.title"
+        >
+          <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
+          <div>
+            <dv-digital-flop
+              class="dv-dig-flop ml-1 mt-2 pl-3"
+              :config="item.number"
+            />
+          </div>
         </div>
-      </div>
-    </div>-->
+      </div>-->
     <div class="down">
       <div class="ranking bg-color-black">
         <span>
           <icon name="chart-pie" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2 mb-1 pl-3">关键工序直通率</span>
-        <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" ref="scroll-ranking-board"/>
+        <span class="fs-xl text mx-2 mb-1 pl-3">当前时段生产明细</span>
+        <dv-scroll-board class="dv-scr-board" :config="config" ref="scroll-board" />
       </div>
-     <!-- <div class="percent">
-        <div class="item bg-color-black">
-          <span>首检合格率</span>
-          <CenterChart
-            :id="rate[0].id"
-            :tips="rate[0].tips"
-            :colorObj="rate[0].colorData"
-          />
-        </div>
-        <div class="item bg-color-black">
-          <span>巡检合格率</span>
-          <CenterChart
-            :id="rate[1].id"
-            :tips="rate[1].tips"
-            :colorObj="rate[1].colorData"
-          />
-        </div>
-        <div class="water">
-          <dv-water-level-pond class="dv-wa-le-po" :config="water" />
-        </div>
-      </div>-->
+      <!-- <div class="percent">
+         <div class="item bg-color-black">
+           <span>首检合格率</span>
+           <CenterChart
+             :id="rate[0].id"
+             :tips="rate[0].tips"
+             :colorObj="rate[0].colorData"
+           />
+         </div>
+         <div class="item bg-color-black">
+           <span>巡检合格率</span>
+           <CenterChart
+             :id="rate[1].id"
+             :tips="rate[1].tips"
+             :colorObj="rate[1].colorData"
+           />
+         </div>
+         <div class="water">
+           <dv-water-level-pond class="dv-wa-le-po" :config="water" />
+         </div>
+       </div>-->
     </div>
   </div>
 </template>
 
 <script>
-//import CenterChart from '@/components/echart/center/centerChartRate'
+//import CenterChart from '@/components/packageechart/center/centerChartRate'
 
 export default {
   data() {
     return {
-      titleItem:[],
-      ranking: {
-        data: [],
-        carousel: 'single',
-        //unit: '人'
+      config: {
+        header:  ['工单号','工序', '当前小时数量'],
+        data: [
+        ],
+        rowNum: 7, //表格行数
+        headerHeight: 35,
+        headerBGC: '#0f1325', //表头
+        oddRowBGC: '#0f1325', //奇数行
+        evenRowBGC: '#171c33', //偶数行
+        columnWidth: [150,110,140],
+        align: ['center']
       },
-      water: {
-        data: [],//[24, 66],
-        shape: 'roundRect',
-        formatter: '{value}%',
-        waveNum: 3,
-        waveHeight:20
-      },
-      // 通过率和达标率的组件复用数据
-      rate: [
-        {
-          id: 'centerRate1',
-          tips: 60,
-          colorData: {
-            textStyle: '#3fc0fb',
-            series: {
-              color: ['#00bcd44a', 'transparent'],
-              dataColor: {
-                normal: '#03a9f4',
-                shadowColor: '#97e2f5'
-              }
-            }
-          }
-        },
-        {
-          id: 'centerRate2',
-          tips: 40,
-          colorData: {
-            textStyle: '#67e0e3',
-            series: {
-              color: ['#faf3a378', 'transparent'],
-              dataColor: {
-                normal: '#ff9800',
-                shadowColor: '#fcebad'
-              }
-            }
-          }
-        }
-      ]
+      timing : null,
     }
   },
   components: {
-   // CenterChart
+    // CenterChart
   },
   mounted () {
     this.drawTimingFn();
   },
-
+  beforeDestroy () {
+    clearInterval(this.timing)
+  },
   methods: {
     drawTimingFn () {
       this.setData();
-      setInterval(() => {
+      this.timing = setInterval(() => {
         this.setData(); //获取-数据
       }, 30000);
     },
     async setData () {
       // 首检任务数,完成数,合格数,巡检任务数,完成数,巡检合格数  name value
-        var caller1 = 'CheckData!ZZ';
-        if (sessionStorage.getItem('li_code') == '所有'){
-            caller1 = 'CheckData!ZZ!ALL';
+      /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
+        params: {
+          condition: "1=1",
         }
-      await this.$http.get("kanban/datalist.action?caller="+caller1+"&_noc=1&page=1&pageSize=100",{
-      params: {
-        condition: "1=1",
-      }
-    }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let titleitems = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          titleitems.push({
-                            title: element.name,
-                            number: {
-                              number: [element.value],
-                              toFixed: 1,
-                              textAlign: 'left',
-                              content: '{nt}',
-                              style: {
-                                fontSize: 26
+      }).then((result)=>{
+                          let dataList = JSON.parse(result.data.data);
+                          let titleitems = new Array();
+                          for (let index = 0; index < dataList.length; index++) {
+                            const element = dataList[index];
+                            titleitems.push({
+                              title: element.name,
+                              number: {
+                                number: [element.value],
+                                toFixed: 1,
+                                textAlign: 'left',
+                                content: '{nt}',
+                                style: {
+                                  fontSize: 26
+                                }
                               }
-                            }
-                          });
+                            });
+                          }
+                          this.titleItem = titleitems;
+                        },(result)=>{
+                          console.error(result)
                         }
-                        this.titleItem = titleitems;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );
-        var caller2 = 'KeyStepRate!ZZ';
-        if (sessionStorage.getItem('li_code') == '所有'){
-            caller2 = 'KeyStepRate!ZZ!ALL';
-        }
+                );*/
+      var caller = 'KeyStepRate!ZZ';
+      if (sessionStorage.getItem('li_code') == '所有'){
+        caller = 'KeyStepRate!ALL!ZZ';
+      }
       //关键工序直通率
-      await this.$http.get("kanban/datalist.action?caller="+caller2+"&_noc=1&page=1&pageSize=100",{
+      await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",{
         params: {
           condition: "1=1",
         }
       }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let datas = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          datas.push({
-                            name:element.name ,
-                            value:element.value,
-                          });
-                        }
-                        this.ranking.data = datas;
-                        this.ranking = { ...this.ranking };
-                        /*两种刷新方式
-                         const scrollBoard = this.$refs['scroll-ranking-board'];
-                         scrollBoard.updateRows(datas);
-                         this.ranking = { data: datas }
-                         */
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );
+            let dataList = JSON.parse(result.data.data);
+            let resultList = new Array();
+            for (let index = 0; index < dataList.length; index++) {
+              const element = dataList[index];
+              let item = new Array();
+              item.push("<span  class='colorGrass'>"+element.makecode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.stepcode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.value+"</span>");
+              resultList.push(item);
+            }
+            const scrollBoard = this.$refs['scroll-board'];
+            //刷新数据
+            scrollBoard.updateRows(resultList);
+          },(result)=>{
+            console.error(result)
+          }
+      );
       //饼图pie,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate!ZZ&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        this.rate[0].tips = dataList[0].firstcheckrate;
-                        this.rate[0].tips = dataList[0].xcheckrate;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         this.rate[0].tips = dataList[0].firstcheckrate;
+                         this.rate[0].tips = dataList[0].xcheckrate;
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
       //水波图,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate!ZZ&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let waterdatas = new Array();
-                        waterdatas.push(dataList[0].firstcheckrate);
-                        waterdatas.push(dataList[0].xcheckrate);
-                         this.water = { data: waterdatas }
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         let waterdatas = new Array();
+                         waterdatas.push(dataList[0].firstcheckrate);
+                         waterdatas.push(dataList[0].xcheckrate);
+                          this.water = { data: waterdatas }
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-  $box-height: 420px;
+$box-height: 420px;
 #center {
   display: flex;
   flex-direction: column;
@@ -241,7 +205,7 @@ export default {
       padding: 10px;
       width: 100%;
       .dv-scr-rank-board {
-          height: 370px;
+        height: 370px;
       }
     }
     .percent {

+ 1 - 1
src/views/assembly/centerLeft_two.vue

@@ -5,7 +5,7 @@
         <span>
           <icon name="align-left" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2">完成工单数统计</span>
+        <span class="fs-xl text mx-2">工单生产信息</span>
       </div>
       <div class="d-flex ai-center flex-column body-box">
         <div class="up">

+ 1 - 1
src/views/dip/bottomLeft2.vue

@@ -6,7 +6,7 @@
           <icon name="chart-bar" class="text-icon"></icon>
         </span>
         <div class="d-flex">
-          <span class="fs-xl text mx-2">当日工段投产良率</span>
+          <span class="fs-xl text mx-2">当日生产明细</span>
         </div>
       </div>
       <div>

+ 117 - 149
src/views/dip/center.vue

@@ -1,49 +1,49 @@
 <template>
   <div id="center">
-  <!--  <div class="up">
-      <div
-        class="bg-color-black item"
-        v-for="item in titleItem"
-        :key="item.title"
-      >
-        <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
-        <div>
-          <dv-digital-flop
-            class="dv-dig-flop ml-1 mt-2 pl-3"
-            :config="item.number"
-          />
+    <!--  <div class="up">
+        <div
+          class="bg-color-black item"
+          v-for="item in titleItem"
+          :key="item.title"
+        >
+          <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
+          <div>
+            <dv-digital-flop
+              class="dv-dig-flop ml-1 mt-2 pl-3"
+              :config="item.number"
+            />
+          </div>
         </div>
-      </div>
-    </div>-->
+      </div>-->
     <div class="down">
       <div class="ranking bg-color-black">
         <span>
           <icon name="chart-pie" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2 mb-1 pl-3">关键工序直通率</span>
-        <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" ref="scroll-ranking-board"/>
+        <span class="fs-xl text mx-2 mb-1 pl-3">当前时段生产明细</span>
+        <dv-scroll-board class="dv-scr-board" :config="config" ref="scroll-board" />
       </div>
-     <!-- <div class="percent">
-        <div class="item bg-color-black">
-          <span>首检合格率</span>
-          <CenterChart
-            :id="rate[0].id"
-            :tips="rate[0].tips"
-            :colorObj="rate[0].colorData"
-          />
-        </div>
-        <div class="item bg-color-black">
-          <span>巡检合格率</span>
-          <CenterChart
-            :id="rate[1].id"
-            :tips="rate[1].tips"
-            :colorObj="rate[1].colorData"
-          />
-        </div>
-        <div class="water">
-          <dv-water-level-pond class="dv-wa-le-po" :config="water" />
-        </div>
-      </div>-->
+      <!-- <div class="percent">
+         <div class="item bg-color-black">
+           <span>首检合格率</span>
+           <CenterChart
+             :id="rate[0].id"
+             :tips="rate[0].tips"
+             :colorObj="rate[0].colorData"
+           />
+         </div>
+         <div class="item bg-color-black">
+           <span>巡检合格率</span>
+           <CenterChart
+             :id="rate[1].id"
+             :tips="rate[1].tips"
+             :colorObj="rate[1].colorData"
+           />
+         </div>
+         <div class="water">
+           <dv-water-level-pond class="dv-wa-le-po" :config="water" />
+         </div>
+       </div>-->
     </div>
   </div>
 </template>
@@ -54,95 +54,66 @@
 export default {
   data() {
     return {
-      titleItem:[],
-      ranking: {
-        data: [],
-        carousel: 'single',
-        //unit: '人'
+      config: {
+        header:  ['工单号','工序', '当前小时数量'],
+        data: [
+        ],
+        rowNum: 7, //表格行数
+        headerHeight: 35,
+        headerBGC: '#0f1325', //表头
+        oddRowBGC: '#0f1325', //奇数行
+        evenRowBGC: '#171c33', //偶数行
+        columnWidth: [150,110,140],
+        align: ['center']
       },
-      water: {
-        data: [],//[24, 66],
-        shape: 'roundRect',
-        formatter: '{value}%',
-        waveNum: 3,
-        waveHeight:20
-      },
-      // 通过率和达标率的组件复用数据
-      rate: [
-        {
-          id: 'centerRate1',
-          tips: 60,
-          colorData: {
-            textStyle: '#3fc0fb',
-            series: {
-              color: ['#00bcd44a', 'transparent'],
-              dataColor: {
-                normal: '#03a9f4',
-                shadowColor: '#97e2f5'
-              }
-            }
-          }
-        },
-        {
-          id: 'centerRate2',
-          tips: 40,
-          colorData: {
-            textStyle: '#67e0e3',
-            series: {
-              color: ['#faf3a378', 'transparent'],
-              dataColor: {
-                normal: '#ff9800',
-                shadowColor: '#fcebad'
-              }
-            }
-          }
-        }
-      ]
+      timing : null,
     }
   },
   components: {
-   // CenterChart
+    // CenterChart
   },
   mounted () {
     this.drawTimingFn();
   },
-
+  beforeDestroy () {
+    clearInterval(this.timing)
+  },
   methods: {
     drawTimingFn () {
       this.setData();
-      setInterval(() => {
+      this.timing = setInterval(() => {
         this.setData(); //获取-数据
       }, 30000);
     },
     async setData () {
       // 首检任务数,完成数,合格数,巡检任务数,完成数,巡检合格数  name value
-    /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
-      params: {
-        condition: "1=1",
-      }
-    }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let titleitems = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          titleitems.push({
-                            title: element.name,
-                            number: {
-                              number: [element.value],
-                              toFixed: 1,
-                              textAlign: 'left',
-                              content: '{nt}',
-                              style: {
-                                fontSize: 26
+      /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
+        params: {
+          condition: "1=1",
+        }
+      }).then((result)=>{
+                          let dataList = JSON.parse(result.data.data);
+                          let titleitems = new Array();
+                          for (let index = 0; index < dataList.length; index++) {
+                            const element = dataList[index];
+                            titleitems.push({
+                              title: element.name,
+                              number: {
+                                number: [element.value],
+                                toFixed: 1,
+                                textAlign: 'left',
+                                content: '{nt}',
+                                style: {
+                                  fontSize: 26
+                                }
                               }
-                            }
-                          });
+                            });
+                          }
+                          this.titleItem = titleitems;
+                        },(result)=>{
+                          console.error(result)
                         }
-                        this.titleItem = titleitems;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+                );*/
       var caller = 'DIP!KeyStepRate';
       if (sessionStorage.getItem('li_code') == '所有'){
         caller = 'DIP!KeyStepRate!ALL';
@@ -153,55 +124,52 @@ export default {
           condition: "1=1",
         }
       }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let datas = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          datas.push({
-                            name:element.name ,
-                            value:element.value,
-                          });
-                        }
-                        this.ranking.data = datas;
-                        this.ranking = { ...this.ranking };
-                        /*两种刷新方式
-                         const scrollBoard = this.$refs['scroll-ranking-board'];
-                         scrollBoard.updateRows(datas);
-                         this.ranking = { data: datas }
-                         */
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );
+            let dataList = JSON.parse(result.data.data);
+            let resultList = new Array();
+            for (let index = 0; index < dataList.length; index++) {
+              const element = dataList[index];
+              let item = new Array();
+              item.push("<span  class='colorGrass'>"+element.makecode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.stepcode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.value+"</span>");
+              resultList.push(item);
+            }
+            const scrollBoard = this.$refs['scroll-board'];
+            //刷新数据
+            scrollBoard.updateRows(resultList);
+          },(result)=>{
+            console.error(result)
+          }
+      );
       //饼图pie,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        this.rate[0].tips = dataList[0].firstcheckrate;
-                        this.rate[0].tips = dataList[0].xcheckrate;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         this.rate[0].tips = dataList[0].firstcheckrate;
+                         this.rate[0].tips = dataList[0].xcheckrate;
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
       //水波图,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let waterdatas = new Array();
-                        waterdatas.push(dataList[0].firstcheckrate);
-                        waterdatas.push(dataList[0].xcheckrate);
-                         this.water = { data: waterdatas }
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         let waterdatas = new Array();
+                         waterdatas.push(dataList[0].firstcheckrate);
+                         waterdatas.push(dataList[0].xcheckrate);
+                          this.water = { data: waterdatas }
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-  $box-height: 420px;
+$box-height: 420px;
 #center {
   display: flex;
   flex-direction: column;

+ 1 - 1
src/views/dip/centerLeft_two.vue

@@ -5,7 +5,7 @@
         <span>
           <icon name="align-left" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2">完成工单数统计</span>
+        <span class="fs-xl text mx-2">工单生产信息</span>
       </div>
       <div class="d-flex ai-center flex-column body-box">
         <div class="up">

+ 1 - 1
src/views/dj/bottomLeft2.vue

@@ -6,7 +6,7 @@
           <icon name="chart-bar" class="text-icon"></icon>
         </span>
         <div class="d-flex">
-          <span class="fs-xl text mx-2">当日工段投产良率</span>
+          <span class="fs-xl text mx-2">当日生产明细</span>
         </div>
       </div>
       <div>

+ 117 - 149
src/views/dj/center.vue

@@ -1,49 +1,49 @@
 <template>
   <div id="center">
-  <!--  <div class="up">
-      <div
-        class="bg-color-black item"
-        v-for="item in titleItem"
-        :key="item.title"
-      >
-        <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
-        <div>
-          <dv-digital-flop
-            class="dv-dig-flop ml-1 mt-2 pl-3"
-            :config="item.number"
-          />
+    <!--  <div class="up">
+        <div
+          class="bg-color-black item"
+          v-for="item in titleItem"
+          :key="item.title"
+        >
+          <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
+          <div>
+            <dv-digital-flop
+              class="dv-dig-flop ml-1 mt-2 pl-3"
+              :config="item.number"
+            />
+          </div>
         </div>
-      </div>
-    </div>-->
+      </div>-->
     <div class="down">
       <div class="ranking bg-color-black">
         <span>
           <icon name="chart-pie" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2 mb-1 pl-3">关键工序直通率</span>
-        <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" ref="scroll-ranking-board"/>
+        <span class="fs-xl text mx-2 mb-1 pl-3">当前时段生产明细</span>
+        <dv-scroll-board class="dv-scr-board" :config="config" ref="scroll-board" />
       </div>
-     <!-- <div class="percent">
-        <div class="item bg-color-black">
-          <span>首检合格率</span>
-          <CenterChart
-            :id="rate[0].id"
-            :tips="rate[0].tips"
-            :colorObj="rate[0].colorData"
-          />
-        </div>
-        <div class="item bg-color-black">
-          <span>巡检合格率</span>
-          <CenterChart
-            :id="rate[1].id"
-            :tips="rate[1].tips"
-            :colorObj="rate[1].colorData"
-          />
-        </div>
-        <div class="water">
-          <dv-water-level-pond class="dv-wa-le-po" :config="water" />
-        </div>
-      </div>-->
+      <!-- <div class="percent">
+         <div class="item bg-color-black">
+           <span>首检合格率</span>
+           <CenterChart
+             :id="rate[0].id"
+             :tips="rate[0].tips"
+             :colorObj="rate[0].colorData"
+           />
+         </div>
+         <div class="item bg-color-black">
+           <span>巡检合格率</span>
+           <CenterChart
+             :id="rate[1].id"
+             :tips="rate[1].tips"
+             :colorObj="rate[1].colorData"
+           />
+         </div>
+         <div class="water">
+           <dv-water-level-pond class="dv-wa-le-po" :config="water" />
+         </div>
+       </div>-->
     </div>
   </div>
 </template>
@@ -54,95 +54,66 @@
 export default {
   data() {
     return {
-      titleItem:[],
-      ranking: {
-        data: [],
-        carousel: 'single',
-        //unit: '人'
+      config: {
+        header:  ['工单号','工序', '当前小时数量'],
+        data: [
+        ],
+        rowNum: 7, //表格行数
+        headerHeight: 35,
+        headerBGC: '#0f1325', //表头
+        oddRowBGC: '#0f1325', //奇数行
+        evenRowBGC: '#171c33', //偶数行
+        columnWidth: [150,110,140],
+        align: ['center']
       },
-      water: {
-        data: [],//[24, 66],
-        shape: 'roundRect',
-        formatter: '{value}%',
-        waveNum: 3,
-        waveHeight:20
-      },
-      // 通过率和达标率的组件复用数据
-      rate: [
-        {
-          id: 'centerRate1',
-          tips: 60,
-          colorData: {
-            textStyle: '#3fc0fb',
-            series: {
-              color: ['#00bcd44a', 'transparent'],
-              dataColor: {
-                normal: '#03a9f4',
-                shadowColor: '#97e2f5'
-              }
-            }
-          }
-        },
-        {
-          id: 'centerRate2',
-          tips: 40,
-          colorData: {
-            textStyle: '#67e0e3',
-            series: {
-              color: ['#faf3a378', 'transparent'],
-              dataColor: {
-                normal: '#ff9800',
-                shadowColor: '#fcebad'
-              }
-            }
-          }
-        }
-      ]
+      timing : null,
     }
   },
   components: {
-   // CenterChart
+    // CenterChart
   },
   mounted () {
     this.drawTimingFn();
   },
-
+  beforeDestroy () {
+    clearInterval(this.timing)
+  },
   methods: {
     drawTimingFn () {
       this.setData();
-      setInterval(() => {
+      this.timing = setInterval(() => {
         this.setData(); //获取-数据
       }, 30000);
     },
     async setData () {
       // 首检任务数,完成数,合格数,巡检任务数,完成数,巡检合格数  name value
-    /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
-      params: {
-        condition: "1=1",
-      }
-    }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let titleitems = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          titleitems.push({
-                            title: element.name,
-                            number: {
-                              number: [element.value],
-                              toFixed: 1,
-                              textAlign: 'left',
-                              content: '{nt}',
-                              style: {
-                                fontSize: 26
+      /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
+        params: {
+          condition: "1=1",
+        }
+      }).then((result)=>{
+                          let dataList = JSON.parse(result.data.data);
+                          let titleitems = new Array();
+                          for (let index = 0; index < dataList.length; index++) {
+                            const element = dataList[index];
+                            titleitems.push({
+                              title: element.name,
+                              number: {
+                                number: [element.value],
+                                toFixed: 1,
+                                textAlign: 'left',
+                                content: '{nt}',
+                                style: {
+                                  fontSize: 26
+                                }
                               }
-                            }
-                          });
+                            });
+                          }
+                          this.titleItem = titleitems;
+                        },(result)=>{
+                          console.error(result)
                         }
-                        this.titleItem = titleitems;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+                );*/
       var caller = 'DJ!KeyStepRate';
       if (sessionStorage.getItem('li_code') == '所有'){
         caller = 'DJ!KeyStepRate!ALL';
@@ -153,55 +124,52 @@ export default {
           condition: "1=1",
         }
       }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let datas = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          datas.push({
-                            name:element.name ,
-                            value:element.value,
-                          });
-                        }
-                        this.ranking.data = datas;
-                        this.ranking = { ...this.ranking };
-                        /*两种刷新方式
-                         const scrollBoard = this.$refs['scroll-ranking-board'];
-                         scrollBoard.updateRows(datas);
-                         this.ranking = { data: datas }
-                         */
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );
+            let dataList = JSON.parse(result.data.data);
+            let resultList = new Array();
+            for (let index = 0; index < dataList.length; index++) {
+              const element = dataList[index];
+              let item = new Array();
+              item.push("<span  class='colorGrass'>"+element.makecode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.stepcode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.value+"</span>");
+              resultList.push(item);
+            }
+            const scrollBoard = this.$refs['scroll-board'];
+            //刷新数据
+            scrollBoard.updateRows(resultList);
+          },(result)=>{
+            console.error(result)
+          }
+      );
       //饼图pie,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        this.rate[0].tips = dataList[0].firstcheckrate;
-                        this.rate[0].tips = dataList[0].xcheckrate;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         this.rate[0].tips = dataList[0].firstcheckrate;
+                         this.rate[0].tips = dataList[0].xcheckrate;
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
       //水波图,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let waterdatas = new Array();
-                        waterdatas.push(dataList[0].firstcheckrate);
-                        waterdatas.push(dataList[0].xcheckrate);
-                         this.water = { data: waterdatas }
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         let waterdatas = new Array();
+                         waterdatas.push(dataList[0].firstcheckrate);
+                         waterdatas.push(dataList[0].xcheckrate);
+                          this.water = { data: waterdatas }
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-  $box-height: 420px;
+$box-height: 420px;
 #center {
   display: flex;
   flex-direction: column;

+ 1 - 1
src/views/dj/centerLeft_two.vue

@@ -5,7 +5,7 @@
         <span>
           <icon name="align-left" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2">完成工单数统计</span>
+        <span class="fs-xl text mx-2">工单生产信息</span>
       </div>
       <div class="d-flex ai-center flex-column body-box">
         <div class="up">

+ 1 - 1
src/views/dpl/bottomLeft2.vue

@@ -6,7 +6,7 @@
           <icon name="chart-bar" class="text-icon"></icon>
         </span>
         <div class="d-flex">
-          <span class="fs-xl text mx-2">当日工段投产良率</span>
+          <span class="fs-xl text mx-2">当日生产明细</span>
         </div>
       </div>
       <div>

+ 113 - 148
src/views/dpl/center.vue

@@ -1,49 +1,49 @@
 <template>
   <div id="center">
-  <!--  <div class="up">
-      <div
-        class="bg-color-black item"
-        v-for="item in titleItem"
-        :key="item.title"
-      >
-        <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
-        <div>
-          <dv-digital-flop
-            class="dv-dig-flop ml-1 mt-2 pl-3"
-            :config="item.number"
-          />
+    <!--  <div class="up">
+        <div
+          class="bg-color-black item"
+          v-for="item in titleItem"
+          :key="item.title"
+        >
+          <p class="ml-3 colorBlue fw-b fs-xl">{{ item.title }}</p>
+          <div>
+            <dv-digital-flop
+              class="dv-dig-flop ml-1 mt-2 pl-3"
+              :config="item.number"
+            />
+          </div>
         </div>
-      </div>
-    </div>-->
+      </div>-->
     <div class="down">
       <div class="ranking bg-color-black">
         <span>
           <icon name="chart-pie" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2 mb-1 pl-3">关键工序直通率</span>
-        <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" ref="scroll-ranking-board"/>
+        <span class="fs-xl text mx-2 mb-1 pl-3">当前时段生产明细</span>
+        <dv-scroll-board class="dv-scr-board" :config="config" ref="scroll-board" />
       </div>
-     <!-- <div class="percent">
-        <div class="item bg-color-black">
-          <span>首检合格率</span>
-          <CenterChart
-            :id="rate[0].id"
-            :tips="rate[0].tips"
-            :colorObj="rate[0].colorData"
-          />
-        </div>
-        <div class="item bg-color-black">
-          <span>巡检合格率</span>
-          <CenterChart
-            :id="rate[1].id"
-            :tips="rate[1].tips"
-            :colorObj="rate[1].colorData"
-          />
-        </div>
-        <div class="water">
-          <dv-water-level-pond class="dv-wa-le-po" :config="water" />
-        </div>
-      </div>-->
+      <!-- <div class="percent">
+         <div class="item bg-color-black">
+           <span>首检合格率</span>
+           <CenterChart
+             :id="rate[0].id"
+             :tips="rate[0].tips"
+             :colorObj="rate[0].colorData"
+           />
+         </div>
+         <div class="item bg-color-black">
+           <span>巡检合格率</span>
+           <CenterChart
+             :id="rate[1].id"
+             :tips="rate[1].tips"
+             :colorObj="rate[1].colorData"
+           />
+         </div>
+         <div class="water">
+           <dv-water-level-pond class="dv-wa-le-po" :config="water" />
+         </div>
+       </div>-->
     </div>
   </div>
 </template>
@@ -54,55 +54,23 @@
 export default {
   data() {
     return {
-      titleItem:[],
-      ranking: {
-        data: [],
-        carousel: 'single',
-        //unit: '人'
-      },
-      water: {
-        data: [],//[24, 66],
-        shape: 'roundRect',
-        formatter: '{value}%',
-        waveNum: 3,
-        waveHeight:20
+      config: {
+        header:  ['工单号','工序', '当前小时数量'],
+        data: [
+        ],
+        rowNum: 7, //表格行数
+        headerHeight: 35,
+        headerBGC: '#0f1325', //表头
+        oddRowBGC: '#0f1325', //奇数行
+        evenRowBGC: '#171c33', //偶数行
+        columnWidth: [150,110,140],
+        align: ['center']
       },
-      // 通过率和达标率的组件复用数据
-      rate: [
-        {
-          id: 'centerRate1',
-          tips: 60,
-          colorData: {
-            textStyle: '#3fc0fb',
-            series: {
-              color: ['#00bcd44a', 'transparent'],
-              dataColor: {
-                normal: '#03a9f4',
-                shadowColor: '#97e2f5'
-              }
-            }
-          }
-        },
-        {
-          id: 'centerRate2',
-          tips: 40,
-          colorData: {
-            textStyle: '#67e0e3',
-            series: {
-              color: ['#faf3a378', 'transparent'],
-              dataColor: {
-                normal: '#ff9800',
-                shadowColor: '#fcebad'
-              }
-            }
-          }
-        }
-      ],
-      timing :null
+      timing : null,
     }
   },
   components: {
-   // CenterChart
+    // CenterChart
   },
   mounted () {
     this.drawTimingFn();
@@ -119,33 +87,33 @@ export default {
     },
     async setData () {
       // 首检任务数,完成数,合格数,巡检任务数,完成数,巡检合格数  name value
-    /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
-      params: {
-        condition: "1=1",
-      }
-    }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let titleitems = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          titleitems.push({
-                            title: element.name,
-                            number: {
-                              number: [element.value],
-                              toFixed: 1,
-                              textAlign: 'left',
-                              content: '{nt}',
-                              style: {
-                                fontSize: 26
+      /*  await this.$http.get("kanban/datalist.action?caller=CheckData&_noc=1&page=1&pageSize=100",{
+        params: {
+          condition: "1=1",
+        }
+      }).then((result)=>{
+                          let dataList = JSON.parse(result.data.data);
+                          let titleitems = new Array();
+                          for (let index = 0; index < dataList.length; index++) {
+                            const element = dataList[index];
+                            titleitems.push({
+                              title: element.name,
+                              number: {
+                                number: [element.value],
+                                toFixed: 1,
+                                textAlign: 'left',
+                                content: '{nt}',
+                                style: {
+                                  fontSize: 26
+                                }
                               }
-                            }
-                          });
+                            });
+                          }
+                          this.titleItem = titleitems;
+                        },(result)=>{
+                          console.error(result)
                         }
-                        this.titleItem = titleitems;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+                );*/
       var caller = 'DPL!KeyStepRate';
       if (sessionStorage.getItem('li_code') == '所有'){
         caller = 'DPL!KeyStepRate!ALL';
@@ -156,55 +124,52 @@ export default {
           condition: "1=1",
         }
       }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let datas = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          datas.push({
-                            name:element.name ,
-                            value:element.value,
-                          });
-                        }
-                        this.ranking.data = datas;
-                        this.ranking = { ...this.ranking };
-                        /*两种刷新方式
-                         const scrollBoard = this.$refs['scroll-ranking-board'];
-                         scrollBoard.updateRows(datas);
-                         this.ranking = { data: datas }
-                         */
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );
+            let dataList = JSON.parse(result.data.data);
+            let resultList = new Array();
+            for (let index = 0; index < dataList.length; index++) {
+              const element = dataList[index];
+              let item = new Array();
+              item.push("<span  class='colorGrass'>"+element.makecode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.stepcode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.value+"</span>");
+              resultList.push(item);
+            }
+            const scrollBoard = this.$refs['scroll-board'];
+            //刷新数据
+            scrollBoard.updateRows(resultList);
+          },(result)=>{
+            console.error(result)
+          }
+      );
       //饼图pie,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        this.rate[0].tips = dataList[0].firstcheckrate;
-                        this.rate[0].tips = dataList[0].xcheckrate;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=PieCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         this.rate[0].tips = dataList[0].firstcheckrate;
+                         this.rate[0].tips = dataList[0].xcheckrate;
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
       //水波图,首检合格率,巡检合格率
-     /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
-              .then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let waterdatas = new Array();
-                        waterdatas.push(dataList[0].firstcheckrate);
-                        waterdatas.push(dataList[0].xcheckrate);
-                         this.water = { data: waterdatas }
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );*/
+      /* await this.$http.get("kanban/datalist.action?caller=WaterCheckRate&_noc=1&page=1&pageSize=100&condition=1=1")
+               .then((result)=>{
+                         let dataList = JSON.parse(result.data.data);
+                         let waterdatas = new Array();
+                         waterdatas.push(dataList[0].firstcheckrate);
+                         waterdatas.push(dataList[0].xcheckrate);
+                          this.water = { data: waterdatas }
+                       },(result)=>{
+                         console.error(result)
+                       }
+               );*/
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-  $box-height: 420px;
+$box-height: 420px;
 #center {
   display: flex;
   flex-direction: column;

+ 1 - 1
src/views/dpl/centerLeft_two.vue

@@ -5,7 +5,7 @@
         <span>
           <icon name="align-left" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2">完成工单数统计</span>
+        <span class="fs-xl text mx-2">工单生产信息</span>
       </div>
       <div class="d-flex ai-center flex-column body-box">
         <div class="up">

+ 1 - 1
src/views/package/bottomLeft2.vue

@@ -6,7 +6,7 @@
           <icon name="chart-bar" class="text-icon"></icon>
         </span>
         <div class="d-flex">
-          <span class="fs-xl text mx-2">当日工段投产良率</span>
+          <span class="fs-xl text mx-2">当日生产明细</span>
         </div>
       </div>
       <div>

+ 29 - 64
src/views/package/center.vue

@@ -20,8 +20,8 @@
         <span>
           <icon name="chart-pie" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2 mb-1 pl-3">关键工序直通率</span>
-        <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" ref="scroll-ranking-board"/>
+        <span class="fs-xl text mx-2 mb-1 pl-3">当前时段生产明细</span>
+          <dv-scroll-board class="dv-scr-board" :config="config" ref="scroll-board" />
       </div>
      <!-- <div class="percent">
         <div class="item bg-color-black">
@@ -54,51 +54,19 @@
 export default {
   data() {
     return {
-      titleItem:[],
-      ranking: {
-        data: [],
-        carousel: 'single',
-        //unit: '人'
+      config: {
+        header:  ['工单号','工序', '当前小时数量'],
+        data: [
+        ],
+        rowNum: 7, //表格行数
+        headerHeight: 35,
+        headerBGC: '#0f1325', //表头
+        oddRowBGC: '#0f1325', //奇数行
+        evenRowBGC: '#171c33', //偶数行
+        columnWidth: [150,110,110],
+        align: ['center']
       },
-      water: {
-        data: [],//[24, 66],
-        shape: 'roundRect',
-        formatter: '{value}%',
-        waveNum: 3,
-        waveHeight:20
-      },
-      // 通过率和达标率的组件复用数据
-      rate: [
-        {
-          id: 'centerRate1',
-          tips: 60,
-          colorData: {
-            textStyle: '#3fc0fb',
-            series: {
-              color: ['#00bcd44a', 'transparent'],
-              dataColor: {
-                normal: '#03a9f4',
-                shadowColor: '#97e2f5'
-              }
-            }
-          }
-        },
-        {
-          id: 'centerRate2',
-          tips: 40,
-          colorData: {
-            textStyle: '#67e0e3',
-            series: {
-              color: ['#faf3a378', 'transparent'],
-              dataColor: {
-                normal: '#ff9800',
-                shadowColor: '#fcebad'
-              }
-            }
-          }
-        }
-      ],
-      timing:null,
+      timing : null,
     }
   },
   components: {
@@ -156,22 +124,19 @@ export default {
           condition: "1=1",
         }
       }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let datas = new Array();
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          datas.push({
-                            name:element.name ,
-                            value:element.value,
-                          });
-                        }
-                        this.ranking.data = datas;
-                        this.ranking = { ...this.ranking };
-                        /*两种刷新方式
-                         const scrollBoard = this.$refs['scroll-ranking-board'];
-                         scrollBoard.updateRows(datas);
-                         this.ranking = { data: datas }
-                         */
+            let dataList = JSON.parse(result.data.data);
+            let resultList = new Array();
+            for (let index = 0; index < dataList.length; index++) {
+              const element = dataList[index];
+              let item = new Array();
+              item.push("<span  class='colorGrass'>"+element.makecode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.stepcode+"</span>");
+              item.push("<span  class='colorGrass'>"+element.value+"</span>");
+              resultList.push(item);
+            }
+            const scrollBoard = this.$refs['scroll-board'];
+            //刷新数据
+            scrollBoard.updateRows(resultList);
                       },(result)=>{
                         console.error(result)
                       }
@@ -217,10 +182,10 @@ export default {
       border-radius: 6px;
       padding-top: 8px;
       margin-top: 8px;
-      width: 32%;
+      width: 40%;
       height: 70px;
       .dv-dig-flop {
-        width: 150px;
+        width: 170px;
         height: 30px;
       }
     }

+ 1 - 1
src/views/package/centerLeft1.vue

@@ -122,7 +122,7 @@ export default {
 
 <style lang="scss" scoped>
 $box-height: 420px;
-$box-width: 400px;
+$box-width: 350px;
 #centerLeft1 {
   padding: 5px;
   height: $box-height;

+ 203 - 0
src/views/package/centerLeft1ALL.vue

@@ -0,0 +1,203 @@
+<template>
+  <div id="centerLeft1ALL">
+    <div class="bg-color-black">
+      <div class="d-flex pt-2 pl-2">
+        <span>
+          <icon name="chart-bar" class="text-icon"></icon>
+        </span>
+        <span class="fs-xl text mx-2 mb-1 pl-3">工单完成情况统计</span>
+      </div>
+      <div class="d-flex jc-center columnperent">
+         <CenterLeft1ALLChart/>
+      </div>
+      <div class="d-flex circleperent">
+          <div class="item"  v-for="item in rate" :key="item.id">
+          <span>{{ item.title }}</span>
+          <CenterChart :id="item.id" :tips="item.tips" :colorObj="item.colorData"/>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import CenterLeft1ALLChart from '@/components/packageechart/centerLeft/centerLeft1ALLChart'
+import CenterChart from '@/components/packageechart/centerLeft/centerChartRate'
+export default {
+  data() {
+    return {
+      titleItem:[],
+      config: {
+        data: [],
+        showValue: true
+      },
+      // 通过率和达标率的组件复用数据
+      rate: [
+        {
+          id: 'centerRate1',
+          tips: 50,
+          colorData: {
+            textStyle: '#31b4fb',
+            series: {
+              color: ['rgba(19,122,244,0.29)', 'transparent'],
+              dataColor: {
+                normal: '#137af4',
+                shadowColor: '#80e0f5'
+              }
+            }
+          }
+        },
+        {
+          id: 'centerRate2',
+          tips: 60,
+          colorData: {
+            textStyle: '#43cfe9',
+            series: {
+              color: ['#00bcd44a', 'transparent'],
+              dataColor: {
+                normal: '#32C5E9',
+                shadowColor: '#9fe5f5'
+              }
+            }
+          }
+        },
+        {
+          id: 'centerRate3',
+          tips: 60,
+          colorData: {
+            textStyle: '#6ad59c',
+            series: {
+              color: ['rgba(25,161,95,0.29)', 'transparent'],
+              dataColor: {
+                normal: '#00a11a',
+                shadowColor: '#6cda9c'
+              }
+            }
+          }
+        }
+      ],
+      intervalId :null
+    }
+  },
+  components: {
+    CenterLeft1ALLChart,
+    CenterChart
+  },
+  mounted() {
+    this.changeTiming()
+  },
+  beforeDestroy () {
+   clearInterval(this.intervalId)
+    this.chart.dispose()
+    this.chart.clear()
+    this.chart=null
+  },
+  methods: {
+    changeTiming() {
+      this.changeNumber();
+      this.intervalId =  setInterval(() => {
+        this.changeNumber()
+      }, 20000)
+    },
+    async changeNumber() {
+      var caller2 = 'MakeComRate';
+      if (sessionStorage.getItem('li_code') == '所有'){
+        caller2 = 'MakeComRate!ALL';
+      }
+      //工单关闭率
+      await this.$http.get("kanban/datalist.action?caller="+caller2+"&_noc=1&page=1&pageSize=100",{
+        params: {
+          condition: "1=1",
+        }
+      }).then((result)=>{
+                let dataList = JSON.parse(result.data.data);
+                for (let index = 0; index < dataList.length; index++) {
+                  const element = dataList[index];
+                  this.rate[index].tips = element.rate;
+                  this.rate[index].title = element.title;
+                }
+              },(result)=>{
+                console.error(result)
+              }
+          );
+
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+$box-height: 420px;
+$box-width: 500px;
+#centerLeft1ALL {
+  padding: 0px;
+  height: $box-height;
+  font-size: 50px;
+  width: $box-width;
+  border-radius: 10px;
+  .bg-color-black {
+    height: $box-height - 10px;
+    border-radius: 10px;
+    padding: 5px;
+  }
+
+  .circleperent {
+    width: 100%;
+    display: flex;
+    flex-wrap: wrap;
+    .item {
+      width: 33%;
+      height: 118px;
+      span {
+        margin-top: 15px;
+        font-size: 18px;
+        display: flex;
+        justify-content: center;
+      }
+    }
+  }
+  .columnperent {
+    width: 100%;
+    display: flex;
+  }
+  .text {
+    color: #FFE900;
+  }
+  .dv-dec-3 {
+    position: relative;
+    width: 150px;
+    height: 20px;
+    top: -3px;
+  }
+
+  .bottom-data {
+    .item-box {
+      & > div {
+        padding-right: 5px;
+      }
+      font-size: 14px;
+      float: right;
+      position: relative;
+      width: 50%;
+      color: #d3d6dd;
+      .dv-digital-flop {
+        width: 120px;
+        height: 30px;
+      }
+      // 金币
+      .coin {
+        position: relative;
+        top: 6px;
+        font-size: 20px;
+        color: #ffc107;
+      }
+      .colorYellow {
+        color: yellowgreen;
+      }
+      p {
+        text-align: center;
+      }
+    }
+  }
+}
+</style>

+ 1 - 1
src/views/package/centerLeft_two.vue

@@ -5,7 +5,7 @@
         <span>
           <icon name="align-left" class="text-icon"></icon>
         </span>
-        <span class="fs-xl text mx-2">完成工单数统计</span>
+        <span class="fs-xl text mx-2">工单生产信息</span>
       </div>
       <div class="d-flex ai-center flex-column body-box">
         <div class="up">

+ 7 - 2
src/views/package/index.vue

@@ -73,9 +73,12 @@
           <!-- 第三行数据 -->
           <div class="content-box">
             <div>
-              <dv-border-box-12>
+              <dv-border-box-12 v-show="linecode!='所有'">
                 <centerLeft_two />
               </dv-border-box-12>
+              <dv-border-box-12 v-show="linecode=='所有'">
+                <centerLeft1ALL />
+              </dv-border-box-12>
             </div>
             <div>
               <dv-border-box-12>
@@ -123,6 +126,7 @@ import centerRight1 from './centerRight1'
 import center from './center'
 import bottomLeft2 from './bottomLeft2'
 import bottomRight from './bottomRight'
+import centerLeft1ALL from './centerLeft1ALL'
 
 export default {
   mixins: [ drawMixin ],
@@ -148,7 +152,8 @@ export default {
     centerRight1,
     center,
     bottomLeft2,
-    bottomRight
+    bottomRight,
+    centerLeft1ALL,
   },
   created() {
     this.getLines();

+ 1 - 1
src/views/smt/up1.vue

@@ -6,7 +6,7 @@
           <icon name="chart-bar" class="text-icon"></icon>
         </span>
         <div class="d-flex">
-          <span class="fs-xl text mx-2">当日工段投产良率</span>
+          <span class="fs-xl text mx-2">当日生产明细</span>
         </div>
       </div>
       <div>