hgwms-2098 fix 搬运类型弹窗修改

hwork-master
A0066811 2025-11-07 13:55:26 +08:00
parent 0e204f5cee
commit 087b9aa7b3
2 changed files with 478 additions and 321 deletions

View File

@ -1,103 +1,156 @@
<template> <template>
<a-modal :open="visible" title="编辑搬运类型" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel"> <a-modal
<a-form ref="formRef" :model="formState" :rules="formRules" :label-col="labelCol" :wrapper-col="wrapperCol" :popupScroll = "popupScroll"> :open="visible"
title="编辑搬运类型"
cancelText="取消"
okText="提交"
@ok="submit"
@cancel="cancel"
>
<a-form
ref="formRef"
:model="formState"
:rules="formRules"
layout="vertical"
:popupScroll="popupScroll"
>
<!-- <a-form-item ref="deliverDesc" label="搬运类型描述" name="deliverDesc"> <!-- <a-form-item ref="deliverDesc" label="搬运类型描述" name="deliverDesc">
<a-input v-model:value="formState.deliverDesc" placeholder="请输入搬运类型描述" /> <a-input v-model:value="formState.deliverDesc" placeholder="请输入搬运类型描述" />
</a-form-item> --> </a-form-item> -->
<a-form-item ref="deliver" label="搬运类型" name="deliver"> <a-row :gutter="[16, 0]">
<a-input v-model:value="formState.deliver" placeholder="请输入搬运类型" /> <a-col :span="12">
</a-form-item> <a-form-item ref="deliver" label="搬运类型" name="deliver">
<a-input
v-model:value="formState.deliver"
placeholder="请输入搬运类型"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="产生任务标志">
<a-select
v-model:value="formState.jobFlag"
placeholder="请选择产生任务标志"
:options="jobFlag"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sourceLoc" label="源位置" name="sourceLoc">
<a-input
v-model:value="formState.sourceLoc"
placeholder="请输入源位置"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="源策略">
<a-select
v-model:value="formState.sourceStactics"
:options="deliverSourceStactics"
mode="tags"
:size="size"
placeholder="请选择源策略"
autoClearSearchValue="ture"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="targetLoc" label="目标位置" name="targetLoc">
<a-input
v-model:value="formState.targetLoc"
placeholder="请输入目标位置"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
ref="targetStactics"
label="目标策略"
name="targetStactics"
>
<a-input
v-model:value="formState.targetStactics"
placeholder="请输入目标策略"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="pltFlag" label="删除托盘标记" name="pltFlag">
<a-input
v-model:value="formState.pltFlag"
placeholder="请输入删除托盘标记"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="优先级">
<a-select
v-model:value="formState.priority"
placeholder="请选择优先级"
:options="priority"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="方向标志">
<a-select
v-model:value="formState.directFlag"
placeholder="请选择方向标志"
:options="directFlag"
>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-form-item label="产生任务标志"> <!-- <a-form-item ref="sourceStactics" label="源策略" name="sourceStactics">
<a-select v-model:value="formState.jobFlag" placeholder="请选择产生任务标志" :options="jobFlag">
</a-select>
</a-form-item>
<a-form-item ref="sourceLoc" label="源位置" name="sourceLoc">
<a-input v-model:value="formState.sourceLoc" placeholder="请输入源位置" />
</a-form-item>
<a-form-item label="源策略">
<a-select v-model:value="formState.sourceStactics" :options="deliverSourceStactics" mode="tags" :size="size" placeholder="请选择源策略"
style="width: 200px" autoClearSearchValue = "ture" >
</a-select>
</a-form-item>
<!-- <a-form-item ref="sourceStactics" label="源策略" name="sourceStactics">
<a-radio-group v-model:value="formState.sourceStactics" placeholder="请输入源策略" /> <a-radio-group v-model:value="formState.sourceStactics" placeholder="请输入源策略" />
</a-form-item> --> </a-form-item> -->
<a-form-item ref="targetLoc" label="目标位置" name="targetLoc">
<a-input v-model:value="formState.targetLoc" placeholder="请输入目标位置" />
</a-form-item>
<a-form-item ref="targetStactics" label="目标策略" name="targetStactics">
<a-input v-model:value="formState.targetStactics" placeholder="请输入目标策略" />
</a-form-item>
<a-form-item ref="pltFlag" label="删除托盘标记" name="pltFlag">
<a-input v-model:value="formState.pltFlag" placeholder="请输入删除托盘标记" />
</a-form-item>
<a-form-item label="优先级">
<a-select v-model:value="formState.priority" placeholder="请选择优先级" :options="priority">
</a-select>
</a-form-item>
<a-form-item label="方向标志">
<a-select v-model:value="formState.directFlag" placeholder="请选择方向标志" :options="directFlag">
</a-select>
</a-form-item>
</a-form> </a-form>
</a-modal> </a-modal>
</template> </template>
<script> <script>
import { message } from "@hwork/ant-design-vue";
import { edit } from "@/api/wms/deliverType";
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
import { export default defineComponent({
message props: {
} from '@hwork/ant-design-vue'; visible: {
import { type: Boolean,
edit
} from "@/api/wms/deliverType";
import {
defineComponent,
reactive,
ref,
toRaw,
watch
} from "vue";
export default defineComponent({
props: {
visible: {
type: Boolean,
},
record: {
type: Object,
}
}, },
emit: ["close"], record: {
setup(props, context) { type: Object,
},
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formRef = ref(); const formState = reactive({});
const formState = reactive({}); watch(props, (props) => {
formState.id = props.record.id;
formState.deliver = props.record.deliver;
formState.priority = props.record.priority;
formState.directFlag = props.record.directFlag;
formState.deliverDesc = props.record.deliverDesc;
formState.jobFlag = props.record.jobFlag;
formState.sourceLoc = props.record.sourceLoc;
formState.sourceStactics = props.record.sourceStactics;
formState.targetLoc = props.record.targetLoc;
formState.targetStactics = props.record.targetStactics;
formState.pltFlag = props.record.pltFlag;
formState.sourceLoc = props.record.sourceLoc;
// formState.beginDate = props.record.beginDate;
// formState.finishDate = props.record.finishDate;
});
watch(props, (props) => { /* const delivers = ref([{
formState.id = props.record.id;
formState.deliver = props.record.deliver;
formState.priority = props.record.priority;
formState.directFlag = props.record.directFlag;
formState.deliverDesc = props.record.deliverDesc;
formState.jobFlag = props.record.jobFlag;
formState.sourceLoc = props.record.sourceLoc;
formState.sourceStactics = props.record.sourceStactics;
formState.targetLoc = props.record.targetLoc;
formState.targetStactics = props.record.targetStactics;
formState.pltFlag = props.record.pltFlag;
formState.sourceLoc = props.record.sourceLoc;
// formState.beginDate = props.record.beginDate;
// formState.finishDate = props.record.finishDate;
})
/* const delivers = ref([{
value: '人工', value: '人工',
label: '人工', label: '人工',
}, { }, {
@ -106,161 +159,187 @@
}, },
]); */ ]); */
const deliverSourceStactics = ref([{ const deliverSourceStactics = ref([
value: '散盘优先', {
label: '散盘优先', value: "散盘优先",
}, { label: "散盘优先",
value: '先进先出',
label: '先进先出',
}, },
{ {
value: '3', value: "先进先出",
label: '先进后出', label: "先进先出",
}, },
{ {
value: '4', value: "3",
label: '后进后出', label: "先进后出",
}, },
{ {
value: '5', value: "4",
label: '后进先出', label: "后进后出",
}, },
{ {
value: '6', value: "5",
label: '整盘优先', label: "后进先出",
}, },
{ {
value: '7', value: "6",
label: '批次出库', label: "整盘优先",
}, },
]); {
value: "7",
label: "批次出库",
},
]);
const directFlag = ref([{ const directFlag = ref([
value: 'In', {
label: '入库', value: "In",
}, { label: "入库",
value: 'Out', },
label: '出库', {
}, { value: "Out",
value: 'Move', label: "出库",
label: '移库', },
}]); {
value: "Move",
label: "移库",
},
]);
const priority = ref([{ const priority = ref([
value: '1', {
label: '正常', value: "1",
}, { label: "正常",
value: '0', },
label: '低', {
}, { value: "0",
value: '2', label: "低",
label: '高', },
}]); {
value: "2",
label: "高",
},
]);
const jobFlag = ref([{ const jobFlag = ref([
value: '1', {
label: '是', value: "1",
}, { label: "是",
value: '0', },
label: '否', {
}]); value: "0",
label: "否",
},
]);
const formRules = { const formRules = {
deliver: [{ deliver: [
required: true, {
message: '请输入搬运类型(必填)', required: true,
trigger: 'blur' message: "请输入搬运类型(必填)",
}], trigger: "blur",
priority: [{ },
required: true, ],
message: '请选择优先级(必填)', priority: [
trigger: 'blur' {
}], required: true,
sourceStactics: [{ message: "请选择优先级(必填)",
required: true, trigger: "blur",
message: '请输入源策略(必填)', },
trigger: 'blur' ],
}], sourceStactics: [
targetStactics: [{ {
required: true, required: true,
message: '请输入目标策略(必选)', message: "请输入源策略(必填)",
trigger: 'blur' trigger: "blur",
}], },
directFlag: [{ ],
required: true, targetStactics: [
message: '请选择方向标志(必选)', {
trigger: 'blur' required: true,
}], message: "请输入目标策略(必选)",
trigger: "blur",
},
],
directFlag: [
{
required: true,
message: "请选择方向标志(必选)",
trigger: "blur",
},
],
}; };
const editKey = "add"; const editKey = "add";
const submit = (e) => { const submit = (e) => {
console.log("formRef.value",formRef.value) console.log("formRef.value", formRef.value);
console.log("formState",formState) console.log("formState", formState);
console.log("formState sourceStactics",formState.sourceStactics) console.log("formState sourceStactics", formState.sourceStactics);
var a =JSON.stringify(formState.sourceStactics); var a = JSON.stringify(formState.sourceStactics);
formState.sourceStactics = JSON.stringify(formState.sourceStactics); formState.sourceStactics = JSON.stringify(formState.sourceStactics);
console.log("formState sourceStactics",a); console.log("formState sourceStactics", a);
message.loading({ message.loading({
content: '提交中...', content: "提交中...",
key: editKey key: editKey,
}); });
formRef.value formRef.value
.validate() .validate()
.then(() => { .then(() => {
edit(toRaw(formState)).then((response) => { edit(toRaw(formState)).then((response) => {
if (response.success) { if (response.success) {
message.success({ message
content: '保存成功', .success({
content: "保存成功",
key: editKey, key: editKey,
duration: 1 duration: 1,
}).then(() => { })
.then(() => {
cancel(); cancel();
}); });
} else { } else {
message.error({ message
.error({
content: response.msg, content: response.msg,
key: editKey, key: editKey,
duration: 1 duration: 1,
}).then(() => { })
.then(() => {
// cancel(); // cancel();
}); });
} }
});
})
.catch(error => {
console.log('error', error);
}); });
}; })
const popupScroll = () => { .catch((error) => {
console.log('popupScroll'); console.log("error", error);
}; });
const cancel = (e) => { };
formRef.value.resetFields(); const popupScroll = () => {
context.emit("close", false); console.log("popupScroll");
}; };
return { const cancel = (e) => {
formRef.value.resetFields();
context.emit("close", false);
};
return {
submit,
cancel,
formRef,
formState,
submit, directFlag,
cancel, formRules,
formRef, priority,
formState, jobFlag,
deliverSourceStactics,
popupScroll,
directFlag, labelCol: {
formRules, span: 8,
priority, },
jobFlag, wrapperCol: {
deliverSourceStactics, span: 12,
popupScroll, },
};
labelCol: { },
span: 8 });
},
wrapperCol: {
span: 12
},
};
},
});
</script> </script>

View File

@ -1,48 +1,107 @@
<template> <template>
<a-modal :open="visible" title="新增搬运类型" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel"> <a-modal
<a-form ref="formRef" :model="formState" :rules="formRules" :label-col="labelCol" :wrapper-col="wrapperCol"> :open="visible"
<a-form-item ref="deliver" label="搬运类型" name="deliver"> title="新增搬运类型"
<a-input v-model:value="formState.deliver" placeholder="请输入搬运类型描述" /> cancelText="取消"
</a-form-item> okText="提交"
<a-form-item ref="deliverDesc" label="搬运类型描述" name="deliverDesc"> @ok="submit"
<a-input v-model:value="formState.deliverDesc" placeholder="请输入搬运类型描述" /> @cancel="cancel"
</a-form-item> >
<a-form-item ref="sourceStactics" label="源策略" name="sourceStactics"> <a-form
<a-input v-model:value="formState.sourceStactics" placeholder="请输入源策略" /> ref="formRef"
</a-form-item> :model="formState"
<a-form-item ref="targetStactics" label="目标策略" name="targetStactics"> :rules="formRules"
<a-input v-model:value="formState.targetStactics" placeholder="请输入目标策略" /> layout="vertical"
</a-form-item> >
<a-form-item ref="sourceLoc" label="源位置" name="sourceLoc"> <a-row :gutter="[16, 0]">
<a-input v-model:value="formState.sourceLoc" placeholder="请输入源位置" /> <a-col :span="12">
</a-form-item> <a-form-item ref="deliver" label="搬运类型" name="deliver">
<a-form-item ref="targetLoc" label="目标位置" name="targetLoc"> <a-input
<a-input v-model:value="formState.targetLoc" placeholder="请输入目标位置" /> v-model:value="formState.deliver"
</a-form-item> placeholder="请输入搬运类型描述"
<a-form-item label="方向标志"> />
<a-select v-model:value="formState.directFlag" placeholder="请选择方向标志" :options="directFlag"> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :span="12">
<a-form-item label="优先级"> <a-form-item
<a-select v-model:value="formState.priority" placeholder="请选择优先级" :options="priority"> ref="deliverDesc"
</a-select> label="搬运类型描述"
</a-form-item> name="deliverDesc"
>
<a-input
v-model:value="formState.deliverDesc"
placeholder="请输入搬运类型描述"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
ref="sourceStactics"
label="源策略"
name="sourceStactics"
>
<a-input
v-model:value="formState.sourceStactics"
placeholder="请输入源策略"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
ref="targetStactics"
label="目标策略"
name="targetStactics"
>
<a-input
v-model:value="formState.targetStactics"
placeholder="请输入目标策略"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="sourceLoc" label="源位置" name="sourceLoc">
<a-input
v-model:value="formState.sourceLoc"
placeholder="请输入源位置"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item ref="targetLoc" label="目标位置" name="targetLoc">
<a-input
v-model:value="formState.targetLoc"
placeholder="请输入目标位置"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="方向标志">
<a-select
v-model:value="formState.directFlag"
placeholder="请选择方向标志"
:options="directFlag"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="优先级">
<a-select
v-model:value="formState.priority"
placeholder="请选择优先级"
:options="priority"
>
</a-select>
</a-form-item>
</a-col>
</a-row>
</a-form> </a-form>
</a-modal> </a-modal>
</template> </template>
<script> <script>
import { import { message } from "@hwork/ant-design-vue";
message import { save } from "@/api/wms/deliverType";
} from '@hwork/ant-design-vue'; import { defineComponent, reactive, ref, toRaw } from "vue";
import {
save
} from "@/api/wms/deliverType";
import {
defineComponent,
reactive,
ref,
toRaw
} from "vue";
export default defineComponent({ export default defineComponent({
props: { props: {
visible: { visible: {
@ -51,7 +110,6 @@ export default defineComponent({
}, },
emit: ["close"], emit: ["close"],
setup(props, context) { setup(props, context) {
const formRef = ref(); const formRef = ref();
const state = reactive({}); const state = reactive({});
@ -66,89 +124,110 @@ export default defineComponent({
label: '机械手', label: '机械手',
}]); */ }]); */
const directFlag = ref([{ const directFlag = ref([
value: 'In', {
label: '入库', value: "In",
}, { label: "入库",
value: 'Out', },
label: '出库', {
}, { value: "Out",
value: 'Move', label: "出库",
label: '移库', },
}]); {
value: "Move",
label: "移库",
},
]);
const priority = ref([{ const priority = ref([
value: '1', {
label: '正常', value: "1",
}, { label: "正常",
value: '0', },
label: '低', {
}, { value: "0",
value: '2', label: "低",
label: '高', },
}]); {
value: "2",
label: "高",
},
]);
const formRules = { const formRules = {
deliver: [{ deliver: [
required: true, {
message: '请输入搬运类型(必填)', required: true,
trigger: 'blur' message: "请输入搬运类型(必填)",
}], trigger: "blur",
priority: [{ },
required: true, ],
message: '请选择优先级(必填)', priority: [
trigger: 'change' {
}], required: true,
sourceLoc: [{ message: "请选择优先级(必填)",
required: true, trigger: "change",
message: '请输入原位置(必填)', },
trigger: 'blur' ],
}], sourceLoc: [
targetLoc: [{ {
required: true, required: true,
message: '请输入目标位置(必选)', message: "请输入原位置(必填)",
trigger: 'blur' trigger: "blur",
}], },
directFlag: [{ ],
required: true, targetLoc: [
message: '请选择方向标志(必选)', {
trigger: 'change' required: true,
}], message: "请输入目标位置(必选)",
trigger: "blur",
},
],
directFlag: [
{
required: true,
message: "请选择方向标志(必选)",
trigger: "change",
},
],
}; };
const saveKey = "save"; const saveKey = "save";
const submit = (e) => { const submit = (e) => {
message.loading({ message.loading({
content: '提交中...', content: "提交中...",
key: saveKey key: saveKey,
}); });
formRef.value formRef.value
.validate() .validate()
.then(() => { .then(() => {
save(toRaw(formState)).then((response) => { save(toRaw(formState)).then((response) => {
if (response.success) { if (response.success) {
message.success({ message
content: '保存成功', .success({
key: saveKey, content: "保存成功",
duration: 1 key: saveKey,
}).then(() => { duration: 1,
cancel(); })
}); .then(() => {
cancel();
});
} else { } else {
message.error({ message
content: response.msg, .error({
key: saveKey, content: response.msg,
duration: 1 key: saveKey,
}).then(() => { duration: 1,
// cancel(); })
}); .then(() => {
// cancel();
});
} }
}); });
}) })
.catch(error => { .catch((error) => {
console.log('error', error); console.log("error", error);
}); });
}; };
@ -157,7 +236,6 @@ export default defineComponent({
context.emit("close", false); context.emit("close", false);
}; };
return { return {
state, state,
submit, submit,
@ -169,10 +247,10 @@ export default defineComponent({
priority, priority,
labelCol: { labelCol: {
span: 8 span: 8,
}, },
wrapperCol: { wrapperCol: {
span: 12 span: 12,
}, },
}; };
}, },