From b8ee668eaace5d422ebb27a200c3b178b82e2a6d Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 23 八月 2022 22:55:03 +0800
Subject: [PATCH] 1.提交

---
 src/views/zzmx/chda.vue          |   38 
 src/views/scgl/scdd.vue          |   47 
 src/views/jcsz/wldw.vue          |   21 
 src/views/scgl/gd.vue            |  189 +++++
 src/styles/global.css            |    4 
 src/views/kb/cgdd.vue            |  151 ++-
 src/views/scgl/sckbg.vue         |  626 ++++++++++++++++
 src/layout/components/Navbar.vue |   21 
 src/views/kb/ckgl.vue            |  216 +++--
 src/api/scgl.js                  |   25 
 src/views/zlgl/gxjyxm.vue        |    7 
 src/views/kb/kbCommon.css        |    5 
 src/views/zzmx/jpgj.vue          |   21 
 src/views/zlgl/qxdy.vue          |    7 
 src/views/wlgl/kwdy.vue          |    7 
 src/views/zzmx/gylx.vue          |   61 +
 src/views/sbgl/sbqd.vue          |    7 
 src/views/template.vue           |  195 +---
 src/views/kb/zhkb.vue            |  360 ++++-----
 src/utils/myEcharts.js           |   21 
 src/views/jcsz/yhqd.vue          |   13 
 src/views/jcsz/jsqd.vue          |   78 +
 src/views/wlgl/ckdy.vue          |    7 
 src/views/zzmx/gxdy.vue          |   11 
 src/views/zlgl/gxjybz.vue        |    7 
 25 files changed, 1,565 insertions(+), 580 deletions(-)

diff --git a/src/api/scgl.js b/src/api/scgl.js
index e2136e8..c0a822c 100644
--- a/src/api/scgl.js
+++ b/src/api/scgl.js
@@ -202,3 +202,28 @@
     params: data
   })
 }
+
+// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)
+export function MesOrderNgStepSearch(data) {
+  return request({
+    url: 'ProductionManagement/MesOrderNgStepSearch',
+    method: 'get',
+    params: data
+  })
+}
+// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
+export function MesOrderNgSubStepSearch(data) {
+  return request({
+    url: 'ProductionManagement/MesOrderNgSubStepSearch',
+    method: 'get',
+    params: data
+  })
+}
+// 涓嶈壇澶勭悊,鎻愪氦
+export function EditOrderNgStepSeave(data) {
+  return request({
+    url: 'ProductionManagement/EditOrderNgStepSeave',
+    method: 'post',
+    data
+  })
+}
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 2d8ec41..298570f 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -51,7 +51,7 @@
         <!--        <el-form-item label="鐢ㄦ埛鍚嶇О锛�">-->
         <!--          <div> {{ username }}</div>-->
         <!--        </el-form-item>-->
-        <el-form-item label="瀵嗙爜锛�" prop="password">
+        <el-form-item label="鍘熷瘑鐮侊細" prop="password">
           <el-input v-model="form.password" style="width: 220px;" />
         </el-form-item>
         <el-form-item label="鏂板瘑鐮侊細" prop="newpassword">
@@ -92,9 +92,20 @@
     this.username = getCookie('username')
   },
   data() {
-    const validatePassword = (rule, value, callback) => {
+    const validatePassword1 = (rule, value, callback) => {
       if (!value) {
-        return callback(new Error('璇疯緭鍏ュ瘑鐮侊紒'))
+        return callback(new Error('璇疯緭鍏ュ師瀵嗙爜锛�'))
+      } else {
+        if (SER_HZ.test(value)) {
+          return callback(new Error('瀵嗙爜涓嶈兘涓轰腑鏂囷紒'))
+        } else {
+          callback()
+        }
+      }
+    }
+    const validatePassword2 = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error('璇疯緭鍏ユ柊瀵嗙爜锛�'))
       } else {
         if (SER_HZ.test(value)) {
           return callback(new Error('瀵嗙爜涓嶈兘涓轰腑鏂囷紒'))
@@ -113,10 +124,10 @@
       dialogVisible: false,
       formRules: {
         password: [
-          { required: true, validator: validatePassword, trigger: ['blur', 'change'] }
+          { required: true, validator: validatePassword1, trigger: ['blur', 'change'] }
         ],
         newpassword: [
-          { required: true, validator: validatePassword, trigger: ['blur', 'change'] }
+          { required: true, validator: validatePassword2, trigger: ['blur', 'change'] }
         ]
       }
     }
diff --git a/src/styles/global.css b/src/styles/global.css
index e636bc0..e54b711 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -69,6 +69,10 @@
   justify-content: end;
 }
 
+.ellipsis{
+  text-overflow	:ellipsis;overflow:hidden;white-space:nowrap;
+}
+
 
 
 /*
diff --git a/src/utils/myEcharts.js b/src/utils/myEcharts.js
index 473374a..d13b9ba 100644
--- a/src/utils/myEcharts.js
+++ b/src/utils/myEcharts.js
@@ -350,7 +350,7 @@
 }
 
 // 缁煎悎鐪嬫澘鍥�
-export function bar02(dataArr,titlenameArr) {
+export function bar02(dataArr, titlenameArr) {
   // console.log(val)
   // const data = [70, 60, 50, 40, 30]
   // const titlename = ['澶栬鍒掍激', '琛ㄩ潰娌规薄', '灏哄', '棰滆壊', '澶у皬']
@@ -361,7 +361,10 @@
   const titlename = titlenameArr
 
   const valdata = [683, 500, 400, 300, 200]
-  const myColor = ['#FF0000', '#FF5511', '#FF8800', '#FFBB00', '#FFFF00']
+  // const myColor = ['#FF0000', '#FF5511', '#FF8800', '#FFBB00', '#FFFF00']
+  // const myColor = ['#0000FF']
+  // const myColor = ['#7af5f5', '#00FFFF', '#00FFFF', '#00FFFF', '#00FFFF']
+  const myColor = ['rgba(122,245,245,1)', 'rgba(122,245,245,0.95)', 'rgba(122,245,245,0.9)', 'rgba(122,245,245,0.85)', 'rgba(122,245,245,0.8)']
   const option = {
     backgroundColor: 'transparent',
     title: {
@@ -381,8 +384,8 @@
       }
     },
     grid: {
-      left: '2%',
-      right: '2%',
+      left: '10%',
+      right: '5%',
       bottom: '0%',
       top: '10%',
       containLabel: true
@@ -408,11 +411,11 @@
           // color: '#d8d7d9',
           color: '#fff',
           fontSize: 14,
-          formatter: function(value, index) {
-            return [
-              '{lg|' + (index + 1) + '銆�   }' + '{title|' + value + '} '
-            ].join('\n')
-          },
+          // formatter: function(value, index) {
+          //   return [
+          //     '{lg|' + (index + 1) + '銆�   }' + '{title|' + value + '} '
+          //   ].join('\n')
+          // },
           rich: {
             lg: {
               // backgroundColor: '#339911',
diff --git a/src/views/jcsz/jsqd.vue b/src/views/jcsz/jsqd.vue
index 4caa124..73891d7 100644
--- a/src/views/jcsz/jsqd.vue
+++ b/src/views/jcsz/jsqd.vue
@@ -97,7 +97,12 @@
             min-width="160"
             label="瑙掕壊鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.description">{{ row.description }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
@@ -122,8 +127,18 @@
             sortable="custom"
           >
             <template slot-scope="{row}">
-              <i v-if="row.is_user==='Y'" class="el-icon-user-solid" style="color:#42b983;cursor: pointer" @click="userClick(row)" />
-              <i v-if="row.is_user==='N'" class="el-icon-user-solid" style="color: rgb(180 ,181, 185);cursor: pointer" @click="userClick(row)" />
+              <i
+                v-if="row.is_user==='Y'"
+                class="el-icon-user-solid"
+                style="color:#42b983;cursor: pointer"
+                @click="userClick(row)"
+              />
+              <i
+                v-if="row.is_user==='N'"
+                class="el-icon-user-solid"
+                style="color: rgb(180 ,181, 185);cursor: pointer"
+                @click="userClick(row)"
+              />
             </template>
           </el-table-column>
           <el-table-column
@@ -134,7 +149,12 @@
           >
             <template slot-scope="{row}">
               <i v-if="row.is_right==='Y'" class="el-icon-share" @click="rightClick(row)" />
-              <i v-if="row.is_right==='N'" class="el-icon-share" style="color: rgb(180 ,181, 185)" @click="rightClick(row)" />
+              <i
+                v-if="row.is_right==='N'"
+                class="el-icon-share"
+                style="color: rgb(180 ,181, 185)"
+                @click="rightClick(row)"
+              />
             </template>
           </el-table-column>
           <el-table-column
@@ -379,12 +399,12 @@
         ref="multipleTable"
         :data="dialogFormUserTable"
         border
+        :row-class-name="tableRowClassName"
         highlight-current-row
         :height="isIpad?400:365"
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
         :row-key="getRowKey"
-        :row-class-name="tableRowClassName"
         @sort-change="sortChangeOfUser"
         @selection-change="handleSelectionChange"
       >
@@ -394,6 +414,7 @@
           type="selection"
           width="50"
           :reserve-selection="true"
+          fixed
         />
         <el-table-column
           prop="RowNum"
@@ -419,10 +440,17 @@
           prop="flag"
           label="鍏宠仈瑙掕壊"
           sortable="custom"
+          fixed="right"
         >
           <template slot-scope="{row}">
-            <div v-if="row.flag==='Y'">鏄�</div>
-            <div v-if="row.flag==='N'">鍚�</div>
+            <div v-if="row.flag==='Y'">
+              <svg-icon icon-class="circleYes" style="margin-right: 2px" />
+              鏄�
+            </div>
+            <div v-if="row.flag==='N'">
+              <svg-icon icon-class="circleNo" style="margin-right: 2px" />
+              鍚�
+            </div>
           </template>
         </el-table-column>
       </el-table>
@@ -525,7 +553,14 @@
     </el-dialog>
 
     <!--瀵煎叆缁勪欢-->
-    <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" />
+    <import-picker
+      ref="importPickerFunc"
+      class="importPickerClass"
+      :shows.sync="shows"
+      :title="title_value"
+      :colos="colos"
+      :code="code"
+    />
 
   </div>
 </template>
@@ -1132,9 +1167,9 @@
 
       // 鐩墠涓�鏈熻偗瀹氭槸杩欎釜
       if (this.PCTrue && !this.APPTrue) {
-        pcIsSelected1 = true
+        // pcIsSelected1 = true
         if (rightPCArrFlag === 'Y') {
-          // pcIsSelected1 = true
+          pcIsSelected1 = true
           pcIsSelected2 = true
 
           const interval = setInterval(() => {
@@ -1149,9 +1184,9 @@
             }
           }, 100)
 
-          // this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
+          this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
         }
-        this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
+        // this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
       }
 
       if (!this.PCTrue && this.APPTrue) {
@@ -1495,6 +1530,7 @@
 ::v-deep .el-dialog__body {
   padding: 20px 100px !important;
 }
+
 .settingDialogVisible, .userDialogVisible, .dialogVisibleRight {
   ::v-deep .el-dialog__body {
     padding: 10px 20px !important;
@@ -1566,11 +1602,16 @@
 <!--鍏叡椤甸潰鏍峰紡-->
 <style lang="scss" scoped>
 $main_color: #42b983;
-.el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
+::v-deep .el-button--text{
+  font-size: 14px ;
+  cursor: pointer ;
+}
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
   color: $main_color;
   cursor: pointer;
 }
-.el-icon-edit-outline{
+
+.el-icon-edit-outline {
   margin-right: 15px;
 }
 
@@ -1631,8 +1672,8 @@
   background-color: #f8f8fa;
 }
 
-::v-deep .el-table__body .el-table__row.hover-row td{
-  background-color: #eaecef ;
+::v-deep .el-table__body .el-table__row.hover-row td {
+  background-color: #eaecef;
 }
 
 ::v-deep .el-form--inline .el-form-item__label {
@@ -1648,6 +1689,7 @@
 .body ::v-deep .el-form-item {
   margin-bottom: 0;
 }
+
 .userDialogVisible ::v-deep .el-form-item {
   margin-bottom: 0;
 }
@@ -1658,7 +1700,9 @@
 .el-table .custom-row {
   background: #f8f8fa;
 }
-.el-form-item__label{
+
+.el-form-item__label {
   font-weight: 400 !important
 }
+
 </style>
diff --git a/src/views/jcsz/wldw.vue b/src/views/jcsz/wldw.vue
index 45af01d..6a394b8 100644
--- a/src/views/jcsz/wldw.vue
+++ b/src/views/jcsz/wldw.vue
@@ -133,19 +133,34 @@
             label="鑱旂郴浜�"
             width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.conttacts">{{ row.conttacts }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="conttphone"
             label="鑱旂郴鏂瑰紡"
             width="160"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.conttphone">{{ row.conttphone }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="addr"
             min-width="160"
             label="琛ュ厖鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.addr">{{ row.addr }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
diff --git a/src/views/jcsz/yhqd.vue b/src/views/jcsz/yhqd.vue
index 5705481..043fc47 100644
--- a/src/views/jcsz/yhqd.vue
+++ b/src/views/jcsz/yhqd.vue
@@ -605,7 +605,7 @@
         id: '',
         UserCode: '',
         UserName: '',
-        Password: '',
+        Password: '123456',
         Enable: 'Y',
         StuOrg: '',
         Mobile: '',
@@ -613,7 +613,7 @@
         groupcode: '',
         Operator: '',
         OperType: '',
-        wagetype: ''
+        wagetype: '2'
       },
       usergroupArr: [], // 鐢熶骇鐝粍鏁扮粍
       wagetypeArr: [
@@ -820,14 +820,14 @@
       this.dialogForm.UserCode = ''
       this.dialogForm.UserCode = ''
       this.dialogForm.UserName = ''
-      this.dialogForm.Password = ''
+      this.dialogForm.Password = '123456'
       this.dialogForm.Enable = 'Y'
       this.$refs.dialogCascader.checkedValue = ''
       this.dialogForm.StuOrg = ''
       this.dialogForm.Mobile = ''
       this.dialogForm.Email = ''
       this.dialogForm.groupcode = ''
-      this.dialogForm.wagetype = ''
+      this.dialogForm.wagetype = '2'
       this.$refs.dialogForm.clearValidate()
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -1340,6 +1340,11 @@
 <!--鍏叡椤甸潰鏍峰紡-->
 <style lang="scss" scoped>
 $main_color: #42b983;
+
+::v-deep .el-button--text{
+  font-size: 14px ;
+  cursor: pointer ;
+}
 .el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
   color: $main_color;
   cursor: pointer;
diff --git a/src/views/kb/cgdd.vue b/src/views/kb/cgdd.vue
index fc1bf15..ee9fd37 100644
--- a/src/views/kb/cgdd.vue
+++ b/src/views/kb/cgdd.vue
@@ -39,7 +39,7 @@
           <!-- 2-->
           <div class="kb_left_bottom kb_pd10">
             <div class="kb_left_bottom_content">
-              <div class="content_head">閲囪喘鍒拌揣璺熻釜锛�</div>
+              <div class="content_head kb_title_text">閲囪喘鍒拌揣璺熻釜</div>
               <div class="content_body">
                 <el-table
                   ref="tableData"
@@ -63,33 +63,53 @@
                   <el-table-column
                     prop="suppername"
                     label="渚涘簲鍟�"
-                    width="163"
-                  />
+                    width="125"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.suppername" class="ellipsis">{{ row.suppername }}</div>
+                      <div v-else />
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="username"
                     label="閲囪喘鍛�"
                     width="68"
-                  />
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.username">{{ row.username }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="partcode"
                     label="浜у搧缂栫爜"
-                    width="84"
+                    width="108"
                   />
                   <el-table-column
                     prop="partname"
                     label="浜у搧鍚嶇О"
-                    width="168"
+                    width="155"
                   />
                   <el-table-column
                     prop="partspec"
                     label="瑙勬牸鍨嬪彿"
-                    width="84"
-                  />
+                    width="130"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="quantity"
                     label="璁㈠崟鏁伴噺"
-                    width="84"
-                  />
+                    width="74"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.quantity">{{ parseFloat(row.quantity) }}</div>
+                      <div v-else>0</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="checktype"
                     label="妫�楠岀姸鎬�"
@@ -108,23 +128,30 @@
                   <el-table-column
                     prop="quantity1"
                     label="宸叉敹鏁伴噺"
-                    width="84"
-                  />
-                  <el-table-column
-                    label="鏈敹鏁伴噺"
-                    width="84"
+                    width="74"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ parseFloat(row.quantity- row.quantity1) }}</div>
+                      <div v-if="row.quantity1">{{ parseFloat(row.quantity1) }}</div>
+                      <div v-else>0</div>
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label="鏈敹鏁伴噺"
+                    width="74"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.quantity- row.quantity1">{{ parseFloat(row.quantity- row.quantity1) }}</div>
+                      <div v-else>0</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="acceptDate"
                     label="棰勮浜ゆ湡"
-                    width="84"
+                    width="95"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.acceptDate.substring(5, 10) }}</div>
+                      <div v-if="row.acceptDate">{{ row.acceptDate.substring(0, 10) }}</div>
+                      <div v-else>/</div>
                     </template>
                   </el-table-column>
                   <el-table-column
@@ -134,8 +161,9 @@
                   >
                     <template slot-scope="{row}">
                       <div v-if="parseFloat(row.warning)<0" style="color: red">{{ Math.abs(parseFloat(row.warning)) }}</div>
-                      <div v-else-if="row.warning===null">0</div>
-                      <div v-else>{{ row.warning }}</div>
+                      <div v-else-if="row.warning===null||row.warning===''||row.warning===0">0</div>
+                      <div v-else-if="parseFloat(row.warning)>3">{{ row.warning }}</div>
+                      <div v-else-if="parseFloat(row.warning)>0&&parseFloat(row.warning)<=3" style="color:yellow;">{{ row.warning }}</div>
                     </template>
                   </el-table-column>
                 </el-table>
@@ -146,7 +174,7 @@
         <div class="kb_right kb_pd10">
           <div class="kb_right_top kb_pd10">
             <div class="kb_right_top_content">
-              <div class="content_head">渚涘簲鍟嗗欢鏈熶氦璐ф帓琛岋細</div>
+              <div class="content_head kb_title_text">渚涘簲鍟嗗欢鏈熶氦璐ф帓琛�</div>
               <div class="content_body">
                 <el-table
                   ref="tableDataRank"
@@ -160,7 +188,7 @@
                   <el-table-column
                     type="index"
                     label="搴忓彿"
-                    width="100"
+                    width="90"
                   >
                     <template slot-scope="{row}">
                       <div>NO.{{ row.index }}</div>
@@ -174,17 +202,17 @@
                   <el-table-column
                     prop="suppercode"
                     label="渚涘簲鍟嗙紪鐮�"
-                    width="145"
+                    width="170"
                   />
                   <el-table-column
                     prop="suppername"
-                    width="163"
+                    width="183"
                     label="渚涘簲鍟嗗悕绉�"
                   />
                   <el-table-column
                     prop="cont"
                     label="寤舵湡娆℃暟"
-                    width="125"
+                    width="90"
                   />
                 </el-table>
               </div>
@@ -229,7 +257,7 @@
     getPurchaseLeftTop() {
       PurchaseLeftTop().then(res => {
         this.purchaseLeftTopData = res.data[0]
-        console.log(this.purchaseLeftTopData)
+        // console.log(this.purchaseLeftTopData)
       })
       setInterval(() => {
         PurchaseLeftTop().then(res => {
@@ -241,45 +269,45 @@
     getPurchaseLeftBottom() {
       PurchaseLeftBottom().then(res => {
         this.tableData = res.data
-      })
 
-      const divData = this.$refs.tableData.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
-        divData.scrollTop += 1
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          PurchaseLeftBottom().then(res => {
-            this.tableData = res.data
-          })
-        }
-      }, this.tableData.length <= 14 ? 1000 * 6 : 100)
+        const divData = this.$refs.tableData.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            PurchaseLeftBottom().then(res => {
+              this.tableData = res.data
+            })
+          }
+        }, this.tableData.length <= 14 ? 1000 * 6 : 100)
+      })
     },
 
     getPurchaseRight() {
       PurchaseRight().then(res => {
         this.tableDataRank = res.data
-      })
 
-      const divData = this.$refs.tableDataRank.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
-        divData.scrollTop += 1
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          PurchaseRight().then(res => {
-            this.tableDataRank = res.data
-          })
-        }
-      }, this.tableDataRank.length <= 22 ? 1000 * 6 : 100)
+        const divData = this.$refs.tableDataRank.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            PurchaseRight().then(res => {
+              this.tableDataRank = res.data
+            })
+          }
+        }, this.tableDataRank.length <= 22 ? 1000 * 6 : 100)
+      })
     },
 
     tableRowClassName({ row, rowIndex }) {
@@ -335,7 +363,8 @@
 </script>
 
 <style scoped lang="scss">
-$kbBorderColor: #09d8f2;
+//$kbBorderColor: #09d8f2;
+$kbBorderColor: rgba(9,216,242,0.4);
 
 .kb_content {
   display: flex;
@@ -459,4 +488,8 @@
   /* width: 0;瀹藉害涓�0鏆楄棌 */
   width: 0;
 }
+
+::v-deep .cell {
+  padding: 0 !important;
+}
 </style>
diff --git a/src/views/kb/ckgl.vue b/src/views/kb/ckgl.vue
index 50337ca..0d93c85 100644
--- a/src/views/kb/ckgl.vue
+++ b/src/views/kb/ckgl.vue
@@ -14,9 +14,10 @@
       <div class="kb_content">
         <div class="kb_left">
           <!-- 1-->
+          <!--          <div class="kb_left_top kb_pd10" style="padding:10px 0px 10px 5px">-->
           <div class="kb_left_top kb_pd10">
             <div class="kb_left_top_block" style="margin-top: 10px">
-              <div class="headTitle">浜у搧寰呭叆搴擄細</div>
+              <div class="headTitle kb_title_text">浜у搧寰呭叆搴�</div>
               <div class="content">
                 <el-table
                   ref="tableDataTopRef"
@@ -29,27 +30,33 @@
                   <el-table-column
                     prop="voucherdate"
                     label="鍗曟嵁鏃ユ湡"
-                    width="86"
+                    width="110"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.voucherdate.substring(5, 10) }}</div>
+                      <div v-if=" row.voucherdate">{{ row.voucherdate.substring(0, 10) }}</div>
+                      <div v-else />
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="wo"
                     label="鍗曟嵁缂栧彿"
-                    width="165"
+                    width="149"
                   />
                   <el-table-column
                     prop="wkshp_name"
                     label="鐢熶骇杞﹂棿"
-                    width="86"
+                    width="95"
                   />
                   <el-table-column
                     prop="saleOrderCode"
                     label="閿�鍞鍗曞彿"
-                    width="178"
-                  />
+                    width="170"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="materiel_code"
                     label="浜у搧缂栧彿"
@@ -58,56 +65,73 @@
                   <el-table-column
                     prop="materiel_name"
                     label="浜у搧鍚嶇О"
-                    width="105"
+                    width="140"
                   />
                   <el-table-column
                     prop="specification"
                     label="瑙勬牸鍨嬪彿"
-                    width="85"
-                  />
+                    width="113"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="stck_name"
                     label="棰勫叆浠撳簱"
                     width="100"
-                  />
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.stck_name">{{ row.stck_name }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="quantity"
                     label="鏁伴噺"
-                    width="60"
+                    width="50"
                   />
                   <el-table-column
                     prop="totalStockInQuantity"
                     label="宸插叆搴撴暟閲�"
-                    width="105"
-                  />
+                    width="80"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>
+                      <div v-else>0</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="uomname"
                     label="鍗曚綅"
-                    width="90"
+                    width="50"
                   />
                   <el-table-column
                     prop="preStartDate"
                     label="棰勮寮�宸�"
-                    width="86"
+                    width="100"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.preStartDate.substring(5, 10) }}</div>
+                      <div v-if="row.preStartDate">{{ row.preStartDate.substring(0, 10) }}</div>
+                      <div v-else />
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="preFinishDate"
                     label="棰勮瀹屽伐"
-                    width="86"
+                    width="110"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.preFinishDate.substring(5, 10) }}</div>
+                      <div v-if="row.preFinishDate">{{ row.preFinishDate.substring(0, 10) }}</div>
+                      <div v-else />
                     </template>
                   </el-table-column>
                 </el-table>
               </div>
             </div>
             <div class="kb_left_top_block" style="margin-top: 25px">
-              <div class="headTitle">浜у搧寰呭彂璐э細</div>
+              <div class="headTitle kb_title_text">浜у搧寰呭彂璐�</div>
               <div class="content">
                 <el-table
                   ref="tableDataBottomRef"
@@ -120,75 +144,97 @@
                   <el-table-column
                     prop="voucherdate"
                     label="鍗曟嵁鏃ユ湡"
-                    width="86"
+                    width="110"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.voucherdate.substring(5, 10) }}</div>
+                      <div v-if="row.voucherdate">{{ row.voucherdate.substring(0, 10) }}</div>
+                      <div v-else />
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="wo"
                     label="鍗曟嵁缂栧彿"
-                    width="165"
+                    width="145"
                   />
                   <el-table-column
                     prop="customename"
                     label="瀹㈡埛"
-                    width="170"
-                  />
+                    width="125"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.customename" class="ellipsis">{{ row.customename }}</div>
+                      <div v-else />
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="username"
                     label="涓氬姟鍛�"
-                    width="68"
+                    width="65"
                   />
                   <el-table-column
                     prop="SourceVoucherCode"
                     label="鏉ユ簮鍗曞彿"
-                    width="119"
-                  />
+                    width="145"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.SourceVoucherCode">{{ row.SourceVoucherCode }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="materiel_code"
                     label="浜у搧缂栧彿"
-                    width="86"
+                    width="96"
                   />
                   <el-table-column
                     prop="materiel_name"
                     label="浜у搧鍚嶇О"
-                    width="86"
+                    width="170"
                   />
                   <el-table-column
                     prop="specification"
                     label="瑙勬牸鍨嬪彿"
-                    width="86"
-                  />
+                    width="100"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="quantity"
                     label="鏁伴噺"
-                    width="60"
+                    width="47"
                   />
                   <el-table-column
                     prop="saleOutQuantity"
                     label="宸插彂璐ф暟閲�"
-                    width="100"
-                  />
+                    width="80"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.saleOutQuantity">{{ row.saleOutQuantity }}</div>
+                      <div v-else>0</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="priuserdefnvc1"
                     label="妫�楠屾柟寮�"
-                    width="86"
+                    width="80"
                   />
                   <el-table-column
                     prop="priuserdefnvc2"
                     label="妫�楠屼汉鍛�"
-                    width="86"
+                    width="80"
                   />
                   <el-table-column
                     prop="deliveryDate"
                     label="棰勮浜よ揣鏃ユ湡"
-                    width="120"
+                    width="110"
                   >
-                    <!--                    <template slot-scope="{row}">-->
-                    <!--                      <div>{{ row.deliveryDate.substring(5,10) }}</div>-->
-                    <!--                    </template>-->
+                    <template slot-scope="{row}">
+                      <div v-if="row.deliveryDate">{{ row.deliveryDate.substring(0,10) }}</div>
+                      <div v-else>/</div>
+                    </template>
                   </el-table-column>
                 </el-table>
               </div>
@@ -209,11 +255,11 @@
         <div class="kb_right kb_pd10">
           <div class="kb_right_top kb_pd10">
             <div class="kb_right_top_content">
-              <div class="content_head">浜у搧搴撳瓨閲忔帓琛孴op5锛�</div>
+              <div class="content_head kb_title_text">浜у搧搴撳瓨閲忔帓琛孴op5</div>
               <div class="content_body">
                 <div id="bar03" style="width: 100%;height:100%" />
               </div>
-              <div class="content_head" style="margin-top: 12px">鍘熸枡搴撳瓨閲忔帓琛孴op5锛�</div>
+              <div class="content_head kb_title_text" style="margin-top: 12px">鍘熸枡搴撳瓨閲忔帓琛孴op5</div>
               <div class="content_body">
                 <div id="bar04" style="width: 100%;height:100%" />
               </div>
@@ -230,7 +276,6 @@
 import './kbCommon.css'
 import { bar02, loadEcharts } from '@/utils/myEcharts'
 import {
-  LineSearchBottomLeftData,
   WareHouseRightBottomData,
   WareHouseRightTopData,
   WareHouseTopBottomData,
@@ -260,66 +305,66 @@
     getWareHouseTopLeftData() {
       WareHouseTopLeftData().then(res => {
         this.tableDataTop = res.data
-      })
 
-      const divData = this.$refs.tableDataTopRef.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        divData.scrollTop += 1
-        // divData.scrollTop += divData.scrollHeight / this.tableData.length
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          WareHouseTopLeftData().then(res => {
-            this.tableDataTop = res.data
-          })
-        }
-      }, this.tableDataTop.length <= 10 ? 1000 * 6 : 100)
+        const divData = this.$refs.tableDataTopRef.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // divData.scrollTop += divData.scrollHeight / this.tableData.length
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            WareHouseTopLeftData().then(res => {
+              this.tableDataTop = res.data
+            })
+          }
+        }, this.tableDataTop.length <= 10 ? 1000 * 6 : 100)
+      })
     },
     // 鑾峰彇宸︿笅table鏁版嵁
     getWareHouseTopBottomData() {
       WareHouseTopBottomData().then(res => {
         this.tableDataBottom = res.data
-      })
 
-      const divData = this.$refs.tableDataBottomRef.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        divData.scrollTop += 1
-        // divData.scrollTop += divData.scrollHeight / this.tableData.length
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          WareHouseTopBottomData().then(res => {
-            this.tableDataBottom = res.data
-          })
-        }
-      }, this.tableDataBottom.length <= 10 ? 1000 * 6 : 100)
+        const divData = this.$refs.tableDataBottomRef.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // divData.scrollTop += divData.scrollHeight / this.tableData.length
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            WareHouseTopBottomData().then(res => {
+              this.tableDataBottom = res.data
+            })
+          }
+        }, this.tableDataBottom.length <= 10 ? 1000 * 6 : 100)
+      })
     },
 
     // 鑾峰彇echarts
     getEcharts() {
       WareHouseRightTopData().then(res => {
-        loadEcharts('bar03', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+        loadEcharts('bar03', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
       })
 
       WareHouseRightBottomData().then(res => {
-        loadEcharts('bar04', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+        loadEcharts('bar04', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
       })
 
       setInterval(() => {
         WareHouseRightTopData().then(res => {
-          loadEcharts('bar03', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+          loadEcharts('bar03', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
         })
       }, 1000 * 15)
 
       setInterval(() => {
         WareHouseRightBottomData().then(res => {
-          loadEcharts('bar04', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+          loadEcharts('bar04', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
         })
       }, 1000 * 15)
     },
@@ -363,7 +408,8 @@
 </script>
 
 <style scoped lang="scss">
-$kbBorderColor: #09d8f2;
+//$kbBorderColor: #09d8f2;
+$kbBorderColor: rgba(9,216,242,0.4);
 $kbBackgroundColor: rgba(30, 33, 46, 0.6);
 
 .kb_content {
@@ -375,7 +421,7 @@
   letter-spacing: 2px;
 
   .kb_left {
-    width: 1345px;
+    width: 1380px;
     height: 100%;
     padding-left: 5px;
 
@@ -431,7 +477,7 @@
   }
 
   .kb_right {
-    width: 575px;
+    width: 540px;
     height: 100%;
 
     .kb_right_top {
@@ -475,4 +521,8 @@
 ::v-deep .el-table::before {
   height: 0;
 }
+
+::v-deep .cell {
+  padding: 0 !important;
+}
 </style>
diff --git a/src/views/kb/kbCommon.css b/src/views/kb/kbCommon.css
index e227a20..dac111f 100644
--- a/src/views/kb/kbCommon.css
+++ b/src/views/kb/kbCommon.css
@@ -22,6 +22,11 @@
 
 .kb_header_text {
   letter-spacing: 5px;
+  font-weight: bolder;
+}
+
+.kb_title_text{
+  font-weight: bolder;
 }
 
 .kb_headerPic {
diff --git a/src/views/kb/zhkb.vue b/src/views/kb/zhkb.vue
index 9f1f921..a12f33e 100644
--- a/src/views/kb/zhkb.vue
+++ b/src/views/kb/zhkb.vue
@@ -14,14 +14,13 @@
       <div class="kb_content">
         <div class="kb_left">
           <!-- 1-->
-          <div class="kb_left_top_title01">
+          <div class="kb_left_top_title01 kb_title_text">
             <!--            <div class="PG01" />-->
             <!--            <svg-icon icon-class="sccx" />-->
-            浜х嚎鍔犲伐涓换鍔★細
+            浜х嚎鍔犲伐涓换鍔�
           </div>
 
           <div class="kb_left_top kb_pd10">
-            <!--            {{ lineContent01 }}-->
 
             <div class="kb_left_top_block">
               <div class="kb_block01 kb_pd10">
@@ -46,18 +45,15 @@
                   <div class="kb_mt5">
                     浜у搧鍚嶇О:{{ lineContent01.children !== undefined ? lineContent01.children.partname : '' }}
                   </div>
-                  <div class="kb_mt5">
-                    浠诲姟鏁伴噺:{{ lineContent01.children !== undefined ? parseFloat(lineContent01.children.qty) : '' }}
+
+                  <div v-if="lineContent01.children&&lineContent01.children.length===0" class="kb_mt5">
+                    浠诲姟鏁伴噺:
+                  </div>
+                  <div v-else class="kb_mt5">
+                    浠诲姟鏁伴噺:{{ lineContent01.children? parseFloat(lineContent01.children.qty) : '' }}
                   </div>
                 </div>
-                <div v-if="lineContent01.children!==undefined">
-                  <!--                  <div>{{ lineContent01.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent01.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent01.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent01.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent01.children.qty) }}-->
-                  <!--                  </div>-->
-                </div>
+
               </div>
               <div class="kb_block03 kb_pd10 ">
                 <div v-if="lineContent01.children!==undefined" class="flex_s_c">
@@ -95,7 +91,7 @@
                       <div
                         v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
                         class="circle"
-                        style="background-color: red;"
+                        style="background-color: blue;"
                       />
                       <div
                         v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
@@ -138,18 +134,14 @@
                   <div class="kb_mt5">
                     浜у搧鍚嶇О:{{ lineContent02.children !== undefined ? lineContent02.children.partname : '' }}
                   </div>
-                  <div class="kb_mt5">
-                    浠诲姟鏁伴噺:{{ lineContent02.children !== undefined ? parseFloat(lineContent02.children.qty) : '' }}
+                  <div v-if="lineContent02.children&&lineContent02.children.length===0" class="kb_mt5">
+                    浠诲姟鏁伴噺:
+                  </div>
+                  <div v-else class="kb_mt5">
+                    浠诲姟鏁伴噺:{{ lineContent02.children ? parseFloat(lineContent02.children.qty) : '' }}
                   </div>
                 </div>
-                <div v-if="lineContent02.children!==undefined">
-                  <!--                  <div>{{ lineContent02.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent02.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent02.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent02.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent02.children.qty) }}-->
-                  <!--                  </div>-->
-                </div>
+
               </div>
               <div class="kb_block03 kb_pd10 ">
                 <div v-if="lineContent02.children!==undefined" class="flex_s_c">
@@ -187,7 +179,7 @@
                       <div
                         v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
                         class="circle"
-                        style="background-color: red;"
+                        style="background-color: blue;"
                       />
                       <div
                         v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
@@ -229,18 +221,14 @@
                   <div class="kb_mt5">
                     浜у搧鍚嶇О:{{ lineContent03.children !== undefined ? lineContent03.children.partname : '' }}
                   </div>
-                  <div class="kb_mt5">
-                    浠诲姟鏁伴噺:{{ lineContent03.children !== undefined ? parseFloat(lineContent03.children.qty) : '' }}
+                  <div v-if="lineContent03.children&&lineContent03.children.length===0" class="kb_mt5">
+                    浠诲姟鏁伴噺:
+                  </div>
+                  <div v-else class="kb_mt5">
+                    浠诲姟鏁伴噺:{{ lineContent03.children ? parseFloat(lineContent03.children.qty) : '' }}
                   </div>
                 </div>
-                <div v-if="lineContent03.children!==undefined">
-                  <!--                  <div>{{ lineContent03.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent03.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent03.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent03.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent03.children.qty) }}-->
-                  <!--                  </div>-->
-                </div>
+
               </div>
               <div class="kb_block03 kb_pd10 ">
                 <div v-if="lineContent03.children!==undefined" class="flex_s_c">
@@ -278,7 +266,7 @@
                       <div
                         v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
                         class="circle"
-                        style="background-color: red;"
+                        style="background-color: blue;"
                       />
                       <div
                         v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
@@ -320,18 +308,14 @@
                   <div class="kb_mt5">
                     浜у搧鍚嶇О:{{ lineContent04.children !== undefined ? lineContent04.children.partname : '' }}
                   </div>
-                  <div class="kb_mt5">
-                    浠诲姟鏁伴噺:{{ lineContent04.children !== undefined ? parseFloat(lineContent04.children.qty) : '' }}
+                  <div v-if="lineContent04.children&&lineContent04.children.length===0" class="kb_mt5">
+                    浠诲姟鏁伴噺:
+                  </div>
+                  <div v-else class="kb_mt5">
+                    浠诲姟鏁伴噺:{{ lineContent04.children ? parseFloat(lineContent04.children.qty) : '' }}
                   </div>
                 </div>
-                <div v-if="lineContent04.children!==undefined">
-                  <!--                  <div>{{ lineContent04.children.saleordercode }}</div>-->
-                  <!--                  <div class="kb_mt5 ">{{ lineContent04.children.workcode }}</div>-->
-                  <!--                  <div class="kb_mt5">{{ lineContent04.children.partname }}</div>-->
-                  <!--                  <div v-if="parseFloat(lineContent04.children.qty)!==0" class="kb_mt5">-->
-                  <!--                    {{ parseFloat(lineContent04.children.qty) }}-->
-                  <!--                  </div>-->
-                </div>
+
               </div>
               <div class="kb_block03 kb_pd10 ">
                 <div v-if="lineContent04.children!==undefined" class="flex_s_c">
@@ -369,7 +353,7 @@
                       <div
                         v-if="item.status==='START'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
                         class="circle"
-                        style="background-color: red;"
+                        style="background-color: blue;"
                       />
                       <div
                         v-else-if="item.status==='ALLO'&&(parseFloat(item.ngqty)===0||item.ngqty==='')&&(parseFloat(item.goodqty)===0||item.goodqty==='')"
@@ -392,7 +376,7 @@
           <!-- 2-->
           <div class="kb_left_bottom kb_pd10">
             <div class="kb_left_bottom_content">
-              <div class="content_head">浜х嚎鍔犲伐浠诲姟锛�</div>
+              <div class="content_head kb_title_text">浜х嚎鍔犲伐浠诲姟</div>
               <div class="content_body">
                 <el-table
                   ref="tableData"
@@ -405,12 +389,12 @@
                   <el-table-column
                     prop="RowNum"
                     label="搴忓彿"
-                    width="53"
+                    width="40"
                   />
                   <el-table-column
                     prop="status"
                     label="鍔犲伐鐘舵��"
-                    width="85"
+                    width="70"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
@@ -421,77 +405,82 @@
                   <el-table-column
                     prop="lm_date"
                     label="娲惧彂鏃堕棿"
-                    width="86"
+                    width="95"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.lm_date.substring(5, 10) }}</div>
+                      <div>{{ row.lm_date.substring(0, 10) }}</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="saleOrderCode"
                     label="閿�鍞鍗曞彿"
-                    width="150"
+                    width="158"
                   />
                   <el-table-column
                     prop="wo_code"
                     label="鍔犲伐鍗曞彿"
-                    width="207"
+                    width="170"
                   />
                   <el-table-column
                     prop="partname"
                     label="浜у搧鍚嶇О"
-                    width="105"
+                    width="145"
                   />
                   <el-table-column
                     prop="partspec"
                     label="瑙勬牸"
-                    width="60"
-                  />
+                    width="130"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="name"
                     label="鍗曚綅"
-                    width="60"
+                    width="50"
                   />
                   <el-table-column
                     prop="plan_qty"
                     label="浠诲姟鏁伴噺"
-                    width="90"
+                    width="70"
                   />
                   <el-table-column
                     prop="good_qty"
                     label="瀹屽伐鏁伴噺"
-                    width="90"
+                    width="70"
                   />
                   <el-table-column
                     prop="ng_qty"
                     label="涓嶈壇鏁伴噺"
-                    width="90"
+                    width="70"
                   />
                   <el-table-column
                     prop="wcl"
                     label="瀹屾垚鐜�"
-                    width="70"
+                    width="50"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ parseFloat((row.good_qty / row.plan_qty).toFixed(2)) }}%</div>
+                      <div>{{ parseFloat((row.good_qty * 100 / row.plan_qty).toFixed(2)) }}%</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="planenddate"
                     label="棰勮寮�濮�"
-                    width="86"
+                    width="95"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.planenddate.substring(5, 10) }}</div>
+                      <div>{{ row.planenddate.substring(0, 10) }}</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="planstartdate"
                     label="棰勮缁撴潫"
-                    width="86"
+                    width="105"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.planstartdate.substring(5, 10) }}</div>
+                      <div>{{ row.planstartdate.substring(0, 10) }}</div>
                     </template>
                   </el-table-column>
                 </el-table>
@@ -502,7 +491,7 @@
         <div class="kb_right kb_pd10">
           <div class="kb_right_top kb_pd10">
             <div class="kb_right_top_content">
-              <div class="content_head">褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕锛�</div>
+              <div class="content_head kb_title_text">褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕</div>
               <div class="content_body">
                 <el-table
                   ref="tableDataRank"
@@ -520,9 +509,14 @@
                   />
                   <el-table-column
                     prop="wkshname"
-                    label="杞﹂棿"
+                    label="杞﹂棿锛堜緵鏂癸級"
                     width="120"
-                  />
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.wkshname" class="ellipsis">{{ row.wkshname }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="linename"
                     label="浜х嚎"
@@ -543,8 +537,8 @@
             </div>
           </div>
           <div class="kb_right_bottom kb_pd10">
-            <div class="kb_right_bottom_content_title">
-              涓�鍛ㄤ笉鑹疶op5锛�
+            <div class="kb_right_bottom_content_title kb_title_text">
+              涓�鍛ㄤ笉鑹疶op5
             </div>
             <div class="kb_right_bottom_content">
               <div id="bar02" style="width: 100%;height:100%" />
@@ -613,29 +607,7 @@
 
       leftTopData: [],
       tableData: [],
-      tableDataRank: [// 鎺掕
-        // { xh: 'NO.1', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.2', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.3', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.4', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.5', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.6', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.7', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.8', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.9', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.10', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.11', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.12', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.13', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.14', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.15', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.16', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.17', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.18', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.19', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 },
-        // { xh: 'NO.20', cj: '閿傜數杞﹂棿', cx: '閿傜數1绾�', cp: 'F09閿傜數', sl: 1000 }
-        //
-      ]
+      tableDataRank: []
 
     }
   },
@@ -670,8 +642,22 @@
     },
     // 澶勭悊姣忎竴鏉′骇绾�
     async handleEveryLine(item, index) {
-      const { data: res } = await LineSearchTopLeftData([item])
-      console.log(res, 8999)
+      const res = await LineSearchTopLeftData([item])
+      console.log(res, 7)
+      let res1, res2, res3, res4
+      if (res.data[0].linecode === 'CXSB001') {
+        res1 = res
+      }
+      if (res.data[0].linecode === 'CXSB002') {
+        res2 = res
+      }
+      if (res.data[0].linecode === 'CXSB003') {
+        res3 = res
+      }
+      if (res.data[0].linecode === 'CXSB004') {
+        res4 = res
+      }
+
       let flag1 = true
       let flag2 = true
       let flag3 = true
@@ -680,179 +666,176 @@
         let count = 0
         if (flag1) {
           this.lineContent01 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
+            linename: res1.data[0].linename,
+            lineworkcont: res1.data[0].lineworkcont,
+            children: res1.data[0].children ? res.data[0].children[count] : []
+            // children: res1.data[0].children[count]
           }
           flag1 = false
         }
-
         setInterval(() => {
           if (count > 0) {
             this.lineContent01 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
+              linename: res1.data[0].linename,
+              lineworkcont: res1.data[0].lineworkcont,
+              children: res1.data[0].children ? res1.data[0].children[count] : []
             }
           }
-          // count++
-          if (res[0].children.length === count++) {
+          // console.log(res1.data[0].children.length, 9999)
+          // console.log(res1.data[0].children, 8888)
+          if (res1.data[0].children.length > 0 && res1.data[0].children.length === count++) {
             count = 0
             LineSearchTopLeftData([item]).then(res => {
+              res1 = res
               this.lineContent01 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
+                linename: res1.data[0].linename,
+                lineworkcont: res1.data[0].lineworkcont,
+                children: res1.data[0].children ? res1.data[0].children[count] : []
               }
             })
-
             // this.handleEveryLine(item, index)
           }
-        }, 1000 * 6)
+        }, res1.data[0].children && res1.data[0].children.length > 0 ? 1000 * 3 : 1000 * 10)
       } else if (index === 1) {
         let count = 0
         if (flag2) {
           this.lineContent02 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
+            linename: res2.data[0].linename,
+            lineworkcont: res2.data[0].lineworkcont,
+            children: res2.data[0].children ? res2.data[0].children[count] : []
           }
           flag2 = false
         }
-
         setInterval(() => {
           if (count > 0) {
             this.lineContent02 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
+              linename: res2.data[0].linename,
+              lineworkcont: res2.data[0].lineworkcont,
+              children: res2.data[0].children ? res2.data[0].children[count] : []
             }
           }
-
-          // count++
-          console.log(this.lineContent02, 123)
-          if (res[0].children.length === count++) {
+          if (res2.data[0].children.length > 0 && res2.data[0].children.length === count++) {
             count = 0
             LineSearchTopLeftData([item]).then(res => {
+              res2 = res
               this.lineContent02 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
+                linename: res2.data[0].linename,
+                lineworkcont: res2.data[0].lineworkcont,
+                children: res2.data[0].children ? res2.data[0].children[count] : []
               }
             })
 
             // this.handleEveryLine(item, index)
           }
-        }, 1000 * 6)
+        }, res2.data[0].children && res2.data[0].children.length > 0 ? 1000 * 3 : 1000 * 10)
       } else if (index === 2) {
         let count = 0
         if (flag3) {
           this.lineContent03 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
+            linename: res3.data[0].linename,
+            lineworkcont: res3.data[0].lineworkcont,
+            children: res3.data[0].children ? res3.data[0].children[count] : []
           }
           flag3 = false
         }
-
         setInterval(() => {
           if (count > 0) {
             this.lineContent03 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
+              linename: res3.data[0].linename,
+              lineworkcont: res3.data[0].lineworkcont,
+              children: res3.data[0].children ? res3.data[0].children[count] : []
             }
           }
-          // count++
-          if (res[0].children.length === count++) {
+          if (res3.data[0].children.length > 0 && res3.data[0].children.length === count++) {
             count = 0
             LineSearchTopLeftData([item]).then(res => {
+              res3 = res
               this.lineContent03 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
+                linename: res3.data[0].linename,
+                lineworkcont: res3.data[0].lineworkcont,
+                children: res3.data[0].children ? res3.data[0].children[count] : []
               }
             })
             // this.handleEveryLine(item, index)
           }
-        }, 1000 * 6)
+        }, res3.data[0].children && res3.data[0].children.length > 0 ? 1000 * 3 : 1000 * 10)
       } else if (index === 3) {
         let count = 0
         if (flag4) {
           this.lineContent04 = {
-            linename: res[0].linename,
-            lineworkcont: res[0].lineworkcont,
-            children: res[0].children[count]
+            linename: res4.data[0].linename,
+            lineworkcont: res4.data[0].lineworkcont,
+            children: res4.data[0].children ? res4.data[0].children[count] : []
           }
           flag4 = false
         }
-
         setInterval(() => {
           if (count > 0) {
             this.lineContent04 = {
-              linename: res[0].linename,
-              lineworkcont: res[0].lineworkcont,
-              children: res[0].children[count]
+              linename: res4.data[0].linename,
+              lineworkcont: res4.data[0].lineworkcont,
+              children: res4.data[0].children ? res4.data[0].children[count] : []
             }
           }
-          // count++
-          if (res[0].children.length === count++) {
+          if (res4.data[0].children > 0 && res4.data[0].children.length === count++) {
             count = 0
             LineSearchTopLeftData([item]).then(res => {
+              res4 = res
               this.lineContent04 = {
-                linename: res.data[0].linename,
-                lineworkcont: res.data[0].lineworkcont,
-                children: res.data[0].children[count]
+                linename: res4.data[0].linename,
+                lineworkcont: res4.data[0].lineworkcont,
+                children: res4.data[0].children ? res4.data[0].children[count] : []
               }
             })
             // this.handleEveryLine(item, index)
           }
-        }, 1000 * 6)
+        }, res4.data[0].children && res4.data[0].children.length > 0 ? 1000 * 3 : 1000 * 10)
       }
     },
 
-    // 鍦ㄥ埗璁㈠崟table
+    // 浜х嚎鍔犲伐浠诲姟
     getTableDataRoll() {
       LineSearchBottomLeftData().then(res => {
         this.tableData = res.data
+
+        const divData = this.$refs.tableData.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // divData.scrollTop += divData.scrollHeight / this.tableData.length
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            LineSearchBottomLeftData().then(res => {
+              this.tableData = res.data
+            })
+          }
+        }, this.tableData.length <= 10 ? 1000 * 6 : 100)
       })
-      const divData = this.$refs.tableData.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        divData.scrollTop += 1
-        // divData.scrollTop += divData.scrollHeight / this.tableData.length
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          LineSearchBottomLeftData().then(res => {
-            this.tableData = res.data
-          })
-        }
-      }, this.tableData.length <= 10 ? 1000 * 6 : 100)
     },
-    // 浜х嚎浜у搧鏁伴噺鎺掕婊氬姩鏁堟灉
+    // 褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕
     getTableDataRankRoll() {
       LineSearchTopRightData().then(res => {
         this.tableDataRank = res.data
+
+        const divData = this.$refs.tableDataRank.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            LineSearchTopRightData().then(res => {
+              this.tableDataRank = res.data
+            })
+          }
+        }, this.tableDataRank.length <= 10 ? 1000 * 6 : 100)
       })
-      console.log(this.tableDataRank.length, 88)
-      const divData = this.$refs.tableDataRank.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
-        divData.scrollTop += 1
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          LineSearchTopRightData().then(res => {
-            this.tableDataRank = res.data
-          })
-        }
-      }, this.tableDataRank.length <= 10 ? 1000 * 6 : 100)
     },
     // 鑾峰彇echarts
     getEcharts() {
@@ -908,7 +891,8 @@
 
 <style scoped lang="scss">
 //$kbBorderColor: #3A0088;
-$kbBorderColor: #09d8f2;
+//$kbBorderColor: #09d8f2;
+$kbBorderColor: rgba(9, 216, 242, 0.4);
 $kbBackgroundColor: rgba(30, 33, 46, 0.6);
 .kb_content {
   display: flex;
@@ -1162,6 +1146,10 @@
   width: 0;
 }
 
+::v-deep .cell {
+  padding: 0 !important;
+}
+
 //
 ///* 瀹氫箟keyframes鍔ㄧ敾锛屽懡鍚嶄负blink*/
 //@keyframes blink {
diff --git a/src/views/sbgl/sbqd.vue b/src/views/sbgl/sbqd.vue
index 2c50a9c..cd938bd 100644
--- a/src/views/sbgl/sbqd.vue
+++ b/src/views/sbgl/sbqd.vue
@@ -186,7 +186,8 @@
             width="100"
           >
             <template slot-scope="{row}">
-              <div>{{ row.operation_ration }}%</div>
+              <div v-if=" parseFloat(row.operation_ration)===0">/</div>
+              <div v-else>{{ row.operation_ration }}%</div>
             </template>
           </el-table-column>
           <el-table-column
@@ -1093,6 +1094,10 @@
 <!--鍏叡椤甸潰鏍峰紡-->
 <style lang="scss" scoped>
 $main_color: #42b983;
+::v-deep .el-button--text{
+  font-size: 14px ;
+  cursor: pointer ;
+}
 .el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
   color: $main_color;
   cursor: pointer;
diff --git a/src/views/scgl/gd.vue b/src/views/scgl/gd.vue
index 42658ff..e0e01c8 100644
--- a/src/views/scgl/gd.vue
+++ b/src/views/scgl/gd.vue
@@ -124,7 +124,7 @@
               <el-radio
                 v-model="radioSelected"
                 :label="row.wo_code"
-                style="color: #fff;padding-left: 10px; margin-right: -25px;"
+                style="color: transparent;padding-left: 10px; margin-right: -25px;"
                 @change.native="getCurrentRow(row.wo_code)"
               />
             </template>
@@ -173,7 +173,12 @@
             label="浜у搧瑙勬牸"
             sortable="custom"
             width="110"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.partspec">{{ row.partspec }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="plan_qty"
             label="宸ュ崟鏁�"
@@ -185,26 +190,46 @@
             label="鐢熶骇杞﹂棿"
             sortable="custom"
             width="120"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="route_name"
             label="宸ヨ壓璺嚎"
             sortable="custom"
             min-width="130"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.route_name">{{ row.route_name }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
 
           <el-table-column
             prop="plan_startdate"
             label="璁″垝寮�濮嬫椂闂�"
             sortable="custom"
             width="160"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.plan_startdate">{{ row.plan_startdate }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="plan_enddate"
             label="璁″垝缁撴潫鏃堕棿"
             sortable="custom"
             width="160"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.plan_enddate">{{ row.plan_enddate }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="piroque"
             label="宸ュ崟绛夌骇"
@@ -215,6 +240,7 @@
               <div v-if="row.piroque==='1'">鐗圭骇</div>
               <div v-if="row.piroque==='2'">绱ф��</div>
               <div v-if="row.piroque==='3'">姝e父</div>
+              <div v-else>/</div>
             </template>
           </el-table-column>
           <el-table-column
@@ -551,8 +577,15 @@
         <el-table-column
           prop="ng_qty"
           label="涓嶈壇鏁伴噺"
-          fixed="right"
         />
+        <el-table-column
+          label="鎿嶄綔"
+          fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" style="padding: 0;" @click="supplementSmallClick(row)">琛ユ墦</el-button>
+          </template>
+        </el-table-column>
       </el-table>
 
       <span slot="footer" class="dialog-footer">
@@ -702,6 +735,70 @@
         </div>
       </span>
     </el-dialog>
+
+    <!--鎵撳嵃棰勮椤甸潰  灏忔爣绛�-->
+    <el-dialog
+      title="棰勮"
+      :visible.sync="dialogVisible2"
+      width="1140"
+      :close-on-click-modal="false"
+      @close="dialogVisible2Close"
+    >
+      <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+      <div id="printMe2" style="padding: 30px;">
+        <div
+          style="display: flex;width: 250px;height: 150px;border: 1px solid #000;text-align: center;font-size: 10px;"
+        >
+
+          <div style="width: 60px;display: flex;flex-direction: column;border-right: 1px solid #000">
+            <div
+              style="display: flex;height: 75%;border-bottom:1px solid #000;
+              justify-content: center;align-items: center;position: relative"
+            >
+              <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height: 50px;position: absolute;left: 4px" />
+            </div>
+            <div style="display: flex;height: 25%;justify-content: flex-start;align-items: center">
+              <div style="margin-left: 5px;width: 40px">鏁伴噺:</div>
+              {{ qrForm.startqty }}
+            </div>
+          </div>
+
+          <div style="width:190px;display: flex;flex-direction: column">
+            <div
+              style="display: flex;height: 25%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+            >
+              <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+              <div>{{ qrForm.wo_code }}</div>
+            </div>
+            <div
+              style="display: flex;height: 25%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+            >
+              <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+              <div>{{ qrForm.partcode }}</div>
+            </div>
+            <div
+              style="display: flex;height: 25%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+            >
+              <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+              <div>{{ qrForm.partname }}</div>
+            </div>
+            <div style="display: flex;height: 25%;justify-content: flex-start;align-items: center;text-align: left">
+              <div style="width: 60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+              <div>{{ qrForm.nextstepname }}</div>
+            </div>
+
+          </div>
+
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button @click="dialogVisible2 = false">鍙� 娑�</el-button>
+          <el-button v-print="printObj2" type="primary">纭� 瀹�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -864,7 +961,37 @@
         routename: '',
         lm_date: ''
       },
-      number: ''
+      number: '',
+      dialogVisible2: false,
+      printObj2: {
+        id: 'printMe2',
+        popTitle: '鎵撳嵃妯℃澘',
+        preview: false,
+        extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+        closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+          console.log('11212', vue)
+          // vue.dialogVisible = false
+          vue.dialogVisible2 = false
+          // vue.dialogVisible = false
+        },
+        beforeOpenCallback(vue) {
+          vue.printLoading = true
+          console.log('鎵撳紑涔嬪墠')
+          console.log()
+        },
+        openCallback(vue) {
+          vue.printLoading = false
+          console.log('鎵ц浜嗘墦鍗�')
+        }
+      },
+      qrForm: {
+        qrvalue: '',
+        startqty: '',
+        wo_code: '',
+        partcode: '',
+        partname: '',
+        nextstepname: ''
+      }
     }
   },
   created() {
@@ -1324,6 +1451,52 @@
     supplementClick() {
       this.dialogVisibleTask = false
       this.handlePrint()
+    },
+    // 琛ユ墦灏忔爣绛�
+    supplementSmallClick(row) {
+      // let obj = {}
+
+      this.taskTableData.forEach((item, index) => {
+        if (item.seq === row.seq) {
+          console.log(item)
+          this.qrForm = {
+            qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode,
+            startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty,
+            wo_code: item.wo_code,
+            partcode: item.partcode,
+            partname: item.partname,
+            nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname
+          }
+          this.$nextTick(() => {
+            console.log(this.qrForm.qrvalue, 3333)
+            this.bindQRCode2(this.qrForm.qrvalue)
+          })
+        }
+      })
+
+      // this.dialogVisibleTask = false
+      this.dialogVisible2 = true
+      console.log(this.qrForm, 1111)
+    },
+    dialogVisible2Close() {
+      this.qrForm.qrvalue = ''
+      this.qrForm.startqty = ''
+      this.qrForm.wo_code = ''
+      this.qrForm.partcode = ''
+      this.qrForm.partname = ''
+      this.qrForm.nextstepname = ''
+      // this.$refs.qrCodeDiv2 = ''
+    },
+    // 鐢熸垚浜岀淮鐮�
+    bindQRCode2(text) {
+      new QRCode(this.$refs.qrCodeDiv2, {
+        text: text,
+        width: 50,
+        height: 50,
+        colorDark: '#000', // 浜岀淮鐮侀鑹�
+        colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+        correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+      })
     }
 
   }
diff --git a/src/views/scgl/scdd.vue b/src/views/scgl/scdd.vue
index 2a298e2..5cbf831 100644
--- a/src/views/scgl/scdd.vue
+++ b/src/views/scgl/scdd.vue
@@ -2,7 +2,7 @@
   <div>
     <div class="body" :style="{height:mainHeight+'px'}">
 
-      <div class="bodyTopButtonGroup">
+      <div class="bodyTopButtonGroup" style="justify-content: space-between">
         <el-button
           icon="el-icon-refresh-right"
           @click="syncERP"
@@ -154,10 +154,10 @@
           >
             <template slot-scope="{row}">
               <el-radio
-                v-model="radioSelected"
-                :label="row.wo"
-                style="color: #fff;padding-left: 10px; margin-right: -25px;"
-                @change.native="getCurrentRow(row.wo)"
+                v-model="radioSelectedId"
+                :label="row.id"
+                style="color: transparent;padding-left: 15px; margin-right: -25px;"
+                @change.native="getCurrentRow(row.id)"
               />
             </template>
           </el-table-column>
@@ -203,7 +203,12 @@
             label="浜у搧瑙勬牸"
             sortable="custom"
             min-width="110"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.partspec">{{ row.partspec }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="qty"
             label="璁㈠崟鏁伴噺"
@@ -221,7 +226,12 @@
             label="鐢熶骇杞﹂棿"
             sortable="custom"
             width="150"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="planstartdate"
             label="棰勮寮�宸ユ椂闂�"
@@ -239,7 +249,12 @@
             label="鍒涘缓浜哄憳"
             sortable="custom"
             width="150"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.createuser">{{ row.createuser }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="createdate"
             label="鍒涘缓鏃堕棿"
@@ -418,9 +433,11 @@
       ],
       total: 10,
       radioSelected: '',
+      radioSelectedId: '',
       tableData: [],
       dialogVisible: false,
       dialogForm: {
+        erporderid: '',
         partname: '', // 浜у搧鍚嶇О
         partspec: '', // 浜у搧瑙勬牸
         // paystartdate: '', // 棰勮寮�宸ユ椂闂�
@@ -563,16 +580,18 @@
       this.getErpOrderSearch()
     },
     // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
-    getCurrentRow(wo) {
-      this.radioSelected = wo
+    getCurrentRow(id) {
+      // console.log(row, 2)
+      // this.radioSelected = row.wo
+      this.radioSelectedId = id
     },
     // 璁㈠崟鍏抽棴
     async orderClose() {
-      if (this.radioSelected.length < 1) {
+      if (this.radioSelectedId.length < 1) {
         return this.$message.info('璇峰厛閫夋嫨璁㈠崟锛�')
       }
       this.tableData.forEach(item => {
-        if (item.wo === this.radioSelected) {
+        if (item.id === this.radioSelectedId) {
           if (item.status !== 'NEW') {
             return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
           } else {
@@ -581,7 +600,7 @@
               cancelButtonText: '鍙栨秷',
               type: 'warning'
             }).then(() => {
-              ClosedErpOrder({ erpordercode: this.radioSelected }).then(res => {
+              ClosedErpOrder({ erpordercode: item.wo, erporderid: this.radioSelectedId }).then(res => {
                 if (res.code === '200') {
                   this.$message.success('璁㈠崟鍏抽棴鎴愬姛!')
                   this.getErpOrderSearch()
@@ -606,6 +625,7 @@
       this.dialogVisible = true
 
       this.$nextTick(() => {
+        this.dialogForm.erporderid = row.id
         this.dialogForm.erporderstus = row.status
         this.dialogForm.erpordercode = row.wo
         this.dialogForm.partcode = row.partcode
@@ -656,6 +676,7 @@
       this.$refs.dialogForm.validate(valid => {
         if (valid) {
           const data = {
+            'erporderid': this.dialogForm.erporderid,
             // 'erporderstus': this.dialogForm.erporderstus,
             'erpordercode': this.dialogForm.erpordercode,
             'partcode': this.dialogForm.partcode,
diff --git a/src/views/scgl/sckbg.vue b/src/views/scgl/sckbg.vue
index 741e73f..b5cc98d 100644
--- a/src/views/scgl/sckbg.vue
+++ b/src/views/scgl/sckbg.vue
@@ -85,7 +85,7 @@
               />
               <el-table-column
                 prop="partname"
-                min-width="110"
+                min-width="160"
                 label="浜у搧鍚嶇О"
                 sortable="custom"
               />
@@ -95,12 +95,17 @@
                 min-width="80"
                 sortable="custom"
               />
-              <el-table-column
-                prop="descr"
-                label="宸ュ簭鎻忚堪"
-                min-width="150"
-                sortable="custom"
-              />
+              <!--              <el-table-column-->
+              <!--                prop="descr"-->
+              <!--                label="宸ュ簭鎻忚堪"-->
+              <!--                min-width="150"-->
+              <!--                sortable="custom"-->
+              <!--              >-->
+              <!--                <template slot-scope="{row}">-->
+              <!--                  <div v-if="row.descr">{{ row.descr }}</div>-->
+              <!--                  <div v-else>/</div>-->
+              <!--                </template>-->
+              <!--              </el-table-column>-->
               <el-table-column
                 prop="plan_qty"
                 label="浠诲姟鏁伴噺"
@@ -108,8 +113,17 @@
                 sortable="custom"
               />
               <el-table-column
+                label="鏈姤宸ユ暟閲�"
+                width="120"
+              >
+                <!--                sortable="custom"-->
+                <template slot-scope="{row}">
+                  <div>{{ row.plan_qty - row.good_qty - row.ng_qty }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column
                 prop="good_qty"
-                label="宸叉姤宸ユ暟閲�(鑹搧)"
+                label="宸叉姤宸ユ暟閲�"
                 sortable="custom"
                 width="160"
               />
@@ -117,7 +131,12 @@
                 prop="ng_qty"
                 label="涓嶈壇鏁伴噺"
                 width="150"
-
+                sortable="custom"
+              />
+              <el-table-column
+                prop="bad_qty"
+                label="宸叉姤搴熸暟閲�"
+                width="120"
                 sortable="custom"
               />
               <el-table-column
@@ -125,8 +144,19 @@
                 label="璁″垝寮�宸ユ棩鏈�"
                 width="185"
                 sortable="custom"
-                fixed="right"
               />
+              <el-table-column
+                prop="plan_enddate"
+                label="璁″垝瀹屽伐鏃ユ湡"
+                width="185"
+                sortable="custom"
+                fixed="right"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.plan_startdate">{{ row.plan_startdate }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
               <!--              <el-table-column-->
               <!--                label="鎿嶄綔"-->
               <!--                width="150"-->
@@ -248,7 +278,7 @@
               <el-table-column
                 prop="partname"
                 label="浜у搧鍚嶇О"
-                min-width="110"
+                min-width="160"
                 sortable="custom"
               />
               <el-table-column
@@ -257,12 +287,17 @@
                 min-width="80"
                 sortable="custom"
               />
-              <el-table-column
-                prop="descr"
-                label="宸ュ簭鎻忚堪"
-                min-width="150"
-                sortable="custom"
-              />
+              <!--              <el-table-column-->
+              <!--                prop="descr"-->
+              <!--                label="宸ュ簭鎻忚堪"-->
+              <!--                min-width="150"-->
+              <!--                sortable="custom"-->
+              <!--              >-->
+              <!--                <template slot-scope="{row}">-->
+              <!--                  <div v-if="row.descr">{{ row.descr }}</div>-->
+              <!--                  <div v-else>/</div>-->
+              <!--                </template>-->
+              <!--              </el-table-column>-->
               <el-table-column
                 prop="plan_qty"
                 label="浠诲姟鏁伴噺"
@@ -270,8 +305,17 @@
                 sortable="custom"
               />
               <el-table-column
+                label="鏈姤宸ユ暟閲�"
+                width="120"
+              >
+                <!--                sortable="custom"-->
+                <template slot-scope="{row}">
+                  <div>{{ row.plan_qty - row.good_qty - row.ng_qty }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column
                 prop="good_qty"
-                label="宸叉敹鏂欐暟閲�(鑹搧)"
+                label="宸叉敹鏂欐暟閲�"
                 sortable="custom"
                 width="160"
               />
@@ -282,12 +326,29 @@
                 sortable="custom"
               />
               <el-table-column
+                prop="bad_qty"
+                label="宸叉姤搴熸暟閲�"
+                min-width="120"
+                sortable="custom"
+              />
+              <el-table-column
                 prop="plan_startdate"
                 label="璁″垝寮�宸ユ棩鏈�"
                 width="185"
                 sortable="custom"
-                fixed="right"
               />
+              <el-table-column
+                prop="plan_enddate"
+                label="璁″垝瀹屽伐鏃ユ湡"
+                width="185"
+                sortable="custom"
+                fixed="right"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.plan_startdate">{{ row.plan_startdate }}</div>
+                  <div v-else>/</div>
+                </template>
+              </el-table-column>
               <!--              <el-table-column-->
               <!--                label="鎿嶄綔"-->
               <!--                width="150"-->
@@ -311,6 +372,113 @@
             layout="total,prev, pager, next,sizes"
             popper-class="select_bottom"
             @pagination="getMesOrderStepSearch"
+          />
+        </el-tab-pane>
+        <el-tab-pane label="涓嶈壇寰呭鐞嗗垪琛�">
+          <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
+            <div style="display: flex;align-items: center">
+              <div style="width: 90px">鎵弿鏉$爜锛�</div>
+              <!--              oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')"-->
+
+              <el-input
+                v-model="badForm.orderstepqrcode"
+                name="badProduceCode"
+                style="width: 300px"
+                @keyup.enter.native="val=>enterNative(val,'badProduceCode')"
+              />
+            </div>
+          </div>
+          <el-divider />
+          <div class="elTableDiv">
+            <el-table
+              :data="badTableData"
+              :height="isIpad? (tableHeight+50):tableHeight"
+              border
+              :row-class-name="tableRowClassName"
+              :style="{width: 100+'%',height:tableHeight+'px',}"
+              highlight-current-row
+              :header-cell-style="this.$headerCellStyle"
+              :cell-style="this.$cellStyle"
+              @sort-change="badSortChange"
+            >
+              <el-table-column
+                prop="RowNum"
+                width="50"
+                label="搴忓彿"
+                fixed
+              />
+
+              <el-table-column
+                prop="wo_code"
+                label="宸ュ崟鍙�"
+                min-width="160"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partcode"
+                label="浜у搧缂栫爜"
+                min-width="110"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partname"
+                min-width="160"
+                label="浜у搧鍚嶇О"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="stepname"
+                label="宸ュ簭"
+                min-width="80"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="plan_qty"
+                label="浠诲姟鏁伴噺"
+                min-width="110"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="good_qty"
+                label="宸叉姤宸ユ暟閲�"
+                sortable="custom"
+                min-width="160"
+              />
+              <el-table-column
+                prop="ng_qty"
+                label="涓嶈壇鏁伴噺"
+                min-width="150"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="bad_qty"
+                label="宸叉姤搴熸暟閲�"
+                min-width="120"
+                sortable="custom"
+              />
+              <el-table-column
+                label="鎿嶄綔"
+                width="120"
+                fixed="right"
+              >
+                <template slot-scope="{row}">
+                  <div class="operationClass">
+                    <el-button type="text" @click="repairHandle(row)">缁翠慨澶勭悊</el-button>
+                  </div>
+                </template>
+              </el-table-column>
+
+            </el-table>
+          </div>
+          <!--鍒嗛〉-->
+          <pagination
+            :total="badTotal"
+            :page.sync="badForm.page"
+            :limit.sync="badForm.rows"
+            align="right"
+            layout="total,prev, pager, next,sizes"
+            popper-class="select_bottom"
+            @pagination="getBadList"
           />
         </el-tab-pane>
       </el-tabs>
@@ -349,7 +517,7 @@
         <el-form-item label="褰撳墠宸ュ簭锛�">
           <div style="width: 200px">{{ dialogForm.stepname }}</div>
         </el-form-item>
-        <el-form-item label="宸ュ簭鎻忚堪锛�">
+        <el-form-item v-if="false" label="宸ュ簭鎻忚堪锛�">
           <!--          <el-tooltip   class="item" effect="dark" content="鍘熸潗鏂欏垏鎸夋潗鏂欏垏鎸夋潗鏂欏垏鎸夋椂鎵撳崱鏁版嵁鐨勫崱" placement="top-start">-->
           <div style="width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">
             {{ dialogForm.stepdesc }}
@@ -662,6 +830,7 @@
       title="棰勮"
       :visible.sync="dialogVisible2"
       width="1140"
+      top="10vh"
       :close-on-click-modal="false"
       @close="dialogVisible2Close"
     >
@@ -719,6 +888,155 @@
       </span>
     </el-dialog>
 
+    <!--    涓嶈壇澶勭悊鍒楄〃瀵硅瘽妗�-->
+    <el-dialog
+      title="缁翠慨澶勭悊"
+      :visible.sync="badDialogVisible"
+      width="990px"
+      class="badDialogVisible"
+      top="10vh"
+      :close-on-click-modal="false"
+      @close="handleCloseBad"
+      @closed="handleCloseBad"
+    >
+      <el-form
+        inline
+        :model="badDialogForm"
+        label-width="110px"
+      >
+        <el-form-item label="宸ュ崟缂栧彿锛�">
+          <div style="width: 200px">{{ badDialogForm.wo_code }}</div>
+        </el-form-item>
+        <el-form-item label="浜у搧缂栫爜锛�">
+          <div style="width: 200px">{{ badDialogForm.partcode }}</div>
+        </el-form-item>
+        <el-form-item label="浜у搧鍚嶇О锛�">
+          <div style="width: 200px">{{ badDialogForm.partname }}</div>
+        </el-form-item>
+        <el-form-item label="浜у搧瑙勬牸锛�">
+          <div style="width: 200px">{{ badDialogForm.partspec }}</div>
+        </el-form-item>
+        <el-form-item label="褰撳墠宸ュ簭锛�">
+          <div style="width: 200px">{{ badDialogForm.stepname }}</div>
+        </el-form-item>
+        <el-form-item label="涓嬮亾宸ュ簭锛�">
+          <div style="width: 200px">{{ badDialogForm.nextstepname }}</div>
+        </el-form-item>
+        <el-form-item label="浠诲姟鏁伴噺锛�">
+          <div style="width: 200px">{{ badDialogForm.plan_qty }}</div>
+        </el-form-item>
+        <el-form-item label="鎶ュ伐鏁伴噺锛�">
+          <div style="width: 200px">{{ badDialogForm.good_qty }}</div>
+        </el-form-item>
+        <el-form-item label="涓嶈壇鏁伴噺锛�">
+          <div style="width: 200px">{{ badDialogForm.ng_qty }}</div>
+        </el-form-item>
+
+      </el-form>
+      <div style="margin-bottom:20px">
+        <i class="el-icon-s-operation" style="color:#42b983;" /> 涓嶈壇淇℃伅鏄庣粏锛�
+      </div>
+      <div class="elTableDiv">
+        <el-table
+          :data="badTableDataDialog"
+          :height="isIpad? (tableHeight-350):(tableHeight-400)"
+          border
+          :row-class-name="tableRowClassName"
+          :style="{width: 100+'%',height:(tableHeight-400)+'px',}"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+        >
+          <el-table-column
+            type="index"
+            width="50"
+            label="搴忓彿"
+            fixed
+          />
+          <el-table-column
+            prop="step_code"
+            label="宸ュ簭缂栫爜"
+            min-width="80"
+          />
+          <el-table-column
+            prop="stepname"
+            label="宸ュ簭鍚嶇О"
+            min-width="80"
+          />
+
+          <el-table-column
+            prop="plan_qty"
+            label="浠诲姟鏁伴噺"
+            width="80"
+          />
+          <el-table-column
+            label="鎶ュ伐鏁伴噺"
+            width="80"
+            prop="report_qty"
+          />
+          <el-table-column
+            prop="ng_qty"
+            label="涓嶈壇鏁伴噺"
+            width="80"
+          />
+          <el-table-column
+            prop="badqty"
+            label="宸叉姤搴熸暟閲�"
+            width="100"
+          />
+          <el-table-column
+            prop="defect_name"
+            label="涓嶈壇鍘熷洜"
+            show-tooltip-when-overflow
+            width="80"
+          />
+          <el-table-column
+            prop="repair_qty"
+            label="缁翠慨鏁伴噺"
+            width="90"
+          >
+            <template slot-scope="{row}">
+              <!--              {{ row.repair_qty }}-->
+              <div v-if="row.isVisible===0">{{ row.repair_qty }}</div>
+              <el-input v-if="row.isVisible===1" v-model="row.repair_qty" oninput="value=value.replace(/[^0-9]/g,'')" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="bad_qty"
+            label="鎶ュ簾鏁伴噺"
+            width="90"
+          >
+            <!--            oninput="value=value.replace(/[0-9]/g,'')"-->
+            <template slot-scope="{row}">
+              <div v-if="row.isVisible===0">{{ row.bad_qty }}</div>
+              <el-input v-if="row.isVisible===1" v-model="row.bad_qty" oninput="value=value.replace(/[^0-9]/g,'')" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鎿嶄綔"
+            width="100"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-button v-if="row.isVisible===0" type="text" @click="badEdit(row)">缂栬緫</el-button>
+                <el-button v-if="row.isVisible===0" type="text" @click="badDel(row)">鍒犻櫎</el-button>
+
+                <el-button v-if="row.isVisible===1" type="text" @click="badSave(row)">纭</el-button>
+                <el-button v-if="row.isVisible===1" type="text" @click="badCancel(row)">鍙栨秷</el-button>
+              </div>
+            </template>
+          </el-table-column>
+
+        </el-table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button @click="badDialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button type="primary" @click="badDialogVisibleConfirm ">淇� 瀛�/鎵� 鍗�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -738,7 +1056,7 @@
   MesOrderStepSelectCause,
   SavaMesOrderStepIn,
   SavaMesOrderStepStart,
-  SavaMesOrderStepReport
+  SavaMesOrderStepReport, MesOrderNgStepSearch, MesOrderNgSubStepSearch, EditOrderNgStepSeave
 } from '@/api/scgl'
 import { urlAddRandomNo, webapp_ws_ajax_run, webapp_ws_autoupdate } from '@/utils/grwebapp'
 import QRCode from 'qrcodejs2'
@@ -902,14 +1220,28 @@
           console.log('鎵ц浜嗘墦鍗�')
         }
       },
-      qrForm: {
+      qrForm: { // 鎵撳嵃鍐呭
         qrvalue: '',
         startqty: '',
         wo_code: '',
         partcode: '',
         partname: '',
-        nextstepname: ''
-      }
+        nextstepname: '',
+        operator: '', // 鎿嶄綔浜�
+        operatorTime: ''// 鎿嶄綔鏃堕棿
+      },
+      badForm: {
+        orderstepqrcode: '', // 鎵弿鐨勪簩缁寸爜
+        prop: 'wo_code',
+        order: 'asc',
+        page: 1,
+        rows: 20
+      },
+      badTableData: [], // 涓嶈壇澶勭悊鍒楄〃table鏁版嵁
+      badTotal: 0,
+      badDialogVisible: false,
+      badDialogForm: {},
+      badTableDataDialog: []// 涓嶈壇瀵硅瘽妗唗able琛ㄦ牸
     }
   },
   // computed: {
@@ -984,6 +1316,18 @@
       this.WXform.prop = prop
       this.getMesOrderWxStepSearch()
     },
+    badSortChange({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.badForm.order = order
+      this.badForm.prop = prop
+      this.getBadList()
+    },
     // 鑷埗椤电鍘熺偣鐐瑰嚮
     getCurrentRow(val) {
 
@@ -1007,6 +1351,13 @@
           this.getMesOrderWxStepSearch()
           $("input[name='WXproduceCode']")[0].focus()
           this.form.orderstepqrcode = ''
+        })
+      }
+      if (this.$refs.elTabs.currentName === '2') {
+        this.$nextTick(() => {
+          this.getBadList()
+          $("input[name='badProduceCode']")[0].focus()
+          this.badForm.orderstepqrcode = ''
         })
       }
     },
@@ -1047,6 +1398,13 @@
         if (res.code === '200' && res.count === 3) {
           await this.WXback(res.data)
         }
+      }
+
+      if (belong === 'badProduceCode') {
+        // this.badForm.orderstepqrcode=
+        await this.getBadList()
+        await this.repairHandle(this.badForm.orderstepqrcode)
+        this.badDialogVisible = true
       }
     },
     // 鏌ヨ
@@ -1322,6 +1680,10 @@
 
       this.dialogForm.startqtySum = '' // 涓嶈兘瓒呰繃鐨勬暟鍊�
 
+      this.dialogForm.nextstepcode = '' // 涓嬮亾宸ュ簭缂栫爜
+
+      this.userTableData = [] // 浜哄憳鍒楄〃
+
       this.$refs.dialogForm.clearValidate()
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -1383,9 +1745,12 @@
             }
             SavaMesOrderStepIn(data).then(res => {
               if (res.code === '200') {
-                this.WXprint2()
                 this.$message.success('鏀舵枡鎴愬姛锛�')
                 this.dialogVisible = false
+
+                if (this.dialogForm.nextstepcode !== '') {
+                  this.WXprint2()
+                }
                 this.dialogVisible2 = true
                 this.tabClick()
               } else {
@@ -1428,7 +1793,13 @@
                 return this.$message.info('璇烽�夋嫨涓嶈壇鍘熷洜锛�')
               }
             }
-
+            // this.userTableData = [...new Set(this.userTableData)]// 鏁扮粍鍘婚噸
+            this.userTableData = this.userTableData.filter(item => item.usercode !== '')
+            // 鏁扮粍涓璞$浉鍚岀殑鍘婚噸
+            this.userTableData = this.userTableData.filter((currentValue, currentIndex, selfArr) => {
+              return selfArr.findIndex(item => item.usercode === currentValue.usercode) === currentIndex
+            })
+            // console.log(this.userTableData, 1)
             const reportuser = this.userTableData.map(item => item.usercode).join(';')
             const data = {
               mesordercode: this.dialogForm.wo_code, // 宸ュ崟缂栧彿
@@ -1449,9 +1820,13 @@
 
             SavaMesOrderStepReport(data).then(res => {
               if (res.code === '200') {
-                this.ZZprint2()
                 this.$message.success('鎶ュ伐鎴愬姛锛�')
                 this.dialogVisible = false
+
+                console.log(this.dialogForm.nextstepcode, 1)
+                if (this.dialogForm.nextstepcode !== '') {
+                  this.ZZprint2()
+                }
                 this.dialogVisible2 = true
                 this.tabClick()
               } else {
@@ -1519,6 +1894,181 @@
           this.tableHeight = this.tableHeight - 50
         }
       })
+    },
+
+    // 鑾峰彇涓嶈壇澶勭悊鍒楄〃
+    async getBadList() {
+      const res = await MesOrderNgStepSearch(this.badForm)
+      this.badTableData = res.data
+      this.badTotal = res.count
+    },
+    badDialogVisibleCancel() {
+      this.badDialogVisible = false
+    },
+    badDialogVisibleConfirm() {
+      const data = {
+        Data: this.badTableDataDialog
+      }
+      // console.log(JSON.stringify(data), 1)
+      // this.badPrint()
+      // this.dialogVisible2 = true
+
+      EditOrderNgStepSeave(data).then(res => {
+        if (res.code === '200' || res.code === '301') {
+          this.getBadList()
+          this.badDialogVisible = false
+          return this.$message.success('淇濆瓨鎴愬姛锛�')
+        }
+      })
+    },
+    badPrint() {
+      this.qrForm.qrvalue = this.badDialogForm.wo_code + ';' + this.badDialogForm.nextstepcode
+      this.qrForm.startqty = this.badDialogForm.plan_qty
+      this.qrForm.wo_code = this.badDialogForm.wo_code
+      this.qrForm.partcode = this.badDialogForm.partcode
+      this.qrForm.partname = this.badDialogForm.partname
+      this.qrForm.nextstepname = this.badDialogForm.nextstepname
+      this.$nextTick(() => {
+        this.bindQRCode(this.qrForm.qrvalue)
+      })
+    },
+
+    handleCloseBad() {
+      this.badDialogForm = {}
+      this.badTableDataDialog = []
+    },
+    // 鐐瑰嚮缁翠慨澶勭悊鎸夐挳
+    async repairHandle(row) {
+      console.log(row)
+      let data
+      if (row.wo_code) {
+        data = {
+          orderstepqrcode: row.wo_code + ';' + row.stepcode
+        }
+      } else {
+        data = {
+          orderstepqrcode: row
+        }
+      }
+
+      const { data: res } = await MesOrderNgSubStepSearch(data)
+
+      this.$nextTick(() => {
+        this.badDialogForm.wo_code = res.data1.wo_code
+        this.badDialogForm.partcode = res.data1.partnumber
+        this.badDialogForm.partname = res.data1.partname
+        this.badDialogForm.partspec = res.data1.partspec
+        this.badDialogForm.stepname = res.data1.stepname
+        this.badDialogForm.nextstepcode = res.data1.nextstepcode
+        this.badDialogForm.nextstepname = res.data1.nextstepname
+        this.badDialogForm.plan_qty = res.data1.planqty
+        this.badDialogForm.good_qty = res.data1.noreportqty // 鎶ュ伐鏁伴噺
+        this.badDialogForm.ng_qty = res.data1.noputqty // 涓嶈壇鏁伴噺
+
+        this.badTableDataDialog = res.data2
+
+        this.badTableDataDialog.forEach(item => {
+          item.repair_qty = 0
+          item.bad_qty = 0
+          item.isVisible = 0
+        })
+        console.log(this.badTableDataDialog, 321)
+        this.badDialogVisible = true
+      })
+    },
+    badEdit(row) {
+      console.log(row)
+      this.badTableDataDialog.forEach((item, index) => {
+        if (item.id === row.id && item.m_id === row.m_id) {
+          this.badTableDataDialog.splice(index, 1, {
+            bad_qty: row.bad_qty,
+            repair_qty: row.repair_qty,
+            isVisible: 1,
+            defect_code: row.defect_code,
+            defect_name: row.defect_name,
+            badqty: row.badqty,
+            id: row.id,
+            m_id: row.m_id,
+            materiel_code: row.materiel_code,
+            ng_qty: row.ng_qty,
+            plan_qty: row.plan_qty,
+            report_qty: row.report_qty,
+            seq: row.seq,
+            step_code: row.step_code,
+            stepname: row.stepname,
+            style: row.style,
+            wo_code: row.wo_code
+          })
+        }
+      })
+    },
+    badSave(row) {
+      console.log(row, 1)
+      // console.log(parseFloat(row.bad_qty) + parseFloat(row.repair_qty), 2)
+      // console.log(parseFloat(row.ng_qty), 2)
+      // console.log(parseFloat(row.bad_qty) + parseFloat(row.repair_qty) > parseFloat(row.ng_qty), 2)
+      if (parseFloat(row.bad_qty) + parseFloat(row.repair_qty) > parseFloat(row.ng_qty)) {
+        this.badCancel(row)
+        return this.$message.info('缁翠慨鏁伴噺涓庢姤搴熸暟閲忎箣鍜屼笉鑳藉ぇ浜庝笉鑹暟閲忥紒')
+      }
+      this.badTableDataDialog.forEach((item, index) => {
+        if (item.id === row.id && item.m_id === row.m_id) {
+          this.badTableDataDialog.splice(index, 1, {
+            bad_qty: row.bad_qty,
+            repair_qty: row.repair_qty,
+            isVisible: 0,
+            defect_code: row.defect_code,
+            defect_name: row.defect_name,
+            id: row.id,
+            m_id: row.m_id,
+            badqty: row.badqty,
+            materiel_code: row.materiel_code,
+            ng_qty: row.ng_qty,
+            plan_qty: row.plan_qty,
+            report_qty: row.report_qty,
+            seq: row.seq,
+            step_code: row.step_code,
+            stepname: row.stepname,
+            style: row.style,
+            wo_code: row.wo_code
+          })
+        }
+      })
+    },
+    badCancel(row) {
+      this.badTableDataDialog.forEach((item, index) => {
+        if (item.id === row.id && item.m_id === row.m_id) {
+          this.badTableDataDialog.splice(index, 1, {
+            // bad_qty: row.bad_qty,
+            // repair_qty: row.repair_qty,
+            bad_qty: 0,
+            repair_qty: 0,
+            isVisible: 0,
+            defect_code: row.defect_code,
+            defect_name: row.defect_name,
+            id: row.id,
+            m_id: row.m_id,
+            badqty: row.badqty,
+            materiel_code: row.materiel_code,
+            ng_qty: row.ng_qty,
+            plan_qty: row.plan_qty,
+            report_qty: row.report_qty,
+            seq: row.seq,
+            step_code: row.step_code,
+            stepname: row.stepname,
+            style: row.style,
+            wo_code: row.wo_code
+          })
+        }
+      })
+    },
+
+    badDel(row) {
+      this.badTableDataDialog.forEach((item, index) => {
+        if (item.id === row.id && item.m_id === row.m_id) {
+          this.badTableDataDialog.splice(index, 1)
+        }
+      })
     }
   }
 }
@@ -1526,10 +2076,11 @@
 
 <style lang="scss" scoped>
 $main_color: #42b983;
-.el-button--text{
+.el-button--text {
   font-size: 14px;
   cursor: pointer;
 }
+
 .operationClass {
   height: 23px;
   display: flex;
@@ -1575,13 +2126,20 @@
 <!--鍏叡椤甸潰鏍峰紡-->
 <style lang="scss" scoped>
 $main_color: #42b983;
-.el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
+::v-deep .el-button--text {
+  font-size: 14px;
+  cursor: pointer;
+}
+
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
   color: $main_color;
   cursor: pointer;
 }
-.el-icon-edit-outline{
+
+.el-icon-edit-outline {
   margin-right: 15px;
 }
+
 ::v-deep .el-button--primary, .el-button--default, .el-button--info {
   height: 34px;
   display: flex;
@@ -1616,6 +2174,10 @@
   padding: 20px 20px !important;
 }
 
+::v-deep .badDialogVisible .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
 ::v-deep .el-dialog__footer {
   display: flex;
   justify-content: flex-end;
@@ -1639,8 +2201,8 @@
   background-color: #f8f8fa;
 }
 
-::v-deep .el-table__body .el-table__row.hover-row td{
-  background-color: #eaecef ;
+::v-deep .el-table__body .el-table__row.hover-row td {
+  background-color: #eaecef;
 }
 
 ::v-deep .el-form--inline .el-form-item__label {
diff --git a/src/views/template.vue b/src/views/template.vue
index 8338413..b15a11b 100644
--- a/src/views/template.vue
+++ b/src/views/template.vue
@@ -1,7 +1,12 @@
 <template>
   <div>
     <div class="body" :style="{height:mainHeight+'px'}">
-      <div style="padding: 10px 5px 0 0">
+      <div class="bodyTopButtonGroup">
+        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+        <el-button icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>
+      </div>
+
+      <div class="bodyTopFormGroup">
         <el-form
           ref="form"
           :model="form"
@@ -36,18 +41,13 @@
           </div>
         </el-form>
       </div>
-      <el-divider />
-      <div style="margin-left: 10px;display: flex">
-        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
-        <el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>
-      </div>
-      <el-divider />
+
       <div class="elTableDiv">
         <el-table
           :data="tableData"
           :height="tableHeight+'px'"
           border
-          stripe
+          :row-class-name="tableRowClassName"
           :style="{width: 100+'%',height:tableHeight+'px',}"
           highlight-current-row
           :header-cell-style="this.$headerCellStyle"
@@ -116,7 +116,6 @@
       </div>
       <!--鍒嗛〉-->
       <pagination
-        v-show="total>0"
         :total="total"
         :page.sync="form.page"
         :limit.sync="form.rows"
@@ -361,34 +360,61 @@
         this.mainHeight = window.innerHeight - 250
         this.tableHeight = this.mainHeight - 100
       })
+    },
+    tableRowClassName({ row, rowIndex }) {
+      return 'custom-row'
     }
   }
 }
 </script>
 
+<!--鍏叡椤甸潰鏍峰紡-->
 <style lang="scss" scoped>
 $main_color: #42b983;
-::v-deep .el-button--primary {
-  background-color: $main_color !important;
-  height: 30px;
-  display: flex;
-  align-items: center;
-  //border: 1px solid $main_color;
-  border: none;
-  padding: 0 20px;
+::v-deep .el-button--text{
+  font-size: 14px ;
+  cursor: pointer ;
 }
-::v-deep .el-button--primary:hover {
-  border: none;
+.el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
+  color: $main_color;
+  cursor: pointer;
 }
-::v-deep .el-button--info {
-  height: 30px;
-  display: flex;
-  align-items: center;
-  padding: 0 20px;
+.el-icon-edit-outline{
+  margin-right: 15px;
 }
 
-::v-deep .el-pagination.is-background .el-pager li:not(.disabled).active {
-  background-color: $main_color !important;
+::v-deep .el-button--primary, .el-button--default, .el-button--info {
+  height: 34px;
+  display: flex;
+  align-items: center;
+  padding: 0 15px;
+}
+
+::v-deep .el-button--primary {
+  //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+  background-color: #f8f8fa;
+  border: none;
+}
+
+::v-deep .el-input__inner {
+  height: 34px;
+  line-height: 34px;
+  //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+  padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+  padding: 20px 20px !important;
 }
 
 ::v-deep .el-dialog__footer {
@@ -396,105 +422,30 @@
   justify-content: flex-end;
 }
 
-.footerButton {
-  display: flex;
-  justify-content: end;
-}
-
-::v-deep .el-button--default {
-  background-color: #ffffff !important;
-  height: 30px;
-  display: flex;
-  align-items: center;
-  padding: 0 20px;
-}
-
-::v-deep .el-button--default:hover {
-  color: #606266;
-}
-
-::v-deep .el-dialog__body {
-  padding: 20px 100px !important;
-}
-
-::v-deep .el-radio__input.is-checked .el-radio__inner {
-  background-color: $main_color;
-  border-color: $main_color;
-}
-
-::v-deep .el-radio__input.is-checked + .el-radio__label {
-  color: $main_color !important;
-}
-
-::v-deep .el-checkbox__input.is-checked .el-checkbox__inner {
-  border-color: $main_color;
-  background-color: $main_color;
-}
-
-::v-deep .el-input__inner {
-  height: 30px;
-  line-height: 30px;
-}
-::v-deep .el-input__inner:focus {
-  border-color: $main_color;
-}
-
 ::v-deep .el-table .caret-wrapper {
   transform: scale(0.8);
 }
 
 ::v-deep .cell {
-  display: flex !important;
-  align-items: center !important;
-  justify-content: space-between !important;
-}
-
-::v-deep .el-button--text {
-  color: $main_color;
-  font-size: 14px;
-  cursor: pointer;
-}
-
-.operationClass {
-  height: 23px;
   display: flex;
-  justify-content: space-between;
   align-items: center;
+  justify-content: space-between;
 }
 
-.el-icon-share {
-  color: $main_color;
-  cursor: pointer;
+::v-deep .el-table::before {
+  height: 0;
 }
 
-.el-checkbox.is-bordered.is-checked {
-  border-color: $main_color;
+::v-deep .el-table__body-wrapper {
+  background-color: #f8f8fa;
 }
 
-::v-deep .el-radio__input.is-checked .el-radio__inner {
-  border-color: $main_color;
-  background: $main_color;
+::v-deep .el-table__body .el-table__row.hover-row td{
+  background-color: #eaecef ;
 }
 
-::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner {
-  border-color: $main_color;
-  background: $main_color;
-}
-
-::v-deep .el-checkbox__input.is-checked + .el-checkbox__label {
-  color: $main_color !important;
-}
-
-::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered {
-  margin: 10px 30px 0px 0;
-}
-
-::v-deep .el-radio__input.is-checked + .el-radio__label {
-  color: $main_color;
-}
-
-::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
-  margin: 10px 30px 0px 0;
+::v-deep .el-form--inline .el-form-item__label {
+  color: #a7a7a7;
 }
 
 .body ::v-deep .el-divider {
@@ -507,26 +458,14 @@
   margin-bottom: 0;
 }
 
-::v-deep .el-input__inner:focus {
-  border-color: $main_color;
+.userDialogVisible ::v-deep .el-form-item {
+  margin-bottom: 0;
 }
 
-::v-deep .el-select .el-input__inner:focus{
-  border-color: $main_color;
-}
+</style>
+<style>
 
-::v-deep .el-select-dropdown__item.selected{
-  color: $main_color;
-}
-::v-deep .el-checkbox__inner:hover{
-  border-color: $main_color;
-}
-::v-deep .el-textarea__inner:focus{
-  border-color: $main_color;
-}
-::v-deep .el-select .el-input .el-select__caret {
-  display: flex;
-  align-items: center;
-  justify-content: center;
+.el-table .custom-row {
+  background: #f8f8fa;
 }
 </style>
diff --git a/src/views/wlgl/ckdy.vue b/src/views/wlgl/ckdy.vue
index 2880e88..0e9d923 100644
--- a/src/views/wlgl/ckdy.vue
+++ b/src/views/wlgl/ckdy.vue
@@ -76,7 +76,12 @@
             prop="description"
             label="浠撳簱鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.description">{{ row.description }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
diff --git a/src/views/wlgl/kwdy.vue b/src/views/wlgl/kwdy.vue
index 901d2de..24d83c1 100644
--- a/src/views/wlgl/kwdy.vue
+++ b/src/views/wlgl/kwdy.vue
@@ -88,7 +88,12 @@
             prop="description"
             label="搴撲綅鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.description">{{ row.description }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="stock_name"
             label="鎵�灞炰粨搴�"
diff --git a/src/views/zlgl/gxjybz.vue b/src/views/zlgl/gxjybz.vue
index fec3888..60806ff 100644
--- a/src/views/zlgl/gxjybz.vue
+++ b/src/views/zlgl/gxjybz.vue
@@ -67,7 +67,12 @@
             prop="descr"
             label="鏍囧噯鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.descr">{{ row.descr }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
diff --git a/src/views/zlgl/gxjyxm.vue b/src/views/zlgl/gxjyxm.vue
index 6ca6233..0c49312 100644
--- a/src/views/zlgl/gxjyxm.vue
+++ b/src/views/zlgl/gxjyxm.vue
@@ -67,7 +67,12 @@
             prop="descr"
             label="椤圭洰鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.descr">{{ row.descr }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
diff --git a/src/views/zlgl/qxdy.vue b/src/views/zlgl/qxdy.vue
index 1c9e717..719934d 100644
--- a/src/views/zlgl/qxdy.vue
+++ b/src/views/zlgl/qxdy.vue
@@ -68,7 +68,12 @@
             prop="descr"
             label="缂洪櫡鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.descr">{{ row.descr }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
diff --git a/src/views/zzmx/chda.vue b/src/views/zzmx/chda.vue
index 4cc591f..86f1001 100644
--- a/src/views/zzmx/chda.vue
+++ b/src/views/zzmx/chda.vue
@@ -139,7 +139,12 @@
             label="鐗╂枡瑙勬牸"
             width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.partspec">{{ row.partspec }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="uom_name"
             label="鍗曚綅"
@@ -162,19 +167,34 @@
             label="浠撳簱鍚嶇О"
             sortable="custom"
             min-width="110"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.stck_name">{{ row.stck_name }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="maxqty"
             label="搴撳瓨涓婇檺"
             width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.maxqty">{{ row.maxqty }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="minqty"
             label="搴撳瓨涓嬮檺"
             width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.minqty">{{ row.minqty }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
@@ -507,8 +527,9 @@
         <el-select
           v-model="defaultroute_code"
           filterable
-          style="width: 200px"
+          style="width: 200px;"
           placeholder="璇烽�夋嫨"
+          class="defaultroute_code"
         >
           <el-option
             v-for="item in defaultroute_codeArr"
@@ -1228,6 +1249,13 @@
     }
   }
 }
+
+.defaultroute_code ::v-deep .el-input__suffix-inner{
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-top: -3px;
+}
 </style>
 
 <!--鍏叡椤甸潰鏍峰紡-->
diff --git a/src/views/zzmx/gxdy.vue b/src/views/zzmx/gxdy.vue
index 4bf6e5c..8789ee4 100644
--- a/src/views/zzmx/gxdy.vue
+++ b/src/views/zzmx/gxdy.vue
@@ -116,7 +116,12 @@
             label="宸ュ簭鎻忚堪"
             min-width="180"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.descr">{{ row.descr }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="enable"
             label="鍚敤鐘舵��"
@@ -124,8 +129,8 @@
             width="110"
           >
             <template slot-scope="{row}">
-              <div v-if="row.enable==='Y'">鏄�</div>
-              <div v-if="row.enable==='N'">鍚�</div>
+              <div v-if="row.enable==='Y'"><svg-icon icon-class="circleYes" style="margin-right: 2px" />鏄�</div>
+              <div v-if="row.enable==='N'"> <svg-icon icon-class="circleNo" style="margin-right: 2px" />鍚�</div>
             </template>
           </el-table-column>
           <el-table-column
diff --git a/src/views/zzmx/gylx.vue b/src/views/zzmx/gylx.vue
index ae213e7..5c9d1aa 100644
--- a/src/views/zzmx/gylx.vue
+++ b/src/views/zzmx/gylx.vue
@@ -72,15 +72,26 @@
             prop="description"
             label="宸ヨ壓璺嚎鎻忚堪"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.description">{{ row.description }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="enable"
             label="浣跨敤鐘舵��"
             sortable="custom"
           >
             <template slot-scope="{row}">
-              <div v-if="row.enable==='Y'">鏄�</div>
-              <div v-if="row.enable==='N'">鍚�</div>
+              <div v-if="row.enable==='Y'">
+                <svg-icon icon-class="circleYes" style="margin-right: 2px" />
+                鏄�
+              </div>
+              <div v-if="row.enable==='N'">
+                <svg-icon icon-class="circleNo" style="margin-right: 2px" />
+                鍚�
+              </div>
             </template>
           </el-table-column>
           <el-table-column
@@ -102,7 +113,11 @@
             <template slot-scope="{row}">
               <div class="operationClass">
                 <el-tooltip class="item" effect="dark" content="棰勮" placement="top">
-                  <i class="el-icon-view" style="margin-right:15px;cursor: pointer;color:#42b983  " @click="edit('edit',row)" />
+                  <i
+                    class="el-icon-view"
+                    style="margin-right:15px;cursor: pointer;color:#42b983  "
+                    @click="edit('edit',row)"
+                  />
                 </el-tooltip>
                 <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
                   <i class="el-icon-delete" @click="del(row)" />
@@ -161,7 +176,12 @@
             </el-select>
           </el-form-item>
           <el-form-item label="宸ヨ壓鎻忚堪" prop="description">
-            <el-input v-model="dialogForm.description" :disabled="operation==='edit'" type="textarea" style="width: 220px" />
+            <el-input
+              v-model="dialogForm.description"
+              :disabled="operation==='edit'"
+              type="textarea"
+              style="width: 220px"
+            />
           </el-form-item>
         </div>
         <el-form-item label="宸ヨ壓璁剧疆" prop="Data" style="margin-top: 30px">
@@ -178,7 +198,7 @@
                     zIndex:tag.label===selectedName?0:2
                   }"
                 >
-                  {{ index+1 }}
+                  {{ index + 1 }}
                 </div>
 
                 <!--                <el-tooltip-->
@@ -368,7 +388,7 @@
       }
     },
     // 宸ヨ壓璁剧疆 涓嬫媺鑾峰彇鎵�鏈�
-    async  getStepSelectArr() {
+    async getStepSelectArr() {
       const { data: res } = await StepSelect()
       this.routeArr = res
     },
@@ -498,7 +518,13 @@
       if (this.clickSelected === '' || this.clickSelected === this.dynamicTags.length) {
         seq = this.dynamicTags.length + 1
         this.dynamicTags.push(
-          { editDisabled: true, seq: seq, stepname: '', effect: 'light', stepcode: ('Step' + (seq.toString().length === 2 ? seq : '0' + seq)) }
+          {
+            editDisabled: true,
+            seq: seq,
+            stepname: '',
+            effect: 'light',
+            stepcode: ('Step' + (seq.toString().length === 2 ? seq : '0' + seq))
+          }
         )
       } else {
         // 2.绗簩绉嶆儏鍐�   褰撻�変腑鏌愪釜tag   灏嗗湪tag鍚庨潰娣诲姞
@@ -565,7 +591,7 @@
       this.getStepSelectArr()
     },
     // 宸ヨ壓璺嚎棰勮
-    async  edit(operation, row) {
+    async edit(operation, row) {
       this.operation = operation
       this.dialogVisible = true
 
@@ -751,8 +777,9 @@
   border-radius: 0;
   color: $main_color;
 }
+
 ::v-deep .el-button--success:disabled {
-  background-color:#eeeeee;
+  background-color: #eeeeee;
   color: $main_color;
 }
 
@@ -786,8 +813,8 @@
   white-space: nowrap;
 }
 
-.autocompleteClass{
-  .el-autocomplete-suggestion li{
+.autocompleteClass {
+  .el-autocomplete-suggestion li {
     //color: red;
   }
 }
@@ -796,11 +823,12 @@
 <!--鍏叡椤甸潰鏍峰紡-->
 <style lang="scss" scoped>
 $main_color: #42b983;
-.el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
   color: $main_color;
   cursor: pointer;
 }
-.el-icon-edit-outline{
+
+.el-icon-edit-outline {
   margin-right: 15px;
 }
 
@@ -861,8 +889,8 @@
   background-color: #f8f8fa;
 }
 
-::v-deep .el-table__body .el-table__row.hover-row td{
-  background-color: #eaecef ;
+::v-deep .el-table__body .el-table__row.hover-row td {
+  background-color: #eaecef;
 }
 
 ::v-deep .el-form--inline .el-form-item__label {
@@ -878,6 +906,7 @@
 .body ::v-deep .el-form-item {
   margin-bottom: 0;
 }
+
 .userDialogVisible ::v-deep .el-form-item {
   margin-bottom: 0;
 }
diff --git a/src/views/zzmx/jpgj.vue b/src/views/zzmx/jpgj.vue
index f54a01a..66aad57 100644
--- a/src/views/zzmx/jpgj.vue
+++ b/src/views/zzmx/jpgj.vue
@@ -134,7 +134,12 @@
             label="浜у搧瑙勬牸"
             min-width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.partspec">{{ row.partspec }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="wksp_name"
             label="鐢熶骇杞﹂棿"
@@ -164,13 +169,23 @@
             label="璁惧鑺傛媿"
             width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.eqp_value">{{ row.eqp_value }} <span style="margin-left: 2px">绉�</span></div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="stand_value"
             label="鐢熶骇鑺傛媿"
             width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.stand_value">{{ row.stand_value }} <span style="margin-left: 2px">绉�</span></div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="cavity_qty"
             label="鍨嬭厰鏁�"

--
Gitblit v1.9.3