From 086e8d457fb6480f126aedbd2677c7e97bdac193 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周三, 07 5月 2025 15:49:09 +0800 Subject: [PATCH] 任务管理修改 --- HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx | 633 +++++++++++++++++++++++++++++--------------------------- 1 files changed, 327 insertions(+), 306 deletions(-) diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx index 0fa6e7b..45b6773 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/WmsInOutStockRecord.tsx @@ -1,308 +1,329 @@ -import { computed, defineComponent, onMounted, reactive, ref } from 'vue' -import type { Ref } from 'vue' -import BaseTable from '@/components/Table/Table' -import styles from './WmsInOutStockRecord.module.scss' -import { useWmsInOutStockRecord } from '../../../Controllers/WmsInOutStockRecord' -import IconButton from '@/components/IconButton/IconButton' -import WmsInOutStockRecordDrawer from '../Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer' -import WmsInOutStockRecordQueryDrawer from '../Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer' -import Search from '@/components/Search/Search' -import { columns } from './Config' -import TdButton from '@/components/TdButton/TdButton' -import { vPermission } from '@/libs/Permission/Permission' -import { - getWmsEnumData -} from '@/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer' -import { - ElInput, - ElSelect, - ElOption, - ElDatePicker, - ElForm, - ElFormItem, -} from 'element-plus' -import { injectModel } from '@/libs/Provider/Provider' - -interface RenderTableType { - url?: string - dataSource: Ref<any[]> - isDrag?: boolean - isChecked?: boolean - isHidePagination?: boolean - params?: Record<string, any> - autoHeight?: boolean -} - -export default defineComponent({ - name: 'WmsInOutStockRecord', - directives: { - permission: vPermission, - }, - setup(props, ctx) { - const { - dataSource, - contextMenu, - dialogConfig, - dialogConfigForQuery, - tableRef, - current, - search, - sort, - headers, - onError, - onSearch, - onRowClick, - onConfirmWmsInOutStockRecord, - onCheck, - onAddWmsInOutStockRecord, - onAdvancedQuery, - onExport, - openDetail, - onSuccess, - onBeforeUpload, - } = useWmsInOutStockRecord(props, ctx) - - //瀹氫箟楂樼骇鏌ヨ寮曠敤 - const wmsInOutStockRecordQueryDrawerRef=ref(null); - // 鏂板鐨勬煡璇㈡潯浠� - const queryForm = ref({ - searchVal: '', - str_searchFormInputAttrs:[] - }) - //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) - const _searchFormInputAttrs = ref([ - 'MaterialNo', 'ContainerNo' - ]); - const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑紪鐮�/鎵樼洏'); - - - // 鍔ㄦ�佹灇涓鹃�夐」 - const enumOptions = reactive({ - stockType: [] as Array<{label: string; value: any }>, - }) - - // 鑾峰彇鏋氫妇鏁版嵁 - const fetchEnumData = async () => { - try { - const stockTypeEnumData = await getWmsEnumData({ - EnumName: 'StockTypeEnum', -}) -enumOptions.stockType = stockTypeEnumData.map((item) => ({ - label: item.description, - value: item.value, -})) - - } catch (error) { - console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) - } - } - - // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� - onMounted(() => { - fetchEnumData() - }) - - // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� - 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; - } - - - /** - * @returns 琛ㄦ牸 - */ - const RenderBaseTable = (props: RenderTableType) => { - const { - url, - dataSource, - isDrag, - isChecked, - isHidePagination, - params, - autoHeight, - } = props - - return ( - <div - class={{ - [styles.wmsInOutStockRecordList]: true, - }} - > - <BaseTable - ref={tableRef} - url={url} - sortUrlTpl="/api/v1/HIAWms/wmsInOutStockRecord/{id}/adjustsort/{sort}" - v-model:dataSource={dataSource.value} - columns={columns} - contextMenu={contextMenu} - params={params} - isDrag={isDrag} - isChecked={isChecked} - autoHeight={autoHeight} - onCheck={onCheck} - onRowClick={onRowClick} - isHidePagination={isHidePagination} - pageSize={20} - v-slots={{ - name: ({ row }: any) => { - return row?.name ? ( - <TdButton - onClick={() => openDetail(row)} - text={<span style="color:#5a84ff">璇︽儏</span>} - icon="scale" - tip={row?.name} - hover - > - {row?.name} - </TdButton> - ) : ( - '-' - ) - }, - }} - ></BaseTable> - </div> - ) - } - - return () => { - return ( - <div class={styles.wmsInOutStockRecordContent}> - {/* 娣诲姞/缂栬緫 */} - <WmsInOutStockRecordDrawer - v-model={dialogConfig.visible} - title={dialogConfig.title} - row={current.value} - sort={sort.value} - onConfirm={onConfirmWmsInOutStockRecord} - /> - {/* 楂樼骇鏌ヨ */} - <WmsInOutStockRecordQueryDrawer - ref="wmsInOutStockRecordQueryDrawerRef" - 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}> - <IconButton - v-permission="wmsInOutStockRecord-add" - icon="add-p" - onClick={onAddWmsInOutStockRecord} - type="primary" - > - 娣诲姞 - </IconButton> - <el-divider direction="vertical" /> - - <el-divider direction="vertical" /> - <el-upload - v-permission="wmsInOutStockRecord-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/wmsInOutStockRecord/import" - > - <IconButton icon="in">瀵煎叆</IconButton> - </el-upload> - - <IconButton - v-permission="wmsInOutStockRecord-output" - icon="out" - onClick={handleExport} - > - 瀵煎嚭 - </IconButton> - </div> - <ElFormItem style={{ marginTop: '15px' }}> - <ElFormItem label="鍏抽敭瀛�"> - <ElInput - v-model={queryForm.value.searchVal} - placeholder={searchFormInputAttrs_Placeholder.value} - clearable - class={styles.formItem} - /> - </ElFormItem> - <IconButton type="primary" icon="search" onClick={handleQueryForMain}> - 鏌ヨ - </IconButton> +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WmsInOutStockRecord.module.scss' +import { useWmsInOutStockRecord } from '../../../Controllers/WmsInOutStockRecord' +import IconButton from '@/components/IconButton/IconButton' +import WmsInOutStockRecordDrawer from '../Dialog/WmsInOutStockRecordDrawer/WmsInOutStockRecordDrawer' +import WmsInOutStockRecordQueryDrawer from '../Dialog/WmsInOutStockRecordQueryDrawer/WmsInOutStockRecordQueryDrawer' +import Search from '@/components/Search/Search' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import { vPermission } from '@/libs/Permission/Permission' +import { getWmsEnumData } from '@/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer' +import dayjs from 'dayjs' +import { + ElInput, + ElSelect, + ElOption, + ElDatePicker, + ElForm, + ElFormItem, +} from 'element-plus' +import { injectModel } from '@/libs/Provider/Provider' + +interface RenderTableType { + url?: string + dataSource: Ref<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + autoHeight?: boolean +} + +export default defineComponent({ + name: 'WmsInOutStockRecord', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWmsInOutStockRecord, + onCheck, + onAddWmsInOutStockRecord, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWmsInOutStockRecord(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsInOutStockRecordQueryDrawerRef = ref(null) + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref(['MaterialNo', 'ContainerNo']) + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑紪鐮�/鎵樼洏') + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + stockType: [] as Array<{ label: string; value: any }>, + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + const stockTypeEnumData = await getWmsEnumData({ + EnumName: 'StockTypeEnum', + }) + enumOptions.stockType = stockTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } catch (error) { + console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) + } + } + + // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� + onMounted(() => { + fetchEnumData() + }) + + // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� + 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 + } + + /** + * @returns 琛ㄦ牸 + */ + const RenderBaseTable = (props: RenderTableType) => { + const { + url, + dataSource, + isDrag, + isChecked, + isHidePagination, + params, + autoHeight, + } = props + + return ( + <div + class={{ + [styles.wmsInOutStockRecordList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/HIAWms/wmsInOutStockRecord/{id}/adjustsort/{sort}" + v-model:dataSource={dataSource.value} + columns={columns} + contextMenu={contextMenu} + params={params} + isDrag={isDrag} + isChecked={isChecked} + autoHeight={autoHeight} + onCheck={onCheck} + onRowClick={onRowClick} + isHidePagination={isHidePagination} + pageSize={20} + v-slots={{ + creationTime: ({ row }: any) => { + return ( + <div> + {row.creationTime != null + ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + operateTime: ({ row }: any) => { + return ( + <div> + {row.operateTime != null + ? dayjs(row.operateTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + name: ({ row }: any) => { + return row?.name ? ( + <TdButton + onClick={() => openDetail(row)} + text={<span style="color:#5a84ff">璇︽儏</span>} + icon="scale" + tip={row?.name} + hover + > + {row?.name} + </TdButton> + ) : ( + '-' + ) + }, + }} + ></BaseTable> + </div> + ) + } + + return () => { + return ( + <div class={styles.wmsInOutStockRecordContent}> + {/* 娣诲姞/缂栬緫 */} + <WmsInOutStockRecordDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsInOutStockRecord} + /> + {/* 楂樼骇鏌ヨ */} + <WmsInOutStockRecordQueryDrawer + ref="wmsInOutStockRecordQueryDrawerRef" + 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}> + <IconButton + v-permission="wmsInOutStockRecord-add" + icon="add-p" + onClick={onAddWmsInOutStockRecord} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-divider direction="vertical" /> + {/* <el-upload + v-permission="wmsInOutStockRecord-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/wmsInOutStockRecord/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> */} + + <IconButton + v-permission="wmsInOutStockRecord-output" + icon="out" + onClick={handleExport} + > + 瀵煎嚭 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="鍏抽敭瀛�"> + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </ElFormItem> + <IconButton + type="primary" + icon="search" + onClick={handleQueryForMain} + > + 鏌ヨ + </IconButton> {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 閲嶇疆 - </IconButton> */} - <IconButton - v-permission="wmsInOutStockRecord-add" - icon="search" - onClick={onAdvancedQuery} - type="primary" - > - 楂樼骇鏌ヨ - </IconButton> - </ElFormItem> - </div> - - <RenderBaseTable - url="/api/v1/HIAWms/wmsInOutStockRecord/page" - dataSource={dataSource} - isChecked={true} - isDrag={true} - /> - </div> - ) - } - }, -}) + </IconButton> */} + <IconButton + v-permission="wmsInOutStockRecord-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/HIAWms/wmsInOutStockRecord/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) -- Gitblit v1.9.3