From e8d564377d20526c643f00132ccc3466360f9c5b Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周二, 13 5月 2025 15:33:58 +0800 Subject: [PATCH] 详情页面 --- HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx | 347 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 210 insertions(+), 137 deletions(-) diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx index 40d7b2b..a2f4737 100644 --- a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx +++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStockDetail/WmsMaterialStockDetail.tsx @@ -4,21 +4,22 @@ import styles from './WmsMaterialStockDetail.module.scss' import { useWmsMaterialStock } from '../../../Controllers/WmsMaterialStock' import IconButton from '@/components/IconButton/IconButton' -import WmsMaterialStockDrawer from '../Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer' +import WmsMaterialStockDetailQueryDrawer from '../Dialog/WmsMaterialStockDetailQuery/WmsMaterialStockDetailQueryDrawer' import Search from '@/components/Search/Search' import { columns } from './Config' import TdButton from '@/components/TdButton/TdButton' import { vPermission } from '@/libs/Permission/Permission' import dayjs from 'dayjs' +import { getWmsEnumData } from '@/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer' import { + ElInput, + ElSelect, + ElOption, ElDatePicker, ElForm, ElFormItem, - ElInput, - ElOption, - ElSelect, } from 'element-plus' -import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer' +import { injectModel } from '@/libs/Provider/Provider' interface RenderTableType { url?: string @@ -31,7 +32,7 @@ } export default defineComponent({ - name: 'WmsMaterialStock', + name: 'WmsMaterialStockDetail', directives: { permission: vPermission, }, @@ -40,6 +41,7 @@ dataSource, contextMenu, dialogConfig, + dialogConfigForQuery, tableRef, current, search, @@ -51,91 +53,81 @@ onConfirmWmsMaterialStock, onCheck, onAddWmsMaterialStock, + onAdvancedQuery, onExport, openDetail, onSuccess, onBeforeUpload, } = useWmsMaterialStock(props, ctx) + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsMaterialStockDetailQueryDrawerRef = ref(null) // 鏂板鐨勬煡璇㈡潯浠� const queryForm = ref({ - containerNo: '', - materialNo: '', - materialName: '', - containerType: '', - containerStatus: '', - storageTypeNo: 1, - placeStatus: '', - placeNo: '', - isLock: '', - emptyContainer: '', - dateRange: [], - filter: '', + searchVal: '', + str_searchFormInputAttrs: [], }) - - const queryParams = computed(() => ({ - ...queryForm.value, - containerType: queryForm.value.containerType || '', // 澶勭悊涓嬫媺 - containerStatus: queryForm.value.containerStatus || '', - storageTypeNo: queryForm.value.storageTypeNo || 1, // 澶勭悊涓嬫媺 - placeStatus: queryForm.value.placeStatus || '', - islock: queryForm.value.isLock || '', - emptyContainer: queryForm.value.emptyContainer || '', - startTime: queryForm.value.dateRange[0] || '', - endTime: queryForm.value.dateRange[1] || '', - })) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref(['OrderNo', 'MaterialNo', 'MaterialId']) + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鐗╂枡ID') // 鍔ㄦ�佹灇涓鹃�夐」 const enumOptions = reactive({ - containerType: [] as Array<{ label: string; value: any }>, containerStatus: [] as Array<{ label: string; value: any }>, - storageTypeNo: [] as Array<{ label: string; value: any }>, + containerType: [] as Array<{ label: string; value: any }>, placeStatus: [] as Array<{ label: string; value: any }>, - yesOrNo: [] as Array<{ label: string; value: any }>, + storageTypeNo: [] as Array<{ label: string; value: any }>, + checkStatus: [] as Array<{ label: string; value: any }>, + isLock: [] as Array<{ label: string; value: any }>, + emptyContainer: [] as Array<{ label: string; value: any }>, }) // 鑾峰彇鏋氫妇鏁版嵁 const fetchEnumData = async () => { try { - // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇 - const containerTypeData = await getWmsEnumData({ - EnumName: 'ContainerTypeEnum', - }) - enumOptions.containerType = containerTypeData.map((item) => ({ - label: item.description, - value: item.value, - })) - // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇 - const storageTypeNoData = await getWmsEnumData({ - EnumName: 'PlaceTypeEnum', - }) - enumOptions.storageTypeNo = storageTypeNoData.map((item) => ({ - label: item.description, - value: item.value, - })) - - // 鑾峰彇閲囪喘绫诲瀷鏋氫妇 - const placeStatusData = await getWmsEnumData({ - EnumName: 'PlaceStatusEnum', - }) - enumOptions.placeStatus = placeStatusData.map((item) => ({ - label: item.description, - value: item.value, - })) - - // 鑾峰彇閲囪喘绫诲瀷鏋氫妇 - const containerStatusData = await getWmsEnumData({ + const containerStatusEnumData = await getWmsEnumData({ EnumName: 'ContainerStatusEnum', }) - enumOptions.containerStatus = containerStatusData.map((item) => ({ + enumOptions.containerStatus = containerStatusEnumData.map((item) => ({ label: item.description, value: item.value, })) - - const yesNoData = await getWmsEnumData({ + const containerTypeEnumData = await getWmsEnumData({ + EnumName: 'ContainerTypeEnum', + }) + enumOptions.containerType = containerTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + const placeStatusEnumData = await getWmsEnumData({ + EnumName: 'PlaceStatusEnum', + }) + enumOptions.placeStatus = placeStatusEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + const placeTypeEnumData = await getWmsEnumData({ + EnumName: 'PlaceTypeEnum', + }) + enumOptions.storageTypeNo = placeTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + const materialCheckStatusEnumData = await getWmsEnumData({ + EnumName: 'MaterialCheckStatusEnum', + }) + enumOptions.checkStatus = materialCheckStatusEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + 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, })) @@ -147,33 +139,65 @@ // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� onMounted(() => { fetchEnumData() - handleQuery() + handleQueryForMain() }) - // 鏂板鐨勬煡璇㈡柟娉� - const handleQuery = async () => { - console.log('鏌ヨ鏉′欢:', queryParams.value) - // tableRef.value.getTableList() - tableRef.value.getList(queryParams.value) + // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� + const _curHighQueryData = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 + const handleQueryForMain = async () => { + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _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.searchVal = '' + 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.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.str_searchFormInputAttrs = _searchFormInputAttrs.value + return filteredData } - // 閲嶇疆鏌ヨ鏉′欢 - const resetQuery = () => { - queryForm.value = { - containerNo: '', - materialNo: '', - materialName: '', - containerType: '', - containerStatus: '', - storageTypeNo: 1, - placeStatus: '', - placeNo: '', - isLock: '', - emptyContainer: '', - dateRange: [], - filter: '', - } - } /** * @returns 琛ㄦ牸 */ @@ -187,20 +211,17 @@ params, autoHeight, } = props - props.params = { - ...queryParams.value, - ...params, - } + return ( <div class={{ - [styles.wmsMaterialStockList]: true, + [styles.wmsMaterialStockDetailList]: true, }} > <BaseTable ref={tableRef} url={url} - sortUrlTpl="/api/v1/HIAWms/wmsMaterialStock/{id}/adjustsort/{sort}" + sortUrlTpl="/api/v1/HIAWms/wmsMaterialStockDetail/{id}/adjustsort/{sort}" v-model:dataSource={dataSource.value} columns={columns} contextMenu={contextMenu} @@ -218,6 +239,57 @@ <div> {row.inStockTime != null ? dayjs(row.inStockTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + isDisabled: ({ row }: any) => { + return ( + <div> + {row.isDisabled != null + ? row.isDisabled + ? '鏄�' + : '鍚�' + : '-'} + </div> + ) + }, + creationTime: ({ row }: any) => { + return ( + <div> + {row.creationTime != null + ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + lastModificationTime: ({ row }: any) => { + return ( + <div> + {row.lastModificationTime != null + ? dayjs(row.lastModificationTime).format( + 'YYYY-MM-DD HH:mm:ss' + ) + : '-'} + </div> + ) + }, + isDeleted: ({ row }: any) => { + return ( + <div> + {row.isDeleted != null + ? row.isDeleted + ? '鏄�' + : '鍚�' + : '-'} + </div> + ) + }, + deletionTime: ({ row }: any) => { + return ( + <div> + {row.deletionTime != null + ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss') : '-'} </div> ) @@ -242,20 +314,13 @@ </div> ) } + return () => { return ( - <div class={styles.wmsMaterialStockContent}> - {/* 娣诲姞/缂栬緫 */} - <WmsMaterialStockDrawer - v-model={dialogConfig.visible} - title={dialogConfig.title} - row={current.value} - sort={sort.value} - onConfirm={onConfirmWmsMaterialStock} - /> + <div class={styles.wmsMaterialStockDetailContent}> {/* 楂樼骇鏌ヨ */} - {/* <WmsMaterialStockDetailDrawer - ref="wmsTaskQueryDrawerRef" + <WmsMaterialStockDetailQueryDrawer + ref="wmsMaterialStockDetailQueryDrawerRef" v-model={dialogConfigForQuery.visible} title={dialogConfigForQuery.title} row={current.value} @@ -263,49 +328,57 @@ onConfirmQuery={handleQuery} onRestQuery={resetQuery} onClose={closeQuery} - /> */} + /> + <div class={styles.headerContent}> <div class={styles.header}> <IconButton - v-permission="wmsMaterialStock-add" - icon="add-p" - onClick={onAddWmsMaterialStock} - type="primary" - > - 娣诲姞 - </IconButton> - <el-divider direction="vertical" /> - <el-upload - v-permission="wmsMaterialStock-import" - name="file" - accept=".xlsx,.xls,.csv" - show-file-list={false} - onError={onError} - onSuccess={onSuccess} - before-upload={onBeforeUpload} - headers={headers.value} - action="/api/v1/HIAWms/wmsMaterialStock/import" - > - <IconButton icon="in">瀵煎叆</IconButton> - </el-upload> - - <IconButton - v-permission="wmsMaterialStock-output" + v-permission="wmsMaterialStockDetail-output" icon="out" onClick={onExport} > 瀵煎嚭 </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> + <IconButton + type="primary" + icon="search" + onClick={handleQueryForMain} + > + 鏌ヨ + </IconButton> + {/* <IconButton style="" icon="refresh" onClick={resetQuery}> + 閲嶇疆 + </IconButton> */} + <IconButton + v-permission="wmsMaterialStockDetail-hightQuery" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> </div> + <RenderBaseTable - url="/api/v1/HIAWms/wmsMaterialStock" + url="/api/v1/HIAWms/wmsMaterialStock/StockDetail" dataSource={dataSource} isChecked={true} isDrag={true} -- Gitblit v1.9.3