From c020f31a67fc5aa5644511bddff075f7ecc85234 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期二, 27 五月 2025 15:35:27 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/ZhongHeLiTiKu --- 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 251 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" new file mode 100644 index 0000000..1a2ce9d --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" @@ -0,0 +1,251 @@ +<template> + <div> + <vol-box v-model="showDetialBox" :lazy="true" width="60%" :padding="15" title="鎸囧畾搴撳瓨"> + <div class="box-head"> + <el-alert :closable="false" style="width: 100%"> + <el-row> + <el-col :span="20"> + <span class="less-style">鐗╂枡鍚嶇О锛� {{ row.materielName }} </span> + <el-divider direction="vertical"></el-divider> + <span class="less-style">鐗╂枡缂栧彿锛� {{ row.materielCode }} </span> + <el-divider direction="vertical"></el-divider> + <span class="less-style">闇�姹傛暟閲忥細 {{ row.orderQuantity }} + </span> + <el-divider direction="vertical"></el-divider> + <span :class="selectionClass">宸查�夋暟閲忥細 {{ selectionSum }} + </span> + </el-col> + <el-col :span="2"> + <el-link type="primary" size="small" style="float: right; height: 20px" + @click="getData">鍒锋柊</el-link></el-col> + <el-col :span="2"> + <el-link type="primary" size="small" style="float: right; height: 20px" + @click="revokeAssign">鎾ら攢鍒嗛厤</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 + @row-click="handleRowClick" height="500px" @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" v-if="item.type == 'icon'"> + <el-tooltip class="item" effect="dark" :content="item.title" placement="bottom"><el-button type="text" + @click="tableButtonClick(scoped.row, item)"><i :class="item.icon" + style="font-size: 22px"></i></el-button></el-tooltip> + </template> + </el-table-column> + </el-table> + </div> + <template #footer> + <el-button type="primary" size="small" @click="outbound">鐩存帴鍑哄簱</el-button> + <el-button type="primary" size="small" @click="lockStock">閿佸畾搴撳瓨</el-button> + <el-button type="danger" size="small" @click="showDetialBox = false">鍏抽棴</el-button> + </template> + </vol-box> + </div> +</template> +<script> +import VolBox from "@/components/basic/VolBox.vue"; +export default { + components: { VolBox }, + data() { + return { + row: null, + showDetialBox: false, + tableData: [], + tableColumns: [ + { + prop: "materielCode", + title: "鐗╂枡缂栧彿", + type: "string", + width: 150, + }, + { + prop: "materielName", + title: "鐗╂枡鍚嶇О", + type: "string", + width: 150, + }, + { + prop: "palletCode", + title: "鎵樼洏缂栧彿", + type: "string", + width: 150, + }, + { + prop: "locationCode", + title: "璐т綅缂栧彿", + type: "string", + width: 180, + }, + { + prop: "useableQuantity", + title: "鍙敤鏁伴噺", + type: "string", + }, + ], + selection: [], + selectionSum: 0, + selectionClass: "less-style", + originalQuantity: 0, + }; + }, + methods: { + open(row) { + this.row = row; + this.showDetialBox = true; + this.originalQuantity = this.row.lockQuantity; + this.selectionSum = this.row.lockQuantity; + this.getData(); + if (this.selectionSum == this.row.orderQuantity) { + this.selectionClass = "equle-style"; + } else if (this.selectionSum < this.row.orderQuantity) { + this.selectionClass = "less-style"; + } else { + this.selectionClass = "more-style"; + } + }, + lockStock() { + this.http + .post( + "api/OutboundOrderDetail/LockOutboundStock?id=" + this.row.id, + this.selection, + "鏁版嵁澶勭悊涓�" + ) + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.showDetialBox = false; + this.$emit("parentCall", ($vue) => { + $vue.getData(); + }); + }); + }, + outbound() { + this.http + .post( + "api/Task/GenerateOutboundTask?id=" + this.row.id, + this.selection, + "鏁版嵁澶勭悊涓�" + ) + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.showDetialBox = false; + this.$emit("parentCall", ($vue) => { + $vue.getData(); + }); + }); + }, + getData() { + this.http + .post( + "api/StockInfo/GetStockSelectViews?materielCode=" + + this.row.materielCode, + null, + "鏌ヨ涓�" + ) + .then((x) => { + this.tableData = x; + }); + }, + revokeAssign() { + console.log(this.row); + this.http + .post( + "api/OutboundOrderDetail/RevokeLockOutboundStock?id=" + this.row.id, + null, + "鏁版嵁澶勭悊涓�" + ) + .then((x) => { + if (!x.status) return this.$message.error(x.message); + this.$message.success("鎿嶄綔鎴愬姛"); + this.showDetialBox = false; + this.$emit("parentCall", ($vue) => { + $vue.getData(); + }); + }); + }, + handleSelectionChange(val) { + this.selection = val; + this.selectionSum = + val.reduce( + (accumulator, currentValue) => + accumulator + currentValue["useableQuantity"], + 0 + ) + this.originalQuantity; + if (this.selectionSum == this.row.orderQuantity) { + this.selectionClass = "equle-style"; + } else if (this.selectionSum < this.row.orderQuantity) { + this.selectionClass = "less-style"; + } else { + this.selectionClass = "more-style"; + } + }, + toggleSelection(rows) { + if (rows) { + rows.forEach((row) => { + this.$refs.singleTable.toggleRowSelection(row); + }); + } else { + this.$refs.singleTable.clearSelection(); + } + }, + clearSelection() { + this.$refs.singleTable.clearSelection(); + }, + handleRowClick(row) { + this.$refs.singleTable.toggleRowSelection(row); + }, + }, +}; +</script> +<style scoped> +.less-style { + color: black; +} + +.equle-style { + color: green; +} + +.more-style { + color: red; +} +</style> + +<style> +.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; */ +} + +.box-table .el-table tbody tr.current-row>td { + background-color: #f0f9eb !important; + /* color: #ffffff; */ +} + +.el-table .success-row { + background: #f0f9eb; +} + +.box-table .el-table { + border: 1px solid #ebeef5; +} + +.box-head .el-alert__content { + width: 100%; +} +</style> \ No newline at end of file -- Gitblit v1.9.3