From f7a6b21f67d6b9fe9a8d675399ad861fc638ff12 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周三, 07 5月 2025 16:10:36 +0800
Subject: [PATCH] 出入库记录

---
 HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx |  821 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 428 insertions(+), 393 deletions(-)

diff --git a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx
index 46cecbe..ad5c006 100644
--- a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx
+++ b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx
@@ -1,393 +1,428 @@
-import { 
-  ref, 
-  onMounted, 
-  reactive, 
-  computed, 
-  Ref, 
-  watch, 
-  SetupContext, 
-  h, 
-} from 'vue' 
-import { injectModel } from '@/libs/Provider/Provider' 
-import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' 
-import { ElMessage } from 'element-plus' 
-import isEqual from 'lodash/isEqual' 
-import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
-import { cloneDeep } from 'lodash' 
- 
-export const useWmsTaskDrawer = (props: any, ctx?: any) => { 
-  const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') 
-  /** 
-   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 
-   */ 
-  const initiateData: Ref<Record<string, any>> = ref({}) 
-  const formData = ref<Record<string, any>>({}) 
-  // ref 
-  const formRef = ref() 
- 
-  const disabled = ref(false) 
- 
-  const current = computed(() => { 
-    return props.row || null 
-  }) 
- 
-  const inputNumber = (attrs) => { 
-    return ( 
-      <el-input-number 
-        min="1" 
-        step="1" 
-        precision="0" 
-        {...attrs} 
-      ></el-input-number> 
-    ) 
-  } 
- 
-  const visible = computed({ 
-    get() { 
-      return props.modelValue 
-    }, 
-    set(val) { 
-      ctx.emit('update:modelValue', val) 
-    }, 
-  }) 
-  /** 
-   * 娣诲姞鐨刦orm瀛楁 
-   */ 
-  const formItems = reactive([ 
-                    { 
-                   label: '浠诲姟鍙�', 
-                   prop: 'taskNo', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヤ换鍔″彿', 
-              rules: [{required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], 
-                }, 
-                { 
-                   label: '浠诲姟绫诲瀷', 
-                   prop: 'taskType', 
-                   el: 'select', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', 
-              rules: [{required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], 
-                }, 
-                { 
-                   label: '浠诲姟绛夌骇', 
-                   prop: 'taskLevel', 
-                   el: (props: any, { attrs }: SetupContext) => { 
-                     return h(inputNumber, {  
-                       ...props,  
-                       clearable: true, 
-                       ...attrs,  
-                     })  
-                   },
-                   width: '100%',
-                   step: 1,
-                   precision: 0, 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', 
-              rules: [{required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], 
-                }, 
-                { 
-                   label: '浠诲姟鐘舵��', 
-                   prop: 'taskStatus', 
-                   el: 'select', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', 
-              rules: [{required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], 
-                }, 
-                { 
-                   label: '鎵樼洏缂栧彿', 
-                   prop: 'containerNo', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', 
-                }, 
-                { 
-                   label: '璧峰搴撲綅', 
-                   prop: 'sourcePlace', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', 
-                }, 
-                { 
-                   label: '鐩爣搴撲綅', 
-                   prop: 'toPlace', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', 
-                }, 
-                { 
-                   label: '宸烽亾', 
-                   prop: 'aisle', 
-                   el: (props: any, { attrs }: SetupContext) => { 
-                     return h(inputNumber, {  
-                       ...props,  
-                       clearable: true, 
-                       ...attrs,  
-                     })  
-                   },
-                   width: '100%',
-                   step: 1,
-                   precision: 0, 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ュ贩閬�', 
-                }, 
-                { 
-                   label: '鍫嗗灈鏈篒D', 
-                   prop: 'dodeviceId', 
-                   el: (props: any, { attrs }: SetupContext) => { 
-                     return h(inputNumber, {  
-                       ...props,  
-                       clearable: true, 
-                       ...attrs,  
-                     })  
-                   },
-                   width: '100%',
-                   step: 1,
-                   precision: 0, 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ュ爢鍨涙満ID', 
-                }, 
-                { 
-                   label: '璁惧绫诲瀷', 
-                   prop: 'dodevicetype', 
-                   el: (props: any, { attrs }: SetupContext) => { 
-                     return h(inputNumber, {  
-                       ...props,  
-                       clearable: true, 
-                       ...attrs,  
-                     })  
-                   },
-                   width: '100%',
-                   step: 1,
-                   precision: 0, 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヨ澶囩被鍨�', 
-              rules: [{required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], 
-                }, 
-                { 
-                   label: '璁惧浠诲姟鐘舵��', 
-                   prop: 'taskDodeviceStatus', 
-                   el: (props: any, { attrs }: SetupContext) => { 
-                     return h(inputNumber, {  
-                       ...props,  
-                       clearable: true, 
-                       ...attrs,  
-                     })  
-                   },
-                   width: '100%',
-                   step: 1,
-                   precision: 0, 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', 
-              rules: [{required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], 
-                }, 
-                { 
-                   label: 'WCS鏄惁鍙互璇诲彇', 
-                   prop: 'isRead', 
-                   el: 'select', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', 
-              rules: [{required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }], 
-                 options: [{label: '鏄�',value: 'true'}, {label: '鍚�',value: 'false'}] 
-                }, 
-                { 
-                   label: '瀛愪换鍔$被鍨�', 
-                   prop: 'sonTaskType', 
-                   el: 'select', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', 
-                }, 
-                { 
-                   label: '鏉ユ簮鍗曟嵁鍙�', 
-                   prop: 'sourceOrderNo', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', 
-                }, 
-                { 
-                   label: '涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛', 
-                   prop: 'isNextTask', 
-                   el: (props: any, { attrs }: SetupContext) => { 
-                     return h(inputNumber, {  
-                       ...props,  
-                       clearable: true, 
-                       ...attrs,  
-                     })  
-                   },
-                   width: '100%',
-                   step: 1,
-                   precision: 0, 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', 
-                }, 
-                { 
-                   label: '鍙彉鍙橀噺1', 
-                   prop: 'mutableParam1', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', 
-                }, 
-                { 
-                   label: '鍙彉鍙橀噺2', 
-                   prop: 'mutableParam2', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', 
-                }, 
-                { 
-                   label: '鍙彉鍙橀噺3', 
-                   prop: 'mutableParam3', 
-                   el: 'input', 
-                   //disabled: disabled, 
-                   placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', 
-                },  
-  ]) 
-  /** 
-   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� 
-   */ 
-  const checkIsEqualObject = () => { 
-    const data = { 
-      formData: formData.value, 
-    } 
-    const check = isEqual(initiateData.value, data) 
-    return check 
-  } 
- 
-  const onClose = (done: () => void) => { 
-    if (visible.value) { 
-      if (checkIsEqualObject()) { 
-        visible.value = false 
-        done && done() 
-      } else { 
-        ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') 
-          .then(() => { 
-            onConfirm() 
-          }) 
-          .catch(() => { 
-            visible.value = false 
-            done && done() 
-          }) 
-      } 
-    } 
-  } 
-  /** 
-   * 淇濆瓨 
-   */ 
-  const onConfirm = async () => { 
-    await formRef.value?.validate() 
-    const data = { 
-      taskNo: formData.value.taskNo, 
-taskType: formData.value.taskType, 
-taskLevel: formData.value.taskLevel, 
-taskStatus: formData.value.taskStatus, 
-containerNo: formData.value.containerNo, 
-sourcePlace: formData.value.sourcePlace, 
-toPlace: formData.value.toPlace, 
-aisle: formData.value.aisle, 
-dodeviceId: formData.value.dodeviceId, 
-dodevicetype: formData.value.dodevicetype, 
-taskDodeviceStatus: formData.value.taskDodeviceStatus, 
-isRead: formData.value.isRead, 
-sonTaskType: formData.value.sonTaskType, 
-sourceOrderNo: formData.value.sourceOrderNo, 
-isNextTask: formData.value.isNextTask, 
-mutableParam1: formData.value.mutableParam1, 
-mutableParam2: formData.value.mutableParam2, 
-mutableParam3: formData.value.mutableParam3,  
-    } 
-    if (!current.value) { 
-      await wmsTaskDrawer.addWmsTask(data) 
-    } else { 
-      const id = current.value.id 
-      await wmsTaskDrawer.updateWmsTask(id, data) 
-    } 
-    ElMessage.success('淇濆瓨鎴愬姛') 
-    ctx.emit('confirm') 
-  } 
- 
-  const updateCheckData = () => { 
-    initiateData.value = { 
-      formData: { 
-        ...formData.value, 
-      }, 
-    } 
-  } 
-  const updateFormItemOptions = (propName: string, enumData: any[]) => { 
-    const item = formItems.find((item) => item.prop === propName) 
-    if (item && enumData) { 
-      item.options = enumData.map((item) => ({ 
-        label: item.description, 
-        value: item.value, 
-      })) 
-    } 
-  } 
-  /** 
-   * 閫氱敤鏌ヨ鏋氫妇 
-   */ 
-  const commonQueryEnumForFrom = async () => { 
-    const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ 
- EnumName: 'TaskTypeEnum', 
-}) 
-updateFormItemOptions('taskType', taskTypeEnumEnum) 
-const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ 
- EnumName: 'WmsTaskStatus', 
-}) 
-updateFormItemOptions('taskStatus', wmsTaskStatusEnum) 
-const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ 
- EnumName: 'SonTaskTypeEnum', 
-}) 
-updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) 
- 
-  } 
-  commonQueryEnumForFrom() 
-  /** 
-   * 寮圭獥鎵撳紑鑾峰彇璇︽儏 
-   */ 
-  const onOpen = async () => { 
-    if (current.value) { 
-      const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) 
- 
-      formData.value = { 
-        taskNo: res.taskNo, 
-taskType: res.taskType, 
-taskLevel: res.taskLevel, 
-taskStatus: res.taskStatus, 
-containerNo: res.containerNo, 
-sourcePlace: res.sourcePlace, 
-toPlace: res.toPlace, 
-aisle: res.aisle, 
-dodeviceId: res.dodeviceId, 
-dodevicetype: res.dodevicetype, 
-taskDodeviceStatus: res.taskDodeviceStatus, 
-isRead: res.isRead, 
-sonTaskType: res.sonTaskType, 
-sourceOrderNo: res.sourceOrderNo, 
-isNextTask: res.isNextTask, 
-mutableParam1: res.mutableParam1, 
-mutableParam2: res.mutableParam2, 
-mutableParam3: res.mutableParam3,  
-        id: res.id, 
-      } 
-      disabled.value = true 
-      updateCheckData() 
-    } else { 
-      formData.value = {} 
- 
-      disabled.value = false 
-      updateCheckData() 
-    } 
-  } 
- 
-  watch(() => current.value, onOpen) 
- 
-  return { 
-    formItems, 
-    formData, 
-    visible, 
-    formRef, 
-    onOpen, 
-    onClose, 
-    onConfirm, 
-  } 
-} 
+import {
+  ref,
+  onMounted,
+  reactive,
+  computed,
+  Ref,
+  watch,
+  SetupContext,
+  h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsTaskDrawer } from '../Models/WmsTaskDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsTaskDrawer = (props: any, ctx?: any) => {
+  const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer')
+  /**
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+   */
+  const initiateData: Ref<Record<string, any>> = ref({})
+  const formData = ref<Record<string, any>>({})
+  // ref
+  const formRef = ref()
+
+  const disabled = ref(false)
+
+  const current = computed(() => {
+    return props.row || null
+  })
+
+  const inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min="1"
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
+  const datePicker = (attrs) => {
+    return (
+      <el-date-picker
+        type="datetime"
+        format="YYYY-MM-DD"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const dateTimePicker = (attrs) => {
+    return (
+      <el-date-picker
+        type="datetime"
+        format="YYYY-MM-DD HH:mm:ss"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const visible = computed({
+    get() {
+      return props.modelValue
+    },
+    set(val) {
+      ctx.emit('update:modelValue', val)
+    },
+  })
+  /**
+   * 娣诲姞鐨刦orm瀛楁
+   */
+  const formItems = reactive([
+    {
+      label: '浠诲姟鍙�',
+      prop: 'taskNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ换鍔″彿',
+      rules: [{ required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }],
+    },
+    {
+      label: '浠诲姟绫诲瀷',
+      prop: 'taskType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ换鍔$被鍨�',
+      rules: [{ required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '瀛愪换鍔$被鍨�',
+      prop: 'sonTaskType',
+      el: 'select',
+      //disabled: disabled,
+      rules: [
+        { required: true, message: '瀛愪换鍔$被鍨嬩笉鑳戒负绌�', trigger: 'blur' },
+      ],
+      placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷',
+    },
+    {
+      label: '浠诲姟绛夌骇',
+      prop: 'taskLevel',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�',
+      rules: [{ required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '浠诲姟鐘舵��',
+      prop: 'taskStatus',
+      el: 'select',
+      options: [],
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�',
+      rules: [{ required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }],
+    },
+    {
+      label: '鎵樼洏缂栧彿',
+      prop: 'containerNo',
+      el: 'input',
+      rules: [{ required: true, message: '鎵樼洏缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�',
+    },
+    {
+      label: '璧峰搴撲綅',
+      prop: 'sourcePlace',
+      el: 'input',
+      //disabled: disabled,
+      rules: [{ required: true, message: '璧峰搴撲綅涓嶈兘涓虹┖', trigger: 'blur' }],
+      placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�',
+    },
+    {
+      label: '鐩爣搴撲綅',
+      prop: 'toPlace',
+      el: 'input',
+      //disabled: disabled,
+      rules: [{ required: true, message: '鐩爣搴撲綅涓嶈兘涓虹┖', trigger: 'blur' }],
+      placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�',
+    },
+    {
+      label: '宸烽亾',
+      prop: 'aisle',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      rules: [{ required: true, message: '宸烽亾涓嶈兘涓虹┖', trigger: 'blur' }],
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ贩閬�',
+    },
+    {
+      label: '鍫嗗灈鏈篒D',
+      prop: 'dodeviceId',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      rules: [{ required: true, message: '鍫嗗灈鏈篒D涓嶈兘涓虹┖', trigger: 'blur' }],
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ爢鍨涙満ID',
+    },
+    {
+      label: '璁惧绫诲瀷',
+      prop: 'dodevicetype',
+      el: 'select',
+      options: [],
+      width: '100%',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヨ澶囩被鍨�',
+      rules: [{ required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '璁惧浠诲姟鐘舵��',
+      prop: 'taskDodeviceStatus',
+      el: 'select',
+      options: [],
+      width: '100%',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�',
+      rules: [
+        { required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' },
+      ],
+    },
+    {
+      label: 'WCS鏄惁鍙互璇诲彇',
+      prop: 'isRead',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇',
+      rules: [
+        { required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' },
+      ],
+      options: [
+        { label: '鏄�', value: true },
+        { label: '鍚�', value: false },
+      ],
+    },
+    {
+      label: '鏉ユ簮鍗曟嵁鍙�',
+      prop: 'sourceOrderNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿',
+    },
+    {
+      label: '涓嬩釜浠诲姟鏄惁鐢熸垚',
+      prop: 'isNextTask',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�',
+    },
+    {
+      label: '鍙彉鍙橀噺1',
+      prop: 'mutableParam1',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1',
+    },
+    {
+      label: '鍙彉鍙橀噺2',
+      prop: 'mutableParam2',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2',
+    },
+    {
+      label: '鍙彉鍙橀噺3',
+      prop: 'mutableParam3',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3',
+    },
+  ])
+  /**
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+   */
+  const checkIsEqualObject = () => {
+    const data = {
+      formData: formData.value,
+    }
+    const check = isEqual(initiateData.value, data)
+    return check
+  }
+
+  const onClose = (done: () => void) => {
+    if (visible.value) {
+      if (checkIsEqualObject()) {
+        visible.value = false
+        done && done()
+      } else {
+        ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
+          .then(() => {
+            onConfirm()
+          })
+          .catch(() => {
+            visible.value = false
+            done && done()
+          })
+      }
+    }
+  }
+  /**
+   * 淇濆瓨
+   */
+  const onConfirm = async () => {
+    await formRef.value?.validate()
+    const data = {
+      taskNo: formData.value.taskNo,
+      taskType: formData.value.taskType,
+      taskLevel: formData.value.taskLevel,
+      taskStatus: formData.value.taskStatus,
+      containerNo: formData.value.containerNo,
+      sourcePlace: formData.value.sourcePlace,
+      toPlace: formData.value.toPlace,
+      aisle: formData.value.aisle,
+      dodeviceId: formData.value.dodeviceId,
+      dodevicetype: formData.value.dodevicetype,
+      taskDodeviceStatus: formData.value.taskDodeviceStatus,
+      isRead: formData.value.isRead,
+      sonTaskType: formData.value.sonTaskType,
+      sourceOrderNo: formData.value.sourceOrderNo,
+      isNextTask: formData.value.isNextTask,
+      mutableParam1: formData.value.mutableParam1,
+      mutableParam2: formData.value.mutableParam2,
+      mutableParam3: formData.value.mutableParam3,
+    }
+    if (!current.value) {
+      await wmsTaskDrawer.addWmsTask(data)
+    } else {
+      const id = current.value.id
+      await wmsTaskDrawer.updateWmsTask(id, data)
+    }
+    ElMessage.success('淇濆瓨鎴愬姛')
+    ctx.emit('confirm')
+  }
+
+  const updateCheckData = () => {
+    initiateData.value = {
+      formData: {
+        ...formData.value,
+      },
+    }
+  }
+  const updateFormItemOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.description,
+        value: item.value,
+      }))
+    }
+  }
+  /**
+   * 閫氱敤鏌ヨ鏋氫妇
+   */
+  const commonQueryEnumForFrom = async () => {
+    const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'TaskTypeEnum',
+    })
+    updateFormItemOptions('taskType', taskTypeEnumEnum)
+    const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'WmsTaskStatus',
+    })
+    updateFormItemOptions('taskStatus', wmsTaskStatusEnum)
+    const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'SonTaskTypeEnum',
+    })
+    updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum)
+
+    const dodevicetypeEnum = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'DodevicetypeEnum',
+    })
+    updateFormItemOptions('dodevicetype', dodevicetypeEnum)
+
+    const taskDodeviceStatus = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'TaskDodeviceStatus',
+    })
+    updateFormItemOptions('taskDodeviceStatus', taskDodeviceStatus)
+  }
+  commonQueryEnumForFrom()
+  /**
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+   */
+  const onOpen = async () => {
+    if (current.value) {
+      const res = await wmsTaskDrawer.getWmsTaskDetail(current.value)
+
+      formData.value = {
+        taskNo: res.taskNo,
+        taskType: res.taskType,
+        taskLevel: res.taskLevel,
+        taskStatus: res.taskStatus,
+        containerNo: res.containerNo,
+        sourcePlace: res.sourcePlace,
+        toPlace: res.toPlace,
+        aisle: res.aisle,
+        dodeviceId: res.dodeviceId,
+        dodevicetype: res.dodevicetype,
+        taskDodeviceStatus: res.taskDodeviceStatus,
+        isRead: res.isRead,
+        sonTaskType: res.sonTaskType,
+        sourceOrderNo: res.sourceOrderNo,
+        isNextTask: res.isNextTask,
+        mutableParam1: res.mutableParam1,
+        mutableParam2: res.mutableParam2,
+        mutableParam3: res.mutableParam3,
+        id: res.id,
+      }
+      disabled.value = true
+      updateCheckData()
+    } else {
+      formData.value = {
+        taskDodeviceStatus: 1,
+        isRead: true,
+        isNextTask: 1,
+        taskStatus: 1,
+      }
+
+      disabled.value = false
+      updateCheckData()
+    }
+  }
+
+  watch(() => current.value, onOpen)
+
+  return {
+    formItems,
+    formData,
+    visible,
+    formRef,
+    onOpen,
+    onClose,
+    onConfirm,
+  }
+}

--
Gitblit v1.9.3