diff --git a/src/views/mes/wm/salesnotice/SalesNoticeForm.vue b/src/views/mes/wm/salesnotice/SalesNoticeForm.vue index 998e47834..0346b2228 100644 --- a/src/views/mes/wm/salesnotice/SalesNoticeForm.vue +++ b/src/views/mes/wm/salesnotice/SalesNoticeForm.vue @@ -11,28 +11,40 @@ - + - + - + - + @@ -43,7 +55,7 @@ value-format="x" placeholder="请选择发货日期" class="!w-1/1" - :disabled="isDetail" + :disabled="isHeaderReadonly" /> @@ -51,24 +63,41 @@ - + - + - + - + @@ -90,6 +119,9 @@ > 提 交 + + 执行出库 + 关 闭 @@ -106,17 +138,19 @@ defineOptions({ name: 'SalesNoticeForm' }) const emit = defineEmits(['success']) const message = useMessage() // 消息弹窗 - const dialogVisible = ref(false) // 弹窗的是否展示 const formLoading = ref(false) // 表单的加载中 -const formType = ref('create') // 表单的类型:create / update / detail +const formType = ref('create') // 表单的类型:create / update / finish / detail const isEditable = computed(() => ['create', 'update'].includes(formType.value)) // 是否为编辑模式 -const isDetail = computed(() => formType.value === 'detail') // 是否为详情模式 +const isFinish = computed(() => formType.value === 'finish') // 是否为执行出库模式 +const isDetail = computed(() => ['detail', 'finish'].includes(formType.value)) // 是否为详情模式 +const isHeaderReadonly = computed(() => ['detail', 'finish'].includes(formType.value)) // 是否只读 const dialogTitle = computed(() => { const titles: Record = { create: '新增发货通知单', - update: '修改发货通知单', - detail: '查看发货通知单' + update: '编辑发货通知单', + finish: '执行出库', + detail: '发货通知单详情' } return titles[formType.value] || formType.value }) @@ -154,6 +188,7 @@ const open = async (type: string, id?: number) => { dialogVisible.value = true formType.value = type resetForm() + // 修改/详情时,加载数据 if (id) { formLoading.value = true try { @@ -168,13 +203,16 @@ const open = async (type: string, id?: number) => { /** 提交表单(create/update 模式) */ const submitForm = async () => { + // 校验表单 await formRef.value.validate() + // 提交请求 formLoading.value = true try { const data = formData.value as unknown as WmSalesNoticeVO if (formType.value === 'create') { const res = await WmSalesNoticeApi.createSalesNotice(data) message.success('新增成功') + // 创建成功后,更新表单数据和状态为编辑模式 formData.value.id = res formData.value.status = MesWmSalesNoticeStatusEnum.PREPARE formType.value = 'update' @@ -184,6 +222,7 @@ const submitForm = async () => { } // 更新快照 originalFormData.value = JSON.stringify(formData.value) + // 发送操作成功的事件 emit('success') } finally { formLoading.value = false @@ -192,6 +231,7 @@ const submitForm = async () => { /** 提交操作:表单修改过则先保存,再提交 */ const handleSubmit = async () => { + // 校验表单 await formRef.value.validate() try { await message.confirm('确认提交该发货通知单?【提交后将不能修改】') @@ -212,6 +252,11 @@ const handleSubmit = async () => { } } +/** 执行出库操作(暂未实现) */ +const handleFinish = () => { + message.info('执行出库功能暂时不支持,敬请期待!') +} + /** 重置表单 */ const resetForm = () => { formData.value = { diff --git a/src/views/mes/wm/salesnotice/index.vue b/src/views/mes/wm/salesnotice/index.vue index 77c700dd8..606bf095a 100644 --- a/src/views/mes/wm/salesnotice/index.vue +++ b/src/views/mes/wm/salesnotice/index.vue @@ -35,19 +35,7 @@ /> - - - + 搜索 @@ -77,9 +65,9 @@ @@ -100,8 +88,9 @@ - + @@ -145,23 +135,22 @@