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 { SizeType, VxeGridProps } from 'vxe-table'
import { useAppStore } from '@/store/modules/app' import { useAppStore } from '@/store/modules/app'
import { VxeAllSchemas } from './useVxeCrudSchemas' 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 () => { return new Promise(async () => {
message.delConfirm().then(() => { message
.delConfirm()
.then(() => {
config?.delListApi && config?.delListApi(ids) config?.delListApi && config?.delListApi(ids)
message.success(t('common.delSuccess')) message.success(t('common.delSuccess'))
}) })
.finally(async () => {
// 刷新列表
ref.value?.commitProxy('query')
})
}) })
} }
return { return {
gridOptions, gridOptions,
getList,
getSearchData,
delList delList
} }
} }

View File

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

View File

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