From 8944412929ca57bf921d4dd12f419778bd6cce62 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周三, 14 5月 2025 16:19:05 +0800
Subject: [PATCH] 任务管理高级查询

---
 HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx |  349 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 267 insertions(+), 82 deletions(-)

diff --git a/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx
index ba0127f..6bdecb8 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx
@@ -14,6 +14,13 @@
 import isEqual from 'lodash/isEqual'
 import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
 import { cloneDeep } from 'lodash'
+// 寮曞叆鍏叡閫夐」閰嶇疆
+import {
+  FILTER_MODE_OPTIONS_STRING,
+  FILTER_MODE_OPTIONS_NUM,
+  FILTER_MODE_OPTIONS_BOOL,
+} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'
+import { BOOLEAN_OPTIONS } from '@/utils/commonOptionConstants'
 
 export const useWmsTaskQueryDrawer = (props: any, ctx?: any) => {
   const wmsTaskDrawer = injectModel<WmsTaskDrawer>('WmsTaskDrawer')
@@ -75,7 +82,7 @@
     },
   })
   /**
-   * 娣诲姞鐨刦orm瀛楁
+   * 楂樼骇鏌ヨ鐨刦orm瀛楁
    */
   const formItems = reactive([
     {
@@ -84,13 +91,27 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヤ换鍔″彿',
+      highSelectAttrs: {
+        prop: 'taskNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
       label: '浠诲姟绫诲瀷',
       prop: 'taskType',
       el: 'select',
+      clearable: true,
+      option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヤ换鍔$被鍨�',
+      highSelectAttrs: {
+        prop: 'taskType_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: '浠诲姟绛夌骇',
@@ -107,13 +128,27 @@
       precision: 0,
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�',
+      highSelectAttrs: {
+        prop: 'taskLevel_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_NUM,
+      },
     },
     {
       label: '浠诲姟鐘舵��',
       prop: 'taskStatus',
       el: 'select',
+      clearable: true,
+      option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�',
+      highSelectAttrs: {
+        prop: 'taskStatus_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: '鎵樼洏缂栧彿',
@@ -121,6 +156,12 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�',
+      highSelectAttrs: {
+        prop: 'containerNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
       label: '璧峰搴撲綅',
@@ -128,6 +169,12 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�',
+      highSelectAttrs: {
+        prop: 'sourcePlace_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
       label: '鐩爣搴撲綅',
@@ -135,6 +182,34 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�',
+      highSelectAttrs: {
+        prop: 'toPlace_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
+    {
+      label: 'PLC浠诲姟鍙�',
+      prop: 'plcTaskId',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏�',
+      highSelectAttrs: {
+        prop: 'plcTaskId_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_NUM,
+      },
     },
     {
       label: '宸烽亾',
@@ -151,6 +226,12 @@
       precision: 0,
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ贩閬�',
+      highSelectAttrs: {
+        prop: 'aisle_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_NUM,
+      },
     },
     {
       label: '鍫嗗灈鏈篒D',
@@ -167,38 +248,42 @@
       precision: 0,
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ爢鍨涙満ID',
+      highSelectAttrs: {
+        prop: 'dodeviceId_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_NUM,
+      },
     },
     {
       label: '璁惧绫诲瀷',
       prop: 'dodevicetype',
-      el: (props: any, { attrs }: SetupContext) => {
-        return h(inputNumber, {
-          ...props,
-          clearable: true,
-          ...attrs,
-        })
-      },
-      width: '100%',
-      step: 1,
-      precision: 0,
+      el: 'select',
+      clearable: true,
+      option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヨ澶囩被鍨�',
+      highSelectAttrs: {
+        prop: 'dodevicetype_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: '璁惧浠诲姟鐘舵��',
       prop: 'taskDodeviceStatus',
-      el: (props: any, { attrs }: SetupContext) => {
-        return h(inputNumber, {
-          ...props,
-          clearable: true,
-          ...attrs,
-        })
-      },
-      width: '100%',
-      step: 1,
-      precision: 0,
+      el: 'select',
+      clearable: true,
+      option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�',
+      highSelectAttrs: {
+        prop: 'taskDodeviceStatus_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: 'WCS鏄惁鍙互璇诲彇',
@@ -206,17 +291,29 @@
       el: 'select',
       //disabled: disabled,
       placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇',
-      options: [
-        { label: '鏄�', value: 'true' },
-        { label: '鍚�', value: 'false' },
-      ],
+      clearable: true,
+      options: BOOLEAN_OPTIONS,
+      highSelectAttrs: {
+        prop: 'isRead_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: '瀛愪换鍔$被鍨�',
       prop: 'sonTaskType',
       el: 'select',
+      clearable: true,
+      option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷',
+      highSelectAttrs: {
+        prop: 'sonTaskType_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: '鏉ユ簮鍗曟嵁鍙�',
@@ -224,59 +321,73 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿',
+      highSelectAttrs: {
+        prop: 'sourceOrderNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
       label: '涓嬩釜浠诲姟鏄惁鐢熸垚',
       prop: 'isNextTask',
-      // el: (props: any, { attrs }: SetupContext) => {
-      //   return h(inputNumber, {
-      //     ...props,
-      //     clearable: true,
-      //     ...attrs,
-      //   })
-      // },
-      el: 'select',
-      options: [
-        { label: '鏄�', value: 1 },
-        { label: '鍚�', value: 0 },
-      ],
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
       width: '100%',
       step: 1,
       precision: 0,
       //disabled: disabled,
       placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴�',
+      highSelectAttrs: {
+        prop: 'isNextTask_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_NUM,
+      },
     },
-    // {
-    //   label: '鍙彉鍙橀噺1',
-    //   prop: 'mutableParam1',
-    //   el: 'input',
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1',
-    // },
-    // {
-    //   label: '鍙彉鍙橀噺2',
-    //   prop: 'mutableParam2',
-    //   el: 'input',
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2',
-    // },
+    {
+      label: '鍨嬪彿',
+      prop: 'mutableParam1',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
+      highSelectAttrs: {
+        prop: 'mutableParam1_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
+    {
+      label: '鍘熸枡鏍囪瘑',
+      prop: 'mutableParam2',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ師鏂欐爣璇�',
+      highSelectAttrs: {
+        prop: 'mutableParam2_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
     // {
     //   label: '鍙彉鍙橀噺3',
     //   prop: 'mutableParam3',
     //   el: 'input',
     //   //disabled: disabled,
     //   placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3',
-    // },
-    // {
-    //   label: '鏄惁绂佺敤',
-    //   prop: 'isDisabled',
-    //   el: 'select',
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ユ槸鍚︾鐢�',
-    //   options: [
-    //     { label: '鏄�', value: 'true' },
-    //     { label: '鍚�', value: 'false' },
-    //   ],
+    //   highSelectAttrs: {
+    //     prop: 'mutableParam3_FilterMode',
+    //     el: 'select',
+    //     placeholder: '璇烽�夋嫨',
+    //     options: FILTER_MODE_OPTIONS_STRING,
+    //   },
     // },
     {
       label: '鍒涘缓鏃堕棿',
@@ -290,8 +401,24 @@
       },
       width: '100%',
       //disabled: disabled,
-      placeholder: '璇疯緭鍏�',
+      placeholder: '璇疯緭鍏ュ垱寤烘椂闂�',
+      isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠�
     },
+    // {
+    //   label: '',
+    //   prop: 'lastModificationTime',
+    //   el: (props: any, { attrs }: SetupContext) => {
+    //     return h(dateTimePickerRange, {
+    //       ...props,
+    //       clearable: true,
+    //       ...attrs,
+    //     })
+    //   },
+    //   width: '100%',
+    //   //disabled: disabled,
+    //   placeholder: '璇疯緭鍏�',
+    //   isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠�
+    // },
   ])
   /**
    * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
@@ -306,25 +433,46 @@
   const commonGetFormData = () => {
     const data = {
       taskNo: formData.value.taskNo || '',
+      taskNo_FilterMode: formData.value.taskNo_FilterMode || '',
       taskType: formData.value.taskType || '',
+      taskType_FilterMode: formData.value.taskType_FilterMode || '',
       taskLevel: formData.value.taskLevel || '',
+      taskLevel_FilterMode: formData.value.taskLevel_FilterMode || '',
       taskStatus: formData.value.taskStatus || '',
+      taskStatus_FilterMode: formData.value.taskStatus_FilterMode || '',
       containerNo: formData.value.containerNo || '',
+      containerNo_FilterMode: formData.value.containerNo_FilterMode || '',
       sourcePlace: formData.value.sourcePlace || '',
+      sourcePlace_FilterMode: formData.value.sourcePlace_FilterMode || '',
       toPlace: formData.value.toPlace || '',
+      toPlace_FilterMode: formData.value.toPlace_FilterMode || '',
+      plcTaskId: formData.value.plcTaskId || '',
+      plcTaskId_FilterMode: formData.value.plcTaskId_FilterMode || '',
       aisle: formData.value.aisle || '',
+      aisle_FilterMode: formData.value.aisle_FilterMode || '',
       dodeviceId: formData.value.dodeviceId || '',
+      dodeviceId_FilterMode: formData.value.dodeviceId_FilterMode || '',
       dodevicetype: formData.value.dodevicetype || '',
+      dodevicetype_FilterMode: formData.value.dodevicetype_FilterMode || '',
       taskDodeviceStatus: formData.value.taskDodeviceStatus || '',
+      taskDodeviceStatus_FilterMode:
+        formData.value.taskDodeviceStatus_FilterMode || '',
       isRead: formData.value.isRead || '',
+      isRead_FilterMode: formData.value.isRead_FilterMode || '',
       sonTaskType: formData.value.sonTaskType || '',
+      sonTaskType_FilterMode: formData.value.sonTaskType_FilterMode || '',
       sourceOrderNo: formData.value.sourceOrderNo || '',
+      sourceOrderNo_FilterMode: formData.value.sourceOrderNo_FilterMode || '',
       isNextTask: formData.value.isNextTask || '',
+      isNextTask_FilterMode: formData.value.isNextTask_FilterMode || '',
       mutableParam1: formData.value.mutableParam1 || '',
+      mutableParam1_FilterMode: formData.value.mutableParam1_FilterMode || '',
       mutableParam2: formData.value.mutableParam2 || '',
+      mutableParam2_FilterMode: formData.value.mutableParam2_FilterMode || '',
       mutableParam3: formData.value.mutableParam3 || '',
-      isDisabled: formData.value.isDisabled || '',
+      mutableParam3_FilterMode: formData.value.mutableParam3_FilterMode || '',
       creationTime: formData.value.creationTime || '',
+      lastModificationTime: formData.value.lastModificationTime || '',
     }
     return data
   }
@@ -343,28 +491,56 @@
     ctx.emit('confirmQuery', data)
   }
   /**
+   * 閲嶇疆鍏叡select鏌ヨ
+   */
+  const onResetForHighSelect = async () => {
+    formData.value.taskNo_FilterMode = 1
+    formData.value.taskType_FilterMode = 2
+    formData.value.taskLevel_FilterMode = 2
+    formData.value.taskStatus_FilterMode = 2
+    formData.value.containerNo_FilterMode = 1
+    formData.value.sourcePlace_FilterMode = 1
+    formData.value.toPlace_FilterMode = 1
+    formData.value.plcTaskId_FilterMode = 2
+    formData.value.aisle_FilterMode = 2
+    formData.value.dodeviceId_FilterMode = 2
+    formData.value.dodevicetype_FilterMode = 2
+    formData.value.taskDodeviceStatus_FilterMode = 2
+    formData.value.isRead_FilterMode = 2
+    formData.value.sonTaskType_FilterMode = 2
+    formData.value.sourceOrderNo_FilterMode = 1
+    formData.value.isNextTask_FilterMode = 2
+    formData.value.mutableParam1_FilterMode = 1
+    formData.value.mutableParam2_FilterMode = 1
+    formData.value.mutableParam3_FilterMode = 1
+  }
+  /**
    * 閲嶇疆鏌ヨ
    */
   const onReset = async () => {
     formData.value = {}
-    formData.value.TaskNo = ''
-    formData.value.TaskType = ''
-    formData.value.TaskLevel = ''
-    formData.value.TaskStatus = ''
-    formData.value.ContainerNo = ''
-    formData.value.SourcePlace = ''
-    formData.value.ToPlace = ''
-    formData.value.Aisle = ''
-    formData.value.DodeviceId = ''
-    formData.value.Dodevicetype = ''
-    formData.value.TaskDodeviceStatus = ''
-    formData.value.IsRead = ''
-    formData.value.SonTaskType = ''
-    formData.value.SourceOrderNo = ''
-    formData.value.IsNextTask = ''
-    formData.value.MutableParam1 = ''
-    formData.value.MutableParam2 = ''
-    formData.value.MutableParam3 = ''
+    onResetForHighSelect() //閲嶇疆鍏叡select鏌ヨ
+    formData.value.taskNo = ''
+    formData.value.taskType = ''
+    formData.value.taskLevel = ''
+    formData.value.taskStatus = ''
+    formData.value.containerNo = ''
+    formData.value.sourcePlace = ''
+    formData.value.toPlace = ''
+    formData.value.plcTaskId = ''
+    formData.value.aisle = ''
+    formData.value.dodeviceId = ''
+    formData.value.dodevicetype = ''
+    formData.value.taskDodeviceStatus = ''
+    formData.value.isRead = ''
+    formData.value.sonTaskType = ''
+    formData.value.sourceOrderNo = ''
+    formData.value.isNextTask = ''
+    formData.value.mutableParam1 = ''
+    formData.value.mutableParam2 = ''
+    formData.value.mutableParam3 = ''
+    formData.value.creationTime = ''
+    formData.value.lastModificationTime = ''
     //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
     ctx.emit('restQuery')
   }
@@ -397,12 +573,21 @@
       EnumName: 'WmsTaskStatus',
     })
     updateFormItemOptions('taskStatus', wmsTaskStatusEnum)
+    const dodevicetypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'DodevicetypeEnum',
+    })
+    updateFormItemOptions('dodevicetype', dodevicetypeEnumEnum)
+    const taskDodeviceStatusEnum = await wmsTaskDrawer.getWmsEnumData({
+      EnumName: 'TaskDodeviceStatus',
+    })
+    updateFormItemOptions('taskDodeviceStatus', taskDodeviceStatusEnum)
     const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({
       EnumName: 'SonTaskTypeEnum',
     })
     updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum)
   }
   commonQueryEnumForFrom()
+  onResetForHighSelect() //閲嶇疆鍏叡select鏌ヨ
   /**
    * 寮圭獥鎵撳紑鑾峰彇璇︽儏
    */

--
Gitblit v1.9.3