feat: 增加 刷新列表 删除行 获取查询参数 方法

This commit is contained in:
xingyu4j 2022-11-15 14:30:10 +08:00
parent c7972f9a06
commit ecb7ade767
3 changed files with 40 additions and 28 deletions

View File

@ -1,4 +1,4 @@
import { computed, reactive } from 'vue'
import { computed, nextTick, reactive } from 'vue'
import { SizeType, VxeGridProps } from 'vxe-table'
import { useAppStore } from '@/store/modules/app'
import { VxeAllSchemas } from './useVxeCrudSchemas'
@ -112,17 +112,43 @@ export const useVxeGrid = <T = any>(config?: UseVxeGridConfig<T>) => {
}
})
const delList = (ids: string | number | string[] | number[]) => {
// 刷新列表
const getList = async (ref) => {
await nextTick()
ref.value?.commitProxy('query')
}
// 获取查询参数
const getSearchData = async (ref) => {
await nextTick()
const queryParams = Object.assign(
{},
JSON.parse(JSON.stringify(ref.value?.getProxyInfo()?.form))
)
return queryParams
}
// 删除
const delList = async (ref, ids: string | number | string[] | number[]) => {
await nextTick()
return new Promise(async () => {
message.delConfirm().then(() => {
message
.delConfirm()
.then(() => {
config?.delListApi && config?.delListApi(ids)
message.success(t('common.delSuccess'))
})
.finally(async () => {
// 刷新列表
ref.value?.commitProxy('query')
})
})
}
return {
gridOptions,
getList,
getSearchData,
delList
}
}

View File

@ -57,7 +57,7 @@ const { t } = useI18n() // 国际化
const message = useMessage() //
//
const xGrid = ref<VxeGridInstance>() // Grid Ref
const { gridOptions } = useVxeGrid<OperateLogApi.OperateLogVO>({
const { gridOptions, getSearchData } = useVxeGrid<OperateLogApi.OperateLogVO>({
allSchemas: allSchemas,
getListApi: OperateLogApi.getOperateLogPageApi
})
@ -77,10 +77,7 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => {
//
const handleExport = async () => {
message.exportConfirm().then(async () => {
const queryParams = Object.assign(
{},
JSON.parse(JSON.stringify(xGrid.value?.getRefMaps().refForm.value.data)) // TODO @ util
)
const queryParams = await getSearchData(xGrid)
const res = await OperateLogApi.exportOperateLogApi(queryParams)
download.excel(res, '岗位列表.xls')
})

View File

@ -90,9 +90,10 @@ const { t } = useI18n() // 国际化
const message = useMessage() //
//
const xGrid = ref<VxeGridInstance>() // Grid Ref
const { gridOptions } = useVxeGrid<PostApi.PostVO>({
const { gridOptions, getList, delList, getSearchData } = useVxeGrid<PostApi.PostVO>({
allSchemas: allSchemas,
getListApi: PostApi.getPostPageApi
getListApi: PostApi.getPostPageApi,
delListApi: PostApi.deletePostApi
})
//
const dialogVisible = ref(false) //
@ -116,10 +117,7 @@ const handleCreate = () => {
//
const handleExport = async () => {
const queryParams = Object.assign(
{},
JSON.parse(JSON.stringify(xGrid.value?.getRefMaps().refForm.value.data))
)
const queryParams = await getSearchData(xGrid)
const res = await PostApi.exportPostApi(queryParams)
download.excel(res, '岗位列表.xls')
}
@ -141,16 +139,7 @@ const handleDetail = async (rowId: number) => {
//
const handleDelete = async (rowId: number) => {
message
.delConfirm()
.then(async () => {
await PostApi.deletePostApi(rowId)
message.success(t('common.delSuccess'))
})
.finally(() => {
//
xGrid.value?.commitProxy('query')
})
delList(xGrid, rowId)
}
// /
@ -174,7 +163,7 @@ const submitForm = async () => {
} finally {
actionLoading.value = false
//
xGrid.value?.commitProxy('query')
getList(xGrid)
}
}
})