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 |  238 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 172 insertions(+), 66 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 87fa048..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: [] }, //鎵╁睍鐨勬寜閽�
@@ -33,72 +38,136 @@
       let day = String(date.getDate()).padStart(2, "0");
       return year + "-" + month + "-" + day;
     },
-    // 鏂板鏂规硶锛氬姞杞界墿鏂欑紪鍙锋暟鎹�
-    async loadMaterielCodes(option) {
-      try {
-        option.loading = true;
-        const { page, pageSize, keyword } = option.pagination;
-        const res = await this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderDetailMaterielCode", {
-          warehouseId: this.editFormFields.warehouseId,
-          keyword,
-          page,
-          pageSize
-        }, true);
-    
-        if (res.status) {
-          option.pagination.total = res.total || res.data.length;
-          const newData = res.data.map(item => ({ key: item, value: item }));
-          option.data = page === 1 ? newData : [...option.data, ...newData];
-        }
-      } catch (error) {
-        this.$error("鏁版嵁鍔犺浇澶辫触");
-      } finally {
-        option.loading = false;
-      }
-    },
     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
     onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
       this.$nextTick(() => {
-        let warehouseIdOption = this.getOption("warehouseId");
-        let materielCodeOption = this.getOption("materielCode");
-        let purchaseOrderNoOption = this.getOption("purchaseOrderNo");
-        let materielQueryOption = this.getOption("materielQuery");
-        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(() => {
+        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.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] })
-                }
-              });
-            })
-        }
+        //         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: '鎿嶄綔',
@@ -108,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() {
@@ -155,7 +257,11 @@
         let year = date.getFullYear();
         let month = String(date.getMonth() + 1).padStart(2, "0");
         let day = String(date.getDate()).padStart(2, "0");
-        this.editFormFields.lotNo = year + month + day;
+        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