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