From 1378fc4cd7abc24ed3a982e09437c2c8a74e9f2f Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期二, 27 一月 2026 19:06:32 +0800
Subject: [PATCH] 代码优化
---
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue | 433 +++++++++++------------------------------------------
1 files changed, 91 insertions(+), 342 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
index cc9b8be..59d95f2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
@@ -17,10 +17,18 @@
<el-link
type="primary"
size="small"
- v-if="isBatch === 0"
+ v-if="isBatch === 0 && mainBusinessType != '30'"
style="float: right; height: 20px"
@click="handleOpenPicking"
>鎷i��</el-link
+ >
+ <el-link
+ type="primary"
+ size="small"
+ v-if="mainBusinessType === '30'"
+ style="float: right; height: 20px"
+ @click="handleOpenRecheckPicking"
+ >閲嶆鎷i��</el-link
>
<el-link
type="primary"
@@ -33,7 +41,7 @@
<el-link
type="primary"
size="small"
- v-if="isBatch === 0"
+ v-if="isBatch === 0 && mainBusinessType != '30'"
style="float: right; height: 20px; margin-right: 10px"
@click="outbound"
>鐩存帴鍑哄簱</el-link
@@ -120,6 +128,10 @@
@parentCall="parentCall"
></selected-stock>
<NoStockOut ref="NoStockOut" @parentCall="parentCall"></NoStockOut>
+ <DirectOutbound
+ ref="DirectOutbound"
+ @parentCall="parentCall"
+ ></DirectOutbound>
</div>
</template>
@@ -129,6 +141,7 @@
import StockSelect from "./StockSelect.vue";
import SelectedStock from "./SelectedStock.vue";
import NoStockOut from "./NoStockOut.vue";
+import DirectOutbound from "./DirectOutbound.vue";
import { h, createVNode, render, reactive } from "vue";
import {
ElDialog,
@@ -142,7 +155,14 @@
} from "element-plus";
export default {
- components: { VolBox, VolForm, StockSelect, SelectedStock, NoStockOut },
+ components: {
+ VolBox,
+ VolForm,
+ StockSelect,
+ SelectedStock,
+ NoStockOut,
+ DirectOutbound,
+ },
data() {
return {
row: null,
@@ -217,6 +237,12 @@
width: 90,
},
{
+ prop: "warehouseCode",
+ title: "浠撳簱缂栧彿",
+ type: "string",
+ width: 90,
+ },
+ {
prop: "unit",
title: "鍗曚綅",
type: "string",
@@ -234,7 +260,7 @@
title: "鎸囧畾搴撳瓨",
type: "icon",
width: 90,
- hidden: true, // 榛樿闅愯棌
+ //hidden: true, // 榛樿闅愯棌
icon: "el-icon-s-grid",
},
{
@@ -321,10 +347,10 @@
const assignStockColumn = this.tableColumns.find(
(item) => item.prop === "assignStock"
);
- if (assignStockColumn) {
- // businessType涓�22鏃舵樉绀猴紝鍚﹀垯闅愯棌
- assignStockColumn.hidden = this.mainBusinessType !=='22';
- }
+ // if (assignStockColumn) {
+ // // businessType涓�22鏃舵樉绀猴紝鍚﹀垯闅愯棌
+ // assignStockColumn.hidden = this.mainBusinessType !== '22';
+ // }
},
open(row) {
this.row = row;
@@ -353,14 +379,16 @@
});
},
tableButtonClick(row, column) {
- if (column.prop == "assignStock") {
- this.$refs.child.open(row);
- } else if (column.prop == "NoStockOut") {
- this.$refs.NoStockOut.open(row);
- } else {
- this.$refs.selectedStock.open(row);
- }
- },
+ if (column.prop == "assignStock") {
+ this.$refs.child.open(row,this.row.orderNo);
+ } else if (column.prop == "NoStockOut") {
+ this.$refs.NoStockOut.open(row);
+ } else {
+ this.$refs.selectedStock.open(row);
+
+ }
+},
+
lockstocks() {
if (this.selection.length === 0) {
return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
@@ -379,344 +407,65 @@
},
handleOpenPicking() {
this.$router.push({
- path: "/outbound/picking",
+ path: "/outbound/outPicking",
query: { orderId: this.row.id, orderNo: this.row.orderNo },
});
},
handleOpenBatchPicking() {
this.$router.push({
- path: "/outbound/batchpicking",
+ path: "/outbound/outPicking",
+ query: { orderId: this.row.id, orderNo: this.row.orderNo },
+ });
+ },
+ handleOpenRecheckPicking() {
+ this.$router.push({
+ path: "/outbound/recheckOutPicking",
query: { orderId: this.row.id, orderNo: this.row.orderNo },
});
},
outbound() {
- if (this.selection.length === 0) {
- return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
- }
- const platformOptions = [
- { label: "绔欏彴2", value: "2-1" },
- { label: "绔欏彴3", value: "3-1" },
- ];
- const mountNode = document.createElement("div");
- document.body.appendChild(mountNode);
+ if (this.selection.length === 0) {
+ return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+ }
- const formData = reactive({
- selectedPlatform: platformOptions[0].value,
- });
+ const keys = this.selection.map((item) => item.id);
+ const requestParams = {
+ detailIds: keys,
+ outboundQuantity: 1,
+ operator: "",
+ orderNo: this.row.orderNo,
+ isBatch: this.isBatch,
+ };
+ console.log(requestParams);
+ this.$refs.DirectOutbound.open(requestParams);
+ },
+
+ outboundbatch() {
+ if (this.selection.length === 0) {
+ return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+ }
- const vnode = createVNode(
- ElDialog,
- {
- title: "鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴",
- width: "500px",
- modelValue: true,
- appendToBody: true,
- "onUpdate:modelValue": (isVisible) => {
- if (!isVisible) {
- render(null, mountNode);
- document.body.removeChild(mountNode);
- }
- },
- style: {
- padding: "20px 0",
- borderRadius: "8px",
- },
- },
- {
- default: () =>
- h(
- ElForm,
- {
- model: formData,
- rules: {
- selectedPlatform: [
- { required: true, message: "璇烽�夋嫨鍑哄簱绔欏彴", trigger: "change" },
- ],
- },
- ref: "outboundForm",
- labelWidth: "100px",
- style: {
- padding: "0 30px",
- },
- },
- [
- h(ElFormItem, {
- label: "鍑哄簱绔欏彴",
- prop: "selectedPlatform",
- style: {
- marginBottom: "24px",
- },
- }, [
- h(ElSelect, {
- placeholder: "璇烽�夋嫨鍑哄簱绔欏彴锛�3-12锛�",
- modelValue: formData.selectedPlatform,
- "onUpdate:modelValue": (val) => {
- formData.selectedPlatform = val;
- },
- style: {
- width: "100%",
- height: "40px",
- borderRadius: "4px",
- borderColor: "#dcdfe6",
- },
- }, platformOptions.map((platform) =>
- h(ElOption, { label: platform.label, value: platform.value })
- )),
- ]),
- h("div", {
- style: {
- textAlign: "right",
- marginTop: "8px",
- paddingRight: "4px",
- },
- }, [
- h(ElButton, {
- type: "text",
- onClick: () => {
- render(null, mountNode);
- document.body.removeChild(mountNode);
- ElMessage.info("鍙栨秷鍑哄簱鎿嶄綔");
- },
- style: {
- marginRight: "8px",
- color: "#606266",
- },
- }, "鍙栨秷"),
- h(ElButton, {
- type: "primary",
- onClick: async () => {
- const formRef = vnode.component.refs.outboundForm;
- try {
- await formRef.validate();
- } catch (err) {
- return;
- }
+ const keys = this.selection.map((item) => item.id);
+
+ // 璁$畻鎵�鏈夐�変腑鏄庣粏鐨勫彲鍑哄簱鏁伴噺鎬诲拰
+ let totalOutboundQuantity = 0;
+ this.selection.forEach(item => {
+ // 绫诲瀷杞崲+瀹归敊锛岄伩鍏嶉潪鏁板瓧鍊煎鑷磋绠楅敊璇�
+ const orderQty = Number(item.orderQuantity) || 0;
+ const lockQty = Number(item.lockQuantity) || 0;
+ totalOutboundQuantity += (orderQty - lockQty);
+ });
- const keys = this.selection.map((item) => item.id);
- const requestParams = {
- taskIds: keys,
- outboundPlatform: formData.selectedPlatform,
- };
-
- this.http
- .post(
- "api/Task/GenerateOutboundTasks",
- requestParams,
- "鏁版嵁澶勭悊涓�"
- )
- .then((x) => {
- if (!x.status) return ElMessage.error(x.message);
- ElMessage.success("鎿嶄綔鎴愬姛");
- this.showDetialBox = false;
- this.$emit("parentCall", ($vue) => {
- $vue.getData();
- });
- render(null, mountNode);
- document.body.removeChild(mountNode);
- })
- .catch(() => {
- ElMessage.error("璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯");
- });
- },
- style: {
- borderRadius: "4px",
- padding: "8px 20px",
- },
- }, "纭畾鍑哄簱"),
- ]),
- ]),
- }
- );
-
- vnode.appContext = this.$.appContext;
- render(vnode, mountNode);
- },
- outboundbatch() {
- if (this.selection.length === 0) {
- return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
- }
- if (this.selection.length > 1) {
- return this.$message.error("鍙兘閫夋嫨涓�鏉″崟鎹槑缁嗚繘琛屽垎鎵瑰嚭搴�");
- }
- const platformOptions = [
- { label: "绔欏彴2", value: "2-1" },
- { label: "绔欏彴3", value: "3-1" },
- ];
- const mountNode = document.createElement("div");
- document.body.appendChild(mountNode);
-
- const formData = reactive({
- selectedPlatform: platformOptions[0].value,
- outboundDecimal: "",
- });
-
- const vnode = createVNode(
- ElDialog,
- {
- title: "鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴",
- width: "500px",
- modelValue: true,
- appendToBody: true,
- "onUpdate:modelValue": (isVisible) => {
- if (!isVisible) {
- render(null, mountNode);
- document.body.removeChild(mountNode);
- }
- },
- style: {
- padding: "20px 0",
- borderRadius: "8px",
- },
- },
- {
- default: () =>
- h(
- ElForm,
- {
- model: formData,
- rules: {
- selectedPlatform: [
- { required: true, message: "璇烽�夋嫨鍑哄簱绔欏彴", trigger: "change" },
- ],
- outboundDecimal: [
- { required: true, message: "璇疯緭鍏ュ皬鏁版暟鍊�", trigger: "blur" },
- {
- validator: (rule, value, callback) => {
- const decimalReg = /^(([1-9]\d*)|0)(\.\d{1,2})?$/;
- if (value && !decimalReg.test(value)) {
- callback(new Error("璇疯緭鍏ユ湁鏁堢殑灏忔暟锛堟鏁帮紝鏈�澶�2浣嶅皬鏁帮級"));
- } else {
- callback();
- }
- },
- trigger: "blur",
- },
- ],
- },
- ref: "outboundForm",
- labelWidth: "100px",
- style: {
- padding: "0 30px",
- },
- },
- [
- h(ElFormItem, {
- label: "鍑哄簱绔欏彴",
- prop: "selectedPlatform",
- style: {
- marginBottom: "24px",
- },
- }, [
- h(ElSelect, {
- placeholder: "璇烽�夋嫨鍑哄簱绔欏彴锛�3-12锛�",
- modelValue: formData.selectedPlatform,
- "onUpdate:modelValue": (val) => {
- formData.selectedPlatform = val;
- },
- style: {
- width: "100%",
- height: "40px",
- borderRadius: "4px",
- borderColor: "#dcdfe6",
- },
- }, platformOptions.map((platform) =>
- h(ElOption, { label: platform.label, value: platform.value })
- )),
- ]),
- h(ElFormItem, {
- label: "鍑哄簱鏁�",
- prop: "outboundDecimal",
- style: {
- marginBottom: "24px",
- },
- }, [
- h(ElInput, {
- type: "number",
- placeholder: "璇疯緭鍏ュ皬鏁版暟鍊硷紙鏈�澶�2浣嶅皬鏁帮級",
- modelValue: formData.outboundDecimal,
- "onUpdate:modelValue": (val) => {
- formData.outboundDecimal = val;
- },
- style: {
- width: "100%",
- height: "40px",
- borderRadius: "4px",
- borderColor: "#dcdfe6",
- },
- step: "0.01",
- precision: 2,
- min: 0.01,
- }),
- ]),
- h("div", {
- style: {
- textAlign: "right",
- marginTop: "8px",
- paddingRight: "4px",
- },
- }, [
- h(ElButton, {
- type: "text",
- onClick: () => {
- render(null, mountNode);
- document.body.removeChild(mountNode);
- ElMessage.info("鍙栨秷鍒嗘壒鍑哄簱鎿嶄綔");
- },
- style: {
- marginRight: "8px",
- color: "#606266",
- },
- }, "鍙栨秷"),
- h(ElButton, {
- type: "primary",
- onClick: async () => {
- const formRef = vnode.component.refs.outboundForm;
- try {
- await formRef.validate();
- } catch (err) {
- return;
- }
-
- const keys = this.selection.map((item) => item.id);
- const requestParams = {
- orderDetailId: keys[0],
- outboundPlatform: formData.selectedPlatform,
- batchQuantity: formData.outboundDecimal,
- };
-
- this.http
- .post(
- "api/Task/GenerateOutboundBatchTasks",
- requestParams,
- "鏁版嵁澶勭悊涓�"
- )
- .then((x) => {
- if (!x.status) return ElMessage.error(x.message);
- ElMessage.success("鎿嶄綔鎴愬姛");
- this.showDetialBox = false;
- this.$emit("parentCall", ($vue) => {
- $vue.getData();
- });
- render(null, mountNode);
- document.body.removeChild(mountNode);
- })
- .catch(() => {
- ElMessage.error("璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯");
- });
- },
- style: {
- borderRadius: "4px",
- padding: "8px 20px",
- },
- }, "纭畾鍒嗘壒鍑哄簱"),
- ]),
- ]),
- }
- );
-
- vnode.appContext = this.$.appContext;
- render(vnode, mountNode);
- },
+ const requestParams = {
+ detailIds: keys,
+ outboundQuantity: totalOutboundQuantity,
+ operator: "",
+ orderNo: this.row.orderNo,
+ isBatch: this.isBatch,
+ };
+ console.log("鍒嗘壒鍑哄簱鍙傛暟锛�", requestParams);
+ this.$refs.DirectOutbound.open(requestParams);
+ },
setCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
--
Gitblit v1.9.3