From 1963e40fab4e4c8b3597a1853ce5a03264d7897f Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期六, 13 十二月 2025 17:43:51 +0800
Subject: [PATCH] 1
---
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue | 717 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 377 insertions(+), 340 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 ab7d308..cc9b8be 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"
@@ -14,35 +14,34 @@
<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"
+ v-if="isBatch === 0"
style="float: right; height: 20px"
@click="handleOpenPicking"
- >鎷i��</el-link>
- <el-link
+ >鎷i��</el-link
+ >
+ <el-link
type="primary"
size="small"
style="float: right; height: 20px; margin-right: 10px"
+ v-if="isBatch === 1"
@click="handleOpenBatchPicking"
- >鍒嗘壒鎷i��</el-link>
+ >鍒嗘壒鎷i��</el-link
+ >
<el-link
type="primary"
size="small"
+ v-if="isBatch === 0"
style="float: right; height: 20px; margin-right: 10px"
@click="outbound"
>鐩存帴鍑哄簱</el-link
>
- <el-link
+ <el-link
type="primary"
size="small"
+ v-if="isBatch === 1"
style="float: right; height: 20px; margin-right: 10px"
@click="outboundbatch"
>鍒嗘壒鍑哄簱</el-link
@@ -53,8 +52,8 @@
style="float: right; height: 20px; margin-right: 10px"
@click="getData"
>鍒锋柊</el-link
- ></el-col
- >
+ >
+ </el-col>
</el-row>
</el-alert>
</div>
@@ -92,18 +91,23 @@
effect="dark"
:content="item.title"
placement="bottom"
- ><el-link
+ >
+ <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>
+ >
+ <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>
+ <div v-else>
+ {{ scoped.row[item.prop] }}
</div>
</template>
</el-table-column>
@@ -118,26 +122,37 @@
<NoStockOut ref="NoStockOut" @parentCall="parentCall"></NoStockOut>
</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";
import NoStockOut from "./NoStockOut.vue";
-import { h,createVNode, render,reactive } from 'vue';
-import { ElDialog , ElForm, ElFormItem, ElSelect,ElOption, ElButton, ElInput, ElMessage } from 'element-plus';
-import { th } from 'element-plus/es/locale';
+import { h, createVNode, render, reactive } from "vue";
+import {
+ ElDialog,
+ ElForm,
+ ElFormItem,
+ ElSelect,
+ ElOption,
+ ElButton,
+ ElInput,
+ ElMessage,
+} from "element-plus";
export default {
- components: { VolBox, VolForm, StockSelect, SelectedStock,NoStockOut},
+ components: { VolBox, VolForm, StockSelect, SelectedStock, NoStockOut },
data() {
return {
row: null,
+ isBatch: 0,
showDetialBox: false,
flag: false,
currentRow: null,
selection: [],
tableData: [],
+ mainBusinessType: null, // 鏂板锛氬瓨鍌ㄤ富鍗曟嵁鐨刡usinessType
tableColumns: [
{
prop: "id",
@@ -157,7 +172,7 @@
prop: "materielCode",
title: "鐗╂枡缂栧彿",
type: "string",
- width: 150,
+ width: 120,
},
{
prop: "materielName",
@@ -175,7 +190,7 @@
prop: "supplyCode",
title: "渚涘簲鍟嗙紪鍙�",
type: "string",
- width: 150,
+ width: 90,
},
{
prop: "orderQuantity",
@@ -196,10 +211,16 @@
width: 90,
},
{
+ prop: "moveQty",
+ title: "鎸枡鏁伴噺",
+ type: "string",
+ width: 90,
+ },
+ {
prop: "unit",
title: "鍗曚綅",
type: "string",
- width: 90,
+ width: 80,
},
{
prop: "orderDetailStatus",
@@ -213,7 +234,7 @@
title: "鎸囧畾搴撳瓨",
type: "icon",
width: 90,
- hidden:true,
+ hidden: true, // 榛樿闅愯棌
icon: "el-icon-s-grid",
},
{
@@ -258,9 +279,8 @@
order: "desc",
Foots: "",
total: 0,
- // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬
sizes: [30, 60, 100, 120],
- size: 30, // 榛樿鍒嗛〉澶у皬
+ size: 30,
Wheres: [],
page: 1,
rows: 30,
@@ -297,11 +317,24 @@
};
},
methods: {
+ toggleAssignStockColumn() {
+ const assignStockColumn = this.tableColumns.find(
+ (item) => item.prop === "assignStock"
+ );
+ if (assignStockColumn) {
+ // businessType涓�22鏃舵樉绀猴紝鍚﹀垯闅愯棌
+ assignStockColumn.hidden = this.mainBusinessType !=='22';
+ }
+ },
open(row) {
this.row = row;
this.showDetialBox = true;
+ console.log("涓诲崟鎹暟鎹細", this.row);
+ this.isBatch = row.isBatch;
+ this.mainBusinessType = row.businessType;
this.getDictionaryData();
this.getData();
+ this.toggleAssignStockColumn();
},
getData() {
var wheres = [{ name: "orderId", value: this.row.id }];
@@ -310,12 +343,13 @@
rows: this.paginations.rows,
sort: this.paginations.sort,
order: this.paginations.order,
- wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
+ wheres: JSON.stringify(wheres),
};
this.http
.post("api/OutboundOrderDetail/GetPageData", param, "鏌ヨ涓�")
.then((x) => {
this.tableData = x.rows;
+ this.toggleAssignStockColumn(); // 鏁版嵁鍔犺浇鍚庨噸鏂扮‘璁ゅ垪鏄鹃殣
});
},
tableButtonClick(row, column) {
@@ -323,8 +357,7 @@
this.$refs.child.open(row);
} else if (column.prop == "NoStockOut") {
this.$refs.NoStockOut.open(row);
- }else{
- //鐐瑰嚮鎵撳紑鍑哄簱璇︽儏
+ } else {
this.$refs.selectedStock.open(row);
}
},
@@ -332,7 +365,7 @@
if (this.selection.length === 0) {
return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
}
- var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
+ var keys = this.selection.map((item) => item.id);
this.http
.post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
.then((x) => {
@@ -344,341 +377,346 @@
});
});
},
- // 鎵撳紑鎷i�夐〉闈�
- handleOpenPicking() {
+ handleOpenPicking() {
this.$router.push({
- path: '/outbound/picking',
- query: { orderId: this.row.id ,orderNo:this.row.orderNo}
- })
+ path: "/outbound/picking",
+ query: { orderId: this.row.id, orderNo: this.row.orderNo },
+ });
},
handleOpenBatchPicking() {
- this.$router.push({
- path: '/outbound/batchpicking',
- query: { orderId: this.row.id ,orderNo:this.row.orderNo}})
+ this.$router.push({
+ path: "/outbound/batchpicking",
+ 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');
+ const platformOptions = [
+ { label: "绔欏彴2", value: "2-1" },
+ { label: "绔欏彴3", value: "3-1" },
+ ];
+ const mountNode = document.createElement("div");
document.body.appendChild(mountNode);
- // 2. 琛ㄥ崟鏁版嵁锛堥粯璁ら�変腑绔欏彴3锛�
const formData = reactive({
- selectedPlatform: platformOptions[0].value // 榛樿缁戝畾銆岀珯鍙�3銆嶇殑value
+ selectedPlatform: platformOptions[0].value,
});
- // 3. 鍔ㄦ�佸垱寤哄脊绐楃粍浠�
- 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' }
- ]
+ const vnode = createVNode(
+ ElDialog,
+ {
+ title: "鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴",
+ width: "500px",
+ modelValue: true,
+ appendToBody: true,
+ "onUpdate:modelValue": (isVisible) => {
+ if (!isVisible) {
+ render(null, mountNode);
+ document.body.removeChild(mountNode);
+ }
},
- 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;
+ 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",
+ },
},
- 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;
- }
+ [
+ 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;
+ }
- // 4. 鏋勯�犺姹傚弬鏁帮紙閫変腑鍗曟嵁ID + 閫夋嫨鐨勫嚭搴撶珯鍙帮級
- const keys = this.selection.map((item) => item.id);
- const requestParams = {
- taskIds: keys,
- outboundPlatform: formData.selectedPlatform // 鍑哄簱绔欏彴
- };
+ const keys = this.selection.map((item) => item.id);
+ const requestParams = {
+ taskIds: keys,
+ outboundPlatform: formData.selectedPlatform,
+ };
- // 5. 璋冪敤鍑哄簱鎺ュ彛
- 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'
- }
- }, '纭畾鍑哄簱')
- ])
- ])
- });
+ 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",
+ },
+ }, "纭畾鍑哄簱"),
+ ]),
+ ]),
+ }
+ );
- // 缁戝畾app涓婁笅鏂囷紝纭繚El缁勪欢姝e父宸ヤ綔
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);
-
- // 2. 琛ㄥ崟鏁版嵁锛堥粯璁ら�変腑绔欏彴3锛屾柊澧炲皬鏁板瓧娈碉級
- const formData = reactive({
- selectedPlatform: platformOptions[0].value, // 榛樿缁戝畾銆岀珯鍙�3銆嶇殑value
- outboundDecimal: '' // 鏂板锛氬皬鏁拌緭鍏ユ瀛楁
- });
-
- // 3. 鍔ㄦ�佸垱寤哄脊绐楃粍浠�
- const vnode = createVNode(ElDialog, {
- title: '鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴',
- width: '500px',
- modelValue: true,
- appendToBody: true,
- 'onUpdate:modelValue': (isVisible) => {
- if (!isVisible) {
- render(null, mountNode);
- document.body.removeChild(mountNode);
+ if (this.selection.length === 0) {
+ return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
}
- },
- 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) => {
- // 楠岃瘉瑙勫垯锛氭鏁般�佹敮鎸佸皬鏁扮偣鍚庢渶澶�2浣嶏紙鍙牴鎹渶姹傝皟鏁村皬鏁颁綅鏁帮級
- 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'
+ if (this.selection.length > 1) {
+ return this.$message.error("鍙兘閫夋嫨涓�鏉″崟鎹槑缁嗚繘琛屽垎鎵瑰嚭搴�");
}
- }, [
- // 鍑哄簱绔欏彴閫夋嫨椤癸紙鏍稿績琛ㄥ崟椤癸級
- 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', // 姝ラ暱0.01锛岀偣鍑讳笂涓嬬澶存椂鎸�0.01澧炲噺
- precision: 2, // 闄愬埗鏈�澶氳緭鍏�2浣嶅皬鏁帮紙Element Plus灞炴�э級
- min: 0.01, // 鍙�夛細闄愬埗鏈�灏忓�间负0.01锛岄伩鍏嶈緭鍏�0鎴栬礋鏁�
- })
- ]),
- // 搴曢儴鎸夐挳鍖�
- 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 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);
}
-console.log(this.selection);
- // 4. 鏋勯�犺姹傚弬鏁帮紙鏂板灏忔暟瀛楁锛�
- const keys = this.selection.map((item) => item.id);
- const requestParams = {
- orderDetailId: keys[0], // 鍒嗘壒鍑哄簱浠呮敮鎸佸崟鏉℃槑缁�
- outboundPlatform: formData.selectedPlatform, // 鍑哄簱绔欏彴
- batchQuantity: formData.outboundDecimal // 鏂板锛氬皬鏁板瓧娈典紶缁欏悗绔�
- };
-
- // 5. 璋冪敤鍑哄簱鎺ュ彛
- 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'
- }
- }, '纭畾鍒嗘壒鍑哄簱')
- ])
- ])
- });
+ 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;
+ }
- // 缁戝畾app涓婁笅鏂囷紝纭繚El缁勪欢姝e父宸ヤ綔
- vnode.appContext = this.$.appContext;
- render(vnode, mountNode);
-},
-
+ 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);
+ },
setCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
@@ -735,7 +773,6 @@
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 {
@@ -745,10 +782,12 @@
return row[column.prop];
}
}
+ return row[column.prop];
},
},
};
</script>
+
<style scoped>
.text-button {
border: 0px;
@@ -766,12 +805,10 @@
.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 {
@@ -781,4 +818,4 @@
.box-table .el-table {
border: 1px solid #ebeef5;
}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.9.3