Pārlūkot izejas kodu

柯赛看板调整,总看板,以及品质

xiaost 11 mēneši atpakaļ
vecāks
revīzija
f32609e4b2

+ 1 - 1
src/assets/scss/indexquality.scss

@@ -130,7 +130,7 @@
       //下方区域的布局
       .content-box {
         display: grid;
-        grid-template-columns: 1fr 1fr 1fr;
+        grid-template-columns: 1fr 2fr;
       }
 
       // 底部数据

+ 7 - 6
src/components/qualityechart/up2Chart/chart.vue

@@ -4,7 +4,7 @@
       :options="options"
       id="up2Chart"
       height="420px"
-      width="590px"
+      width="100%"
     ></Echart>
   </div>
 </template>
@@ -51,23 +51,24 @@ export default {
           legend: {
             orient: "vertical",
             icon: "circle",
-            bottom: 10,
+            top:"30%",
+            left:"70%",
             x: "center",
             data: newData.cdata,
             textStyle: {
               color: "#fff",
-              fontSize: 16
+              fontSize: 20
             },
           },
           series: [
             {
               type: "pie",
-              radius: [15, 60],
+              radius: [60, 120],
               roseType: "area",
-              center: ["50%", "30%"],
+              center: ["35%", "50%"],
               data: newData.seriesData,
               label: {
-                fontSize: 15,
+                fontSize: 20,
                 color:"inherit",
                /* formatter:function(param){
                   let text = param.data.name;

+ 2 - 2
src/components/qualityechart/up2Chart/index.vue

@@ -42,11 +42,11 @@ export default {
     },
     async getdata() {
       //20220211 -+formatDate(new Date()
-      var caller = 'KB!QualityUpperTopFiveBad';
+      var caller = 'KB!QualityTopFiveBad';
       await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",
               {
                 params: {
-                  condition: "V_UPPERLINE='"+this.factory+"'",
+                  condition: "1=1",
                 }
               }).then((result)=>{
                         let dataList = JSON.parse(result.data.data);

+ 0 - 92
src/components/qualityechart/up3Chart/chart.vue

@@ -1,92 +0,0 @@
-<template>
-  <div>
-    <Echart
-      :options="options"
-      id="up3Chart"
-      height="420px"
-      width="590px"
-    ></Echart>
-  </div>
-</template>
-
-<script>
-import Echart from '@/common/echart'
-export default {
-  data () {
-    return {
-      options: {},
-    };
-  },
-  components: {
-    Echart,
-  },
-  props: {
-    cdata: {
-      type: Object,
-      default: () => ({})
-    },
-  },
-  watch: {
-    cdata: {
-      handler (newData) {
-        this.options = {
-          color: [
-            "#37a2da",
-            "#32c5e9",
-            "#9fe6b8",
-            "#ffdb5c",
-            "#ff9f7f",
-            "#fb7293",
-            "#e7bcf3",
-            "#8378ea"
-          ],
-          tooltip: {
-            trigger: "item",
-            formatter: "{a} <br/>{b} : {c} ({d}%)"
-          },
-          toolbox: {
-            show: true
-          },
-          calculable: true,
-          legend: {
-            orient: "vertical",
-            icon: "circle",
-            bottom: 30,
-            x: "center",
-            data: newData.cdata,
-            textStyle: {
-              color: "#fff",
-              fontSize: 16
-            },
-          },
-          series: [
-            {
-              type: "pie",
-              radius: '50%',
-              center: ["50%", "30%"],
-              data: newData.seriesData,
-              label: {
-                fontSize: 15,
-                color:"inherit",
-               /* formatter:function(param){
-                  let text = param.data.name;
-                  if (text.length < 8) {
-                    return text ;
-                  } else {
-                    return text.substring(0, 8) + '...' ;
-                  }
-                },*/
-              },
-            }
-          ]
-        }
-      },
-      immediate: true,
-      deep: true
-    }
-  }
-};
-</script>
-
-<style lang="scss" scoped>
-</style>

+ 0 - 86
src/components/qualityechart/up3Chart/index.vue

@@ -1,86 +0,0 @@
-<template>
-  <div>
-    <Chart :cdata="cdata" />
-  </div>
-</template>
-
-<script>
-import Chart from './chart.vue';
-import {mapState} from "vuex";
-
-export default {
-  computed: {
-    ...mapState(['factory']),
-  },
-  data () {
-    return {
-      timing :null,
-      cdata: {
-        xData:[],
-        seriesData:[]
-      }
-    }
-  },
-  components: {
-    Chart,
-  },
-  mounted () {
-    this.getdata();
-    this.refreshdata();
-  },
-  beforeDestroy () {
-    clearInterval(this.timing);
-    this.chart.dispose()
-    this.chart.clear()
-    this.chart=null
-  },
-  methods: {
-    refreshdata() {
-      this.timing = setInterval(() => {
-        this.getdata(); //获取-数据
-      }, 10000);
-    },
-    async getdata() {
-      //20220211 -+formatDate(new Date()
-      var caller = 'KB!QualityUpperBadDuty';
-      await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",
-              {
-                params: {
-                  condition: "V_UPPERLINE='"+this.factory+"'",
-                }
-              }).then((result)=>{
-                        let dataList = JSON.parse(result.data.data);
-                        let xData0 = new Array();
-                        let seriesData0 = new Array();
-                        let sum1 = 0;
-                        let totalsum = 0;
-                        for (let index = 0; index < dataList.length; index++) {
-                          const element = dataList[index];
-                          let ob = new Object();
-                          xData0.push(element.v_badreason);
-                          ob.value = element.v_cn;
-                          ob.name = element.v_badreason;
-                          seriesData0.push(ob);
-                          sum1 +=element.v_cn;
-                          totalsum = element.v_sum;
-                        }
-                        if(totalsum-sum1>0){
-                           xData0.push('其它');
-                           let ob = new Object();
-                           ob.value = totalsum-sum1;
-                           ob.name = '其它'||totalsum-sum1||'pcs';
-                           seriesData0.push(ob);
-                       }
-                       this.cdata.xData = xData0;
-                       this.cdata.seriesData = seriesData0;
-                      },(result)=>{
-                        console.error(result)
-                      }
-              );
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-</style>

+ 2 - 2
src/components/totalechart/bottom2LChart/chart.vue

@@ -3,7 +3,7 @@
     <Echart
       :options="options"
       id="bottom2LChart"
-      height="350px"
+      height="340px"
       width="100%"
     ></Echart>
   </div>
@@ -68,7 +68,7 @@ export default {
               type: "pie",
               radius: [25, 75],
               roseType: "area",
-              center: ["40%", "48%"],
+              center: ["51%", "48%"],
               data: newData.seriesData,
               label: {
                 fontSize: 13,

+ 2 - 1
src/components/totalechart/bottom3Chart/chart.vue

@@ -124,7 +124,8 @@ export default {
             },
             max:newData.maxData,
             splitNumber: 4,
-            min:newData.minData,
+            min: 90,
+            //min:newData.minData,
             splitLine: {
               show: true,
               lineStyle: {

+ 13 - 1
src/components/totalechart/up1Chart/chart.vue

@@ -142,7 +142,7 @@ export default {
             },
             max:100,
             splitNumber: 3,
-            min:newData.minData0,
+            min: 90,//newData.minData0,
             axisLine: {
               lineStyle: {
                 opacity: 0
@@ -185,6 +185,12 @@ export default {
                   color: this.colorList.areaBtoG
                 }
               },
+              label: {
+                show: true,
+                position: 'top',
+                fontSize:14,
+                color:'#fff'
+              },
               data: newData.yAxis0,
               lineSmooth: true,
               tooltip: {
@@ -201,6 +207,12 @@ export default {
               xAxisIndex: 1,
               yAxisIndex: 1,
               barWidth: 20,
+              label: {
+                show: true,
+                position: 'top',
+                fontSize:14,
+                color:'inherit'
+              },
             }
           ]
         }

+ 16 - 2
src/components/totalechart/up1dChart/chart.vue

@@ -143,7 +143,8 @@ export default {
             },
             splitNumber: 3,
             max:100,
-            min:newData.minData0,
+            min: 90,
+            //min:newData.minData0,
             axisLine: {
               lineStyle: {
                 opacity: 0
@@ -187,6 +188,12 @@ export default {
                   color: this.colorList.areaBtoG
                 }
               },
+              label: {
+                show: true,
+                position: 'top',
+                fontSize:14,
+                color:'#fff'
+              },
               data: newData.yAxis0,
               lineSmooth: true,
               tooltip: {
@@ -202,6 +209,12 @@ export default {
               data: newData.yAxis1,
               xAxisIndex: 1,
               yAxisIndex: 1,
+              label: {
+                show: true,
+                position: 'top',
+                fontSize:14,
+                color:'inherit'
+              },
             },
             {
               name:'NG数量',
@@ -216,7 +229,8 @@ export default {
               yAxisIndex: 1,
               itemStyle: {
                 color:  "rgb(244,204,3)"
-              }
+              },
+
             }
           ]
         }

+ 1 - 1
src/components/totalechart/up3Chart/index.vue

@@ -3,7 +3,7 @@
         <Echart
                 :options="options"
                 id="up3Chart"
-                height="250px"
+                height="280px"
                 width="100%"
         ></Echart>
     </div>

+ 39 - 71
src/views/quality/bottom1.vue

@@ -2,50 +2,15 @@
   <div id="bottom1">
     <div class="bg-color-black">
       <div class="d-flex flex-column body-box">
-        <div class ="ditem">
-          <div class="d-flex pt-1 pl-2 pb-5 jc-center">
-            <span class="fs-xxl text mx-2 fw-b">当日OBA检验数据</span>
-          </div>
-          <div class="flexup">
-            <div class="item">
-              <p class="ml-3 colorBlue fw-b fs-xl">送检批数</p>
-              <div class="dv-dig-flop ml-1 mt-2 pl-3 colorGrass"> {{ obadata.v_sjqty }}
-              </div>
-            </div>
-            <div class="item">
-              <p class="ml-3 colorBlue fw-b fs-xl">合格批数</p>
-              <div class="dv-dig-flop ml-1 mt-2 pl-3 colorGrass"> {{ obadata.v_okqty }}
-              </div>
-            </div>
-            <div class="item">
-              <p class="ml-3 colorBlue fw-b fs-xl">批合格率</p>
-              <div class="dv-dig-flop ml-1 mt-2 pl-3 colorGrass"> {{ obadata.v_okrate }}
-              </div>
-            </div>
-          </div>
-        </div>
-        <div class ="ditem">
+        <div class ="ditem1">
           <div class="d-flex pt-1 pl-2 pb-5 jc-center">
-            <span class="fs-xxl text mx-2 fw-b">当日OQC抽检数</span>
+            <span class="fs-xxl text mx-2 fw-b">重点不良订单</span>
           </div>
-          <div class="flexup">
-            <div class="item">
-              <p class="ml-3 colorBlue fw-b fs-xl">抽检数</p>
-              <div class="dv-dig-flop ml-1 mt-2 pl-3 colorGrass"> {{ oqcdata.v_cjqty }}
-              </div>
-            </div>
-            <div class="item">
-              <p class="ml-3 colorBlue fw-b fs-xl">不良数</p>
-              <div class="dv-dig-flop ml-1 mt-2 pl-3 colorGrass"> {{ oqcdata.v_ngqty }}
-              </div>
-            </div>
-            <div class="item">
-              <p class="ml-3 colorBlue fw-b fs-xl">不良率</p>
-              <div class="dv-dig-flop ml-1 mt-2 pl-3 colorGrass"> {{ oqcdata.v_ngrate }}
-              </div>
-            </div>
+          <div class="d-flex jc-center">
+            <dv-scroll-board :config="config" ref="scroll-board" />
           </div>
         </div>
+
         <div class ="ditem">
           <div class="d-flex pt-1 pl-2 pb-5 jc-center">
             <span class="fs-xxl text mx-2 fw-b ">当日首件制作数</span>
@@ -84,15 +49,16 @@ export default {
   data() {
     return {
       timing:null,
-      obadata:{
-        v_sjqty:0,
-        v_okqty:0,
-        v_okrate:'0%',
-      },
-      oqcdata:{
-        v_cjqty:0,
-        v_ngqty:0,
-        v_ngrate:'0%',
+      config: {
+        header: ['订单号','不良现象', '不良数量'],
+        data: [],
+        rowNum: 9, //表格行数
+        headerHeight: 35,
+        headerBGC: 'rgba(15,19,37,0.1)', //表头
+        oddRowBGC: 'rgba(15,19,37,0.1)', //奇数行
+        evenRowBGC: 'rgba(23,28,51,0.1)', //偶数行
+        columnWidth: [150,190,180],
+        align: ['center','center','center']
       },
       firstdata:{
         v_sjqty:0,
@@ -116,41 +82,36 @@ export default {
       }, 10000);
     },
     async settestdata() {
-      //OBA检验数量
-      var caller = 'KB!QualityOBAData';
-      await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",{
-        params: {
-          condition: "V_OUTLINE='"+this.factory+"'",
-        }
-      }).then((result)=>{
-            let dataList = JSON.parse(result.data.data);
-            if(dataList.length>0) {
-              this.obadata = dataList[0];
-            }
-          },(result)=>{
-            console.error(result)
-          }
-      );
-      //OQC抽检数
-      caller = 'KB!QualityOQCData';
+      //重点不良订单
+      var caller = 'KB!QualityPointBadData';
       await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",{
         params: {
-          condition: "V_OUTLINE='"+this.factory+"'",
+          condition: "1-1",
         }
       }).then((result)=>{
             let dataList = JSON.parse(result.data.data);
-            if(dataList.length>0) {
-              this.oqcdata = dataList[0];
-            }
+            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 fs-xxl'>" + element.v_sacode + "</span>");
+                item.push("<span  class='colorRemind fs-xxl'>" + element.v_remark + "</span>");
+                item.push("<span  class='colorGrass fs-xxl'>" + element.v_qty + "</span>");
+                resultList.push(item);
+              }
+              const scrollBoard = this.$refs['scroll-board'];
+              //刷新数据
+              scrollBoard.updateRows(resultList);
           },(result)=>{
             console.error(result)
           }
       );
+
       //首件制作数
       caller = 'KB!QualityFirstData';
       await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",{
         params: {
-          condition: "V_OUTLINE='"+this.factory+"'",
+          condition: "1=1'",
         }
       }).then((result)=>{
             let dataList = JSON.parse(result.data.data);
@@ -188,6 +149,13 @@ $box-width: 100%;
     border-radius: 10px;
     overflow: hidden;
     height: 100%;
+    .ditem1{
+      height:66.7%;
+      ::v-deep  .dv-scroll-board .header {
+        font-size: 22px;
+      }
+
+    }
     .ditem {
       height:33.3%;
       .flexup {

+ 2 - 26
src/views/quality/index.vue

@@ -48,22 +48,13 @@
                   品质看板<i class="el-icon-arrow-down el-icon--right"></i>&nbsp;&nbsp;&nbsp;&nbsp;
                 </span>
                   <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item class="dropdownitem"><router-link to="shop">车间看板</router-link></el-dropdown-item>
-                    <el-dropdown-item class="dropdownitem"><router-link to="prodline">产线看板</router-link></el-dropdown-item>
+                    <el-dropdown-item class="dropdownitem"><router-link to="total">总看板</router-link></el-dropdown-item>
+                    <el-dropdown-item class="dropdownitem"><router-link to="prodline">车间看板</router-link></el-dropdown-item>
                     <el-dropdown-item class="dropdownitem"><router-link to="warehouse">仓库看板</router-link></el-dropdown-item>
 <!--                    <el-dropdown-item class="dropdownitem"><router-link to="device">设备看板</router-link></el-dropdown-item>-->
                   </el-dropdown-menu>
               </el-dropdown>
 
-              <el-select v-model="factory" class="dropdown" @change ="handleBlur" style="width: 120px">
-                <el-option
-                    v-for="item in factoryoptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                ></el-option>
-              </el-select>
-
               <span class="text">&nbsp;&nbsp;&nbsp;&nbsp;</span>
               <span class="text">{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span>
             </div>
@@ -83,11 +74,6 @@
                 <up2 />
               </dv-border-box-12>
             </div>
-            <div>
-              <dv-border-box-12>
-                <up3 />
-              </dv-border-box-12>
-            </div>
           </div>
           <!-- 下面 -->
           <div class="bottom-box">
@@ -110,7 +96,6 @@ import  common  from '../../utils/common';
 import { formatTime } from '../../utils/index.js'
 import up1 from './up1.vue'
 import up2 from './up2.vue'
-import up3 from './up3'
 import bottom1 from './bottom1.vue'
 import bottom2 from './bottom2.vue'
 import {mapMutations, mapState} from "vuex"
@@ -136,7 +121,6 @@ export default {
   components: {
     up1,
     up2,
-    up3,
     bottom1,
     bottom2
   },
@@ -158,20 +142,12 @@ export default {
         this.dateYear = formatTime(new Date(), 'yyyy-MM-dd')
         this.dateWeek = this.weekday[new Date().getDay()]
       }, 1000)
-      //定时获取厂区
-      this.timing2 = setInterval(() => {
-        this.getFactory();
-      }, 300000);
     },
     cancelLoading() {
       setTimeout(() => {
         this.loading = false
       }, 1000)
     },
-    handleBlur (val) {
-      this.setFactory(val);
-      location.reload();
-    },
   }
 }
 </script>

+ 3 - 4
src/views/quality/up1.vue

@@ -47,10 +47,10 @@ export default {
       }, 10000);
     },
     async settestdata() {
-      var caller = 'KB!QualityUpperLineZTRate';
+      var caller = 'KB!QualityZTRate';
       await this.$http.get("kanban/datalist.action?caller="+caller+"&_noc=1&page=1&pageSize=100",{
         params: {
-          condition: "V_UPPERLINE='"+this.factory+"'",
+          condition: "1=1",
         }
       }).then((result)=>{
             let dataList = JSON.parse(result.data.data);
@@ -59,7 +59,7 @@ export default {
             for (let index = 0; index < dataList.length; index++) {
               const element = dataList[index];
               datas.push({
-                name:"<span  class='fs-md ml-3'>" + element.v_licode+"<span/>" ,
+                name:"<span  class='fs-md ml-3'>" + element.v_stepname+"<span/>" ,
                 value:element.v_ztrate,//"<span  class='fs-md'>" + element.v_ztrate +"<span/>",
               });
               if(v_mindata>element.v_ztrate){
@@ -72,7 +72,6 @@ export default {
             }
             this.ranking.data = datas;
             this.ranking.mindata = Math.floor(v_mindata/10)*10;
-            console.log(this.ranking.mindata);
             this.ranking = { ...this.ranking };
           },(result)=>{
             console.error(result)

+ 0 - 65
src/views/quality/up3.vue

@@ -1,65 +0,0 @@
-<template>
-  <div id="up3">
-    <div class="bg-color-black">
-      <div class="d-flex pt-1 pl-2 jc-center">
-        <span class="fs-xxl text mx-2 fw-b">当日维修分析表</span>
-      </div>
-      <div class="d-flex jc-center body-box">
-        <Up3Chart/>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import Up3Chart from "../../components/qualityechart/up3Chart";
-import {mapState} from "vuex";
-export default {
-  computed: {
-    //数组写法
-    ...mapState(['user','factoryoptions','factory']),
-  },
-  data() {
-    return {
-      timing:null,
-    }
-  },
-  components: {Up3Chart},
-  mounted() {
-   // this.refreshdata();
-  },
-  beforeDestroy () {
-    clearInterval(this.timing)
-  },
-  methods: {
-    refreshdata() {
-      this.settestdata(); //获取数据
-      this.timing = setInterval(() => {
-        this.settestdata(); //获取-主题词
-      }, 10000);
-    },
-
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-$box-height: 475px;
-$box-width: 100%;
-#up3 {
-  padding: 13px;
-  height: $box-height;
- // font-size: 32px;
-  width: $box-width;
-  border-radius: 5px;
-  .bg-color-black {
-    height: $box-height - 25px;
-    border-radius: 10px;
-    padding: 5px;
-    width: $box-width;
-    .body-box {
-      padding-top: 25px;
-    }
-  }
-  }
-</style>

+ 5 - 4
src/views/total/up3.vue

@@ -42,7 +42,7 @@
                 </p>
               </div>
             </div>
-             <div class="fs-xxl fw-b mt-2">
+             <div class="fs-xxl fw-b mt-2 ">
               金额{{outAmount}}
             </div>
           </div>
@@ -210,11 +210,11 @@ $box-width: 500px;
 
      .item {
        width: 50%;
-      // align-items: center;
-       .location{
+       align-items: center;
+       /*.location{
           position: absolute;
           left: 20%;
-       }
+       }*/
        .circle-hollow {
          width: 105px;
          height: 105px;
@@ -227,6 +227,7 @@ $box-width: 500px;
          flex-direction: column; /* 文字垂直排列 */
          box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 阴影效果 */
          .info{
+           text-align: center;
            p{
              border-top: 1px solid #ddd;
            }