From 1c1af9b0fc10778ae5ac13cc68fd4030affbcfe1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 10:59:53 +0800
Subject: [PATCH] feat(wm): 新增SN码管理和设备入库功能

---
 src/views/wls/returnvendor/modules/form.vue |   47 ++++++++++++-----------------------------------
 1 files changed, 12 insertions(+), 35 deletions(-)

diff --git a/src/views/wls/returnvendor/modules/form.vue b/src/views/wls/returnvendor/modules/form.vue
index 8890852..ebca15a 100644
--- a/src/views/wls/returnvendor/modules/form.vue
+++ b/src/views/wls/returnvendor/modules/form.vue
@@ -7,6 +7,7 @@
 
 import { confirm, useVbenModal } from '@vben/common-ui';
 import { MesWmReturnVendorStatusEnum } from '@vben/constants';
+import { formatDate } from '@vben/utils';
 
 import { Button, Divider, message, Popconfirm } from 'ant-design-vue';
 
@@ -17,7 +18,6 @@
   finishReturnVendor,
   getReturnVendor,
   stockReturnVendor,
-  submitReturnVendor,
   updateReturnVendor,
 } from '#/api/mes/wm/returnvendor';
 import { $t } from '#/locales';
@@ -35,12 +35,6 @@
 );
 const isStock = computed(() => formType.value === 'stock'); // 鏄惁涓烘嫞璐фā寮�
 const isFinish = computed(() => formType.value === 'finish'); // 鏄惁涓哄畬鎴愰��璐фā寮�
-const canSubmit = computed(
-  () =>
-    // 鏄惁鍙彁浜�
-    formType.value === 'update' &&
-    formData.value?.status === MesWmReturnVendorStatusEnum.PREPARE,
-);
 const getTitle = computed(() => {
   if (formType.value === 'detail') {
     return $t('ui.actionTitle.view', ['渚涘簲鍟嗛��璐у崟']);
@@ -70,28 +64,15 @@
   wrapperClass: 'grid-cols-3',
 });
 
-/** 鎻愪氦閫�璐у崟锛氳〃鍗曟湁淇敼鏃跺厛淇濆瓨锛屽啀璋冪敤鎻愪氦鎺ュ彛 */
-async function handleSubmit() {
-  const { valid } = await formApi.validate();
-  if (!valid || !formData.value?.id) {
-    return;
+function normalizeReturnDate(value: unknown): string | undefined {
+  if (Array.isArray(value) && value.length >= 3) {
+    const [year, month, day] = value;
+    return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')} 00:00:00`;
   }
-  modalApi.lock();
-  try {
-    const current = JSON.stringify(await formApi.getValues());
-    if (current !== originalSnapshot.value) {
-      const data =
-        (await formApi.getValues()) as MesWmReturnVendorApi.ReturnVendor;
-      await updateReturnVendor({ ...formData.value, ...data });
-      originalSnapshot.value = current;
-    }
-    await submitReturnVendor(formData.value.id);
-    message.success('鎻愪氦鎴愬姛');
-    await modalApi.close();
-    emit('success');
-  } finally {
-    modalApi.unlock();
+  if (typeof value === 'number' || typeof value === 'string') {
+    return formatDate(value, 'YYYY-MM-DD HH:mm:ss');
   }
+  return undefined;
 }
 
 /** 鎵ц鎷h揣锛氭嫞璐ф暟閲忎笌閫�璐ф暟閲忎笉涓�鑷存椂浜屾纭 */
@@ -187,7 +168,10 @@
       try {
         formData.value = await getReturnVendor(data.id);
         // 璁剧疆鍒� values
-        await formApi.setValues(formData.value);
+        await formApi.setValues({
+          ...formData.value,
+          returnDate: normalizeReturnDate(formData.value.returnDate),
+        });
       } finally {
         modalApi.unlock();
       }
@@ -213,13 +197,6 @@
     </template>
     <template #prepend-footer>
       <div class="flex flex-auto items-center gap-2">
-        <Popconfirm
-          v-if="canSubmit"
-          title="纭鎻愪氦璇ラ��璐у崟锛熴�愭彁浜ゅ悗灏嗕笉鑳戒慨鏀广��"
-          @confirm="handleSubmit"
-        >
-          <Button type="primary">鎻愪氦</Button>
-        </Popconfirm>
         <Button v-if="isStock" type="primary" @click="handleStock">
           鎵ц鎷h揣
         </Button>

--
Gitblit v1.9.3