From 83f4b5742d68e2af3a4e9f60630de8444e99582a Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周二, 20 5月 2025 11:53:35 +0800
Subject: [PATCH] 库存高级查询

---
 HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx |  340 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 276 insertions(+), 64 deletions(-)

diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx
index a7ecbbf..5aaa3da 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDetailQueryDrawer.tsx
@@ -9,16 +9,23 @@
   h,
 } from 'vue'
 import { injectModel } from '@/libs/Provider/Provider'
-import { WmsMaterialStockDrawer } from '../Models/WmsMaterialStockDrawer'
+import { WmsMaterialStockDetailQueryDrawer } from '../Models/WmsMaterialStockDetailQueryDrawer'
 import { ElMessage } from 'element-plus'
 import isEqual from 'lodash/isEqual'
 import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
 import { cloneDeep } from 'lodash'
+import { getAreaAreaDataList } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
+// 寮曞叆鍏叡閫夐」閰嶇疆
+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 useWmsMaterialStockDetalQueryDrawer = (props: any, ctx?: any) => {
-  const wmsMaterialStockDetailDrawer = injectModel<WmsMaterialStockDrawer>(
-    'WmsMaterialStockDrawer'
-  )
+export const useWmsMaterialStockDetailQueryDrawer = (props: any, ctx?: any) => {
+  const wmsMaterialStockDetailDrawer =
+    injectModel<WmsMaterialStockDetailQueryDrawer>('wmsMaterialStockDrawer')
   /**
    * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
    */
@@ -86,6 +93,12 @@
     //   el: 'input',
     //   //disabled: disabled,
     //   placeholder: '璇疯緭鍏ョ墿鏂橧D',
+    //   highSelectAttrs: {
+    //     prop: 'materialId_FilterMode',
+    //     el: 'select',
+    //     placeholder: '璇烽�夋嫨',
+    //     options: FILTER_MODE_OPTIONS_STRING,
+    //   },
     // },
     {
       label: '鐗╂枡鍚嶇О',
@@ -93,14 +106,26 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+      highSelectAttrs: {
+        prop: 'materialName_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
-    // {
-    //   label: '瀹瑰櫒缂栧彿',
-    //   prop: 'containerNo',
-    //   el: 'input',
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
-    // },
+    {
+      label: '瀹瑰櫒缂栧彿',
+      prop: 'containerNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+      highSelectAttrs: {
+        prop: 'containerNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
     // {
     //   label: '瀹瑰櫒鐘舵��',
     //   prop: 'containerStatus',
@@ -109,6 +134,12 @@
     //   option: [],
     //   //disabled: disabled,
     //   placeholder: '璇疯緭鍏ュ鍣ㄧ姸鎬�',
+    //   highSelectAttrs: {
+    //     prop: 'containerStatus_FilterMode',
+    //     el: 'select',
+    //     placeholder: '璇烽�夋嫨',
+    //     options: FILTER_MODE_OPTIONS_BOOL,
+    //   },
     // },
     // {
     //   label: '瀹瑰櫒绫诲瀷',
@@ -118,6 +149,12 @@
     //   option: [],
     //   //disabled: disabled,
     //   placeholder: '璇疯緭鍏ュ鍣ㄧ被鍨�',
+    //   highSelectAttrs: {
+    //     prop: 'containerType_FilterMode',
+    //     el: 'select',
+    //     placeholder: '璇烽�夋嫨',
+    //     options: FILTER_MODE_OPTIONS_BOOL,
+    //   },
     // },
     {
       label: '鐗╂枡缂栧彿',
@@ -125,6 +162,12 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ョ墿鏂欑紪鍙�',
+      highSelectAttrs: {
+        prop: 'materialNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
       label: '搴撳瓨鏁伴噺',
@@ -141,6 +184,12 @@
       precision: 0,
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ簱瀛樻暟閲�',
+      highSelectAttrs: {
+        prop: 'stockNumber_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_NUM,
+      },
     },
     {
       label: '鐗╂枡鎵规',
@@ -148,6 +197,12 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ョ墿鏂欐壒娆�',
+      highSelectAttrs: {
+        prop: 'materialBatch_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     // {
     //   label: '渚涘簲鍟嗙紪鍙�',
@@ -155,6 +210,12 @@
     //   el: 'input',
     //   //disabled: disabled,
     //   placeholder: '璇疯緭鍏ヤ緵搴斿晢缂栧彿',
+    //   highSelectAttrs: {
+    //     prop: 'supplierCode_FilterMode',
+    //     el: 'select',
+    //     placeholder: '璇烽�夋嫨',
+    //     options: FILTER_MODE_OPTIONS_STRING,
+    //   },
     // },
     {
       label: '鍨嬪彿',
@@ -162,6 +223,12 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ瀷鍙�',
+      highSelectAttrs: {
+        prop: 'materialModel_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
       label: '搴撲綅缂栧彿',
@@ -169,31 +236,56 @@
       el: 'input',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ簱浣嶇紪鍙�',
+      highSelectAttrs: {
+        prop: 'placeNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     {
-      label: '搴撲綅鐘舵��;',
+      label: '搴撲綅鐘舵��',
       prop: 'placeStatus',
       el: 'select',
       clearable: true,
       option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ簱浣嶇姸鎬�;',
+      highSelectAttrs: {
+        prop: 'placeStatus_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
       label: '搴撲綅绫诲瀷',
       prop: 'storageTypeNo',
       el: 'select',
-      clearable: false,
+      clearable: true,
       option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ簱浣嶇被鍨�',
+      highSelectAttrs: {
+        prop: 'storageTypeNo_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
     {
-      label: '鍖哄煙缂栧彿',
+      label: '搴撳尯',
       prop: 'areaCode',
-      el: 'input',
+      el: 'select',
+      option: [],
       //disabled: disabled,
-      placeholder: '璇疯緭鍏ュ尯鍩熺紪鍙�',
+      placeholder: '璇疯緭鍏ュ簱鍖�',
+      highSelectAttrs: {
+        prop: 'areaCode_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
     },
     // {
     //   label: '搴撳尯鍚嶇О',
@@ -201,16 +293,28 @@
     //   el: 'input',
     //   //disabled: disabled,
     //   placeholder: '璇疯緭鍏ュ簱鍖哄悕绉�',
+    //   highSelectAttrs: {
+    //     prop: 'areaName_FilterMode',
+    //     el: 'select',
+    //     placeholder: '璇烽�夋嫨',
+    //     options: FILTER_MODE_OPTIONS_STRING,
+    //   },
     // },
-    // {
-    //   label: '妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)',
-    //   prop: 'checkStatus',
-    //   el: 'select',
-    //   clearable: true,
-    //   option: [],
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ユ楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)',
-    // },
+    {
+      label: '妫�楠岀姸鎬�',
+      prop: 'checkStatus',
+      el: 'select',
+      clearable: true,
+      option: [],
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ楠岀姸鎬�',
+      highSelectAttrs: {
+        prop: 'checkStatus_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
+    },
     {
       label: '鏄惁閿佸畾',
       prop: 'isLock',
@@ -219,16 +323,28 @@
       option: [],
       //disabled: disabled,
       placeholder: '璇疯緭鍏ユ槸鍚﹂攣瀹�',
+      highSelectAttrs: {
+        prop: 'isLock_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
     },
-    // {
-    //   label: '鏄惁绌烘墭(2:鍚�,1:鏄�)',
-    //   prop: 'emptyContainer',
-    //   el: 'select',
-    //   clearable: true,
-    //   option: [],
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ユ槸鍚︾┖鎵�(2:鍚�,1:鏄�)',
-    // },
+    {
+      label: '鏄惁绌烘墭',
+      prop: 'emptyContainer',
+      el: 'select',
+      clearable: true,
+      option: [],
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ槸鍚︾┖鎵�',
+      highSelectAttrs: {
+        prop: 'emptyContainer_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_BOOL,
+      },
+    },
     {
       label: '鍏ュ簱鏃堕棿',
       prop: 'inStockTime',
@@ -242,21 +358,60 @@
       width: '100%',
       //disabled: disabled,
       placeholder: '璇疯緭鍏ュ叆搴撴椂闂�',
+      isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠�
     },
-    // {
-    //   label: '鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��',
-    //   prop: 'redundantField1',
-    //   el: 'input',
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�1 - 棰勭暀鎵╁睍鐢ㄩ��',
-    // },
-    // {
-    //   label: '鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��',
-    //   prop: 'redundantField2',
-    //   el: 'input',
-    //   //disabled: disabled,
-    //   placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�2 - 棰勭暀鎵╁睍鐢ㄩ��',
-    // },
+    {
+      label: '宸ヨ壓娴佸悜缂栧彿',
+      prop: 'redundantField1',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ伐鑹烘祦鍚戠紪鍙�',
+      highSelectAttrs: {
+        prop: 'redundantField1_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
+    {
+      label: '绠℃缂栫爜',
+      prop: 'redundantField2',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ娈电紪鐮�',
+      highSelectAttrs: {
+        prop: 'redundantField2_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
+    {
+      label: '绠℃鍚嶇О',
+      prop: 'redundantField3',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏edundantField3',
+      highSelectAttrs: {
+        prop: 'redundantField3_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
+    {
+      label: '澶囨敞',
+      prop: 'remark',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ娉�',
+      highSelectAttrs: {
+        prop: 'remark_FilterMode',
+        el: 'select',
+        placeholder: '璇烽�夋嫨',
+        options: FILTER_MODE_OPTIONS_STRING,
+      },
+    },
     {
       label: '鍒涘缓鏃堕棿',
       prop: 'creationTime',
@@ -270,13 +425,7 @@
       width: '100%',
       //disabled: disabled,
       placeholder: '璇疯緭鍏�',
-    },
-    {
-      label: '澶囨敞',
-      prop: 'remark',
-      el: 'input',
-      //disabled: disabled,
-      placeholder: '璇疯緭鍏ュ娉�',
+      isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠�
     },
   ])
   /**
@@ -292,28 +441,54 @@
   const commonGetFormData = () => {
     const data = {
       materialId: formData.value.materialId || '',
+      materialId_FilterMode: formData.value.materialId_FilterMode || '',
       materialName: formData.value.materialName || '',
+      materialName_FilterMode: formData.value.materialName_FilterMode || '',
       containerNo: formData.value.containerNo || '',
+      containerNo_FilterMode: formData.value.containerNo_FilterMode || '',
       containerStatus: formData.value.containerStatus || '',
+      containerStatus_FilterMode:
+        formData.value.containerStatus_FilterMode || '',
       containerType: formData.value.containerType || '',
+      containerType_FilterMode: formData.value.containerType_FilterMode || '',
       materialNo: formData.value.materialNo || '',
+      materialNo_FilterMode: formData.value.materialNo_FilterMode || '',
       stockNumber: formData.value.stockNumber || '',
+      stockNumber_FilterMode: formData.value.stockNumber_FilterMode || '',
       materialBatch: formData.value.materialBatch || '',
+      materialBatch_FilterMode: formData.value.materialBatch_FilterMode || '',
       supplierCode: formData.value.supplierCode || '',
+      supplierCode_FilterMode: formData.value.supplierCode_FilterMode || '',
       materialModel: formData.value.materialModel || '',
+      materialModel_FilterMode: formData.value.materialModel_FilterMode || '',
       placeNo: formData.value.placeNo || '',
+      placeNo_FilterMode: formData.value.placeNo_FilterMode || '',
       placeStatus: formData.value.placeStatus || '',
-      storageTypeNo: formData.value.storageTypeNo || 1,
+      placeStatus_FilterMode: formData.value.placeStatus_FilterMode || '',
+      storageTypeNo: formData.value.storageTypeNo || '',
+      storageTypeNo_FilterMode: formData.value.storageTypeNo_FilterMode || '',
       areaCode: formData.value.areaCode || '',
+      areaCode_FilterMode: formData.value.areaCode_FilterMode || '',
       areaName: formData.value.areaName || '',
+      areaName_FilterMode: formData.value.areaName_FilterMode || '',
       checkStatus: formData.value.checkStatus || '',
+      checkStatus_FilterMode: formData.value.checkStatus_FilterMode || '',
       isLock: formData.value.isLock || '',
+      isLock_FilterMode: formData.value.isLock_FilterMode || '',
       emptyContainer: formData.value.emptyContainer || '',
+      emptyContainer_FilterMode: formData.value.emptyContainer_FilterMode || '',
       inStockTime: formData.value.inStockTime || '',
       remark: formData.value.remark || '',
+      remark_FilterMode: formData.value.remark_FilterMode || '',
       redundantField1: formData.value.redundantField1 || '',
+      redundantField1_FilterMode:
+        formData.value.redundantField1_FilterMode || '',
       redundantField2: formData.value.redundantField2 || '',
+      redundantField2_FilterMode:
+        formData.value.redundantField2_FilterMode || '',
       redundantField3: formData.value.redundantField3 || '',
+      redundantField3_FilterMode:
+        formData.value.redundantField3_FilterMode || '',
       creationTime: formData.value.creationTime || '',
       lastModificationTime: formData.value.lastModificationTime || '',
     }
@@ -334,10 +509,38 @@
     ctx.emit('confirmQuery', data)
   }
   /**
+   * 閲嶇疆鍏叡select鏌ヨ
+   */
+  const onResetForHighSelect = async () => {
+    formData.value.materialId_FilterMode = 1
+    formData.value.materialName_FilterMode = 1
+    formData.value.containerNo_FilterMode = 1
+    formData.value.containerStatus_FilterMode = 2
+    formData.value.containerType_FilterMode = 2
+    formData.value.materialNo_FilterMode = 1
+    formData.value.stockNumber_FilterMode = 2
+    formData.value.materialBatch_FilterMode = 1
+    formData.value.supplierCode_FilterMode = 1
+    formData.value.materialModel_FilterMode = 1
+    formData.value.placeNo_FilterMode = 1
+    formData.value.placeStatus_FilterMode = 2
+    formData.value.storageTypeNo_FilterMode = 2
+    formData.value.areaCode_FilterMode = 1
+    formData.value.areaName_FilterMode = 1
+    formData.value.checkStatus_FilterMode = 2
+    formData.value.isLock_FilterMode = 2
+    formData.value.emptyContainer_FilterMode = 2
+    formData.value.remark_FilterMode = 1
+    formData.value.redundantField1_FilterMode = 1
+    formData.value.redundantField2_FilterMode = 1
+    formData.value.redundantField3_FilterMode = 1
+  }
+  /**
    * 閲嶇疆鏌ヨ
    */
   const onReset = async () => {
     formData.value = {}
+    onResetForHighSelect() //閲嶇疆鍏叡select鏌ヨ
     formData.value.materialId = ''
     formData.value.materialName = ''
     formData.value.containerNo = ''
@@ -350,7 +553,7 @@
     formData.value.materialModel = ''
     formData.value.placeNo = ''
     formData.value.placeStatus = ''
-    formData.value.storageTypeNo = 1
+    formData.value.storageTypeNo = ''
     formData.value.areaCode = ''
     formData.value.areaName = ''
     formData.value.checkStatus = ''
@@ -361,7 +564,8 @@
     formData.value.redundantField1 = ''
     formData.value.redundantField2 = ''
     formData.value.redundantField3 = ''
-    formData.value.deletionTime = ''
+    formData.value.creationTime = ''
+    formData.value.lastModificationTime = ''
     //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
     ctx.emit('restQuery')
   }
@@ -379,6 +583,15 @@
       item.options = enumData.map((item) => ({
         label: item.description,
         value: item.value,
+      }))
+    }
+  }
+  const updateFormAreaOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.areaName,
+        value: item.areaNo,
       }))
     }
   }
@@ -415,13 +628,12 @@
     const yesNoEnumEnum = await wmsMaterialStockDetailDrawer.getWmsEnumData({
       EnumName: 'YesNoEnum',
     })
-    updateFormItemOptions('isLock', yesNoEnumEnum)
-    const yesNoEnumEnum2 = await wmsMaterialStockDetailDrawer.getWmsEnumData({
-      EnumName: 'YesNoEnum',
-    })
-    updateFormItemOptions('emptyContainer', yesNoEnumEnum2)
+    updateFormItemOptions('emptyContainer', yesNoEnumEnum)
+    const areaList = await getAreaAreaDataList()
+    updateFormAreaOptions('areaCode', areaList)
   }
   commonQueryEnumForFrom()
+  onResetForHighSelect() //閲嶇疆鍏叡select鏌ヨ
   /**
    * 寮圭獥鎵撳紑鑾峰彇璇︽儏
    */

--
Gitblit v1.9.3