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 @@
-
+
{{ scope.row.noticeCode }}
-
+
@@ -100,8 +88,9 @@
-
+
+
编辑
-
- 提交
-
删除
+
+
+ 执行出库
+
@@ -145,23 +135,22 @@