From 166a45a9d44e03e63552c6afa975c9ef0cc902e5 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期二, 03 六月 2025 17:50:41 +0800
Subject: [PATCH] 功能,页面更新优化

---
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js |  214 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 190 insertions(+), 24 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js"
index 7956968..24cec15 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js"
@@ -1,5 +1,9 @@
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 import gridBody from './extend/materielcodeprintView.vue'
+import modelHeader from './extend/materielcodeSelectView.vue'
+import modelBody from './extend/purchaseOrderNoSelectView.vue'
+import modelFooter from './extend/GetOrderQuantityView.vue'
+import modelSpec from './extend/GetOrderMaterielSpec.vue'
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
@@ -7,9 +11,10 @@
     gridBody: gridBody,
     gridFooter: '',
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-    modelHeader: '',
-    modelBody: '',
-    modelFooter: ''
+    modelHeader: modelHeader,
+    modelBody: modelBody,
+    modelFooter: modelFooter,
+    modelSpec: modelSpec
   },
   tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
   buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
@@ -26,29 +31,143 @@
       })
       return option;
     },
+    formatDate(dateStr) {
+      let date = new Date(dateStr);
+      let year = date.getFullYear();
+      let month = String(date.getMonth() + 1).padStart(2, "0");
+      let day = String(date.getDate()).padStart(2, "0");
+      return year + "-" + month + "-" + day;
+    },
     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
     onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
-      let materielCodeOption = this.getOption("materielCode");
-      let purchaseOrderNoOption = this.getOption("purchaseOrderNo");
-      purchaseOrderNoOption.onChange = (val, option) => {
-        this.editFormFields.materielCode = "";
-        materielCodeOption.data = [];
-        if (val == null || val == 0) {
-          return this.$error("璇烽�夋嫨鐗╂枡缂栧彿锛�")
-        }
-        // console.log(val)
-        // console.log(option)
-        this.http.post("/api/PurchaseOrder/GetPurchaseOrderInfo?purchaseOrderNo=" + val, {}, true).then(
-          source => {
-            if (!source.status) return this.$error(source.message);
-            for (let i = 0; i < source.data.length; i++) {
-              materielCodeOption.data.push({ key: source.data[i], value: source.data[i] })
+      this.$nextTick(() => {
+        this.editFormOptions.forEach((option) => {
+          option.forEach((item) => {
+            if (item.field == 'materielCode') {
+              //鍒濆鍖栧脊鍑烘閫夋嫨鍣ㄩ厤缃�
+              item.extra = {
+                icon: 'el-icon-zoom-out', //鏄剧ず鍥炬爣
+                text: '閫夋嫨鏁版嵁', //鏄剧ず鏂囨湰
+                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
+                //瑙﹀彂浜嬩欢
+                click: (item) => {
+                  this.$refs.modelHeader.open(this.editFormFields.warehouseId);
+                }
+              };
             }
-            // this.editFormFields.InputOder_itemname = source.data.itemName;
-            // this.$success(source.data.itemName);
-            this.refresh();
-          })
-      }
+          });
+        });
+        this.editFormOptions.forEach((option) => {
+          option.forEach((item) => {
+            if (item.field == 'purchaseOrderNo') {
+              //鍒濆鍖栧脊鍑烘閫夋嫨鍣ㄩ厤缃�
+              item.extra = {
+                icon: 'el-icon-zoom-out', //鏄剧ず鍥炬爣
+                text: '閫夋嫨鏁版嵁', //鏄剧ず鏂囨湰
+                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
+                //瑙﹀彂浜嬩欢
+                click: (item) => {
+                  this.$refs.modelBody.open(this.editFormFields.materielCode);
+                }
+              };
+            }
+          });
+        });
+        this.editFormOptions.forEach((option) => {
+          option.forEach((item) => {
+            if (item.field == 'quantity') {
+              //鍒濆鍖栧脊鍑烘閫夋嫨鍣ㄩ厤缃�
+              item.extra = {
+                icon: 'el-icon-zoom-out', //鏄剧ず鍥炬爣
+                text: '閲囪喘鍗曟渶澶ф暟閲�', //鏄剧ず鏂囨湰
+                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
+                //瑙﹀彂浜嬩欢
+                click: (item) => {
+                  this.$refs.modelFooter.open(this.editFormFields.purchaseOrderNo);
+                }
+              };
+            }
+          });
+        });
+        this.editFormOptions.forEach((option) => {
+          option.forEach((item) => {
+            if (item.field == 'materielSpec') {
+              //鍒濆鍖栧脊鍑烘閫夋嫨鍣ㄩ厤缃�
+              item.extra = {
+                icon: 'el-icon-zoom-out', //鏄剧ず鍥炬爣
+                text: '閫夋嫨鐗╂枡瑙勬牸', //鏄剧ず鏂囨湰
+                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
+                //瑙﹀彂浜嬩欢
+                click: (item) => {
+                  this.$refs.modelSpec.open(this.editFormFields.purchaseOrderNo,this.editFormFields.materielCode);
+                }
+              };
+            }
+          });
+        });
+        // warehouseIdOption.onChange = (val, option) => {
+        //   this.editFormFields.materielCode = "";
+        //   materielCodeOption.data = [];
+        //   this.editFormFields.purchaseOrderNo = "";
+        //   purchaseOrderNoOption.data = [];
+        //   if (val == null || val == 0) {
+        //     return this.$error("璇烽�夋嫨浠撳簱锛�")
+        //   }
+        //   this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderDetailMaterielCode?warehouseId=" + val, {}, true).then(
+        //     source => {
+        //       if (!source.status) return this.$error(source.message);
+        //       this.$nextTick(() => {
+
+        //         for (let i = 0; i < source.data.length; i++) {
+        //           materielCodeOption.data.push({ key: source.data[i], value: source.data[i] })
+        //         }
+        //       })
+        //     })
+        // }
+        // materielCodeOption.onChange = (val, option) => {
+        //   this.editFormFields.purchaseOrderNo = "";
+        //   purchaseOrderNoOption.data = [];
+        //   if (val == null || val == 0) {
+        //     return this.$error("璇烽�夋嫨鐗╂枡缂栧彿锛�")
+        //   }
+        //   this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderNos?materielCode=" + val, {}, true).then(
+        //     source => {
+        //       if (!source.status) return this.$error(source.message);
+        //       this.$nextTick(() => {
+        //         for (let i = 0; i < source.data.length; i++) {
+        //           purchaseOrderNoOption.data.push({ key: source.data[i], value: source.data[i] })
+        //         }
+        //       });
+        //     })
+        // }
+      });
+
+      // 椤甸潰鍔犺浇鏃跺垵濮嬪寲宸查珮浜殑琛�
+      const initHighlightedRows = () => {
+        try {
+          const highlightedRowIds = localStorage.getItem('highlightedRowIds');
+          if (highlightedRowIds) {
+            this.highlightedRowIds = JSON.parse(highlightedRowIds);
+          } else {
+            this.highlightedRowIds = [];
+          }
+        } catch (e) {
+          console.error('Failed to load highlighted rows from localStorage:', e);
+          this.highlightedRowIds = [];
+        }
+      };
+
+      // 淇濆瓨楂樹寒琛孖D鍒版湰鍦板瓨鍌�
+      const saveHighlightedRows = () => {
+        try {
+          localStorage.setItem('highlightedRowIds', JSON.stringify(this.highlightedRowIds));
+        } catch (e) {
+          console.error('Failed to save highlighted rows to localStorage:', e);
+        }
+      };
+
+      // 鍦ㄧ粍浠跺垵濮嬪寲鏃惰皟鐢�
+      initHighlightedRows();
 
       this.columns.push({
         field: '鎿嶄綔',
@@ -58,12 +177,45 @@
         align: 'center',
         formatter: (row) => {
           return (
-            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-printer">鎵撳嵃</i>'
+            '<i style="cursor: pointer;color: #2d8cf0;" class="el-icon-printer">鎵撳嵃</i>'
           );
         },
         click: (row) => {
+          // 鎵撳紑璇︽儏
           this.$refs.gridBody.open(row);
+          // 鑾峰彇琛岀殑鍞竴鏍囪瘑锛堝亣璁緍ow.id鏄敮涓�ID锛�
+          const rowId = row.id;
+          // 娣诲姞鍒板凡楂樹寒鍒楄〃
+          if (!this.highlightedRowIds.includes(rowId)) {
+            this.highlightedRowIds.push(rowId);
+            // 淇濆瓨鍒版湰鍦板瓨鍌�
+            saveHighlightedRows();
+            // 鍒锋柊琛ㄦ牸浠ュ簲鐢ㄦ牱寮�
+            this.$refs.gridBody.refresh();
+          }
         }
+      });
+
+      // 閰嶇疆cellStyle
+      this.columns.forEach((column) => {
+        // 淇濆瓨鍘熸湁鐨刢ellStyle鍑芥暟
+        const originalCellStyle = column.cellStyle;
+        
+        column.cellStyle = (row) => {
+          // 鍏堝簲鐢ㄥ師鏈夌殑鏍峰紡閫昏緫
+          let style = originalCellStyle ? originalCellStyle(row) : {};
+          
+          // 濡傛灉琛岃鏍囪涓洪珮浜紝鍒欐坊鍔犵豢鑹茶儗鏅�
+          if (this.highlightedRowIds.includes(row.id)) {
+            style = {
+              ...style,
+              background: '#d4edda', 
+              color: '#155724'
+            };
+          }
+          
+          return style;
+        };
       });
     },
     onInited() {
@@ -99,6 +251,20 @@
       //(3)this.editFormFields.瀛楁='xxx';
       //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
       //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+      let isAdd = this.currentAction == 'Add';
+      if (isAdd) {
+        let date = new Date();
+        let year = date.getFullYear();
+        let month = String(date.getMonth() + 1).padStart(2, "0");
+        let day = String(date.getDate()).padStart(2, "0");
+        let hour= String(date.getHours()).padStart(2, "0");
+        let minute= String(date.getMinutes()).padStart(2, "0");
+        let second= String(date.getSeconds()).padStart(2, "0");
+        //灏唝ear鎴彇鍚庝袱浣�
+        this.editFormFields.lotNo = (year.toString().substr(-2)) + month+day + hour + minute+second;
+        this.editFormFields.productionDate = year + "-" + month + "-" + day;
+        this.editFormFields.effectiveDate = year + 2 + "-" + month + "-" + day;
+      }
     }
   }
 };

--
Gitblit v1.9.3