From 4f39dcc195f28fa275fc2d065fbf1bf6a46c21b7 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期二, 17 六月 2025 00:41:18 +0800 Subject: [PATCH] 优化出入库逻辑 --- 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue | 166 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 139 insertions(+), 27 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" index b47fd63..da4d861 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" @@ -8,15 +8,36 @@ title="鍗曟嵁鏄庣粏淇℃伅" > <div class="box-head"> - <!-- <el-row> - <el-col :span="24"> - <span>宸查�変腑 {{ true ? 1 : 0 }} 椤�</span> - <el-divider direction="vertical"></el-divider> - <el-button type="text" size="medium" - ><i class="el-icon-edit">鍏抽棴</i - ></el-button> - </el-col> - </el-row> --> + <el-alert :closable="false" style="width: 100%"> + <el-row> + <el-col :span="16"> + <span>宸查�変腑 {{ selection.length }} 椤�</span> + </el-col> + <el-col :span="8"> + <el-link + type="primary" + size="small" + style="float: right; height: 20px" + @click="lockstocks" + >閿佸畾搴撳瓨</el-link + > + <el-link + type="primary" + size="small" + style="float: right; height: 20px; margin-right: 10px" + @click="outbound" + >鐩存帴鍑哄簱</el-link + > + <el-link + type="primary" + size="small" + style="float: right; height: 20px; margin-right: 10px" + @click="getData" + >鍒锋柊</el-link + ></el-col + > + </el-row> + </el-alert> </div> <div class="box-table" style="margin-top: 1%"> <el-table @@ -26,7 +47,10 @@ highlight-current-row @current-change="handleCurrentChange" height="500px" + @row-click="handleRowClick" + @selection-change="handleSelectionChange" > + <el-table-column type="selection" width="55"> </el-table-column> <el-table-column label="搴忓彿" type="index" @@ -42,18 +66,26 @@ :width="item.width" align="center" > - <template #default="scoped" v-if="item.type == 'icon'"> - <el-tooltip - class="item" - effect="dark" - :content="item.title" - placement="bottom" - ><el-link - type="primary" - :disabled="getButtonEnable(item.prop, scoped.row)" - @click="tableButtonClick(scoped.row, item)" - ><i :class="item.icon" style="font-size: 22px"></i></el-link - ></el-tooltip> + <template #default="scoped"> + <div v-if="item.type == 'icon'"> + <el-tooltip + class="item" + effect="dark" + :content="item.title" + placement="bottom" + ><el-link + type="primary" + :disabled="getButtonEnable(item.prop, scoped.row)" + @click="tableButtonClick(scoped.row, item)" + ><i :class="item.icon" style="font-size: 22px"></i></el-link + ></el-tooltip> + </div> + + <div v-else-if="item.type == 'tag'"> + <el-tag size="small"> + {{ getDictionary(scoped.row, item) }} + </el-tag> + </div> </template> </el-table-column> </el-table> @@ -79,6 +111,7 @@ showDetialBox: false, flag: false, currentRow: null, + selection: [], tableData: [], tableColumns: [ { @@ -110,7 +143,7 @@ { prop: "batchNo", title: "鎵规鍙�", - type: "tag", + type: "string", width: 90, }, { @@ -134,8 +167,9 @@ { prop: "orderDetailStatus", title: "璁㈠崟鏄庣粏鐘舵��", - type: "string", + type: "tag", width: 180, + bindKey: "orderDetailStatusEnum", }, { prop: "assignStock", @@ -221,12 +255,14 @@ allocation_type: "", allocation_state: "", }, + dictionaryList: null, }; }, methods: { open(row) { this.row = row; this.showDetialBox = true; + this.getDictionaryData(); this.getData(); }, getData() { @@ -247,12 +283,43 @@ tableButtonClick(row, column) { if (column.prop == "assignStock") { this.$refs.child.open(row); - }else{ + } else { this.$refs.selectedStock.open(row); } }, - assignStock() {}, - viewDetail() {}, + lockstocks() { + if (this.selection.length === 0) { + return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏"); + } + var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id + this.http + .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�") + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.showDetialBox = false; + this.$emit("parentCall", ($vue) => { + $vue.getData(); + }); + }); + }, + outbound() { + if (this.selection.length === 0) { + return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏"); + } + var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id + + this.http + .post("api/Task/GenerateOutboundTasks", keys, "鏁版嵁澶勭悊涓�") + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.showDetialBox = false; + this.$emit("parentCall", ($vue) => { + $vue.getData(); + }); + }); + }, setCurrent(row) { this.$refs.singleTable.setCurrentRow(row); }, @@ -261,7 +328,10 @@ }, getButtonEnable(propName, row) { if (propName == "assignStock") { - if (row.orderDetailStatus !== 0 && row.orderDetailStatus !== 60 && row.orderDetailStatus !== 70) { + if ( + row.orderDetailStatus !== 0 && + row.orderDetailStatus !== 60 + ) { return true; } else { return false; @@ -274,6 +344,46 @@ return console.log("鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄"); } fun(this); + }, + handleRowClick(row) { + this.$refs.singleTable.toggleRowSelection(row); + }, + handleSelectionChange(val) { + this.selection = val; + }, + getDictionaryData() { + if (this.dictionaryList) { + return; + } + var param = []; + this.tableColumns.forEach((x) => { + if (x.type == "tag" && x.bindKey != "") { + param.push(x.bindKey); + } + }); + this.http + .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�") + .then((x) => { + if (x.length > 0) { + this.dictionaryList = x; + } + }); + }, + getDictionary(row, column) { + if (this.dictionaryList) { + var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey); + if (item) { + var dicItem = item.data.find((x) => x.key == row[column.prop]); + console.log(dicItem); + if (dicItem) { + return dicItem.value; + } else { + return row[column.prop]; + } + } else { + return row[column.prop]; + } + } }, }, }; @@ -288,9 +398,11 @@ .text-button:hover { background-color: #f0f9eb !important; } + .el-table .warning-row { background: oldlace; } + .box-table .el-table tbody tr:hover > td { background-color: #d8e0d4 !important; /* color: #ffffff; */ -- Gitblit v1.9.3