mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	feat: 添加批量删除功能
This commit is contained in:
		| @@ -276,7 +276,7 @@ const reload = () => { | ||||
| } | ||||
|  | ||||
| // 删除 | ||||
| const deleteData = async (ids: string | number) => { | ||||
| const deleteData = async (id: string | number) => { | ||||
|   const g = unref(xGrid) | ||||
|   if (!g) { | ||||
|     return | ||||
| @@ -288,7 +288,7 @@ const deleteData = async (ids: string | number) => { | ||||
|   } | ||||
|   return new Promise(async () => { | ||||
|     message.delConfirm().then(async () => { | ||||
|       await (options?.deleteApi && options?.deleteApi(ids)) | ||||
|       await (options?.deleteApi && options?.deleteApi(id)) | ||||
|       message.success(t('common.delSuccess')) | ||||
|       // 刷新列表 | ||||
|       reload() | ||||
| @@ -296,6 +296,49 @@ const deleteData = async (ids: string | number) => { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 批量删除 | ||||
| const deleteList = async () => { | ||||
|   const g = unref(xGrid) | ||||
|   if (!g) { | ||||
|     return | ||||
|   } | ||||
|   const rows = g.getCheckboxRecords() || g.getRadioRecord() | ||||
|   let ids: any[] = [] | ||||
|   if (rows.length == 0) { | ||||
|     message.error('请选择数据') | ||||
|     return | ||||
|   } else { | ||||
|     rows.forEach((row) => { | ||||
|       ids.push(row.id) | ||||
|     }) | ||||
|   } | ||||
|   const options = innerProps.value || props.options | ||||
|   if (options.deleteListApi) { | ||||
|     return new Promise(async () => { | ||||
|       message.delConfirm().then(async () => { | ||||
|         await (options?.deleteListApi && options?.deleteListApi(ids)) | ||||
|         message.success(t('common.delSuccess')) | ||||
|         // 刷新列表 | ||||
|         reload() | ||||
|       }) | ||||
|     }) | ||||
|   } else if (options.deleteApi) { | ||||
|     return new Promise(async () => { | ||||
|       message.delConfirm().then(async () => { | ||||
|         ids.forEach(async (id) => { | ||||
|           await (options?.deleteApi && options?.deleteApi(id)) | ||||
|         }) | ||||
|         message.success(t('common.delSuccess')) | ||||
|         // 刷新列表 | ||||
|         reload() | ||||
|       }) | ||||
|     }) | ||||
|   } else { | ||||
|     console.error('未传入delListApi') | ||||
|     return | ||||
|   } | ||||
| } | ||||
|  | ||||
| // 导出 | ||||
| const exportList = async (fileName?: string) => { | ||||
|   const g = unref(xGrid) | ||||
| @@ -360,6 +403,7 @@ emit('register', { | ||||
|   getSearchData, | ||||
|   setProps, | ||||
|   deleteData, | ||||
|   deleteList, | ||||
|   exportList, | ||||
|   getCurrentColumn, | ||||
|   getRadioRecord, | ||||
|   | ||||
| @@ -10,6 +10,7 @@ export type XTableProps<D = any> = VxeGridProps<D> & { | ||||
|   getListApi?: Function // 获取列表接口 | ||||
|   getAllListApi?: Function // 获取全部数据接口 用于 vxe 导出 | ||||
|   deleteApi?: Function // 删除接口 | ||||
|   deleteListApi?: Function // 批量删除接口 | ||||
|   exportListApi?: Function // 导出接口 | ||||
|   exportName?: string // 导出文件夹名称 | ||||
|   params?: any // 其他查询参数 | ||||
|   | ||||
| @@ -4,7 +4,8 @@ import { XTableProps } from '@/components/XTable/src/type' | ||||
| export interface tableMethod { | ||||
|   reload: () => void // 刷新表格 | ||||
|   setProps: (props: XTableProps) => void | ||||
|   deleteData: (ids: string | number) => void // 删除数据 | ||||
|   deleteData: (id: string | number) => void // 删除数据 | ||||
|   deleteList: () => void // 批量删除 | ||||
|   exportList: (fileName?: string) => void // 导出列表 | ||||
|   getCurrentColumn: () => void // 获取当前列 | ||||
|   getRadioRecord: () => void // 获取当前选中列,redio | ||||
| @@ -28,7 +29,8 @@ export const useXTable = (props: XTableProps): [Function, tableMethod] => { | ||||
|   const methods: tableMethod = { | ||||
|     reload: () => getInstance().reload(), | ||||
|     setProps: (props) => getInstance().setProps(props), | ||||
|     deleteData: (ids: string | number) => getInstance().deleteData(ids), | ||||
|     deleteData: (id: string | number) => getInstance().deleteData(id), | ||||
|     deleteList: () => getInstance().deleteList(), | ||||
|     exportList: (fileName?: string) => getInstance().exportList(fileName), | ||||
|     getCurrentColumn: () => getInstance().getCheckboxRecords(), | ||||
|     getRadioRecord: () => getInstance().getRadioRecord(), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xingyu
					xingyu