From 697e532cb0ba31cec654e3b8a271bc3ef0106bff Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期一, 08 十二月 2025 13:29:39 +0800
Subject: [PATCH] 1.新增 生产工单根据工单状态显示不同的列表行样式,车间名称单选变为多选查询选择

---
 src/views/workOrder/workOrderList.vue |  119 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 95 insertions(+), 24 deletions(-)

diff --git a/src/views/workOrder/workOrderList.vue b/src/views/workOrder/workOrderList.vue
index ac63cd4..5ef65e8 100644
--- a/src/views/workOrder/workOrderList.vue
+++ b/src/views/workOrder/workOrderList.vue
@@ -5,21 +5,21 @@
       <div
         class="bodyTopStatus"
       >
-        <div style="font-weight: bolder;">宸ュ崟鐘舵��</div>
-        <div class="statusItem" :class="{statusItemLight:form.mesorderstus===''}" @click="statusChange('')">鍏ㄩ儴</div>
-        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='NEW'}" @click="statusChange('NEW')">鏂拌鍗�</div>
-        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='ALLO'}" @click="statusChange('ALLO')">宸叉淳鍙�</div>
-        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='START'}" @click="statusChange('START')">寮�宸�</div>
-        <div class="statusItem" :class="{statusItemLight:form.mesorderstus==='CLOSED'}" @click="statusChange('CLOSED')">瀹屽伐</div>
+        <div style="font-weight: bolder;">宸ュ崟鐘舵��:</div>
+        <div class="statusItem" :class="{statusItemLight:true}" @click="statusChange('')">鍏ㄩ儴</div>
+        <div class="statusItem" :class="{statusItemLight1:true}" @click="statusChange('NEW')">鏂拌鍗�</div>
+        <div class="statusItem" :class="{statusItemLight2:true}" @click="statusChange('ALLO')">宸叉淳鍙�</div>
+        <div class="statusItem" :class="{statusItemLight3:true}" @click="statusChange('START')">寮�宸�</div>
+        <div class="statusItem" :class="{statusItemLight4:true}" @click="statusChange('CLOSED')">瀹屽伐</div>
       </div>
 
       <div class="bodyTopButtonGroup" style="justify-content: space-between;margin-top: 5px;">
         <div style="display: flex">
           <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
-          <el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>
+          <el-button v-waves type="success" icon="el-icon-connection" @click="send();tableDataDetail=[]">娲惧彂</el-button>
         </div>
 
-        <el-button v-waves type="primary" @click="batchUpdate"><i
+        <el-button v-waves type="primary" @click="batchUpdate();tableDataDetail=[]"><i
           class="el-icon-edit"
           style="margin-right: 0;"
         /> 鎵归噺缁戝畾
@@ -39,6 +39,8 @@
               <el-select
                 v-model="form.wkshopcode"
                 filterable
+                multiple
+                collapse-tags
                 :popper-append-to-body="false"
                 style="width: 200px"
                 placeholder="璇烽�夋嫨"
@@ -119,8 +121,8 @@
             class="bodySearchReset"
             :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
           >
-            <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
-            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+            <el-button v-waves type="primary" icon="el-icon-search" @click="search();tableDataDetail=[]">鏌ヨ</el-button>
+            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset();tableDataDetail=[]">閲嶇疆</el-button>
           </div>
 
         </el-form>
@@ -152,7 +154,7 @@
           border
           :summary-method="getSummaries"
           show-summary
-          :row-class-name="tableRowClassName"
+          :row-class-name="tableRowClassName2"
           :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}"
           highlight-current-row
           :header-cell-style="this.$headerCellStyle"
@@ -165,12 +167,14 @@
             type="selection"
             width="50"
             :selectable="selected"
+            class-name="fixed-column"
           />
           <el-table-column
             prop="rowNum"
-            width="50"
+            width="80"
             label="搴忓彿"
             fixed
+            class-name="fixed-column"
           />
           <el-table-column
             prop="status"
@@ -462,6 +466,7 @@
             label="鎿嶄綔"
             width="160"
             fixed="right"
+            class-name="fixed-column"
           >
             <template slot-scope="{row}">
               <div class="operationClass">
@@ -471,7 +476,7 @@
                     v-if="mesSetting.workOrder"
                     class="el-icon-files"
                     style="cursor: pointer;color:#42b983;margin-right: 15px"
-                    @click="pre(row,1)"
+                    @click.stop="pre(row,1)"
                   />
                 </el-tooltip>
 
@@ -479,12 +484,12 @@
                   <i
                     class="el-icon-edit-outline"
                     :style="{color:$store.state.settings.theme}"
-                    @click="edit('edit',row)"
+                    @click.stop="edit('edit',row)"
                   />
                 </el-tooltip>
 
                 <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
-                  <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" />
+                  <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" />
                 </el-tooltip>
 
                 <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top">
@@ -497,7 +502,7 @@
                     :style="{color:$store.state.settings.theme}"
                     class="el-icon-printer"
                     style="cursor: pointer;margin-right: 15px"
-                    @click="handlePrint(row.wo_code,row.saleOrderCod,row)"
+                    @click.stop="handlePrint(row.wo_code,row.saleOrderCod,row)"
                   />
                 </el-tooltip>
 
@@ -506,7 +511,7 @@
                     class="el-icon-view"
                     style="cursor: pointer;"
                     :style="{color:$store.state.settings.theme}"
-                    @click="edit('view',row)"
+                    @click.stop="edit('view',row)"
                   />
                 </el-tooltip>
 
@@ -523,7 +528,7 @@
         align="right"
         layout="total,prev, pager, next,sizes,jumper"
         popper-class="select_bottom"
-        @pagination="getMesOrderSearch"
+        @pagination="getMesOrderSearch();tableDataDetail=[]"
       />
 
       <div class="elTableDiv">
@@ -753,6 +758,7 @@
             v-model="dialogForm.mesqty"
             oninput="value=value.replace(/[^\d]/g,'')"
             style="width: 200px"
+            @input="mesqtyInputChange"
           />
           <!--          oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
         </el-form-item>
@@ -886,6 +892,7 @@
             class="stepSelectedValueClass"
             style="width: 930px;"
             multiple
+            filterable
             placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"
             @change="stepSelectedValueChange"
           >
@@ -2600,6 +2607,7 @@
               class="stepSelectedValueClass"
               style="width: 930px;"
               multiple
+              filterable
               placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"
               @change="val=>stepSelectedValueChangeBatchUpdate(val,index)"
             >
@@ -2762,7 +2770,7 @@
       tableHeight: 0,
       username: '',
       form: {
-        wkshopcode: '', // 杞﹂棿缂栫爜
+        wkshopcode: [], // 杞﹂棿缂栫爜
         mesorderstus: '', // 宸ュ崟鐘舵�佺爜
         mesordercode: '', // 宸ュ崟缂栧彿
         partcode: '', // 浜у搧缂栫爜
@@ -3083,7 +3091,15 @@
     // })
   },
   methods: {
+    mesqtyInputChange(val) {
+      if (this.stepTableData && this.stepTableData.length > 0) {
+        this.stepTableData.forEach(i => {
+          i.sumqty = Math.floor(parseFloat(val) * (1 + (parseFloat(i.ratio) / 100)))
+        })
+      }
+    },
     statusChange(val) {
+      this.tableDataDetail = []
       this.form.mesorderstus = val
       this.getMesOrderSearch()
     },
@@ -3480,6 +3496,20 @@
     tableRowClassName({ row, rowIndex }) {
       return 'custom-row'
     },
+    tableRowClassName2({ row, rowIndex }) {
+      if (row.status === 'NEW') {
+        return 'custom-row1'
+      }
+      if (row.status === 'ALLO') {
+        return 'custom-row2'
+      }
+      if (row.status === 'START') {
+        return 'custom-row3'
+      }
+      if (row.status === 'CLOSED') {
+        return 'custom-row4'
+      }
+    },
     handleRequest() {
       this.getMesOrderSearch().then(res => {
         if (res.code === '200') {
@@ -3499,7 +3529,7 @@
       // }
 
       const data = {
-        wkshopcode: this.form.wkshopcode,
+        wkshopcode: this.form.wkshopcode.join(','),
         mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜
         mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿
         partcode: this.form.partcode, // 浜у搧缂栫爜
@@ -3573,7 +3603,7 @@
 
     // 閲嶇疆
     reset(val) {
-      this.form.wkshopcode = ''
+      this.form.wkshopcode = []
       this.form.mesorderstus = ''
       this.form.mesordercode = ''
       this.form.partcode = ''
@@ -3672,6 +3702,7 @@
             if (this.form.page > 1 && this.tableData.length === 1) {
               this.form.page--
             }
+            this.tableDataDetail = []
             this.getMesOrderSearch()
           }
         })
@@ -3983,7 +4014,7 @@
               return this.$message.error('鏈夊簭鎶ュ伐鎯呭喌涓嬶紝瓒呮姤姣斾緥鍚庨亾宸ュ簭涓嶈兘澶т簬鍓嶉亾宸ュ簭锛�')
             }
           }
-          console.log(isNaN(this.dialogForm.mesqty - this.dialogForm.mesqtyinit))
+          // console.log(isNaN(this.dialogForm.mesqty - this.dialogForm.mesqtyinit))
           const data = {
             wostatus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵��
             wocode: this.dialogForm.mesordercode, // 宸ュ崟鍙�
@@ -4010,6 +4041,7 @@
               // this.handlePrint()
               this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇濆瓨鎴愬姛锛�')
               this.getMesOrderSearch()
+              this.tableDataDetail = []
               this.$store.state.app.buttonIsDisabled = false
             } else {
               this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇濆瓨澶辫触锛�')
@@ -4573,7 +4605,7 @@
     getSummaries(param) {
       const { columns, data } = param
       const sums = []
-      const i = 9
+      const i = 13
       columns.forEach((column, index) => {
         if (index === i) {
           sums[index] = '鎬绘暟'
@@ -4940,7 +4972,25 @@
 
 .statusItemLight{
   font-weight: bolder;
-  color: #42b983;
+  //color: #42b983;
+  color: #000;
+}
+
+.statusItemLight1{
+  font-weight: bolder;
+  color: rgba(245, 108, 108, 1);
+}
+.statusItemLight2{
+  font-weight: bolder;
+  color: rgba(230, 162, 60, 1);
+}
+.statusItemLight3{
+  font-weight: bolder;
+  color: rgba(144, 147, 153, 1);
+}
+.statusItemLight4{
+  font-weight: bolder;
+  color: rgba(103, 194, 58, 1);
 }
 
 </style>
@@ -4949,6 +4999,27 @@
 .el-table .custom-row {
   background: #f8f8fa;
 }
+
+.el-table .custom-row1 {
+  background: rgba(245, 108, 108, 0.4);
+}
+
+.el-table .custom-row2 {
+  background: rgba(230, 162, 60, 0.4);
+}
+
+.el-table .custom-row3 {
+  background: rgba(144, 147, 153, 0.4);
+}
+
+.el-table .custom-row4 {
+  background: rgba(103, 194, 58, 0.4);
+}
+
+.el-table .fixed-column {
+  background: #f8f8fa;
+}
+
 </style>
 <style>
 .sortable-ghost {

--
Gitblit v1.9.3