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
Show 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'
import
request
from
'@/config/axios'
export
interface
DeptVO
{
export
interface
DeptVO
{
id
?
:
number
id
:
number
name
:
string
name
:
string
parentId
:
number
parentId
:
number
status
:
number
status
:
number
...
@@ -13,31 +13,41 @@ export interface DeptVO {
...
@@ -13,31 +13,41 @@ export interface DeptVO {
}
}
// 查询部门(精简)列表
// 查询部门(精简)列表
export
const
getSimpleDeptList
=
async
():
Promise
<
DeptVO
[]
>
=>
{
export
const
getSimpleDeptList
=
():
Promise
<
DeptVO
[]
>
=>
{
return
await
request
.
get
({
url
:
'/system/dept/simple-list'
})
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
)
=>
{
export
const
getDeptPage
=
async
(
params
:
PageParam
)
=>
{
return
await
request
.
get
({
url
:
'/system/dept/list'
,
params
})
return
await
request
.
get
({
url
:
'/system/dept/list'
,
params
})
}
}
// 查询部门详情
// 查询部门详情
export
const
getDept
=
async
(
id
:
number
)
=>
{
export
const
getDept
=
(
id
:
number
)
=>
{
return
await
request
.
get
({
url
:
'/system/dept/get?id='
+
id
})
return
request
.
get
({
url
:
'/system/dept/get?id='
+
id
})
}
}
// 新增部门
// 新增部门
export
const
createDept
=
async
(
data
:
DeptVO
)
=>
{
export
const
createDept
=
(
data
:
DeptVO
)
=>
{
return
await
request
.
post
({
url
:
'/system/dept/create'
,
data
:
data
})
return
request
.
post
({
url
:
'/system/dept/create'
,
data
})
}
}
// 修改部门
// 修改部门
export
const
updateDept
=
async
(
params
:
DeptVO
)
=>
{
export
const
updateDept
=
(
data
:
DeptVO
)
=>
{
return
await
request
.
put
({
url
:
'/system/dept/update'
,
data
:
params
})
return
request
.
put
({
url
:
'/system/dept/update'
,
data
})
}
}
// 删除部门
// 删除部门
export
const
deleteDept
=
async
(
id
:
number
)
=>
{
export
const
deleteDept
=
async
(
id
:
number
)
=>
{
return
await
request
.
delete
({
url
:
'/system/dept/delete?id='
+
id
})
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'
import
request
from
'@/config/axios'
export
type
DictDataVO
=
{
export
interface
DictDataVO
{
id
:
number
|
undefined
id
:
number
sort
:
number
|
undefined
sort
:
number
label
:
string
label
:
string
value
:
string
value
:
string
dictType
:
string
dictType
:
string
...
@@ -28,6 +28,11 @@ export const getDictData = (id: number) => {
...
@@ -28,6 +28,11 @@ export const getDictData = (id: number) => {
return
request
.
get
({
url
:
'/system/dict-data/get?id='
+
id
})
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
)
=>
{
export
const
createDictData
=
(
data
:
DictDataVO
)
=>
{
return
request
.
post
({
url
:
'/system/dict-data/create'
,
data
})
return
request
.
post
({
url
:
'/system/dict-data/create'
,
data
})
...
@@ -43,7 +48,12 @@ export const deleteDictData = (id: number) => {
...
@@ -43,7 +48,12 @@ export const deleteDictData = (id: number) => {
return
request
.
delete
({
url
:
'/system/dict-data/delete?id='
+
id
})
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
)
=>
{
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'
import
request
from
'@/config/axios'
export
type
DictTypeVO
=
{
export
interface
DictTypeVO
{
id
:
number
|
undefined
id
:
number
name
:
string
name
:
string
type
:
string
type
:
string
status
:
number
status
:
number
...
@@ -10,8 +10,8 @@ export type DictTypeVO = {
...
@@ -10,8 +10,8 @@ export type DictTypeVO = {
}
}
// 查询字典(精简)列表
// 查询字典(精简)列表
export
const
getSimpleDictTypeList
=
()
=>
{
export
const
getSimpleDictTypeList
=
()
:
Promise
<
DictTypeVO
[]
>
=>
{
return
request
.
get
({
url
:
'/system/dict-type/
list-all-simple
'
})
return
request
.
get
({
url
:
'/system/dict-type/
simple-list
'
})
}
}
// 查询字典列表
// 查询字典列表
...
@@ -38,7 +38,16 @@ export const updateDictType = (data: DictTypeVO) => {
...
@@ -38,7 +38,16 @@ export const updateDictType = (data: DictTypeVO) => {
export
const
deleteDictType
=
(
id
:
number
)
=>
{
export
const
deleteDictType
=
(
id
:
number
)
=>
{
return
request
.
delete
({
url
:
'/system/dict-type/delete?id='
+
id
})
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
)
=>
{
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) => {
...
@@ -36,6 +36,11 @@ export const deleteMailAccount = async (id: number) => {
return
await
request
.
delete
({
url
:
'/system/mail-account/delete?id='
+
id
})
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
()
=>
{
export
const
getSimpleMailAccountList
=
async
()
=>
{
return
request
.
get
({
url
:
'/system/mail-account/simple-list'
})
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) => {
...
@@ -44,6 +44,11 @@ export const deleteMailTemplate = async (id: number) => {
return
await
request
.
delete
({
url
:
'/system/mail-template/delete?id='
+
id
})
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
)
=>
{
export
const
sendMail
=
(
data
:
MailSendReqVO
)
=>
{
return
request
.
post
({
url
:
'/system/mail-template/send-mail'
,
data
})
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) => {
...
@@ -36,6 +36,11 @@ export const deleteNotice = (id: number) => {
return
request
.
delete
({
url
:
'/system/notice/delete?id='
+
id
})
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
)
=>
{
export
const
pushNotice
=
(
id
:
number
)
=>
{
return
request
.
post
({
url
:
'/system/notice/push?id='
+
id
})
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) => {
...
@@ -43,6 +43,11 @@ export const deleteNotifyTemplate = async (id: number) => {
return
await
request
.
delete
({
url
:
'/system/notify-template/delete?id='
+
id
})
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
)
=>
{
export
const
sendNotify
=
(
data
:
NotifySendReqVO
)
=>
{
return
request
.
post
({
url
:
'/system/notify-template/send-notify'
,
data
})
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) => {
...
@@ -45,3 +45,8 @@ export const updateOAuth2Client = (data: OAuth2ClientVO) => {
export
const
deleteOAuth2Client
=
(
id
:
number
)
=>
{
export
const
deleteOAuth2Client
=
(
id
:
number
)
=>
{
return
request
.
delete
({
url
:
'/system/oauth2-client/delete?id='
+
id
})
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) => {
...
@@ -40,7 +40,12 @@ export const deletePost = async (id: number) => {
return
await
request
.
delete
({
url
:
'/system/post/delete?id='
+
id
})
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
)
=>
{
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) => {
...
@@ -52,6 +52,11 @@ export const deleteRole = async (id: number) => {
return
await
request
.
delete
({
url
:
'/system/role/delete?id='
+
id
})
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
)
=>
{
export
const
exportRole
=
(
params
)
=>
{
return
request
.
download
({
return
request
.
download
({
...
...
src/api/system/sms/smsChannel/index.ts
View file @
3a7fe42e
...
@@ -41,3 +41,8 @@ export const updateSmsChannel = (data: SmsChannelVO) => {
...
@@ -41,3 +41,8 @@ export const updateSmsChannel = (data: SmsChannelVO) => {
export
const
deleteSmsChannel
=
(
id
:
number
)
=>
{
export
const
deleteSmsChannel
=
(
id
:
number
)
=>
{
return
request
.
delete
({
url
:
'/system/sms-channel/delete?id='
+
id
})
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) => {
...
@@ -46,6 +46,11 @@ export const deleteSmsTemplate = (id: number) => {
return
request
.
delete
({
url
:
'/system/sms-template/delete?id='
+
id
})
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
)
=>
{
export
const
exportSmsTemplate
=
(
params
)
=>
{
return
request
.
download
({
return
request
.
download
({
...
...
src/api/system/tenant/index.ts
View file @
3a7fe42e
...
@@ -61,6 +61,11 @@ export const deleteTenant = (id: number) => {
...
@@ -61,6 +61,11 @@ export const deleteTenant = (id: number) => {
return
request
.
delete
({
url
:
'/system/tenant/delete?id='
+
id
})
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
)
=>
{
export
const
exportTenant
=
(
params
:
TenantExportReqVO
)
=>
{
return
request
.
download
({
url
:
'/system/tenant/export-excel'
,
params
})
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) => {
...
@@ -36,6 +36,12 @@ export const updateTenantPackage = (data: TenantPackageVO) => {
export
const
deleteTenantPackage
=
(
id
:
number
)
=>
{
export
const
deleteTenantPackage
=
(
id
:
number
)
=>
{
return
request
.
delete
({
url
:
'/system/tenant-package/delete?id='
+
id
})
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
=
()
=>
{
export
const
getTenantPackageList
=
()
=>
{
return
request
.
get
({
url
:
'/system/tenant-package/simple-list'
})
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) => {
...
@@ -42,6 +42,11 @@ export const deleteUser = (id: number) => {
return
request
.
delete
({
url
:
'/system/user/delete?id='
+
id
})
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
)
=>
{
export
const
exportUser
=
(
params
:
any
)
=>
{
return
request
.
download
({
url
:
'/system/user/export'
,
params
})
return
request
.
download
({
url
:
'/system/user/export'
,
params
})
...
...
src/views/system/dept/index.vue
View file @
3a7fe42e
...
@@ -46,6 +46,15 @@
...
@@ -46,6 +46,15 @@
<el-button
type=
"danger"
plain
@
click=
"toggleExpandAll"
>
<el-button
type=
"danger"
plain
@
click=
"toggleExpandAll"
>
<Icon
icon=
"ep:sort"
class=
"mr-5px"
/>
展开/折叠
<Icon
icon=
"ep:sort"
class=
"mr-5px"
/>
展开/折叠
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
...
@@ -58,7 +67,9 @@
...
@@ -58,7 +67,9 @@
row-key=
"id"
row-key=
"id"
:default-expand-all=
"isExpandAll"
:default-expand-all=
"isExpandAll"
v-if=
"refreshTable"
v-if=
"refreshTable"
@
selection-change=
"handleRowCheckboxChange"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
prop=
"name"
label=
"部门名称"
/>
<el-table-column
prop=
"name"
label=
"部门名称"
/>
<el-table-column
prop=
"leader"
label=
"负责人"
>
<el-table-column
prop=
"leader"
label=
"负责人"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
...
@@ -181,6 +192,24 @@ const handleDelete = async (id: number) => {
...
@@ -181,6 +192,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
onMounted
(
async
()
=>
{
await
getList
()
await
getList
()
...
...
src/views/system/dict/data/index.vue
View file @
3a7fe42e
...
@@ -56,13 +56,23 @@
...
@@ -56,13 +56,23 @@
>
>
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
label=
"字典标签"
align=
"center"
prop=
"label"
/>
<el-table-column
label=
"字典标签"
align=
"center"
prop=
"label"
/>
<el-table-column
label=
"字典键值"
align=
"center"
prop=
"value"
/>
<el-table-column
label=
"字典键值"
align=
"center"
prop=
"value"
/>
...
@@ -186,6 +196,24 @@ const handleDelete = async (id: number) => {
...
@@ -186,6 +196,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
...
src/views/system/dict/index.vue
View file @
3a7fe42e
...
@@ -80,13 +80,24 @@
...
@@ -80,13 +80,24 @@
<Icon
class=
"mr-5px"
icon=
"ep:download"
/>
<Icon
class=
"mr-5px"
icon=
"ep:download"
/>
导出
导出
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
align=
"center"
label=
"字典名称"
prop=
"name"
show-overflow-tooltip
/>
<el-table-column
align=
"center"
label=
"字典名称"
prop=
"name"
show-overflow-tooltip
/>
<el-table-column
align=
"center"
label=
"字典类型"
prop=
"type"
width=
"300"
/>
<el-table-column
align=
"center"
label=
"字典类型"
prop=
"type"
width=
"300"
/>
...
@@ -209,6 +220,24 @@ const handleDelete = async (id: number) => {
...
@@ -209,6 +220,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
...
src/views/system/mail/account/index.vue
View file @
3a7fe42e
...
@@ -14,6 +14,15 @@
...
@@ -14,6 +14,15 @@
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</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
>
</
template
>
</Search>
</Search>
</ContentWrap>
</ContentWrap>
...
@@ -29,6 +38,7 @@
...
@@ -29,6 +38,7 @@
}"
}"
v-model:pageSize=
"tableObject.pageSize"
v-model:pageSize=
"tableObject.pageSize"
v-model:currentPage=
"tableObject.currentPage"
v-model:currentPage=
"tableObject.currentPage"
:selection=
"true"
>
>
<
template
#
action=
"{ row }"
>
<
template
#
action=
"{ row }"
>
<el-button
<el-button
...
@@ -99,6 +109,19 @@ const handleDelete = (id: number) => {
...
@@ -99,6 +109,19 @@ const handleDelete = (id: number) => {
tableMethods
.
delList
(
id
,
false
)
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
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
src/views/system/mail/template/index.vue
View file @
3a7fe42e
...
@@ -14,6 +14,15 @@
...
@@ -14,6 +14,15 @@
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</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
>
</
template
>
</Search>
</Search>
</ContentWrap>
</ContentWrap>
...
@@ -29,6 +38,7 @@
...
@@ -29,6 +38,7 @@
}"
}"
v-model:pageSize=
"tableObject.pageSize"
v-model:pageSize=
"tableObject.pageSize"
v-model:currentPage=
"tableObject.currentPage"
v-model:currentPage=
"tableObject.currentPage"
:selection=
"true"
>
>
<
template
#
action=
"{ row }"
>
<
template
#
action=
"{ row }"
>
<el-button
<el-button
...
@@ -94,6 +104,19 @@ const handleDelete = (id: number) => {
...
@@ -94,6 +104,19 @@ const handleDelete = (id: number) => {
tableMethods
.
delList
(
id
,
false
)
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
sendFormRef
=
ref
()
const
openSendForm
=
(
id
:
number
)
=>
{
const
openSendForm
=
(
id
:
number
)
=>
{
...
...
src/views/system/notice/index.vue
View file @
3a7fe42e
...
@@ -43,13 +43,23 @@
...
@@ -43,13 +43,23 @@
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
label=
"公告标题"
align=
"center"
prop=
"title"
/>
<el-table-column
label=
"公告标题"
align=
"center"
prop=
"title"
/>
<el-table-column
label=
"公告类型"
align=
"center"
prop=
"type"
>
<el-table-column
label=
"公告类型"
align=
"center"
prop=
"type"
>
...
@@ -171,6 +181,24 @@ const handleDelete = async (id: number) => {
...
@@ -171,6 +181,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
)
=>
{
const
handlePush
=
async
(
id
:
number
)
=>
{
try
{
try
{
...
...
src/views/system/notify/template/index.vue
View file @
3a7fe42e
...
@@ -65,13 +65,23 @@
...
@@ -65,13 +65,23 @@
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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
<el-table-column
label=
"模板编码"
label=
"模板编码"
align=
"center"
align=
"center"
...
@@ -165,6 +175,7 @@ import NotifyTemplateSendForm from './NotifyTemplateSendForm.vue'
...
@@ -165,6 +175,7 @@ import NotifyTemplateSendForm from './NotifyTemplateSendForm.vue'
defineOptions
({
name
:
'NotifySmsTemplate'
})
defineOptions
({
name
:
'NotifySmsTemplate'
})
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
const
{
t
}
=
useI18n
()
// 国际化
const
loading
=
ref
(
false
)
// 列表的加载中
const
loading
=
ref
(
false
)
// 列表的加载中
const
total
=
ref
(
0
)
// 列表的总页数
const
total
=
ref
(
0
)
// 列表的总页数
...
@@ -216,7 +227,25 @@ const handleDelete = async (id: number) => {
...
@@ -216,7 +227,25 @@ const handleDelete = async (id: number) => {
await
message
.
delConfirm
()
await
message
.
delConfirm
()
// 发起删除
// 发起删除
await
NotifyTemplateApi
.
deleteNotifyTemplate
(
id
)
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
()
await
getList
()
}
catch
{}
}
catch
{}
...
...
src/views/system/oauth2/client/index.vue
View file @
3a7fe42e
...
@@ -40,13 +40,23 @@
...
@@ -40,13 +40,23 @@
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"clientId"
/>
<el-table-column
label=
"客户端密钥"
align=
"center"
prop=
"secret"
/>
<el-table-column
label=
"客户端密钥"
align=
"center"
prop=
"secret"
/>
<el-table-column
label=
"应用名"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"应用名"
align=
"center"
prop=
"name"
/>
...
@@ -184,6 +194,24 @@ const handleDelete = async (id: number) => {
...
@@ -184,6 +194,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
src/views/system/post/index.vue
View file @
3a7fe42e
...
@@ -56,13 +56,23 @@
...
@@ -56,13 +56,23 @@
>
>
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
label=
"岗位名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"岗位名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"岗位编码"
align=
"center"
prop=
"code"
/>
<el-table-column
label=
"岗位编码"
align=
"center"
prop=
"code"
/>
...
@@ -181,6 +191,24 @@ const handleDelete = async (id: number) => {
...
@@ -181,6 +191,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
...
src/views/system/role/index.vue
View file @
3a7fe42e
...
@@ -78,13 +78,24 @@
...
@@ -78,13 +78,24 @@
<Icon
class=
"mr-5px"
icon=
"ep:download"
/>
<Icon
class=
"mr-5px"
icon=
"ep:download"
/>
导出
导出
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
align=
"center"
label=
"角色名称"
prop=
"name"
/>
<el-table-column
align=
"center"
label=
"角色名称"
prop=
"name"
/>
<el-table-column
label=
"角色类型"
align=
"center"
prop=
"type"
>
<el-table-column
label=
"角色类型"
align=
"center"
prop=
"type"
>
...
@@ -247,6 +258,24 @@ const handleDelete = async (id: number) => {
...
@@ -247,6 +258,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
@@ -255,14 +284,14 @@ const handleExport = async () => {
...
@@ -255,14 +284,14 @@ const handleExport = async () => {
// 发起导出
// 发起导出
exportLoading
.
value
=
true
exportLoading
.
value
=
true
const
data
=
await
RoleApi
.
exportRole
(
queryParams
)
const
data
=
await
RoleApi
.
exportRole
(
queryParams
)
download
.
excel
(
data
,
'角色
列表
.xls'
)
download
.
excel
(
data
,
'角色
数据
.xls'
)
}
catch
{
}
catch
{
}
finally
{
}
finally
{
exportLoading
.
value
=
false
exportLoading
.
value
=
false
}
}
}
}
/** 初始化 *
*
/
/** 初始化 */
onMounted
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
})
})
...
...
src/views/system/sms/channel/index.vue
View file @
3a7fe42e
...
@@ -55,13 +55,23 @@
...
@@ -55,13 +55,23 @@
>
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button
<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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
label=
"短信签名"
align=
"center"
prop=
"signature"
/>
<el-table-column
label=
"短信签名"
align=
"center"
prop=
"signature"
/>
<el-table-column
label=
"渠道编码"
align=
"center"
prop=
"code"
>
<el-table-column
label=
"渠道编码"
align=
"center"
prop=
"code"
>
...
@@ -202,6 +212,24 @@ const handleDelete = async (id: number) => {
...
@@ -202,6 +212,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
src/views/system/sms/template/index.vue
View file @
3a7fe42e
...
@@ -99,6 +99,15 @@
...
@@ -99,6 +99,15 @@
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</el-button>
<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"
type=
"success"
plain
plain
@
click=
"handleExport"
@
click=
"handleExport"
...
@@ -113,7 +122,8 @@
...
@@ -113,7 +122,8 @@
<!-- 列表 -->
<!-- 列表 -->
<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
<el-table-column
label=
"模板编码"
label=
"模板编码"
align=
"center"
align=
"center"
...
@@ -292,6 +302,24 @@ const handleDelete = async (id: number) => {
...
@@ -292,6 +302,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
...
src/views/system/tenant/index.vue
View file @
3a7fe42e
...
@@ -92,13 +92,24 @@
...
@@ -92,13 +92,24 @@
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
<Icon
icon=
"ep:download"
class=
"mr-5px"
/>
导出
导出
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
/>
<el-table-column
label=
"租户名"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"租户名"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"租户套餐"
align=
"center"
prop=
"packageId"
>
<el-table-column
label=
"租户套餐"
align=
"center"
prop=
"packageId"
>
...
@@ -243,6 +254,24 @@ const handleDelete = async (id: number) => {
...
@@ -243,6 +254,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
@@ -261,6 +290,7 @@ const handleExport = async () => {
...
@@ -261,6 +290,7 @@ const handleExport = async () => {
/** 初始化 **/
/** 初始化 **/
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getList
()
await
getList
()
// 获取租户套餐列表
packageList
.
value
=
await
TenantPackageApi
.
getTenantPackageList
()
packageList
.
value
=
await
TenantPackageApi
.
getTenantPackageList
()
})
})
</
script
>
</
script
>
src/views/system/tenantPackage/index.vue
View file @
3a7fe42e
...
@@ -51,13 +51,24 @@
...
@@ -51,13 +51,24 @@
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
新增
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<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=
"id"
width=
"120"
/>
<el-table-column
label=
"套餐名"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"套餐名"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
width=
"100"
>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
width=
"100"
>
...
@@ -173,6 +184,24 @@ const handleDelete = async (id: number) => {
...
@@ -173,6 +184,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
src/views/system/user/index.vue
View file @
3a7fe42e
...
@@ -91,11 +91,21 @@
...
@@ -91,11 +91,21 @@
>
>
<Icon
icon=
"ep:download"
/>
导出
<Icon
icon=
"ep:download"
/>
导出
</el-button>
</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-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<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=
"用户编号"
align=
"center"
key=
"id"
prop=
"id"
/>
<el-table-column
<el-table-column
label=
"用户名称"
label=
"用户名称"
...
@@ -335,6 +345,24 @@ const handleDelete = async (id: number) => {
...
@@ -335,6 +345,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
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
)
=>
{
const
handleResetPwd
=
async
(
row
:
UserApi
.
UserVO
)
=>
{
try
{
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