Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
3a7fe42e
authored
Jun 15, 2025
by
puhui999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: system 新增批量删除
parent
cd781711
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
543 additions
and
36 deletions
+543
-36
src/api/system/dept/index.ts
+19
-9
src/api/system/dict/dict.data.ts
+15
-5
src/api/system/dict/dict.type.ts
+15
-6
src/api/system/mail/account/index.ts
+5
-0
src/api/system/mail/template/index.ts
+5
-0
src/api/system/notice/index.ts
+5
-0
src/api/system/notify/template/index.ts
+5
-0
src/api/system/oauth2/client.ts
+5
-0
src/api/system/post/index.ts
+6
-1
src/api/system/role/index.ts
+5
-0
src/api/system/sms/smsChannel/index.ts
+5
-0
src/api/system/sms/smsTemplate/index.ts
+5
-0
src/api/system/tenant/index.ts
+5
-0
src/api/system/tenantPackage/index.ts
+6
-0
src/api/system/user/index.ts
+5
-0
src/views/system/dept/index.vue
+29
-0
src/views/system/dict/data/index.vue
+29
-1
src/views/system/dict/index.vue
+30
-1
src/views/system/mail/account/index.vue
+23
-0
src/views/system/mail/template/index.vue
+23
-0
src/views/system/notice/index.vue
+29
-1
src/views/system/notify/template/index.vue
+31
-2
src/views/system/oauth2/client/index.vue
+29
-1
src/views/system/post/index.vue
+29
-1
src/views/system/role/index.vue
+32
-3
src/views/system/sms/channel/index.vue
+29
-1
src/views/system/sms/template/index.vue
+29
-1
src/views/system/tenant/index.vue
+31
-1
src/views/system/tenantPackage/index.vue
+30
-1
src/views/system/user/index.vue
+29
-1
No files found.
src/api/system/dept/index.ts
View file @
3a7fe42e
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
(
','
)
}
})
}
src/api/system/dict/dict.data.ts
View file @
3a7fe42e
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
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'
,
params
})
return
request
.
download
({
url
:
'/system/dict-data/export
-excel
'
,
params
})
}
src/api/system/dict/dict.type.ts
View file @
3a7fe42e
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
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'
,
params
})
return
request
.
download
({
url
:
'/system/dict-type/export-excel'
,
params
})
}
src/api/system/mail/account/index.ts
View file @
3a7fe42e
...
...
@@ -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'
})
...
...
src/api/system/mail/template/index.ts
View file @
3a7fe42e
...
...
@@ -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
})
...
...
src/api/system/notice/index.ts
View file @
3a7fe42e
...
...
@@ -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
})
...
...
src/api/system/notify/template/index.ts
View file @
3a7fe42e
...
...
@@ -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
})
...
...
src/api/system/oauth2/client.ts
View file @
3a7fe42e
...
...
@@ -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
(
','
)
}
})
}
src/api/system/post/index.ts
View file @
3a7fe42e
...
...
@@ -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
})
}
src/api/system/role/index.ts
View file @
3a7fe42e
...
...
@@ -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
({
...
...
src/api/system/sms/smsChannel/index.ts
View file @
3a7fe42e
...
...
@@ -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
(
','
)
}
})
}
src/api/system/sms/smsTemplate/index.ts
View file @
3a7fe42e
...
...
@@ -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
({
...
...
src/api/system/tenant/index.ts
View file @
3a7fe42e
...
...
@@ -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
})
...
...
src/api/system/tenantPackage/index.ts
View file @
3a7fe42e
...
...
@@ -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'
})
...
...
src/api/system/user/index.ts
View file @
3a7fe42e
...
...
@@ -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
})
...
...
src/views/system/dept/index.vue
View file @
3a7fe42e
...
...
@@ -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
()
...
...
src/views/system/dict/data/index.vue
View file @
3a7fe42e
...
...
@@ -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
{
...
...
src/views/system/dict/index.vue
View file @
3a7fe42e
...
...
@@ -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
{
...
...
src/views/system/mail/account/index.vue
View file @
3a7fe42e
...
...
@@ -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
()
...
...
src/views/system/mail/template/index.vue
View file @
3a7fe42e
...
...
@@ -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
)
=>
{
...
...
src/views/system/notice/index.vue
View file @
3a7fe42e
...
...
@@ -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
{
...
...
src/views/system/notify/template/index.vue
View file @
3a7fe42e
...
...
@@ -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
{}
...
...
src/views/system/oauth2/client/index.vue
View file @
3a7fe42e
...
...
@@ -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
()
...
...
src/views/system/post/index.vue
View file @
3a7fe42e
...
...
@@ -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
{
...
...
src/views/system/role/index.vue
View file @
3a7fe42e
...
...
@@ -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
()
})
...
...
src/views/system/sms/channel/index.vue
View file @
3a7fe42e
...
...
@@ -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
()
...
...
src/views/system/sms/template/index.vue
View file @
3a7fe42e
...
...
@@ -99,6 +99,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
@
click=
"handleExport"
...
...
@@ -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
{
...
...
src/views/system/tenant/index.vue
View file @
3a7fe42e
...
...
@@ -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
>
src/views/system/tenantPackage/index.vue
View file @
3a7fe42e
...
...
@@ -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
()
...
...
src/views/system/user/index.vue
View file @
3a7fe42e
...
...
@@ -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
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment