fix: useTable warning

This commit is contained in:
xingyu 2022-07-25 22:54:12 +08:00
parent 3d0cb5200b
commit 877254af10
11 changed files with 87 additions and 23 deletions

View File

@ -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 })
} }

View File

@ -5,3 +5,8 @@ export type DeptVO = {
parentId: number parentId: number
createTime: string createTime: string
} }
export type DeptListReqVO = {
name: string
status: number
}

View File

@ -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 })
} }

View File

@ -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 })
} }

View File

@ -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
}

View File

@ -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 })
} }

View File

@ -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
}

View File

@ -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(() => {

View File

@ -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',

View File

@ -21,7 +21,7 @@ const { getList, setSearchParams, delList, exportList } = methods
// //
const handleExport = async () => { const handleExport = async () => {
await exportList('用户数据.xls') await exportList('岗位数据.xls')
} }
// ========== CRUD ========== // ========== CRUD ==========

View File

@ -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)]
} }