From 5a149d626ae8bc3fa4bddbb53f8caf40f51f6da6 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周三, 04 6月 2025 17:42:13 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo

---
 HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx |  376 ++++++++++++++++++++++-------------------------------
 1 files changed, 156 insertions(+), 220 deletions(-)

diff --git a/HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx b/HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
index 1a09758..fd6739d 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
@@ -15,6 +15,9 @@
   getAreaAreaDataList,
   getAisleDataList,
 } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
+// 寮曞叆鍏叡閫夐」閰嶇疆
+import { FILTER_MODE_OPTIONS_STRING_KEY } from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'
+import WmsPlaceQueryDrawer from '../Dialog/WmsPlaceQueryDrawer/WmsPlaceQueryDrawer'
 
 interface RenderTableType {
   url?: string
@@ -44,72 +47,62 @@
       onError,
       onSearch,
       onRowClick,
+      dialogConfigForQuery,
       onConfirmWmsPlace,
       onCheck,
       onAddWmsPlace,
       onExport,
       openDetail,
       onSuccess,
+      onAdvancedQuery,
       onBeforeUpload,
     } = useWmsPlace(props, ctx)
 
+    //瀹氫箟楂樼骇鏌ヨ寮曠敤
+    const wmsPlaceQueryDrawerRef = ref(null)
     // 鏂板鐨勬煡璇㈡潯浠�
     const queryForm = ref({
-      placeNo: '',
-      storageTypeNo: '',
-      placeStatus: '',
-      areaCode: '',
-      aisle: '',
-      islock: '',
-      emptyContainer: '',
-      filter: '',
+      searchVal: '',
+      str_searchFormInputAttrs: [],
+      searchVal_FilterMode: '',
     })
-
-    const queryParams = computed(() => ({
-      ...queryForm.value,
-      storageTypeNo: queryForm.value.storageTypeNo || '', // 澶勭悊涓嬫媺
-      placeStatus: queryForm.value.placeStatus || '',
-      islock: queryForm.value.islock || '',
-      aisle: queryForm.value.aisle || '',
-      areaCode: queryForm.value.areaCode || '',
-      emptyContainer: queryForm.value.emptyContainer || '',
-    }))
+    //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂)
+    const _searchFormInputAttrs = ref(['PlaceNo'])
+    const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ簱浣嶇紪鍙�')
 
     // 鍔ㄦ�佹灇涓鹃�夐」
     const enumOptions = reactive({
       storageTypeNo: [] as Array<{ label: string; value: any }>,
       placeStatus: [] as Array<{ label: string; value: any }>,
-      yesOrNo: [] as Array<{ label: string; value: any }>,
+      islock: [] as Array<{ label: string; value: any }>,
+      emptyContainer: [] as Array<{ label: string; value: any }>,
     })
-
-    let areaTypelist = [] as Array<{ label: string; value: any }>
-    let aisleTypelist = [] as Array<{ label: string; value: any }>
 
     // 鑾峰彇鏋氫妇鏁版嵁
     const fetchEnumData = async () => {
       try {
-        // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
-        const storageTypeNoData = await getWmsEnumData({
+        const placeTypeEnumData = await getWmsEnumData({
           EnumName: 'PlaceTypeEnum',
         })
-        enumOptions.storageTypeNo = storageTypeNoData.map((item) => ({
+        enumOptions.storageTypeNo = placeTypeEnumData.map((item) => ({
           label: item.description,
           value: item.value,
         }))
-
-        // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
-        const placeStatusData = await getWmsEnumData({
+        const placeStatusEnumData = await getWmsEnumData({
           EnumName: 'PlaceStatusEnum',
         })
-        enumOptions.placeStatus = placeStatusData.map((item) => ({
+        enumOptions.placeStatus = placeStatusEnumData.map((item) => ({
           label: item.description,
           value: item.value,
         }))
-
-        const yesNoData = await getWmsEnumData({
+        const yesNoEnumData = await getWmsEnumData({
           EnumName: 'YesNoEnum',
         })
-        enumOptions.yesOrNo = yesNoData.map((item) => ({
+        enumOptions.islock = yesNoEnumData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+        enumOptions.emptyContainer = yesNoEnumData.map((item) => ({
           label: item.description,
           value: item.value,
         }))
@@ -117,56 +110,80 @@
         console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
       }
     }
-    const getAreaType = async () => {
-      try {
-        const areaListData = await getAreaAreaDataList()
-        areaTypelist = areaListData.map((item) => ({
-          label: item.areaName || '',
-          value: item.areaNo || '', // 鍚屼笂
-        }))
-      } catch (error) {
-        areaTypelist = [] // 澶辫触鏃堕噸缃负绌烘暟缁�
-      }
-    }
 
-    const getAisleList = async () => {
-      try {
-        const aisleListData = await getAisleDataList()
-        aisleTypelist = aisleListData.map((item) => ({
-          label: item.aisleName || '',
-          value: item.aisle || '',
-        }))
-      } catch (error) {
-        console.error('鑾峰彇宸烽亾鍒楄〃澶辫触:', error)
-        aisleTypelist = [] // 澶辫触鏃堕噸缃负绌烘暟缁�
-      }
-    }
+    // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�
+    const _curHighQueryData = ref({
+      searchVal: '',
+      str_searchFormInputAttrs: [],
+      searchVal_FilterMode: '',
+    })
     // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
     onMounted(() => {
       fetchEnumData()
-      getAreaType()
-      getAisleList()
+      queryForm.value.searchVal_FilterMode =
+        FILTER_MODE_OPTIONS_STRING_KEY[0]?.value || ''
+      _curHighQueryData.value.searchVal_FilterMode =
+        queryForm.value.searchVal_FilterMode
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
     })
 
-    // 鏂板鐨勬煡璇㈡柟娉�
-    const handleQuery = async () => {
-      console.log('鏌ヨ鏉′欢:', queryParams.value)
-      // tableRef.value.getTableList()
-      tableRef.value.getList(queryParams.value)
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級
+    const handleQueryForMain = async () => {
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal
+      _curHighQueryData.value.searchVal_FilterMode =
+        queryForm.value.searchVal_FilterMode
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
+      tableRef.value.getList(_curHighQueryData.value)
     }
-
-    // 閲嶇疆鏌ヨ鏉′欢
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級
+    const handleQuery = async (extraParams = {}) => {
+      let filteredData = commonGetHighQueryForm(extraParams)
+      commonSaveCurHighQueryData(filteredData)
+      tableRef.value.getList(filteredData)
+    }
+    // 鏂扮増鐨勬煡璇㈤噸缃�
     const resetQuery = () => {
-      queryForm.value = {
-        placeNo: '',
-        storageTypeNo: '',
-        placeStatus: '',
-        aisle: '',
-        areaCode: '',
-        islock: '',
-        emptyContainer: '',
-        filter: '',
-      }
+      queryForm.value.searchVal = ''
+      queryForm.value.searchVal_FilterMode =
+        FILTER_MODE_OPTIONS_STRING_KEY[0]?.value || ''
+      queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value
+    }
+    //鏂扮増鐨勫鍑烘柟娉�
+    const handleExport = () => {
+      onExport(_curHighQueryData.value)
+    }
+    // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶
+    const closeQuery = (extraParams = {}) => {
+      let filteredData = commonGetHighQueryForm(extraParams)
+      console.log('closeQuery鏂规硶')
+      console.log(filteredData)
+      commonSaveCurHighQueryData(filteredData)
+    }
+    //淇濆瓨鏌ヨ鍊�
+    const commonSaveCurHighQueryData = (filteredData = {}) => {
+      _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal
+      _curHighQueryData.value.searchVal_FilterMode =
+        queryForm.value.searchVal_FilterMode
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
+    }
+    //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊�
+    const commonGetHighQueryForm = (extraParams = {}) => {
+      // 杩囨护鎺� undefined 鐨勫��
+      let filteredData = Object.assign(
+        {},
+        ...Object.entries(extraParams).map(([key, value]) =>
+          value !== undefined ? { [key]: value } : {}
+        )
+      )
+      //缁勫悎妯$硦鏌ヨ
+      filteredData.searchVal = queryForm.value.searchVal
+      filteredData.searchVal_FilterMode = queryForm.value.searchVal_FilterMode
+      filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value
+      return filteredData
     }
 
     /**
@@ -247,144 +264,17 @@
             sort={sort.value}
             onConfirm={onConfirmWmsPlace}
           />
-          {/* 鏂板鐨勬煡璇㈣〃鍗� */}
-          <ElForm
-            inline
-            model={queryForm.value}
-            class={styles.queryForm}
-            label-width="80px"
-          >
-            <ElFormItem label="鍏抽敭瀛�">
-              <ElInput
-                v-model={queryForm.value.filter}
-                placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储"
-                clearable
-                class={styles.formItem}
-              />
-            </ElFormItem>
-            <ElFormItem label="搴撲綅缂栫爜">
-              <ElInput
-                v-model={queryForm.value.placeNo}
-                placeholder="璇疯緭鍏ュ簱浣嶇紪鐮�"
-                clearable
-                class={styles.formItem}
-              />
-            </ElFormItem>
-            <ElFormItem label="搴撲綅绫诲瀷">
-              <ElSelect
-                v-model={queryForm.value.storageTypeNo}
-                placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
-                clearable
-                loading={enumOptions.storageTypeNo.length === 0}
-                class={styles.formItem}
-              >
-                {enumOptions.storageTypeNo.map((option) => (
-                  <ElOption
-                    key={option.value}
-                    label={option.label}
-                    value={option.value}
-                  />
-                ))}
-              </ElSelect>
-            </ElFormItem>
-            <ElFormItem label="搴撲綅鐘舵��">
-              <ElSelect
-                v-model={queryForm.value.placeStatus}
-                placeholder="璇烽�夋嫨鎵樼洏鐘舵��"
-                clearable
-                loading={enumOptions.placeStatus.length === 0}
-                class={styles.formItem}
-              >
-                {enumOptions.placeStatus.map((option) => (
-                  <ElOption
-                    key={option.value}
-                    label={option.label}
-                    value={option.value}
-                  />
-                ))}
-              </ElSelect>
-            </ElFormItem>
-            <ElFormItem label="搴撳尯">
-              <ElSelect
-                v-model={queryForm.value.areaCode}
-                placeholder="璇烽�夋嫨搴撳尯"
-                clearable
-                loading={areaTypelist.length === 0}
-                class={styles.formItem}
-              >
-                {areaTypelist.map((option) => (
-                  <ElOption
-                    key={option.value}
-                    label={option.label}
-                    value={option.value}
-                  />
-                ))}
-              </ElSelect>
-            </ElFormItem>
-            <ElFormItem label="宸烽亾">
-              <ElSelect
-                v-model={queryForm.value.aisle}
-                placeholder="璇烽�夋嫨搴撳尯"
-                clearable
-                loading={aisleTypelist.length === 0}
-                class={styles.formItem}
-              >
-                {aisleTypelist.map((option) => (
-                  <ElOption
-                    key={option.value}
-                    label={option.label}
-                    value={option.value}
-                  />
-                ))}
-              </ElSelect>
-            </ElFormItem>
-            <ElFormItem label="鏄惁閿佸畾">
-              <ElSelect
-                v-model={queryForm.value.islock}
-                placeholder="璇烽�夋嫨鏄惁閿佸畾"
-                clearable
-                loading={enumOptions.yesOrNo.length === 0}
-                class={styles.formItem}
-              >
-                {enumOptions.yesOrNo.map((option) => (
-                  <ElOption
-                    key={option.value}
-                    label={option.label}
-                    value={option.value}
-                  />
-                ))}
-              </ElSelect>
-            </ElFormItem>
-            <ElFormItem label="鏄惁绌烘墭">
-              <ElSelect
-                v-model={queryForm.value.emptyContainer}
-                placeholder="璇烽�夋嫨鏄惁绌烘墭"
-                clearable
-                loading={enumOptions.yesOrNo.length === 0}
-                class={styles.formItem}
-              >
-                {enumOptions.yesOrNo.map((option) => (
-                  <ElOption
-                    key={option.value}
-                    label={option.label}
-                    value={option.value}
-                  />
-                ))}
-              </ElSelect>
-            </ElFormItem>
-            <ElFormItem>
-              <IconButton type="primary" icon="search" onClick={handleQuery}>
-                鏌ヨ
-              </IconButton>
-              <IconButton
-                style="margin-left: 10px;"
-                icon="refresh"
-                onClick={resetQuery}
-              >
-                閲嶇疆
-              </IconButton>
-            </ElFormItem>
-          </ElForm>
+          {/* 楂樼骇鏌ヨ */}
+          <WmsPlaceQueryDrawer
+            ref="wmsPlaceQueryDrawerRef"
+            v-model={dialogConfigForQuery.visible}
+            title={dialogConfigForQuery.title}
+            row={current.value}
+            sort={sort.value}
+            onConfirmQuery={handleQuery}
+            onRestQuery={resetQuery}
+            onClose={closeQuery}
+          />
 
           <div class={styles.headerContent}>
             <div class={styles.header}>
@@ -397,6 +287,7 @@
                 娣诲姞
               </IconButton>
               <el-divider direction="vertical" />
+
               <el-upload
                 v-permission="wmsPlace-import"
                 name="file"
@@ -414,20 +305,65 @@
               <IconButton
                 v-permission="wmsPlace-output"
                 icon="out"
-                onClick={onExport}
+                onClick={handleExport}
               >
                 瀵煎嚭
               </IconButton>
             </div>
-            {/* <Search
-              placeholder="璇疯緭鍏ュ叧閿瓧"
-              v-model={search.value}
-              onConfirm={onSearch}
-              style={{ marginTop: '-1px' }}
-            /> */}
+            <ElFormItem style={{ marginTop: '15px' }}>
+              <ElFormItem label="鍏抽敭瀛�">
+                <el-tooltip
+                  class="box-item"
+                  effect="dark"
+                  content={searchFormInputAttrs_Placeholder.value}
+                  placement="top-start"
+                >
+                  <ElInput
+                    v-model={queryForm.value.searchVal}
+                    placeholder={searchFormInputAttrs_Placeholder.value}
+                    clearable
+                    class={styles.formItem}
+                  />
+                </el-tooltip>
+              </ElFormItem>
+              <ElFormItem label="" style="width:100px;">
+                <ElSelect
+                  v-model={queryForm.value.searchVal_FilterMode}
+                  placeholder="璇烽�夋嫨"
+                  class={styles.formItem}
+                >
+                  {FILTER_MODE_OPTIONS_STRING_KEY.map((option) => (
+                    <ElOption
+                      key={option.value}
+                      label={option.label}
+                      value={option.value}
+                    />
+                  ))}
+                </ElSelect>
+              </ElFormItem>
+              <IconButton
+                type="primary"
+                icon="search"
+                onClick={handleQueryForMain}
+              >
+                鏌ヨ
+              </IconButton>
+              {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 
+                閲嶇疆 
+              </IconButton> */}
+              <IconButton
+                v-permission="wmsPlace-add"
+                icon="search"
+                onClick={onAdvancedQuery}
+                type="primary"
+              >
+                楂樼骇鏌ヨ
+              </IconButton>
+            </ElFormItem>
           </div>
+
           <RenderBaseTable
-            url="/api/v1/HIAWms/wmsPlace"
+            url="/api/v1/HIAWms/wmsPlace/page"
             dataSource={dataSource}
             isChecked={true}
             isDrag={true}

--
Gitblit v1.9.3