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/outOrderDetail.vue | 371 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 371 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/outOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" new file mode 100644 index 0000000..40096ab --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" @@ -0,0 +1,371 @@ +<template> + <div> + <vol-box v-model="showDetialBox" :lazy="true" width="75%" :padding="15" title="鍗曟嵁鏄庣粏淇℃伅"> + <div class="box-head"> + <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" @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> + </div> +</template> +<script> +import VolBox from "@/components/basic/VolBox.vue"; +import VolForm from "@/components/basic/VolForm.vue"; +import StockSelect from "./StockSelect.vue"; +import SelectedStock from "./SelectedStock.vue"; +export default { + components: { VolBox, VolForm, StockSelect, SelectedStock }, + data() { + return { + row: null, + showDetialBox: false, + flag: false, + currentRow: null, + selection: [], + tableData: [], + tableColumns: [ + { + prop: "id", + title: "Id", + type: "int", + width: 90, + hidden: true, + }, + { + prop: "orderId", + title: "鍑哄簱鍗曚富閿�", + type: "string", + width: 90, + hidden: true, + }, + { + prop: "materielCode", + title: "鐗╂枡缂栧彿", + type: "string", + width: 150, + }, + { + prop: "materielName", + title: "鐗╂枡鍚嶇О", + type: "string", + width: 150, + }, + { + prop: "batchNo", + title: "鎵规鍙�", + type: "string", + width: 90, + }, + { + prop: "orderQuantity", + title: "鍗曟嵁鏁伴噺", + type: "string", + width: 90, + }, + { + prop: "lockQuantity", + title: "閿佸畾鏁伴噺", + type: "int", + width: 90, + }, + { + prop: "overOutQuantity", + title: "宸插嚭鏁伴噺", + type: "string", + width: 90, + }, + { + prop: "orderDetailStatus", + title: "璁㈠崟鏄庣粏鐘舵��", + type: "tag", + width: 180, + bindKey: "orderDetailStatusEnum" + }, + { + prop: "assignStock", + title: "鎸囧畾搴撳瓨", + type: "icon", + width: 90, + icon: "el-icon-s-grid", + }, + { + prop: "viewDetail", + title: "鍑哄簱璇︾粏", + type: "icon", + width: 90, + icon: "el-icon-s-operation", + }, + { + prop: "creater", + title: "鍒涘缓浜�", + type: "string", + width: 90, + }, + { + prop: "createDate", + title: "鍒涘缓鏃堕棿", + type: "datetime", + width: 160, + }, + { + prop: "modifier", + title: "淇敼浜�", + type: "string", + width: 100, + }, + { + prop: "modifyDate", + title: "淇敼鏃堕棿", + type: "datetime", + width: 160, + }, + { + prop: "remark", + title: "澶囨敞", + type: "string", + }, + ], + paginations: { + sort: "id", + order: "desc", + Foots: "", + total: 0, + // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬 + sizes: [30, 60, 100, 120], + size: 30, // 榛樿鍒嗛〉澶у皬 + Wheres: [], + page: 1, + rows: 30, + }, + searchFormOptions: [ + [ + { + title: "鍗曟嵁缂栧彿", + field: "allocation_code", + type: "like", + }, + { + title: "鍗曟嵁绫诲瀷", + field: "allocation_type", + type: "select", + dataKey: "OrderType", + data: [], + }, + { + title: "鍗曟嵁鐘舵��", + field: "allocation_state", + type: "select", + dataKey: "OrderState", + data: [], + }, + ], + ], + searchFormFields: { + allocation_code: "", + allocation_type: "", + allocation_state: "", + }, + dictionaryList: null, + }; + }, + methods: { + open(row) { + this.row = row; + this.showDetialBox = true; + this.getDictionaryData(); + this.getData(); + }, + getData() { + var wheres = [{ name: "orderId", value: this.row.id }]; + var param = { + page: this.paginations.page, + rows: this.paginations.rows, + sort: this.paginations.sort, + order: this.paginations.order, + wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }] + }; + this.http + .post("api/OutboundOrderDetail/GetPageData", param, "鏌ヨ涓�") + .then((x) => { + this.tableData = x.rows; + }); + }, + tableButtonClick(row, column) { + if (column.prop == "assignStock") { + this.$refs.child.open(row); + } else { + this.$refs.selectedStock.open(row); + } + }, + 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); + }, + handleCurrentChange(val) { + this.currentRow = val; + }, + getButtonEnable(propName, row) { + if (propName == "assignStock") { + if ( + row.orderDetailStatus !== 0 && + row.orderDetailStatus !== 60 && + row.orderDetailStatus !== 70 + ) { + return true; + } else { + return false; + } + } + return false; + }, + parentCall(fun) { + if (typeof fun != "function") { + 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]; + } + } + }, + }, +}; +</script> +<style scoped> +.text-button { + border: 0px; +} +</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; +} +</style> -- Gitblit v1.9.3