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 | 387 +++++++++++++++++++++++------------------------------- 1 files changed, 167 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 ddd7982..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 } /** @@ -205,6 +222,17 @@ isHidePagination={isHidePagination} pageSize={50} v-slots={{ + isDisabled: ({ row }: any) => { + return ( + <div> + {row.isDisabled != null + ? row.isDisabled + ? '鏄�' + : '鍚�' + : '-'} + </div> + ) + }, name: ({ row }: any) => { return row?.name ? ( <TdButton @@ -236,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}> @@ -386,6 +287,7 @@ 娣诲姞 </IconButton> <el-divider direction="vertical" /> + <el-upload v-permission="wmsPlace-import" name="file" @@ -403,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