| | |
| | | import { useVbenModal } from '@vben/common-ui'; |
| | | import { $t } from '@vben/locales'; |
| | | |
| | | import { MesPdTechConfirmStatusEnum } from '#/packages/constants/src'; |
| | | |
| | | import { message } from 'ant-design-vue'; |
| | | |
| | | import { useVbenForm } from '#/adapter/form'; |
| | |
| | | return; |
| | | } |
| | | modalApi.lock(); |
| | | // 提交表单 |
| | | const data = (await formApi.getValues()) as MesPdTechConfirmApi.TechConfirm; |
| | | // 提交表单:只提交用户可填写的业务字段,状态与流程派生字段由后端按流程推进,不回传 |
| | | const { |
| | | status, |
| | | drafterId, |
| | | drafterName, |
| | | draftTime, |
| | | reviewerId, |
| | | reviewerName, |
| | | reviewTime, |
| | | reviewRemark, |
| | | customerConfirmUser, |
| | | customerConfirmTime, |
| | | ...values |
| | | } = await formApi.getValues(); |
| | | const data = values as MesPdTechConfirmApi.TechConfirm; |
| | | try { |
| | | await (data.id ? updateTechConfirm(data) : createTechConfirm(data)); |
| | | // 关闭并提示 |
| | |
| | | // 加载数据 |
| | | const data = modalApi.getData<{ formType: FormType; id?: number }>(); |
| | | formType.value = data.formType; |
| | | formApi.setState({ schema: useFormSchema(formApi) }); |
| | | formApi.setState({ schema: useFormSchema(formType.value, formApi) }); |
| | | formApi.setDisabled(formType.value === 'detail'); |
| | | modalApi.setState({ showConfirmButton: formType.value !== 'detail' }); |
| | | if (!data?.id) { |
| | |
| | | formData.value = await getTechConfirm(data.id); |
| | | // 设置到 values |
| | | await formApi.setValues(formData.value); |
| | | // 仅草稿与审核不通过可修改;待审核 / 已审核 / 客户已确认为锁定或终态 |
| | | const editable = |
| | | formData.value?.status === MesPdTechConfirmStatusEnum.DRAFT || |
| | | formData.value?.status === MesPdTechConfirmStatusEnum.REJECTED; |
| | | if (!editable) { |
| | | formApi.setDisabled(true); |
| | | modalApi.setState({ showConfirmButton: false }); |
| | | } |
| | | } finally { |
| | | modalApi.unlock(); |
| | | } |