mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-11-01 03:28:41 +08:00 
			
		
		
		
	fix: useTable warning
This commit is contained in:
		| @ -1,5 +1,5 @@ | ||||
| import { useAxios } from '@/hooks/web/useAxios' | ||||
| import type { DeptVO } from './types' | ||||
| import type { DeptVO, DeptListReqVO } from './types' | ||||
|  | ||||
| const request = useAxios() | ||||
|  | ||||
| @ -9,7 +9,7 @@ export const listSimpleDeptApi = () => { | ||||
| } | ||||
|  | ||||
| // 查询部门列表 | ||||
| export const getDeptPageApi = (params) => { | ||||
| export const getDeptPageApi = (params: DeptListReqVO) => { | ||||
|   return request.get({ url: '/system/dept/list', params }) | ||||
| } | ||||
|  | ||||
|  | ||||
| @ -5,3 +5,8 @@ export type DeptVO = { | ||||
|   parentId: number | ||||
|   createTime: string | ||||
| } | ||||
|  | ||||
| export type DeptListReqVO = { | ||||
|   name: string | ||||
|   status: number | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| import { useAxios } from '@/hooks/web/useAxios' | ||||
| import type { DictDataVO } from './types' | ||||
| import type { DictDataVO, DictDataPageReqVO, DictDataExportReqVO } from './types' | ||||
|  | ||||
| const request = useAxios() | ||||
|  | ||||
| @ -9,7 +9,7 @@ export const listSimpleDictDataApi = () => { | ||||
| } | ||||
|  | ||||
| // 查询字典数据列表 | ||||
| export const getDictDataPageApi = (params) => { | ||||
| export const getDictDataPageApi = (params: DictDataPageReqVO) => { | ||||
|   return request.get({ url: '/system/dict-data/page', params }) | ||||
| } | ||||
|  | ||||
| @ -33,6 +33,6 @@ export const deleteDictDataApi = (id: number) => { | ||||
|   return request.delete({ url: '/system/dict-data/delete?id=' + id }) | ||||
| } | ||||
| // 导出字典类型数据 | ||||
| export const exportDictDataApi = (params: DictDataVO) => { | ||||
| export const exportDictDataApi = (params: DictDataExportReqVO) => { | ||||
|   return request.get({ url: '/system/dict-data/export', params }) | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| import { useAxios } from '@/hooks/web/useAxios' | ||||
| import type { DictTypeVO } from './types' | ||||
| import type { DictTypeVO, DictTypePageReqVO, DictTypeExportReqVO } from './types' | ||||
|  | ||||
| const request = useAxios() | ||||
|  | ||||
| @ -9,7 +9,7 @@ export const listSimpleDictTypeApi = () => { | ||||
| } | ||||
|  | ||||
| // 查询字典列表 | ||||
| export const getDictTypePageApi = (params) => { | ||||
| export const getDictTypePageApi = (params: DictTypePageReqVO) => { | ||||
|   return request.get({ url: '/system/dict-type/page', params }) | ||||
| } | ||||
|  | ||||
| @ -33,6 +33,6 @@ export const deleteDictTypeApi = (id: number) => { | ||||
|   return request.delete({ url: '/system/dict-type/delete?id=' + id }) | ||||
| } | ||||
| // 导出字典类型 | ||||
| export const exportDictTypeApi = (params: DictTypeVO) => { | ||||
| export const exportDictTypeApi = (params: DictTypeExportReqVO) => { | ||||
|   return request.get({ url: '/system/dict-type/export', params }) | ||||
| } | ||||
|  | ||||
| @ -7,6 +7,20 @@ export type DictTypeVO = { | ||||
|   createTime: string | ||||
| } | ||||
|  | ||||
| export type DictTypePageReqVO = { | ||||
|   name: string | ||||
|   type: string | ||||
|   status: number | ||||
|   createTime: [] | ||||
| } | ||||
|  | ||||
| export type DictTypeExportReqVO = { | ||||
|   name: string | ||||
|   type: string | ||||
|   status: number | ||||
|   createTime: [] | ||||
| } | ||||
|  | ||||
| export type DictDataVO = { | ||||
|   id: number | ||||
|   sort: number | ||||
| @ -19,3 +33,14 @@ export type DictDataVO = { | ||||
|   remark: string | ||||
|   createTime: string | ||||
| } | ||||
| export type DictDataPageReqVO = { | ||||
|   label: string | ||||
|   dictType: string | ||||
|   status: number | ||||
| } | ||||
|  | ||||
| export type DictDataExportReqVO = { | ||||
|   label: string | ||||
|   dictType: string | ||||
|   status: number | ||||
| } | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| import { useAxios } from '@/hooks/web/useAxios' | ||||
| import type { PostVO } from './types' | ||||
| import type { PostVO, PostPageReqVO, PostExportReqVO } from './types' | ||||
|  | ||||
| const request = useAxios() | ||||
|  | ||||
| // 查询岗位列表 | ||||
| export const getPostPageApi = async (params) => { | ||||
| export const getPostPageApi = async (params: PostPageReqVO) => { | ||||
|   return await request.get({ url: '/system/post/page', params }) | ||||
| } | ||||
|  | ||||
| @ -33,6 +33,6 @@ export const deletePostApi = async (id: number) => { | ||||
| } | ||||
|  | ||||
| // 导出岗位 | ||||
| export const exportPostApi = async (params) => { | ||||
| export const exportPostApi = async (params: PostExportReqVO) => { | ||||
|   return await request.download({ url: '/system/post/export', params }) | ||||
| } | ||||
|  | ||||
| @ -7,3 +7,15 @@ export type PostVO = { | ||||
|   remark: string | ||||
|   createTime: string | ||||
| } | ||||
|  | ||||
| export type PostPageReqVO = { | ||||
|   code: string | ||||
|   name: string | ||||
|   status: number | ||||
| } | ||||
|  | ||||
| export type PostExportReqVO = { | ||||
|   code: string | ||||
|   name: string | ||||
|   status: number | ||||
| } | ||||
|  | ||||
| @ -1,14 +1,14 @@ | ||||
| import download from '@/utils/download' | ||||
| import { Table, TableExpose } from '@/components/Table' | ||||
| import { ElTable, ElMessageBox, ElMessage } from 'element-plus' | ||||
| import { ref, reactive, watch, computed, unref, nextTick } from 'vue' | ||||
| import { ElMessage, ElMessageBox, ElTable } from 'element-plus' | ||||
| import { computed, nextTick, reactive, ref, unref, watch } from 'vue' | ||||
| import type { TableProps } from '@/components/Table/src/types' | ||||
| import { useI18n } from '@/hooks/web/useI18n' | ||||
|  | ||||
| const { t } = useI18n() | ||||
| interface ResponseType<T = any> { | ||||
|   list: T[] | ||||
|   total?: string | ||||
|   total?: number | ||||
| } | ||||
|  | ||||
| interface UseTableConfig<T = any> { | ||||
| @ -114,15 +114,13 @@ export const useTable = <T = any>(config?: UseTableConfig<T>) => { | ||||
|     ElMessage.success(t('common.delSuccess')) | ||||
|  | ||||
|     // 计算出临界点 | ||||
|     const currentPage = | ||||
|     tableObject.currentPage = | ||||
|       tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1 | ||||
|         ? tableObject.currentPage > 1 | ||||
|           ? tableObject.currentPage - 1 | ||||
|           : tableObject.currentPage | ||||
|         : tableObject.currentPage | ||||
|  | ||||
|     tableObject.currentPage = currentPage | ||||
|     methods.getList() | ||||
|     await methods.getList() | ||||
|   } | ||||
|  | ||||
|   const methods = { | ||||
| @ -132,8 +130,10 @@ export const useTable = <T = any>(config?: UseTableConfig<T>) => { | ||||
|         tableObject.loading = false | ||||
|       }) | ||||
|       if (res) { | ||||
|         tableObject.tableList = res?.list | ||||
|         tableObject.total = res?.total | ||||
|         tableObject.tableList = (res as unknown as ResponseType).list | ||||
|         if ((res as unknown as ResponseType).total) { | ||||
|           tableObject.total = (res as unknown as ResponseType).total as unknown as number | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     setProps: async (props: TableProps = {}) => { | ||||
| @ -194,7 +194,7 @@ export const useTable = <T = any>(config?: UseTableConfig<T>) => { | ||||
|         .then(async () => { | ||||
|           const res = await config?.exportListApi?.(unref(paramsObj) as unknown as T) | ||||
|           if (res) { | ||||
|             download.excel(res, fileName) | ||||
|             download.excel(res as unknown as Blob, fileName) | ||||
|           } | ||||
|         }) | ||||
|         .finally(() => { | ||||
|  | ||||
| @ -42,6 +42,28 @@ const crudSchemas = reactive<CrudSchema[]>([ | ||||
|     field: 'status', | ||||
|     dictType: DICT_TYPE.COMMON_STATUS | ||||
|   }, | ||||
|   { | ||||
|     label: t('common.createTime'), | ||||
|     field: 'createTime', | ||||
|     table: { | ||||
|       show: false | ||||
|     }, | ||||
|     form: { | ||||
|       show: false | ||||
|     }, | ||||
|     detail: { | ||||
|       show: false | ||||
|     }, | ||||
|     search: { | ||||
|       show: true, | ||||
|       component: 'DatePicker', | ||||
|       componentProps: { | ||||
|         type: 'datetimerange', | ||||
|         valueFormat: 'YYYY-MM-DD HH:mm:ss', | ||||
|         defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   { | ||||
|     label: t('form.remark'), | ||||
|     field: 'remark', | ||||
|  | ||||
| @ -21,7 +21,7 @@ const { getList, setSearchParams, delList, exportList } = methods | ||||
|  | ||||
| // 导出操作 | ||||
| const handleExport = async () => { | ||||
|   await exportList('用户数据.xls') | ||||
|   await exportList('岗位数据.xls') | ||||
| } | ||||
|  | ||||
| // ========== CRUD 相关 ========== | ||||
|  | ||||
| @ -115,7 +115,7 @@ const crudSchemas = reactive<CrudSchema[]>([ | ||||
|       show: true, | ||||
|       component: 'DatePicker', | ||||
|       componentProps: { | ||||
|         type: 'daterange', | ||||
|         type: 'datetimerange', | ||||
|         valueFormat: 'YYYY-MM-DD HH:mm:ss', | ||||
|         defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)] | ||||
|       } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 xingyu
					xingyu