feat: system 新增批量删除

This commit is contained in:
puhui999 2025-06-15 18:17:28 +08:00
parent cd78171106
commit 3a7fe42e8e
30 changed files with 545 additions and 38 deletions

View File

@ -1,7 +1,7 @@
import request from '@/config/axios'
export interface DeptVO {
id?: number
id: number
name: string
parentId: number
status: number
@ -13,31 +13,41 @@ export interface DeptVO {
}
// 查询部门(精简)列表
export const getSimpleDeptList = async (): Promise<DeptVO[]> => {
return await request.get({ url: '/system/dept/simple-list' })
export const getSimpleDeptList = (): Promise<DeptVO[]> => {
return request.get({ url: '/system/dept/simple-list' })
}
// 查询部门列表
export const getDeptList = (params: any) => {
return request.get({ url: '/system/dept/list', params })
}
// 查询部门分页
export const getDeptPage = async (params: PageParam) => {
return await request.get({ url: '/system/dept/list', params })
}
// 查询部门详情
export const getDept = async (id: number) => {
return await request.get({ url: '/system/dept/get?id=' + id })
export const getDept = (id: number) => {
return request.get({ url: '/system/dept/get?id=' + id })
}
// 新增部门
export const createDept = async (data: DeptVO) => {
return await request.post({ url: '/system/dept/create', data: data })
export const createDept = (data: DeptVO) => {
return request.post({ url: '/system/dept/create', data })
}
// 修改部门
export const updateDept = async (params: DeptVO) => {
return await request.put({ url: '/system/dept/update', data: params })
export const updateDept = (data: DeptVO) => {
return request.put({ url: '/system/dept/update', data })
}
// 删除部门
export const deleteDept = async (id: number) => {
return await request.delete({ url: '/system/dept/delete?id=' + id })
}
// 批量删除部门
export const deleteDeptList = async (ids: number[]) => {
return await request.delete({ url: '/system/dept/delete-list', params: { ids: ids.join(',') } })
}

View File

@ -1,8 +1,8 @@
import request from '@/config/axios'
export type DictDataVO = {
id: number | undefined
sort: number | undefined
export interface DictDataVO {
id: number
sort: number
label: string
value: string
dictType: string
@ -28,6 +28,11 @@ export const getDictData = (id: number) => {
return request.get({ url: '/system/dict-data/get?id=' + id })
}
// 根据字典类型查询字典数据
export const getDictDataByType = (dictType: string) => {
return request.get({ url: '/system/dict-data/type?type=' + dictType })
}
// 新增字典数据
export const createDictData = (data: DictDataVO) => {
return request.post({ url: '/system/dict-data/create', data })
@ -43,7 +48,12 @@ export const deleteDictData = (id: number) => {
return request.delete({ url: '/system/dict-data/delete?id=' + id })
}
// 导出字典类型数据
export const exportDictData = (params) => {
return request.download({ url: '/system/dict-data/export', params })
// 批量删除字典数据
export const deleteDictDataList = (ids: number[]) => {
return request.delete({ url: '/system/dict-data/delete-list', params: { ids: ids.join(',') } })
}
// 导出字典数据
export const exportDictData = (params) => {
return request.download({ url: '/system/dict-data/export-excel', params })
}

View File

@ -1,7 +1,7 @@
import request from '@/config/axios'
export type DictTypeVO = {
id: number | undefined
export interface DictTypeVO {
id: number
name: string
type: string
status: number
@ -10,8 +10,8 @@ export type DictTypeVO = {
}
// 查询字典(精简)列表
export const getSimpleDictTypeList = () => {
return request.get({ url: '/system/dict-type/list-all-simple' })
export const getSimpleDictTypeList = (): Promise<DictTypeVO[]> => {
return request.get({ url: '/system/dict-type/simple-list' })
}
// 查询字典列表
@ -38,7 +38,16 @@ export const updateDictType = (data: DictTypeVO) => {
export const deleteDictType = (id: number) => {
return request.delete({ url: '/system/dict-type/delete?id=' + id })
}
// 导出字典类型
export const exportDictType = (params) => {
return request.download({ url: '/system/dict-type/export', params })
// 批量删除字典类型
export const deleteDictTypeList = (ids: number[]) => {
return request.delete({ url: '/system/dict-type/delete-list', params: { ids: ids.join(',') } })
}
// 导出字典
export const exportDictType = (params) => {
return request.download({
url: '/system/dict-type/export-excel',
params
})
}

View File

@ -36,6 +36,11 @@ export const deleteMailAccount = async (id: number) => {
return await request.delete({ url: '/system/mail-account/delete?id=' + id })
}
// 批量删除邮箱账号
export const deleteMailAccountList = async (ids: number[]) => {
return await request.delete({ url: '/system/mail-account/delete-list', params: { ids: ids.join(',') } })
}
// 获得邮箱账号精简列表
export const getSimpleMailAccountList = async () => {
return request.get({ url: '/system/mail-account/simple-list' })

View File

@ -44,6 +44,11 @@ export const deleteMailTemplate = async (id: number) => {
return await request.delete({ url: '/system/mail-template/delete?id=' + id })
}
// 批量删除邮件模版
export const deleteMailTemplateList = async (ids: number[]) => {
return await request.delete({ url: '/system/mail-template/delete-list', params: { ids: ids.join(',') } })
}
// 发送邮件
export const sendMail = (data: MailSendReqVO) => {
return request.post({ url: '/system/mail-template/send-mail', data })

View File

@ -36,6 +36,11 @@ export const deleteNotice = (id: number) => {
return request.delete({ url: '/system/notice/delete?id=' + id })
}
// 批量删除公告
export const deleteNoticeList = (ids: number[]) => {
return request.delete({ url: '/system/notice/delete-list', params: { ids: ids.join(',') } })
}
// 推送公告
export const pushNotice = (id: number) => {
return request.post({ url: '/system/notice/push?id=' + id })

View File

@ -43,6 +43,11 @@ export const deleteNotifyTemplate = async (id: number) => {
return await request.delete({ url: '/system/notify-template/delete?id=' + id })
}
// 批量删除站内信模板
export const deleteNotifyTemplateList = async (ids: number[]) => {
return await request.delete({ url: '/system/notify-template/delete-list', params: { ids: ids.join(',') } })
}
// 发送站内信
export const sendNotify = (data: NotifySendReqVO) => {
return request.post({ url: '/system/notify-template/send-notify', data })

View File

@ -45,3 +45,8 @@ export const updateOAuth2Client = (data: OAuth2ClientVO) => {
export const deleteOAuth2Client = (id: number) => {
return request.delete({ url: '/system/oauth2-client/delete?id=' + id })
}
// 批量删除 OAuth2 客户端
export const deleteOAuth2ClientList = (ids: number[]) => {
return request.delete({ url: '/system/oauth2-client/delete-list', params: { ids: ids.join(',') } })
}

View File

@ -40,7 +40,12 @@ export const deletePost = async (id: number) => {
return await request.delete({ url: '/system/post/delete?id=' + id })
}
// 批量删除岗位
export const deletePostList = async (ids: number[]) => {
return await request.delete({ url: '/system/post/delete-list', params: { ids: ids.join(',') } })
}
// 导出岗位
export const exportPost = async (params) => {
return await request.download({ url: '/system/post/export', params })
return await request.download({ url: '/system/post/export-excel', params })
}

View File

@ -52,6 +52,11 @@ export const deleteRole = async (id: number) => {
return await request.delete({ url: '/system/role/delete?id=' + id })
}
// 批量删除角色
export const deleteRoleList = async (ids: number[]) => {
return await request.delete({ url: '/system/role/delete-list', params: { ids: ids.join(',') } })
}
// 导出角色
export const exportRole = (params) => {
return request.download({

View File

@ -41,3 +41,8 @@ export const updateSmsChannel = (data: SmsChannelVO) => {
export const deleteSmsChannel = (id: number) => {
return request.delete({ url: '/system/sms-channel/delete?id=' + id })
}
// 批量删除短信渠道
export const deleteSmsChannelList = (ids: number[]) => {
return request.delete({ url: '/system/sms-channel/delete-list', params: { ids: ids.join(',') } })
}

View File

@ -46,6 +46,11 @@ export const deleteSmsTemplate = (id: number) => {
return request.delete({ url: '/system/sms-template/delete?id=' + id })
}
// 批量删除短信模板
export const deleteSmsTemplateList = (ids: number[]) => {
return request.delete({ url: '/system/sms-template/delete-list', params: { ids: ids.join(',') } })
}
// 导出短信模板
export const exportSmsTemplate = (params) => {
return request.download({

View File

@ -61,6 +61,11 @@ export const deleteTenant = (id: number) => {
return request.delete({ url: '/system/tenant/delete?id=' + id })
}
// 批量删除租户
export const deleteTenantList = (ids: number[]) => {
return request.delete({ url: '/system/tenant/delete-list', params: { ids: ids.join(',') } })
}
// 导出租户
export const exportTenant = (params: TenantExportReqVO) => {
return request.download({ url: '/system/tenant/export-excel', params })

View File

@ -36,6 +36,12 @@ export const updateTenantPackage = (data: TenantPackageVO) => {
export const deleteTenantPackage = (id: number) => {
return request.delete({ url: '/system/tenant-package/delete?id=' + id })
}
// 批量删除租户套餐
export const deleteTenantPackageList = (ids: number[]) => {
return request.delete({ url: '/system/tenant-package/delete-list', params: { ids: ids.join(',') } })
}
// 获取租户套餐精简信息列表
export const getTenantPackageList = () => {
return request.get({ url: '/system/tenant-package/simple-list' })

View File

@ -42,6 +42,11 @@ export const deleteUser = (id: number) => {
return request.delete({ url: '/system/user/delete?id=' + id })
}
// 批量删除用户
export const deleteUserList = (ids: number[]) => {
return request.delete({ url: '/system/user/delete-list', params: { ids: ids.join(',') } })
}
// 导出用户
export const exportUser = (params: any) => {
return request.download({ url: '/system/user/export', params })

View File

@ -46,6 +46,15 @@
<el-button type="danger" plain @click="toggleExpandAll">
<Icon icon="ep:sort" class="mr-5px" /> 展开/折叠
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:dept:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
@ -58,7 +67,9 @@
row-key="id"
:default-expand-all="isExpandAll"
v-if="refreshTable"
@selection-change="handleRowCheckboxChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="name" label="部门名称" />
<el-table-column prop="leader" label="负责人">
<template #default="scope">
@ -181,6 +192,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: DeptApi.DeptVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await DeptApi.deleteDeptList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 初始化 **/
onMounted(async () => {
await getList()

View File

@ -56,13 +56,23 @@
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:dict:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="字典编码" align="center" prop="id" />
<el-table-column label="字典标签" align="center" prop="label" />
<el-table-column label="字典键值" align="center" prop="value" />
@ -186,6 +196,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: DictDataApi.DictDataVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await DictDataApi.deleteDictDataList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {

View File

@ -80,13 +80,24 @@
<Icon class="mr-5px" icon="ep:download" />
导出
</el-button>
<el-button
v-hasPermi="['system:dict:delete']"
:disabled="checkedIds.length === 0"
plain
type="danger"
@click="handleDeleteBatch"
>
<Icon class="mr-5px" icon="ep:delete" />
批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column align="center" label="字典编号" prop="id" />
<el-table-column align="center" label="字典名称" prop="name" show-overflow-tooltip />
<el-table-column align="center" label="字典类型" prop="type" width="300" />
@ -209,6 +220,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: DictTypeApi.DictTypeVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await DictTypeApi.deleteDictTypeList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {

View File

@ -14,6 +14,15 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="danger"
plain
@click="handleDeleteBatch"
:disabled="!isSelected"
v-hasPermi="['system:mail-account:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</template>
</Search>
</ContentWrap>
@ -29,6 +38,7 @@
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
:selection="true"
>
<template #action="{ row }">
<el-button
@ -99,6 +109,19 @@ const handleDelete = (id: number) => {
tableMethods.delList(id, false)
}
/** 是否有选中行 */
const isSelected = computed(() => {
return tableObject.selections && tableObject.selections.length > 0
})
/** 批量删除按钮操作 */
const handleDeleteBatch = async () => {
const ids = tableObject.selections.map(item => item.id)
if (ids.length === 0) return
await MailAccountApi.deleteMailAccountList(ids)
tableMethods.getList()
}
/** 初始化 **/
onMounted(() => {
getList()

View File

@ -14,6 +14,15 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="danger"
plain
@click="handleDeleteBatch"
:disabled="!isSelected"
v-hasPermi="['system:mail-template:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</template>
</Search>
</ContentWrap>
@ -29,6 +38,7 @@
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
:selection="true"
>
<template #action="{ row }">
<el-button
@ -94,6 +104,19 @@ const handleDelete = (id: number) => {
tableMethods.delList(id, false)
}
/** 是否有选中行 */
const isSelected = computed(() => {
return tableObject.selections && tableObject.selections.length > 0
})
/** 批量删除按钮操作 */
const handleDeleteBatch = async () => {
const ids = tableObject.selections.map(item => item.id)
if (ids.length === 0) return
await MailTemplateApi.deleteMailTemplateList(ids)
tableMethods.getList()
}
/** 发送测试操作 */
const sendFormRef = ref()
const openSendForm = (id: number) => {

View File

@ -43,13 +43,23 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:notice:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="公告编号" align="center" prop="id" />
<el-table-column label="公告标题" align="center" prop="title" />
<el-table-column label="公告类型" align="center" prop="type">
@ -171,6 +181,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: NoticeApi.NoticeVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await NoticeApi.deleteNoticeList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 推送按钮操作 */
const handlePush = async (id: number) => {
try {

View File

@ -65,13 +65,23 @@
>
<Icon icon="ep:plus" class="mr-5px" />新增
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:notify-template:delete']"
>
<Icon icon="ep:delete" class="mr-5px" />批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column
label="模板编码"
align="center"
@ -165,6 +175,7 @@ import NotifyTemplateSendForm from './NotifyTemplateSendForm.vue'
defineOptions({ name: 'NotifySmsTemplate' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(false) //
const total = ref(0) //
@ -216,7 +227,25 @@ const handleDelete = async (id: number) => {
await message.delConfirm()
//
await NotifyTemplateApi.deleteNotifyTemplate(id)
message.success('删除成功')
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: NotifyTemplateApi.NotifyTemplateVO[]) => {
checkedIds.value = rows.map((row) => row.id!)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await NotifyTemplateApi.deleteNotifyTemplateList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}

View File

@ -40,13 +40,23 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
plain
type="danger"
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:oauth2-client:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="客户端编号" align="center" prop="clientId" />
<el-table-column label="客户端密钥" align="center" prop="secret" />
<el-table-column label="应用名" align="center" prop="name" />
@ -184,6 +194,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: ClientApi.OAuth2ClientVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await ClientApi.deleteOAuth2ClientList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 初始化 **/
onMounted(() => {
getList()

View File

@ -56,13 +56,23 @@
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:post:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="岗位编号" align="center" prop="id" />
<el-table-column label="岗位名称" align="center" prop="name" />
<el-table-column label="岗位编码" align="center" prop="code" />
@ -181,6 +191,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: PostApi.PostVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await PostApi.deletePostList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {

View File

@ -78,13 +78,24 @@
<Icon class="mr-5px" icon="ep:download" />
导出
</el-button>
<el-button
v-hasPermi="['system:role:delete']"
:disabled="checkedIds.length === 0"
plain
type="danger"
@click="handleDeleteBatch"
>
<Icon class="mr-5px" icon="ep:delete" />
批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column align="center" label="角色编号" prop="id" />
<el-table-column align="center" label="角色名称" prop="name" />
<el-table-column label="角色类型" align="center" prop="type">
@ -247,6 +258,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: RoleApi.RoleVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await RoleApi.deleteRoleList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
@ -255,14 +284,14 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await RoleApi.exportRole(queryParams)
download.excel(data, '角色列表.xls')
download.excel(data, '角色数据.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
/** 初始化 */
onMounted(() => {
getList()
})

View File

@ -55,13 +55,23 @@
>
<Icon icon="ep:plus" class="mr-5px" /> 新增</el-button
>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:sms-channel:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除</el-button
>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="短信签名" align="center" prop="signature" />
<el-table-column label="渠道编码" align="center" prop="code">
@ -202,6 +212,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: SmsChannelApi.SmsChannelVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await SmsChannelApi.deleteSmsChannelList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 初始化 **/
onMounted(() => {
getList()

View File

@ -98,6 +98,15 @@
>
<Icon icon="ep:plus" class="mr-5px" />新增
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:sms-template:delete']"
>
<Icon icon="ep:delete" class="mr-5px" />批量删除
</el-button>
<el-button
type="success"
plain
@ -113,7 +122,8 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column
label="模板编码"
align="center"
@ -292,6 +302,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: SmsTemplateApi.SmsTemplateVO[]) => {
checkedIds.value = rows.map((row) => row.id!)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await SmsTemplateApi.deleteSmsTemplateList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {

View File

@ -92,13 +92,24 @@
<Icon icon="ep:download" class="mr-5px" />
导出
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:tenant:delete']"
>
<Icon icon="ep:delete" class="mr-5px" />
批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="租户编号" align="center" prop="id" />
<el-table-column label="租户名" align="center" prop="name" />
<el-table-column label="租户套餐" align="center" prop="packageId">
@ -243,6 +254,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: TenantApi.TenantVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await TenantApi.deleteTenantList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
@ -261,6 +290,7 @@ const handleExport = async () => {
/** 初始化 **/
onMounted(async () => {
await getList()
//
packageList.value = await TenantPackageApi.getTenantPackageList()
})
</script>

View File

@ -51,13 +51,24 @@
<Icon icon="ep:plus" class="mr-5px" />
新增
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:tenant-package:delete']"
>
<Icon icon="ep:delete" class="mr-5px" />
批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="套餐编号" align="center" prop="id" width="120" />
<el-table-column label="套餐名" align="center" prop="name" />
<el-table-column label="状态" align="center" prop="status" width="100">
@ -173,6 +184,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: TenantPackageApi.TenantPackageVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await TenantPackageApi.deleteTenantPackageList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 初始化 **/
onMounted(() => {
getList()

View File

@ -91,11 +91,21 @@
>
<Icon icon="ep:download" />导出
</el-button>
<el-button
type="danger"
plain
:disabled="checkedIds.length === 0"
@click="handleDeleteBatch"
v-hasPermi="['system:user:delete']"
>
<Icon icon="ep:delete" />批量删除
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table v-loading="loading" :data="list" @selection-change="handleRowCheckboxChange">
<el-table-column type="selection" width="55" />
<el-table-column label="用户编号" align="center" key="id" prop="id" />
<el-table-column
label="用户名称"
@ -335,6 +345,24 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 批量删除按钮操作 */
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (rows: UserApi.UserVO[]) => {
checkedIds.value = rows.map((row) => row.id)
}
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
//
await UserApi.deleteUserList(checkedIds.value)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 重置密码 */
const handleResetPwd = async (row: UserApi.UserVO) => {
try {