From fe941b73b9496f6cfab1a8957f319f74ea09fe1d Mon Sep 17 00:00:00 2001 From: Huangxiaoqiang-03 <1247017146@qq.com> Date: 星期一, 04 十一月 2024 17:34:32 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue | 185 ++++++++++++++++++++++++++++++--------------- 1 files changed, 122 insertions(+), 63 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..6622d7a 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" @@ -1,69 +1,48 @@ <template> <div> - <vol-box - v-model="showDetialBox" - :lazy="true" - width="75%" - :padding="15" - title="鍗曟嵁鏄庣粏淇℃伅" - > + <vol-box v-model="showDetialBox" :lazy="true" width="75%" :padding="15" 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 - ref="singleTable" - :data="tableData" - style="width: 100%; height: 100%" - highlight-current-row - @current-change="handleCurrentChange" - height="500px" - > - <el-table-column - label="搴忓彿" - type="index" - fixed="left" - width="55" - align="center" - ></el-table-column> - <el-table-column - v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" - :key="index" - :prop="item.prop" - :label="item.title" - :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> + <el-table ref="singleTable" :data="tableData" style="width: 100%; height: 100%" 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" fixed="left" width="55" align="center"></el-table-column> + <el-table-column v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" :key="index" :prop="item.prop" + :label="item.title" :width="item.width" align="center"> + <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> </div> </vol-box> <stock-select ref="child" @parentCall="parentCall"></stock-select> - <selected-stock - ref="selectedStock" - @parentCall="parentCall" - ></selected-stock> + <selected-stock ref="selectedStock" @parentCall="parentCall"></selected-stock> </div> </template> <script> @@ -79,6 +58,7 @@ showDetialBox: false, flag: false, currentRow: null, + selection: [], tableData: [], tableColumns: [ { @@ -110,7 +90,7 @@ { prop: "batchNo", title: "鎵规鍙�", - type: "tag", + type: "string", width: 90, }, { @@ -134,8 +114,9 @@ { prop: "orderDetailStatus", title: "璁㈠崟鏄庣粏鐘舵��", - type: "string", + type: "tag", width: 180, + bindKey: "orderDetailStatusEnum" }, { prop: "assignStock", @@ -221,12 +202,14 @@ allocation_type: "", allocation_state: "", }, + dictionaryList: null, }; }, methods: { open(row) { this.row = row; this.showDetialBox = true; + this.getDictionaryData(); this.getData(); }, getData() { @@ -247,12 +230,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 +275,11 @@ }, getButtonEnable(propName, row) { if (propName == "assignStock") { - if (row.orderDetailStatus !== 0 && row.orderDetailStatus !== 60 && row.orderDetailStatus !== 70) { + if ( + row.orderDetailStatus !== 0 && + row.orderDetailStatus !== 60 && + row.orderDetailStatus !== 70 + ) { return true; } else { return false; @@ -274,6 +292,45 @@ 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]); + if (dicItem) { + return dicItem.value; + } else { + return row[column.prop]; + } + } else { + return row[column.prop]; + } + } }, }, }; @@ -288,15 +345,17 @@ .text-button:hover { background-color: #f0f9eb !important; } + .el-table .warning-row { background: oldlace; } -.box-table .el-table tbody tr:hover > td { + +.box-table .el-table tbody tr:hover>td { background-color: #d8e0d4 !important; /* color: #ffffff; */ } -.box-table .el-table tbody tr.current-row > td { +.box-table .el-table tbody tr.current-row>td { background-color: #f0f9eb !important; /* color: #ffffff; */ } -- Gitblit v1.9.3