hgwms-2098 fix 货拉管理弹窗修改

hwork-master^2
A0066811 2025-11-07 14:10:35 +08:00
parent 087b9aa7b3
commit 65b8f5d368
2 changed files with 840 additions and 672 deletions

View File

@ -1,388 +1,468 @@
<template> <template>
<a-modal :open="visible" title="编辑货位" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel" :width='1200'> <a-drawer :open="visible" title="编辑货位">
<a-form ref="formRef" :model="formState" :rules="formRules" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form
<div> ref="formRef"
<page-layout> :model="formState"
<a-row :gutter="[0, 0]"> :rules="formRules"
<a-col :span="24"> layout="vertical"
<a-row> style="padding: 0 8px"
<a-col :span="8"> >
<a-form-item ref="locCode" label="位置编号" name="locCode"> <a-row :gutter="[16, 0]">
<a-input v-model:value="formState.locCode" placeholder="请输入位置编号" /> <a-col :span="12">
</a-form-item> <a-form-item ref="locCode" label="位置编号" name="locCode">
</a-col> <a-input
<a-col :span="8"> v-model:value="formState.locCode"
<a-form-item ref="locName" label="位置描述" name="locName"> placeholder="请输入位置编号"
<a-input v-model:value="formState.locName" placeholder="请输入位置描述" /> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="12">
<a-form-item ref="houseCode" label="仓库号" name="houseCode"> <a-form-item ref="locName" label="位置描述" name="locName">
<a-input v-model:value="formState.houseCode" placeholder="请输入仓库号" /> <a-input
</a-form-item> v-model:value="formState.locName"
</a-col> placeholder="请输入位置描述"
</a-row> />
<a-row> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item ref="houseName" label="仓库名称" name="houseName"> <a-col :span="12">
<a-input v-model:value="formState.houseName" placeholder="请输入仓库名称" /> <a-form-item ref="houseCode" label="仓库号" name="houseCode">
</a-form-item> <a-input
</a-col> v-model:value="formState.houseCode"
<a-col :span="8"> placeholder="请输入仓库号"
<a-form-item ref="parentCode" label="父编号" name="parentCode"> />
<a-input v-model:value="formState.parentCode" placeholder="请输入父编号" /> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :span="12">
<a-col :span="8"> <a-form-item ref="houseName" label="仓库名称" name="houseName">
<a-form-item ref="locRelation" label="关联位置" name="locRelation"> <a-input
<a-input v-model:value="formState.locRelation" placeholder="请输入关联位置" /> v-model:value="formState.houseName"
</a-form-item> placeholder="请输入仓库名称"
</a-col> />
</a-row> </a-form-item>
<a-row> </a-col>
<a-col :span="8"> <a-col :span="12">
<a-form-item ref="locWcs" label="WCS位置编号" name="locWcs"> <a-form-item ref="parentCode" label="父编号" name="parentCode">
<a-input v-model:value="formState.locWcs" placeholder="请输入WCS位置编号" /> <a-input
</a-form-item> v-model:value="formState.parentCode"
</a-col> placeholder="请输入父编号"
<a-col :span="8"> />
<a-form-item label="位置类型" name="locType"> </a-form-item>
<a-select v-model:value="formState.locType" placeholder="请选择位置类型" :options="locTypeOption"> </a-col>
</a-select> <a-col :span="12">
</a-form-item> <a-form-item ref="locRelation" label="关联位置" name="locRelation">
</a-col> <a-input
<a-col :span="8"> v-model:value="formState.locRelation"
<a-form-item label="货位高矮类型" name="locHighType"> placeholder="请输入关联位置"
<a-select v-model:value="formState.locHighType" placeholder="请选择货位高矮类型" />
:options="locHighTypeOption"> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item ref="locWcs" label="WCS位置编号" name="locWcs">
</a-row> <a-input
<a-row> v-model:value="formState.locWcs"
<a-col :span="8"> placeholder="请输入WCS位置编号"
<a-form-item label="货位大小" name="locSizeType"> />
<a-select v-model:value="formState.locSizeType" placeholder="请选择货位大小" :options="locSizeTypeOption"> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item label="位置类型" name="locType">
<a-col :span="8"> <a-select
<a-form-item ref="row" label="排" name="row"> v-model:value="formState.locType"
<a-input v-model:value="formState.row" placeholder="请输入排" /> placeholder="请选择位置类型"
</a-form-item> :options="locTypeOption"
</a-col> >
<a-col :span="8"> </a-select>
<a-form-item ref="col" label="列" name="col"> </a-form-item>
<a-input v-model:value="formState.col" placeholder="请输入列" /> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item label="货位高矮类型" name="locHighType">
</a-row> <a-select
<a-row> v-model:value="formState.locHighType"
<a-col :span="8"> placeholder="请选择货位高矮类型"
<a-form-item ref="layer" label="层" name="layer"> :options="locHighTypeOption"
<a-input v-model:value="formState.layer" placeholder="请输入层" /> >
</a-form-item> </a-select>
</a-col> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item ref="trackCode" label="巷道号" name="trackCode"> <a-col :span="12">
<a-input v-model:value="formState.trackCode" placeholder="请输入巷道号" /> <a-form-item label="货位大小" name="locSizeType">
</a-form-item> <a-select
</a-col> v-model:value="formState.locSizeType"
<a-col :span="8"> placeholder="请选择货位大小"
<a-form-item ref="channelCode" label="通道号" name="channelCode"> :options="locSizeTypeOption"
<a-input v-model:value="formState.channelCode" placeholder="请输入通道号" /> >
</a-form-item> </a-select>
</a-col> </a-form-item>
</a-row> </a-col>
<a-row> <a-col :span="12">
<a-col :span="8"> <a-form-item ref="row" label="排" name="row">
<a-form-item ref="area" label="位置分区" name="area"> <a-input v-model:value="formState.row" placeholder="请输入排" />
<a-input v-model:value="formState.area" placeholder="请输入位置分区" /> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :span="12">
<a-col :span="8"> <a-form-item ref="col" label="列" name="col">
<a-form-item ref="channelType" label="通道类型" name="channelType"> <a-input v-model:value="formState.col" placeholder="请输入列" />
<a-input v-model:value="formState.channelType" placeholder="请输入通道类型" /> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :span="12">
<a-col :span="8"> <a-form-item ref="layer" label="层" name="layer">
<a-form-item label="位置状态" name="locStatus"> <a-input v-model:value="formState.layer" placeholder="请输入层" />
<a-select v-model:value="formState.locStatus" placeholder="请选择位置状态" :options="locStatusOption"> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item ref="trackCode" label="巷道号" name="trackCode">
</a-row> <a-input
<a-row> v-model:value="formState.trackCode"
<a-col :span="8"> placeholder="请输入巷道号"
<a-form-item label="存储状态" name="storeStatus"> />
<a-select v-model:value="formState.storeStatus" placeholder="请选择存储状态" :options="storeStatusOption"> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item ref="channelCode" label="通道号" name="channelCode">
<a-col :span="8"> <a-input
<a-form-item label="优先级" name="priority"> v-model:value="formState.channelCode"
<a-select v-model:value="formState.priority" placeholder="请选择优先级" :options="locPriority"> placeholder="请输入通道号"
</a-select> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="12">
<a-form-item label="备注" name="remark"> <a-form-item ref="area" label="位置分区" name="area">
<a-textarea v-model:value="formState.remark" /> <a-input
</a-form-item> v-model:value="formState.area"
</a-col> placeholder="请输入位置分区"
</a-row> />
<a-row> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item label="Mes工位号" name="ext1"> <a-col :span="12">
<a-input v-model:value="formState.ext1" /> <a-form-item ref="channelType" label="通道类型" name="channelType">
</a-form-item> <a-input
</a-col> v-model:value="formState.channelType"
</a-row> placeholder="请输入通道类型"
</a-col> />
</a-row> </a-form-item>
</page-layout> </a-col>
</div> <a-col :span="12">
<a-form-item label="位置状态" name="locStatus">
<a-select
v-model:value="formState.locStatus"
placeholder="请选择位置状态"
:options="locStatusOption"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="存储状态" name="storeStatus">
<a-select
v-model:value="formState.storeStatus"
placeholder="请选择存储状态"
:options="storeStatusOption"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="优先级" name="priority">
<a-select
v-model:value="formState.priority"
placeholder="请选择优先级"
:options="locPriority"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="Mes工位号" name="ext1">
<a-input v-model:value="formState.ext1" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
</a-form> </a-form>
</a-modal> <template #footer>
<a-button @click="cancel"></a-button>
<a-button type="primary" @click="submit"></a-button>
</template>
</a-drawer>
</template> </template>
<script> <script>
import { import { message } from "@hwork/ant-design-vue";
message import { edit } from "@/api/wms/loc";
} from '@hwork/ant-design-vue'; import { defineComponent, reactive, ref, toRaw, watch } from "vue";
import { export default defineComponent({
edit props: {
} from "@/api/wms/loc"; visible: {
import { type: Boolean,
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({}); const locTypeOption = ref([
{
value: "Point",
label: "道路",
},
{
value: "Loc",
label: "货位",
},
{
value: "Station",
label: "站台",
},
{
value: "Area",
label: "区域",
},
]);
const locTypeOption = ref([{ const locHighTypeOption = ref([
value: 'Point', {
label: '道路', value: "High",
}, { label: "高货位",
value: 'Loc', },
label: '货位', {
}, { value: "Short",
value: 'Station', label: "矮货位",
label: '站台', },
},{ {
value: 'Area', value: "None",
label: '区域', label: "不区分高矮",
}]); },
]);
const locHighTypeOption = ref([{ const locSizeTypeOption = ref([
value: 'High', {
label: '高货位', value: "Big",
}, { label: "大货位",
value: 'Short', },
label: '矮货位', {
}, { value: "Small",
value: 'None', label: "小货位",
label: '不区分高矮', },
}]); {
value: "None",
label: "不区分大小",
},
]);
const locSizeTypeOption = ref([{ const locStatusOption = ref([
value: 'Big', {
label: '大货位', value: "Normal",
}, { label: "正常",
value: 'Small', },
label: '小货位', {
}, { value: "NoIn",
value: 'None', label: "禁入",
label: '不区分大小', },
}]); {
value: "NoOut",
label: "禁出",
},
{
value: "Freeze",
label: "冻结",
},
]);
const locStatusOption = ref([{ const storeStatusOption = ref([
value: 'Normal', {
label: '正常', value: "Free",
}, { label: "空闲",
value: 'NoIn', },
label: '禁入', {
}, { value: "Load",
value: 'NoOut', label: "载货",
label: '禁出', },
}, { {
value: 'Freeze', value: "DoIn",
label: '冻结', label: "预入",
}]); },
{
value: "DoOut",
label: "预出",
},
{
value: "Fault",
label: "故障",
},
]);
const storeStatusOption = ref([{ const locPriority = ref([
value: 'Free', {
label: '空闲', value: "2",
}, { label: "高",
value: 'Load', },
label: '载货', {
}, { value: "1",
value: 'DoIn', label: "中",
label: '预入', },
}, { {
value: 'DoOut', value: "0",
label: '预出', label: "低",
}, { },
value: 'Fault', ]);
label: '故障',
}]);
const locPriority = ref([{ watch(props, (props) => {
value: '2', formState.id = props.record.id;
label: '高', formState.locCode = props.record.locCode;
}, { formState.locName = props.record.locName;
value: '1', formState.houseCode = props.record.houseCode;
label: '中', formState.houseName = props.record.houseName;
}, { formState.parentCode = props.record.parentCode;
value: '0', formState.locRelation = props.record.locRelation;
label: '低', formState.locWcs = props.record.locWcs;
}]); formState.locType = props.record.locType;
formState.locHighType = props.record.locHighType;
formState.locSizeType = props.record.locSizeType;
formState.row = props.record.row;
formState.col = props.record.col;
formState.layer = props.record.layer;
formState.trackCode = props.record.trackCode;
formState.channelCode = props.record.channelCode;
formState.area = props.record.area;
formState.channelType = props.record.channelType;
formState.locStatus = props.record.locStatus;
formState.storeStatus = props.record.storeStatus;
formState.priority = props.record.priority;
formState.ext1 = props.record.ext1;
});
watch(props, (props) => { const formRules = {
formState.id = props.record.id locCode: [
formState.locCode = props.record.locCode; {
formState.locName = props.record.locName;
formState.houseCode = props.record.houseCode;
formState.houseName = props.record.houseName;
formState.parentCode = props.record.parentCode;
formState.locRelation = props.record.locRelation;
formState.locWcs = props.record.locWcs;
formState.locType = props.record.locType;
formState.locHighType = props.record.locHighType;
formState.locSizeType = props.record.locSizeType;
formState.row = props.record.row;
formState.col = props.record.col;
formState.layer = props.record.layer;
formState.trackCode = props.record.trackCode;
formState.channelCode = props.record.channelCode;
formState.area = props.record.area;
formState.channelType = props.record.channelType;
formState.locStatus = props.record.locStatus;
formState.storeStatus = props.record.storeStatus;
formState.priority = props.record.priority;
formState.ext1 =props.record.ext1;
})
const formRules = {
locCode: [{
required: true, required: true,
message: '请输入locCode(必填)', message: "请输入locCode(必填)",
trigger: 'blur' trigger: "blur",
}], },
locName: [{ ],
locName: [
{
required: true, required: true,
message: '请输入位置描述(必填)', message: "请输入位置描述(必填)",
trigger: 'blur' trigger: "blur",
}], },
parentCode: [{ ],
parentCode: [
{
required: true, required: true,
message: '请输入父编号(必填)', message: "请输入父编号(必填)",
trigger: 'blur' trigger: "blur",
}], },
locWcs: [{ ],
locWcs: [
{
required: true, required: true,
message: '请输入WCS位置编号(必填)', message: "请输入WCS位置编号(必填)",
trigger: 'blur' trigger: "blur",
}], },
locType: [{ ],
locType: [
{
required: true, required: true,
message: '请输入位置类型(必填)', message: "请输入位置类型(必填)",
trigger: 'blur' trigger: "blur",
}], },
channelType: [{ ],
channelType: [
{
required: true, required: true,
message: '请输入通道类型(必填)', message: "请输入通道类型(必填)",
trigger: 'blur' trigger: "blur",
}], },
locStatus: [{ ],
locStatus: [
{
required: true, required: true,
message: '请输入位置状态(必填)', message: "请输入位置状态(必填)",
trigger: 'blur' trigger: "blur",
}], },
storeStatus: [{ ],
storeStatus: [
{
required: true, required: true,
message: '请输入存储状态(必填)', message: "请输入存储状态(必填)",
trigger: 'blur' trigger: "blur",
}], },
}; ],
};
const editKey = "add"; const editKey = "add";
const submit = (e) => { const submit = (e) => {
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);
}); });
}; })
.catch((error) => {
console.log("error", error);
});
};
const cancel = (e) => { const cancel = (e) => {
formRef.value.resetFields(); formRef.value.resetFields();
context.emit("close", false); context.emit("close", false);
}; };
return { return {
submit,
cancel,
formRef,
formState,
formRules,
submit, locTypeOption,
cancel, locHighTypeOption,
formRef, locSizeTypeOption,
formState, locStatusOption,
formRules, storeStatusOption,
locPriority,
locTypeOption, labelCol: {
locHighTypeOption, span: 8,
locSizeTypeOption, },
locStatusOption, wrapperCol: {
storeStatusOption, span: 12,
locPriority, },
};
labelCol: { },
span: 8 });
},
wrapperCol: {
span: 12
},
};
},
});
</script> </script>

View File

@ -1,358 +1,446 @@
<template> <template>
<a-modal :open="visible" title="新增货位" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel" :width='1200'> <a-drawer
<a-form ref="formRef" :model="formState" :rules="formRules" :label-col="labelCol" :wrapper-col="wrapperCol"> :open="visible"
<div> title="新增货位"
<page-layout> >
<a-row :gutter="[0, 0]"> <a-form
<a-col :span="24"> ref="formRef"
<a-row> :model="formState"
<a-col :span="8"> :rules="formRules"
<a-form-item ref="locCode" label="位置编号" name="locCode"> layout="vertical"
<a-input v-model:value="formState.locCode" placeholder="请输入位置编号" /> style="padding: 0 8px"
</a-form-item> >
</a-col> <!-- <div> -->
<a-col :span="8"> <!-- <page-layout> -->
<a-form-item ref="locName" label="位置描述" name="locName"> <a-row :gutter="[16, 0]">
<a-input v-model:value="formState.locName" placeholder="请输入位置描述" /> <a-col :span="12">
</a-form-item> <a-form-item ref="locCode" label="位置编号" name="locCode">
</a-col> <a-input
<a-col :span="8"> v-model:value="formState.locCode"
<a-form-item ref="houseCode" label="仓库号" name="houseCode"> placeholder="请输入位置编号"
<a-input v-model:value="formState.houseCode" placeholder="请输入仓库号" /> />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> <a-col :span="12">
<a-row> <a-form-item ref="locName" label="位置描述" name="locName">
<a-col :span="8"> <a-input
<a-form-item ref="houseName" label="仓库名称" name="houseName"> v-model:value="formState.locName"
<a-input v-model:value="formState.houseName" placeholder="请输入仓库名称" /> placeholder="请输入位置描述"
</a-form-item> />
</a-col> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item ref="parentCode" label="父编号" name="parentCode"> <a-col :span="12">
<a-input v-model:value="formState.parentCode" placeholder="请输入父编号" /> <a-form-item ref="houseCode" label="仓库号" name="houseCode">
</a-form-item> <a-input
</a-col> v-model:value="formState.houseCode"
<a-col :span="8"> placeholder="请输入仓库号"
<a-form-item ref="locRelation" label="关联位置" name="locRelation"> />
<a-input v-model:value="formState.locRelation" placeholder="请输入关联位置" /> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :span="12">
</a-row> <a-form-item ref="houseName" label="仓库名称" name="houseName">
<a-row> <a-input
<a-col :span="8"> v-model:value="formState.houseName"
<a-form-item ref="locWcs" label="WCS位置编号" name="locWcs"> placeholder="请输入仓库名称"
<a-input v-model:value="formState.locWcs" placeholder="请输入WCS位置编号" /> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="12">
<a-form-item label="位置类型" name="locType"> <a-form-item ref="parentCode" label="父编号" name="parentCode">
<a-select v-model:value="formState.locType" placeholder="请选择位置类型" :options="locTypeOption"> <a-input
</a-select> v-model:value="formState.parentCode"
</a-form-item> placeholder="请输入父编号"
</a-col> />
<a-col :span="8"> </a-form-item>
<a-form-item label="货位高矮类型" name="locHighType"> </a-col>
<a-select v-model:value="formState.locHighType" placeholder="请选择货位高矮类型" <a-col :span="12">
:options="locHighTypeOption"> <a-form-item ref="locRelation" label="关联位置" name="locRelation">
</a-select> <a-input
</a-form-item> v-model:value="formState.locRelation"
</a-col> placeholder="请输入关联位置"
</a-row> />
<a-row> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item label="货位大小" name="locSizeType"> <a-col :span="12">
<a-select v-model:value="formState.locSizeType" placeholder="请选择货位大小" :options="locSizeTypeOption"> <a-form-item ref="locWcs" label="WCS位置编号" name="locWcs">
</a-select> <a-input
</a-form-item> v-model:value="formState.locWcs"
</a-col> placeholder="请输入WCS位置编号"
<a-col :span="8"> />
<a-form-item ref="row" label="排" name="row"> </a-form-item>
<a-input v-model:value="formState.row" placeholder="请输入排" /> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item label="位置类型" name="locType">
<a-col :span="8"> <a-select
<a-form-item ref="col" label="列" name="col"> v-model:value="formState.locType"
<a-input v-model:value="formState.col" placeholder="请输入列" /> placeholder="请选择位置类型"
</a-form-item> :options="locTypeOption"
</a-col> >
</a-row> </a-select>
<a-row> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item ref="layer" label="层" name="layer"> <a-col :span="12">
<a-input v-model:value="formState.layer" placeholder="请输入层" /> <a-form-item label="货位高矮类型" name="locHighType">
</a-form-item> <a-select
</a-col> v-model:value="formState.locHighType"
<a-col :span="8"> placeholder="请选择货位高矮类型"
<a-form-item ref="trackCode" label="巷道号" name="trackCode"> :options="locHighTypeOption"
<a-input v-model:value="formState.trackCode" placeholder="请输入巷道号" /> >
</a-form-item> </a-select>
</a-col> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item ref="channelCode" label="通道号" name="channelCode"> <a-col :span="12">
<a-input v-model:value="formState.channelCode" placeholder="请输入通道号" /> <a-form-item label="货位大小" name="locSizeType">
</a-form-item> <a-select
</a-col> v-model:value="formState.locSizeType"
</a-row> placeholder="请选择货位大小"
<a-row> :options="locSizeTypeOption"
<a-col :span="8"> >
<a-form-item ref="area" label="位置分区" name="area"> </a-select>
<a-input v-model:value="formState.area" placeholder="请输入位置分区" /> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :span="12">
<a-col :span="8"> <a-form-item ref="row" label="排" name="row">
<a-form-item ref="channelType" label="通道类型" name="channelType"> <a-input v-model:value="formState.row" placeholder="请输入排" />
<a-input v-model:value="formState.channelType" placeholder="请输入通道类型" /> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :span="12">
<a-col :span="8"> <a-form-item ref="col" label="列" name="col">
<a-form-item label="位置状态" name="locStatus"> <a-input v-model:value="formState.col" placeholder="请输入列" />
<a-select v-model:value="formState.locStatus" placeholder="请选择位置状态" :options="locStatusOption"> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :span="12">
</a-col> <a-form-item ref="layer" label="层" name="layer">
</a-row> <a-input v-model:value="formState.layer" placeholder="请输入层" />
<a-row> </a-form-item>
<a-col :span="8"> </a-col>
<a-form-item label="存储状态" name="storeStatus"> <a-col :span="12">
<a-select v-model:value="formState.storeStatus" placeholder="请选择存储状态" :options="storeStatusOption"> <a-form-item ref="trackCode" label="巷道号" name="trackCode">
</a-select> <a-input
</a-form-item> v-model:value="formState.trackCode"
</a-col> placeholder="请输入巷道号"
<a-col :span="8"> />
<a-form-item label="优先级" name="priority"> </a-form-item>
<a-select v-model:value="formState.priority" placeholder="请选择优先级" :options="locPriority"> </a-col>
</a-select> <a-col :span="12">
</a-form-item> <a-form-item ref="channelCode" label="通道号" name="channelCode">
</a-col> <a-input
<a-col :span="8"> v-model:value="formState.channelCode"
<a-form-item label="备注" name="remark"> placeholder="请输入通道号"
<a-textarea v-model:value="formState.remark" /> />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> <a-col :span="12">
<a-row> <a-form-item ref="area" label="位置分区" name="area">
<a-col :span="8"> <a-input
<a-form-item label="Mes工位号" name="ext1"> v-model:value="formState.area"
<a-input v-model:value="formState.ext1" /> placeholder="请输入位置分区"
</a-form-item> />
</a-col> </a-form-item>
</a-row> </a-col>
</a-col> <a-col :span="12">
</a-row> <a-form-item ref="channelType" label="通道类型" name="channelType">
</page-layout> <a-input
</div> v-model:value="formState.channelType"
placeholder="请输入通道类型"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="位置状态" name="locStatus">
<a-select
v-model:value="formState.locStatus"
placeholder="请选择位置状态"
:options="locStatusOption"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="存储状态" name="storeStatus">
<a-select
v-model:value="formState.storeStatus"
placeholder="请选择存储状态"
:options="storeStatusOption"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="优先级" name="priority">
<a-select
v-model:value="formState.priority"
placeholder="请选择优先级"
:options="locPriority"
>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="Mes工位号" name="ext1">
<a-input v-model:value="formState.ext1" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-col>
</a-row>
<!-- </page-layout> -->
<!-- </div> -->
</a-form> </a-form>
</a-modal> <template #footer>
<a-button @click="cancel"></a-button>
<a-button type="primary" @click="submit"></a-button>
</template>
</a-drawer>
</template> </template>
<script> <script>
import { import { message } from "@hwork/ant-design-vue";
message import { save } from "@/api/wms/loc";
} from '@hwork/ant-design-vue'; import { defineComponent, reactive, ref, toRaw } from "vue";
import { export default defineComponent({
save props: {
} from "@/api/wms/loc"; visible: {
import { type: Boolean,
defineComponent,
reactive,
ref,
toRaw
} from "vue";
export default defineComponent({
props: {
visible: {
type: Boolean,
},
}, },
emit: ["close"], },
setup(props, context) { emit: ["close"],
setup(props, context) {
const formRef = ref();
const formRef = ref(); const state = reactive({});
const state = reactive({}); const formState = reactive({});
const formState = reactive({}); const locTypeOption = ref([
{
value: "Point",
label: "货道",
},
{
value: "Loc",
label: "货位",
},
{
value: "Area",
label: "区域",
},
]);
const locTypeOption = ref([{ const locHighTypeOption = ref([
value: 'Point', {
label: '货道', value: "High",
}, { label: "高货位",
value: 'Loc', },
label: '货位', {
}, { value: "Short",
value: 'Area', label: "矮货位",
label: '区域', },
}]); {
value: "None",
label: "不区分高矮",
},
]);
const locHighTypeOption = ref([{ const locSizeTypeOption = ref([
value: 'High', {
label: '高货位', value: "Big",
}, { label: "大货位",
value: 'Short', },
label: '矮货位', {
}, { value: "Small",
value: 'None', label: "小货位",
label: '不区分高矮', },
}]); {
value: "None",
label: "不区分大小",
},
]);
const locSizeTypeOption = ref([{ const locStatusOption = ref([
value: 'Big', {
label: '大货位', value: "Normal",
}, { label: "正常",
value: 'Small', },
label: '小货位', {
}, { value: "NoIn",
value: 'None', label: "禁入",
label: '不区分大小', },
}]); {
value: "NoOut",
label: "禁出",
},
{
value: "Freeze",
label: "冻结",
},
]);
const locStatusOption = ref([{ const storeStatusOption = ref([
value: 'Normal', {
label: '正常', value: "Free",
}, { label: "空闲",
value: 'NoIn', },
label: '禁入', {
}, { value: "Load",
value: 'NoOut', label: "载货",
label: '禁出', },
}, { {
value: 'Freeze', value: "DoIn",
label: '冻结', label: "预入",
}]); },
{
value: "DoOut",
label: "预出",
},
{
value: "Fault",
label: "故障",
},
]);
const storeStatusOption = ref([{ const locPriority = ref([
value: 'Free', {
label: '空闲', value: "2",
}, { label: "高",
value: 'Load', },
label: '载货', {
}, { value: "1",
value: 'DoIn', label: "中",
label: '预入', },
}, { {
value: 'DoOut', value: "0",
label: '预出', label: "低",
}, { },
value: 'Fault', ]);
label: '故障',
}]);
const locPriority = ref([{ const formRules = {
value: '2', locCode: [
label: '高', {
}, {
value: '1',
label: '中',
}, {
value: '0',
label: '低',
}]);
const formRules = {
locCode: [{
required: true, required: true,
message: '请输入locCode(必填)', message: "请输入locCode(必填)",
trigger: 'blur' trigger: "blur",
}], },
locName: [{ ],
locName: [
{
required: true, required: true,
message: '请输入位置描述(必填)', message: "请输入位置描述(必填)",
trigger: 'blur' trigger: "blur",
}], },
parentCode: [{ ],
parentCode: [
{
required: true, required: true,
message: '请输入父编号(必填)', message: "请输入父编号(必填)",
trigger: 'blur' trigger: "blur",
}], },
locDcs: [{ ],
locDcs: [
{
required: true, required: true,
message: '请输入WCS位置编号(必填)', message: "请输入WCS位置编号(必填)",
trigger: 'blur' trigger: "blur",
}], },
locType: [{ ],
locType: [
{
required: true, required: true,
message: '请选择位置类型(必选)', message: "请选择位置类型(必选)",
trigger: 'blur' trigger: "blur",
}], },
channelType: [{ ],
channelType: [
{
required: true, required: true,
message: '请输入通道类型(必填)', message: "请输入通道类型(必填)",
trigger: 'blur' trigger: "blur",
}], },
locStatus: [{ ],
locStatus: [
{
required: true, required: true,
message: '请选择位置状态(必选)', message: "请选择位置状态(必选)",
trigger: 'blur' trigger: "blur",
}], },
storeStatus: [{ ],
storeStatus: [
{
required: true, required: true,
message: '请选择存储状态(必选)', message: "请选择存储状态(必选)",
trigger: 'blur' trigger: "blur",
}], },
}; ],
};
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({
content: "保存成功",
key: saveKey, key: saveKey,
duration: 1 duration: 1,
}).then(() => { })
.then(() => {
cancel(); cancel();
}); });
} else { } else {
message.error({ message
.error({
content: response.msg, content: response.msg,
key: saveKey, key: saveKey,
duration: 1 duration: 1,
}).then(() => { })
.then(() => {
// cancel(); // cancel();
}); });
} }
});
})
.catch(error => {
console.log('error', error);
}); });
}; })
.catch((error) => {
console.log("error", error);
});
};
const cancel = (e) => { const cancel = (e) => {
formRef.value.resetFields(); formRef.value.resetFields();
context.emit("close", false); context.emit("close", false);
}; };
return { return {
state, state,
submit, submit,
cancel, cancel,
formRef, formRef,
formState, formState,
formRules, formRules,
locTypeOption, locTypeOption,
locHighTypeOption, locHighTypeOption,
locSizeTypeOption, locSizeTypeOption,
locStatusOption, locStatusOption,
storeStatusOption, storeStatusOption,
locPriority, locPriority,
labelCol: { labelCol: {
span: 8 span: 8,
}, },
wrapperCol: { wrapperCol: {
span: 12 span: 12,
}, },
}; };
}, },
}); });
</script> </script>