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
85f45ee1
authored
Jun 15, 2025
by
puhui999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: infra 新增批量删除
parent
3a7fe42e
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
205 additions
and
6 deletions
+205
-6
src/api/infra/codegen/index.ts
+5
-0
src/api/infra/config/index.ts
+5
-0
src/api/infra/dataSourceConfig/index.ts
+5
-0
src/api/infra/file/index.ts
+5
-0
src/api/infra/fileConfig/index.ts
+5
-0
src/api/infra/job/index.ts
+5
-0
src/views/infra/codegen/index.vue
+29
-1
src/views/infra/config/index.vue
+29
-1
src/views/infra/dataSourceConfig/index.vue
+30
-1
src/views/infra/file/index.vue
+29
-1
src/views/infra/fileConfig/index.vue
+29
-1
src/views/infra/job/index.vue
+29
-1
No files found.
src/api/infra/codegen/index.ts
View file @
85f45ee1
...
@@ -105,3 +105,8 @@ export const createCodegenList = (data) => {
...
@@ -105,3 +105,8 @@ export const createCodegenList = (data) => {
export
const
deleteCodegenTable
=
(
id
:
number
)
=>
{
export
const
deleteCodegenTable
=
(
id
:
number
)
=>
{
return
request
.
delete
({
url
:
'/infra/codegen/delete?tableId='
+
id
})
return
request
.
delete
({
url
:
'/infra/codegen/delete?tableId='
+
id
})
}
}
// 批量删除代码生成表定义
export
const
deleteCodegenTableList
=
(
ids
:
number
[])
=>
{
return
request
.
delete
({
url
:
'/infra/codegen/delete-list'
,
params
:
{
tableIds
:
ids
.
join
(
','
)
}
})
}
src/api/infra/config/index.ts
View file @
85f45ee1
...
@@ -42,6 +42,11 @@ export const deleteConfig = (id: number) => {
...
@@ -42,6 +42,11 @@ export const deleteConfig = (id: number) => {
return
request
.
delete
({
url
:
'/infra/config/delete?id='
+
id
})
return
request
.
delete
({
url
:
'/infra/config/delete?id='
+
id
})
}
}
// 批量删除参数
export
const
deleteConfigList
=
(
ids
:
number
[])
=>
{
return
request
.
delete
({
url
:
'/infra/config/delete-list'
,
params
:
{
ids
:
ids
.
join
(
','
)
}
})
}
// 导出参数
// 导出参数
export
const
exportConfig
=
(
params
)
=>
{
export
const
exportConfig
=
(
params
)
=>
{
return
request
.
download
({
url
:
'/infra/config/export'
,
params
})
return
request
.
download
({
url
:
'/infra/config/export'
,
params
})
...
...
src/api/infra/dataSourceConfig/index.ts
View file @
85f45ee1
...
@@ -24,6 +24,11 @@ export const deleteDataSourceConfig = (id: number) => {
...
@@ -24,6 +24,11 @@ export const deleteDataSourceConfig = (id: number) => {
return
request
.
delete
({
url
:
'/infra/data-source-config/delete?id='
+
id
})
return
request
.
delete
({
url
:
'/infra/data-source-config/delete?id='
+
id
})
}
}
// 批量删除数据源配置
export
const
deleteDataSourceConfigList
=
(
ids
:
number
[])
=>
{
return
request
.
delete
({
url
:
'/infra/data-source-config/delete-list'
,
params
:
{
ids
:
ids
.
join
(
','
)
}
})
}
// 查询数据源配置详情
// 查询数据源配置详情
export
const
getDataSourceConfig
=
(
id
:
number
)
=>
{
export
const
getDataSourceConfig
=
(
id
:
number
)
=>
{
return
request
.
get
({
url
:
'/infra/data-source-config/get?id='
+
id
})
return
request
.
get
({
url
:
'/infra/data-source-config/get?id='
+
id
})
...
...
src/api/infra/file/index.ts
View file @
85f45ee1
...
@@ -22,6 +22,11 @@ export const deleteFile = (id: number) => {
...
@@ -22,6 +22,11 @@ export const deleteFile = (id: number) => {
return
request
.
delete
({
url
:
'/infra/file/delete?id='
+
id
})
return
request
.
delete
({
url
:
'/infra/file/delete?id='
+
id
})
}
}
// 批量删除文件
export
const
deleteFileList
=
(
ids
:
number
[])
=>
{
return
request
.
delete
({
url
:
'/infra/file/delete-list'
,
params
:
{
ids
:
ids
.
join
(
','
)
}
})
}
// 获取文件预签名地址
// 获取文件预签名地址
export
const
getFilePresignedUrl
=
(
name
:
string
,
directory
?:
string
)
=>
{
export
const
getFilePresignedUrl
=
(
name
:
string
,
directory
?:
string
)
=>
{
return
request
.
get
<
FilePresignedUrlRespVO
>
({
return
request
.
get
<
FilePresignedUrlRespVO
>
({
...
...
src/api/infra/fileConfig/index.ts
View file @
85f45ee1
...
@@ -56,6 +56,11 @@ export const deleteFileConfig = (id: number) => {
...
@@ -56,6 +56,11 @@ export const deleteFileConfig = (id: number) => {
return
request
.
delete
({
url
:
'/infra/file-config/delete?id='
+
id
})
return
request
.
delete
({
url
:
'/infra/file-config/delete?id='
+
id
})
}
}
// 批量删除文件配置
export
const
deleteFileConfigList
=
(
ids
:
number
[])
=>
{
return
request
.
delete
({
url
:
'/infra/file-config/delete-list'
,
params
:
{
ids
:
ids
.
join
(
','
)
}
})
}
// 测试文件配置
// 测试文件配置
export
const
testFileConfig
=
(
id
:
number
)
=>
{
export
const
testFileConfig
=
(
id
:
number
)
=>
{
return
request
.
get
({
url
:
'/infra/file-config/test?id='
+
id
})
return
request
.
get
({
url
:
'/infra/file-config/test?id='
+
id
})
...
...
src/api/infra/job/index.ts
View file @
85f45ee1
...
@@ -38,6 +38,11 @@ export const deleteJob = (id: number) => {
...
@@ -38,6 +38,11 @@ export const deleteJob = (id: number) => {
return
request
.
delete
({
url
:
'/infra/job/delete?id='
+
id
})
return
request
.
delete
({
url
:
'/infra/job/delete?id='
+
id
})
}
}
// 批量删除定时任务调度
export
const
deleteJobList
=
(
ids
:
number
[])
=>
{
return
request
.
delete
({
url
:
'/infra/job/delete-list'
,
params
:
{
ids
:
ids
.
join
(
','
)
}
})
}
// 导出定时任务调度
// 导出定时任务调度
export
const
exportJob
=
(
params
)
=>
{
export
const
exportJob
=
(
params
)
=>
{
return
request
.
download
({
url
:
'/infra/job/export-excel'
,
params
})
return
request
.
download
({
url
:
'/infra/job/export-excel'
,
params
})
...
...
src/views/infra/codegen/index.vue
View file @
85f45ee1
...
@@ -55,13 +55,23 @@
...
@@ -55,13 +55,23 @@
<Icon
class=
"mr-5px"
icon=
"ep:zoom-in"
/>
<Icon
class=
"mr-5px"
icon=
"ep:zoom-in"
/>
导入
导入
</el-button>
</el-button>
<el-button
v-hasPermi=
"['infra:codegen:delete']"
type=
"danger"
:disabled=
"checkedIds.length === 0"
@
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=
"数据源"
>
<el-table-column
align=
"center"
label=
"数据源"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
{{
{{
...
@@ -232,6 +242,24 @@ const handleDelete = async (id: number) => {
...
@@ -232,6 +242,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
catch
{}
}
}
/** 批量删除操作 */
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
rows
:
CodegenApi
.
CodegenTableVO
[])
=>
{
checkedIds
.
value
=
rows
.
map
((
row
)
=>
row
.
id
)
}
const
handleDeleteBatch
=
async
()
=>
{
try
{
// 删除的二次确认
await
message
.
delConfirm
()
// 发起批量删除
await
CodegenApi
.
deleteCodegenTableList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
await
getList
()
}
catch
{}
}
/** 同步操作 */
/** 同步操作 */
const
handleSyncDB
=
async
(
row
:
CodegenApi
.
CodegenTableVO
)
=>
{
const
handleSyncDB
=
async
(
row
:
CodegenApi
.
CodegenTableVO
)
=>
{
// 基于 DB 同步
// 基于 DB 同步
...
...
src/views/infra/config/index.vue
View file @
85f45ee1
...
@@ -66,6 +66,15 @@
...
@@ -66,6 +66,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=
"['infra:config:delete']"
>
<Icon
icon=
"ep:delete"
class=
"mr-5px"
/>
批量删除
</el-button>
<el-button
type=
"success"
type=
"success"
plain
plain
@
click=
"handleExport"
@
click=
"handleExport"
...
@@ -80,7 +89,8 @@
...
@@ -80,7 +89,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
label=
"参数主键"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"参数主键"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"参数分类"
align=
"center"
prop=
"category"
/>
<el-table-column
label=
"参数分类"
align=
"center"
prop=
"category"
/>
<el-table-column
label=
"参数名称"
align=
"center"
prop=
"name"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"参数名称"
align=
"center"
prop=
"name"
:show-overflow-tooltip=
"true"
/>
...
@@ -206,6 +216,24 @@ const handleDelete = async (id: number) => {
...
@@ -206,6 +216,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
catch
{}
}
}
/** 批量删除按钮操作 */
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
rows
:
ConfigApi
.
ConfigVO
[])
=>
{
checkedIds
.
value
=
rows
.
map
((
row
)
=>
row
.
id
!
).
filter
(
Boolean
)
}
const
handleDeleteBatch
=
async
()
=>
{
try
{
// 删除的二次确认
await
message
.
delConfirm
()
// 发起批量删除
await
ConfigApi
.
deleteConfigList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
await
getList
()
}
catch
{}
}
/** 导出按钮操作 */
/** 导出按钮操作 */
const
handleExport
=
async
()
=>
{
const
handleExport
=
async
()
=>
{
try
{
try
{
...
...
src/views/infra/dataSourceConfig/index.vue
View file @
85f45ee1
...
@@ -11,13 +11,23 @@
...
@@ -11,13 +11,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=
"['infra:data-source-config: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=
"url"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"数据源连接"
align=
"center"
prop=
"url"
:show-overflow-tooltip=
"true"
/>
...
@@ -99,6 +109,25 @@ const handleDelete = async (id: number) => {
...
@@ -99,6 +109,25 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
catch
{}
}
}
/** 批量删除按钮操作 */
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
rows
:
DataSourceConfigApi
.
DataSourceConfigVO
[])
=>
{
// 过滤掉id为0的主数据源
checkedIds
.
value
=
rows
.
map
((
row
)
=>
row
.
id
!
).
filter
((
id
)
=>
id
!==
0
&&
Boolean
(
id
))
}
const
handleDeleteBatch
=
async
()
=>
{
try
{
// 删除的二次确认
await
message
.
delConfirm
()
// 发起批量删除
await
DataSourceConfigApi
.
deleteDataSourceConfigList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
await
getList
()
}
catch
{}
}
/** 初始化 **/
/** 初始化 **/
onMounted
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
src/views/infra/file/index.vue
View file @
85f45ee1
...
@@ -44,13 +44,23 @@
...
@@ -44,13 +44,23 @@
<el-button
type=
"primary"
plain
@
click=
"openForm"
>
<el-button
type=
"primary"
plain
@
click=
"openForm"
>
<Icon
icon=
"ep:upload"
class=
"mr-5px"
/>
上传文件
<Icon
icon=
"ep:upload"
class=
"mr-5px"
/>
上传文件
</el-button>
</el-button>
<el-button
type=
"danger"
plain
:disabled=
"checkedIds.length === 0"
@
click=
"handleDeleteBatch"
v-hasPermi=
"['infra:file: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=
"name"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"文件名"
align=
"center"
prop=
"name"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"文件路径"
align=
"center"
prop=
"path"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"文件路径"
align=
"center"
prop=
"path"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"URL"
align=
"center"
prop=
"url"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"URL"
align=
"center"
prop=
"url"
:show-overflow-tooltip=
"true"
/>
...
@@ -195,6 +205,24 @@ const handleDelete = async (id: number) => {
...
@@ -195,6 +205,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
catch
{}
}
}
/** 批量删除按钮操作 */
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
rows
)
=>
{
checkedIds
.
value
=
rows
.
map
((
row
)
=>
row
.
id
)
}
const
handleDeleteBatch
=
async
()
=>
{
try
{
// 删除的二次确认
await
message
.
delConfirm
()
// 发起批量删除
await
FileApi
.
deleteFileList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
await
getList
()
}
catch
{}
}
/** 初始化 **/
/** 初始化 **/
onMounted
(()
=>
{
onMounted
(()
=>
{
getList
()
getList
()
...
...
src/views/infra/fileConfig/index.vue
View file @
85f45ee1
...
@@ -56,13 +56,23 @@
...
@@ -56,13 +56,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=
"['infra:file-config: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=
"storage"
>
<el-table-column
label=
"存储器"
align=
"center"
prop=
"storage"
>
...
@@ -192,6 +202,24 @@ const handleDelete = async (id: number) => {
...
@@ -192,6 +202,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
catch
{}
}
}
/** 批量删除按钮操作 */
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
rows
)
=>
{
checkedIds
.
value
=
rows
.
map
((
row
)
=>
row
.
id
)
}
const
handleDeleteBatch
=
async
()
=>
{
try
{
// 删除的二次确认
await
message
.
delConfirm
()
// 发起批量删除
await
FileConfigApi
.
deleteFileConfigList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
await
getList
()
}
catch
{}
}
/** 主配置按钮操作 */
/** 主配置按钮操作 */
const
handleMaster
=
async
(
id
)
=>
{
const
handleMaster
=
async
(
id
)
=>
{
try
{
try
{
...
...
src/views/infra/job/index.vue
View file @
85f45ee1
...
@@ -57,6 +57,15 @@
...
@@ -57,6 +57,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=
"['infra:job:delete']"
>
<Icon
icon=
"ep:delete"
class=
"mr-5px"
/>
批量删除
</el-button>
<el-button
type=
"success"
type=
"success"
plain
plain
@
click=
"handleExport"
@
click=
"handleExport"
...
@@ -74,7 +83,8 @@
...
@@ -74,7 +83,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
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=
"status"
>
<el-table-column
label=
"任务状态"
align=
"center"
prop=
"status"
>
...
@@ -251,6 +261,24 @@ const handleDelete = async (id: number) => {
...
@@ -251,6 +261,24 @@ const handleDelete = async (id: number) => {
}
catch
{}
}
catch
{}
}
}
/** 批量删除按钮操作 */
const
checkedIds
=
ref
<
number
[]
>
([])
const
handleRowCheckboxChange
=
(
rows
:
JobApi
.
JobVO
[])
=>
{
checkedIds
.
value
=
rows
.
map
((
row
)
=>
row
.
id
)
}
const
handleDeleteBatch
=
async
()
=>
{
try
{
// 删除的二次确认
await
message
.
delConfirm
()
// 发起批量删除
await
JobApi
.
deleteJobList
(
checkedIds
.
value
)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
await
getList
()
}
catch
{}
}
/** '更多'操作按钮 */
/** '更多'操作按钮 */
const
handleCommand
=
(
command
,
row
)
=>
{
const
handleCommand
=
(
command
,
row
)
=>
{
switch
(
command
)
{
switch
(
command
)
{
...
...
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