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