Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0de59dd77d | ||
|
|
d0b25c38a6 | ||
|
|
9fe2531d2f | ||
|
|
28ce2317c0 | ||
|
|
f38ae06fa0 | ||
|
|
e434d85ea5 | ||
|
|
d303406332 | ||
|
|
952d63b282 | ||
|
|
cffb3c9e90 | ||
|
|
d828d4a754 | ||
|
|
30ff601078 | ||
|
|
eb18f4281a | ||
|
|
b850aa1f7f | ||
|
|
100b5e8740 | ||
|
|
148d9f1201 | ||
|
|
88ddc7c4b2 | ||
|
|
4a2c01fba6 | ||
|
|
45c83f6080 | ||
|
|
08a0eeb6b5 | ||
|
|
73b034b27c | ||
|
|
95a31d613d | ||
|
|
8027d39938 | ||
|
|
e3d33295fe | ||
|
|
691c61613f | ||
|
|
a75ce2143d | ||
|
|
cb828e5684 | ||
|
|
168f193416 | ||
|
|
211a50d33d | ||
|
|
713af9d032 | ||
|
|
214b6fe9ac | ||
|
|
343c188749 | ||
|
|
fc6418caf3 | ||
|
|
cf093e1023 | ||
|
|
90eb6003c9 | ||
|
|
652691b32b | ||
|
|
eb77f33574 | ||
|
|
9bfd5888bf | ||
|
|
73c18c79b8 | ||
|
|
562052b868 |
@@ -1,5 +1,5 @@
|
|||||||
<div align="center"><img src="https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/9/11/11e7e78e-2af0-4c68-9811-db8a4c4400f4.png" alt="logo" width="520" /></div>
|
<div align="center"><img src="https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/9/11/11e7e78e-2af0-4c68-9811-db8a4c4400f4.png" alt="logo" width="520" /></div>
|
||||||
<p style="margin-top: 12px" align="center"><b>一款高颜值、现代化的自动化运维&轻量堡垒机平台。</b></p>
|
<p style="margin-top: 12px" align="center"><b>【Dromara】 一款高颜值、现代化的自动化运维&轻量堡垒机平台。</b></p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a target="_blank"
|
<a target="_blank"
|
||||||
style="text-decoration: none !important;"
|
style="text-decoration: none !important;"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
version: '3.3'
|
version: '3.3'
|
||||||
services:
|
services:
|
||||||
service:
|
service:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.2.1
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 1081:80
|
- 1081:80
|
||||||
@@ -32,7 +32,7 @@ services:
|
|||||||
- mysql
|
- mysql
|
||||||
- redis
|
- redis
|
||||||
mysql:
|
mysql:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.2.1
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 3307:3306
|
- 3307:3306
|
||||||
@@ -52,7 +52,7 @@ services:
|
|||||||
retries: 10
|
retries: 10
|
||||||
start_period: 3s
|
start_period: 3s
|
||||||
redis:
|
redis:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.2.1
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 6380:6379
|
- 6380:6379
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
version: '3.3'
|
version: '3.3'
|
||||||
services:
|
services:
|
||||||
service:
|
service:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:2.2.1
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- ${SERVICE_PORT:-1081}:80
|
- ${SERVICE_PORT:-1081}:80
|
||||||
@@ -32,7 +32,7 @@ services:
|
|||||||
- mysql
|
- mysql
|
||||||
- redis
|
- redis
|
||||||
mysql:
|
mysql:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:2.2.1
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 3307:3306
|
- 3307:3306
|
||||||
@@ -52,7 +52,7 @@ services:
|
|||||||
retries: 15
|
retries: 15
|
||||||
start_period: 3s
|
start_period: 3s
|
||||||
redis:
|
redis:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:2.2.1
|
||||||
privileged: true
|
privileged: true
|
||||||
ports:
|
ports:
|
||||||
- 6380:6379
|
- 6380:6379
|
||||||
@@ -68,7 +68,7 @@ services:
|
|||||||
retries: 15
|
retries: 15
|
||||||
start_period: 3s
|
start_period: 3s
|
||||||
adminer:
|
adminer:
|
||||||
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-adminer:2.2.0
|
image: registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-adminer:2.2.1
|
||||||
ports:
|
ports:
|
||||||
- 8081:8080
|
- 8081:8080
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.2.0
|
version=2.2.1
|
||||||
docker build -t orion-visor-adminer:${version} .
|
docker build -t orion-visor-adminer:${version} .
|
||||||
docker tag orion-visor-adminer:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-adminer:${version}
|
docker tag orion-visor-adminer:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-adminer:${version}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.2.0
|
version=2.2.1
|
||||||
cp -r ../../sql ./sql
|
cp -r ../../sql ./sql
|
||||||
docker build -t orion-visor-mysql:${version} .
|
docker build -t orion-visor-mysql:${version} .
|
||||||
rm -rf ./sql
|
rm -rf ./sql
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.2.0
|
version=2.2.1
|
||||||
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-adminer:${version}
|
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-adminer:${version}
|
||||||
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:${version}
|
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-mysql:${version}
|
||||||
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
docker push registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.2.0
|
version=2.2.1
|
||||||
docker build -t orion-visor-redis:${version} .
|
docker build -t orion-visor-redis:${version} .
|
||||||
docker tag orion-visor-redis:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
docker tag orion-visor-redis:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-redis:${version}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
version=2.2.0
|
version=2.2.1
|
||||||
mv ../../orion-visor-launch/target/orion-visor-launch.jar ./orion-visor-launch.jar
|
mv ../../orion-visor-launch/target/orion-visor-launch.jar ./orion-visor-launch.jar
|
||||||
mv ../../orion-visor-ui/dist ./dist
|
mv ../../orion-visor-ui/dist ./dist
|
||||||
docker build -t orion-visor-service:${version} .
|
docker build --no-cache -t orion-visor-service:${version} .
|
||||||
rm -rf ./orion-visor-launch.jar
|
rm -rf ./orion-visor-launch.jar
|
||||||
rm -rf ./dist
|
rm -rf ./dist
|
||||||
docker tag orion-visor-service:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:${version}
|
docker tag orion-visor-service:${version} registry.cn-hangzhou.aliyuncs.com/lijiahangmax/orion-visor-service:${version}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
// 左侧文档名称
|
// 左侧文档名称
|
||||||
name: 'orion-visor',
|
name: 'orion-visor',
|
||||||
// 右上角仓库
|
// 右上角仓库
|
||||||
repo: 'https://github.com/lijiahangmax/orion-visor',
|
repo: 'https://github.com/dromara/orion-visor',
|
||||||
coverpage: true,
|
coverpage: true,
|
||||||
// 加载侧边栏
|
// 加载侧边栏
|
||||||
loadSidebar: true,
|
loadSidebar: true,
|
||||||
|
|||||||
@@ -10,15 +10,15 @@
|
|||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
|
|
||||||
<description>项目所有依赖</description>
|
<description>项目全部依赖</description>
|
||||||
<url>https://github.com/dromara/orion-visor</url>
|
<url>https://github.com/dromara/orion-visor</url>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<revision>2.2.0</revision>
|
<revision>2.2.1</revision>
|
||||||
<spring.boot.version>2.7.17</spring.boot.version>
|
<spring.boot.version>2.7.17</spring.boot.version>
|
||||||
<spring.boot.admin.version>2.7.15</spring.boot.admin.version>
|
<spring.boot.admin.version>2.7.15</spring.boot.admin.version>
|
||||||
<flatten.maven.plugin.version>1.5.0</flatten.maven.plugin.version>
|
<flatten.maven.plugin.version>1.5.0</flatten.maven.plugin.version>
|
||||||
<orion.kit.version>2.0.0</orion.kit.version>
|
<orion.kit.version>2.0.1</orion.kit.version>
|
||||||
<aspectj.version>1.9.7</aspectj.version>
|
<aspectj.version>1.9.7</aspectj.version>
|
||||||
<lombok.version>1.18.26</lombok.version>
|
<lombok.version>1.18.26</lombok.version>
|
||||||
<springdoc.version>1.6.15</springdoc.version>
|
<springdoc.version>1.6.15</springdoc.version>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public interface AppConst extends OrionConst {
|
|||||||
/**
|
/**
|
||||||
* 同 ${orion.version} 迭代时候需要手动更改
|
* 同 ${orion.version} 迭代时候需要手动更改
|
||||||
*/
|
*/
|
||||||
String VERSION = "2.2.0";
|
String VERSION = "2.2.1";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同 ${spring.application.name}
|
* 同 ${spring.application.name}
|
||||||
|
|||||||
@@ -142,8 +142,8 @@ public class ${table.serviceImplName} implements ${table.serviceName} {
|
|||||||
// 查询
|
// 查询
|
||||||
return ${typeLower}DAO.of(wrapper).list(${type}Convert.MAPPER::to);
|
return ${typeLower}DAO.of(wrapper).list(${type}Convert.MAPPER::to);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if($meta.enableCache)
|
#if($meta.enableCache)
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<${type}VO> get${type}ListByCache() {
|
public List<${type}VO> get${type}ListByCache() {
|
||||||
// 查询缓存
|
// 查询缓存
|
||||||
|
|||||||
@@ -72,14 +72,14 @@ export interface ${vue.featureEntity}QueryResponse extends TableData {
|
|||||||
* $apiComment.create
|
* $apiComment.create
|
||||||
*/
|
*/
|
||||||
export function create${vue.featureEntity}(request: ${vue.featureEntity}CreateRequest) {
|
export function create${vue.featureEntity}(request: ${vue.featureEntity}CreateRequest) {
|
||||||
return axios.post('/${package.ModuleName}/${typeHyphen}/create', request);
|
return axios.post<number>('/${package.ModuleName}/${typeHyphen}/create', request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* $apiComment.updateById
|
* $apiComment.updateById
|
||||||
*/
|
*/
|
||||||
export function update${vue.featureEntity}(request: ${vue.featureEntity}UpdateRequest) {
|
export function update${vue.featureEntity}(request: ${vue.featureEntity}UpdateRequest) {
|
||||||
return axios.put('/${package.ModuleName}/${typeHyphen}/update', request);
|
return axios.put<number>('/${package.ModuleName}/${typeHyphen}/update', request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,14 +126,14 @@ export function get${vue.featureEntity}Count(request: ${vue.featureEntity}QueryR
|
|||||||
* $apiComment.deleteById
|
* $apiComment.deleteById
|
||||||
*/
|
*/
|
||||||
export function delete${vue.featureEntity}(id: number) {
|
export function delete${vue.featureEntity}(id: number) {
|
||||||
return axios.delete('/${package.ModuleName}/${typeHyphen}/delete', { params: { id } });
|
return axios.delete<number>('/${package.ModuleName}/${typeHyphen}/delete', { params: { id } });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* $apiComment.batchDelete
|
* $apiComment.batchDelete
|
||||||
*/
|
*/
|
||||||
export function batchDelete${vue.featureEntity}(idList: Array<number>) {
|
export function batchDelete${vue.featureEntity}(idList: Array<number>) {
|
||||||
return axios.delete('/${package.ModuleName}/${typeHyphen}/batch-delete', {
|
return axios.delete<number>('/${package.ModuleName}/${typeHyphen}/batch-delete', {
|
||||||
params: { idList },
|
params: { idList },
|
||||||
paramsSerializer: params => {
|
paramsSerializer: params => {
|
||||||
return qs.stringify(params, { arrayFormat: 'comma' });
|
return qs.stringify(params, { arrayFormat: 'comma' });
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
||||||
<a-input-number v-model="formModel.${field.propertyName}"
|
<a-input-number v-model="formModel.${field.propertyName}"
|
||||||
placeholder="请输入${field.comment}"
|
placeholder="请输入${field.comment}"
|
||||||
allow-clear
|
hide-button
|
||||||
hide-button />
|
allow-clear />
|
||||||
#elseif("$field.propertyType" == "Date")
|
#elseif("$field.propertyType" == "Date")
|
||||||
<a-date-picker v-model="formModel.${field.propertyName}"
|
<a-date-picker v-model="formModel.${field.propertyName}"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@@ -180,19 +180,12 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchCardData();
|
fetchCardData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchCardData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 重置条件
|
// 重置条件
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
|
|||||||
@@ -21,17 +21,20 @@
|
|||||||
#if(${dictMap.containsKey(${field.propertyName})})
|
#if(${dictMap.containsKey(${field.propertyName})})
|
||||||
<a-select v-model="formModel.${field.propertyName}"
|
<a-select v-model="formModel.${field.propertyName}"
|
||||||
:options="toOptions($dictMap.get(${field.propertyName}).keyField)"
|
:options="toOptions($dictMap.get(${field.propertyName}).keyField)"
|
||||||
placeholder="请选择${field.comment}" />
|
placeholder="请选择${field.comment}"
|
||||||
|
allow-clear />
|
||||||
#else
|
#else
|
||||||
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
||||||
<a-input-number v-model="formModel.${field.propertyName}"
|
<a-input-number v-model="formModel.${field.propertyName}"
|
||||||
placeholder="请输入${field.comment}"
|
placeholder="请输入${field.comment}"
|
||||||
hide-button />
|
hide-button
|
||||||
|
allow-clear />
|
||||||
#elseif("$field.propertyType" == "Date")
|
#elseif("$field.propertyType" == "Date")
|
||||||
<a-date-picker v-model="formModel.${field.propertyName}"
|
<a-date-picker v-model="formModel.${field.propertyName}"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="请选择${field.comment}"
|
placeholder="请选择${field.comment}"
|
||||||
show-time />
|
show-time
|
||||||
|
allow-clear />
|
||||||
#else
|
#else
|
||||||
<a-input v-model="formModel.${field.propertyName}"
|
<a-input v-model="formModel.${field.propertyName}"
|
||||||
placeholder="请输入${field.comment}"
|
placeholder="请输入${field.comment}"
|
||||||
|
|||||||
@@ -25,17 +25,20 @@
|
|||||||
#if(${dictMap.containsKey(${field.propertyName})})
|
#if(${dictMap.containsKey(${field.propertyName})})
|
||||||
<a-select v-model="formModel.${field.propertyName}"
|
<a-select v-model="formModel.${field.propertyName}"
|
||||||
:options="toOptions($dictMap.get(${field.propertyName}).keyField)"
|
:options="toOptions($dictMap.get(${field.propertyName}).keyField)"
|
||||||
placeholder="请选择${field.comment}" />
|
placeholder="请选择${field.comment}"
|
||||||
|
allow-clear />
|
||||||
#else
|
#else
|
||||||
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
||||||
<a-input-number v-model="formModel.${field.propertyName}"
|
<a-input-number v-model="formModel.${field.propertyName}"
|
||||||
placeholder="请输入${field.comment}"
|
placeholder="请输入${field.comment}"
|
||||||
hide-button />
|
hide-button
|
||||||
|
allow-clear />
|
||||||
#elseif("$field.propertyType" == "Date")
|
#elseif("$field.propertyType" == "Date")
|
||||||
<a-date-picker v-model="formModel.${field.propertyName}"
|
<a-date-picker v-model="formModel.${field.propertyName}"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="请选择${field.comment}"
|
placeholder="请选择${field.comment}"
|
||||||
show-time />
|
show-time
|
||||||
|
allow-clear />
|
||||||
#else
|
#else
|
||||||
<a-input v-model="formModel.${field.propertyName}"
|
<a-input v-model="formModel.${field.propertyName}"
|
||||||
placeholder="请输入${field.comment}"
|
placeholder="请输入${field.comment}"
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
#if("$field.propertyType" == "Integer" || "$field.propertyType" == "Long")
|
||||||
<a-input-number v-model="formModel.${field.propertyName}"
|
<a-input-number v-model="formModel.${field.propertyName}"
|
||||||
placeholder="请输入${field.comment}"
|
placeholder="请输入${field.comment}"
|
||||||
allow-clear
|
hide-button
|
||||||
hide-button />
|
allow-clear />
|
||||||
#elseif("$field.propertyType" == "Date")
|
#elseif("$field.propertyType" == "Date")
|
||||||
<a-date-picker v-model="formModel.${field.propertyName}"
|
<a-date-picker v-model="formModel.${field.propertyName}"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['${package.ModuleName}:${typeHyphen}:delete']"
|
<a-button v-permission="['${package.ModuleName}:${typeHyphen}:delete']"
|
||||||
type="secondary"
|
type="secondary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
|
|
||||||
#if($vue.enableRowSelection)
|
#if($vue.enableRowSelection)
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -215,19 +215,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: ${vue.featureEntity}QueryRequest) => {
|
const doFetchTableData = async (request: ${vue.featureEntity}QueryRequest) => {
|
||||||
|
|||||||
@@ -18,15 +18,15 @@
|
|||||||
@open-update="(e) =>#if($vue.enableDrawerForm) drawer#else modal#end.openUpdate(e)" />
|
@open-update="(e) =>#if($vue.enableDrawerForm) drawer#else modal#end.openUpdate(e)" />
|
||||||
#end
|
#end
|
||||||
#if($vue.enableDrawerForm)
|
#if($vue.enableDrawerForm)
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改抽屉 -->
|
||||||
<${vue.feature}-form-drawer ref="drawer"
|
<${vue.feature}-form-drawer ref="drawer"
|
||||||
@added="modalAddCallback"
|
@added="reload"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="reload" />
|
||||||
#else
|
#else
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<${vue.feature}-form-modal ref="modal"
|
<${vue.feature}-form-modal ref="modal"
|
||||||
@added="modalAddCallback"
|
@added="reload"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="reload" />
|
||||||
#end
|
#end
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -81,29 +81,16 @@
|
|||||||
const modal = ref();
|
const modal = ref();
|
||||||
#end
|
#end
|
||||||
|
|
||||||
// 添加回调
|
// 重新加载
|
||||||
const modalAddCallback = () => {
|
const reload = () => {
|
||||||
#if($vue.enableCardView)
|
#if($vue.enableCardView)
|
||||||
if (renderTable.value) {
|
if (renderTable.value) {
|
||||||
table.value.addedCallback();
|
table.value.reload();
|
||||||
} else {
|
} else {
|
||||||
card.value.addedCallback();
|
card.value.reload();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
table.value.addedCallback();
|
table.value.reload();
|
||||||
#end
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
#if($vue.enableCardView)
|
|
||||||
if (renderTable.value) {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
} else {
|
|
||||||
card.value.updatedCallback();
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
table.value.updatedCallback();
|
|
||||||
#end
|
#end
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ public class ExecJobServiceImpl implements ExecJobService {
|
|||||||
// 设置任务主机
|
// 设置任务主机
|
||||||
execJobHostService.setHostIdByJobId(id, request.getHostIdList());
|
execJobHostService.setHostIdByJobId(id, request.getHostIdList());
|
||||||
// 设置 quartz 状态
|
// 设置 quartz 状态
|
||||||
this.setQuartzJobStatus(record, false, true);
|
// this.setQuartzJobStatus(record, false, false);
|
||||||
log.info("ExecJobService-createExecJob id: {}, effect: {}", id, effect);
|
log.info("ExecJobService-createExecJob id: {}, effect: {}", id, effect);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
VITE_API_BASE_URL= 'http://127.0.0.1:9200/orion-visor/api'
|
VITE_API_BASE_URL= 'http://127.0.0.1:9200/orion-visor/api'
|
||||||
VITE_WS_BASE_URL= 'ws://127.0.0.1:9200/orion-visor/keep-alive'
|
VITE_WS_BASE_URL= 'ws://127.0.0.1:9200/orion-visor/keep-alive'
|
||||||
VITE_APP_VERSION= '2.2.0'
|
VITE_APP_VERSION= '2.2.1'
|
||||||
VITE_APP_RELEASE= 'community'
|
VITE_APP_RELEASE= 'community'
|
||||||
VITE_DEMO_MODE= false
|
VITE_DEMO_MODE= false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
VITE_API_BASE_URL= '/orion-visor/api'
|
VITE_API_BASE_URL= '/orion-visor/api'
|
||||||
VITE_WS_BASE_URL= '/orion-visor/keep-alive'
|
VITE_WS_BASE_URL= '/orion-visor/keep-alive'
|
||||||
VITE_APP_VERSION= '2.2.0'
|
VITE_APP_VERSION= '2.2.1'
|
||||||
VITE_APP_RELEASE= 'community'
|
VITE_APP_RELEASE= 'community'
|
||||||
VITE_DEMO_MODE= false
|
VITE_DEMO_MODE= false
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "orion-visor-ui",
|
"name": "orion-visor-ui",
|
||||||
"description": "Orion Visor UI",
|
"description": "Orion Visor UI",
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"author": "Jiahang Li",
|
"author": "Jiahang Li",
|
||||||
"license": "Apache 2.0",
|
"license": "Apache 2.0",
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ export function getExecCommandHostLogList(logId: number) {
|
|||||||
export function getExecCommandLogStatus(idList: Array<number>) {
|
export function getExecCommandLogStatus(idList: Array<number>) {
|
||||||
return axios.get<ExecLogStatusResponse>('/asset/exec-command-log/status', {
|
return axios.get<ExecLogStatusResponse>('/asset/exec-command-log/status', {
|
||||||
params: { idList },
|
params: { idList },
|
||||||
|
promptBizErrorMessage: false,
|
||||||
|
promptRequestErrorMessage: false,
|
||||||
paramsSerializer: params => {
|
paramsSerializer: params => {
|
||||||
return qs.stringify(params, { arrayFormat: 'comma' });
|
return qs.stringify(params, { arrayFormat: 'comma' });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,6 +146,8 @@ export function getUploadTaskPage(request: UploadTaskQueryRequest) {
|
|||||||
export function getUploadTaskStatus(idList: Array<number>, queryFiles: boolean) {
|
export function getUploadTaskStatus(idList: Array<number>, queryFiles: boolean) {
|
||||||
return axios.get<Array<UploadTaskStatusResponse>>('/asset/upload-task/status', {
|
return axios.get<Array<UploadTaskStatusResponse>>('/asset/upload-task/status', {
|
||||||
params: { idList, queryFiles },
|
params: { idList, queryFiles },
|
||||||
|
promptBizErrorMessage: false,
|
||||||
|
promptRequestErrorMessage: false,
|
||||||
paramsSerializer: params => {
|
paramsSerializer: params => {
|
||||||
return qs.stringify(params, { arrayFormat: 'comma' });
|
return qs.stringify(params, { arrayFormat: 'comma' });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ export function getExecJobHostLogList(logId: number) {
|
|||||||
export function getExecJobLogStatus(idList: Array<number>) {
|
export function getExecJobLogStatus(idList: Array<number>) {
|
||||||
return axios.get<ExecLogStatusResponse>('/asset/exec-job-log/status', {
|
return axios.get<ExecLogStatusResponse>('/asset/exec-job-log/status', {
|
||||||
params: { idList },
|
params: { idList },
|
||||||
|
promptBizErrorMessage: false,
|
||||||
|
promptRequestErrorMessage: false,
|
||||||
paramsSerializer: params => {
|
paramsSerializer: params => {
|
||||||
return qs.stringify(params, { arrayFormat: 'comma' });
|
return qs.stringify(params, { arrayFormat: 'comma' });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,10 @@ export function getSystemMessageCount(queryUnread: boolean) {
|
|||||||
* 查询是否有未读消息
|
* 查询是否有未读消息
|
||||||
*/
|
*/
|
||||||
export function checkHasUnreadMessage() {
|
export function checkHasUnreadMessage() {
|
||||||
return axios.get<boolean>('/infra/system-message/has-unread');
|
return axios.get<boolean>('/infra/system-message/has-unread', {
|
||||||
|
promptBizErrorMessage: false,
|
||||||
|
promptRequestErrorMessage: false,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -371,6 +371,22 @@ body {
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fs17 {
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fs18 {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fs19 {
|
||||||
|
font-size: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fs20 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
.text-ellipsis {
|
.text-ellipsis {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|||||||
@@ -55,6 +55,14 @@ export function isWindow(el: any): el is Window {
|
|||||||
/**
|
/**
|
||||||
* 是否为移动端 ua
|
* 是否为移动端 ua
|
||||||
*/
|
*/
|
||||||
export function isMobile(userAgent: string) {
|
export function isMobile(userAgent: string): boolean {
|
||||||
return /Mobi|Android|iPhone/i.test(userAgent);
|
return /Mobi|Android|iPhone/i.test(userAgent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否为 IPv4
|
||||||
|
*/
|
||||||
|
export function isIPv4(ip: string): boolean {
|
||||||
|
const reg = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
||||||
|
return reg.test(ip);
|
||||||
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:terminal-connect-log:management:delete']"
|
<a-button v-permission="['asset:terminal-connect-log:management:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['infra:operator-log:delete', 'asset:terminal-sftp-log:management:delete']"
|
<a-button v-permission="['infra:operator-log:delete', 'asset:terminal-sftp-log:management:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -240,7 +240,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
|
|||||||
@@ -209,19 +209,12 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchCardData();
|
fetchCardData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchCardData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 重置条件
|
// 重置条件
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:host-identity:delete']"
|
<a-button v-permission="['asset:host-identity:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -239,19 +239,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: HostIdentityQueryRequest) => {
|
const doFetchTableData = async (request: HostIdentityQueryRequest) => {
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
@open-key-view="(e) => keyDrawer.openView(e) " />
|
@open-key-view="(e) => keyDrawer.openView(e) " />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<host-identity-form-modal ref="modal"
|
<host-identity-form-modal ref="modal"
|
||||||
@added="modalAddCallback"
|
@added="reload"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="reload" />
|
||||||
<!-- 主机密钥抽屉 -->
|
<!-- 主机密钥抽屉 -->
|
||||||
<host-key-form-drawer ref="keyDrawer" />
|
<host-key-form-drawer ref="keyDrawer" />
|
||||||
</div>
|
</div>
|
||||||
@@ -45,21 +45,12 @@
|
|||||||
|
|
||||||
const renderTable = computed(() => appStore.hostIdentityView === 'table');
|
const renderTable = computed(() => appStore.hostIdentityView === 'table');
|
||||||
|
|
||||||
// 添加回调
|
// 重新加载
|
||||||
const modalAddCallback = () => {
|
const reload = () => {
|
||||||
if (renderTable.value) {
|
if (renderTable.value) {
|
||||||
table.value.addedCallback();
|
table.value.reload();
|
||||||
} else {
|
} else {
|
||||||
card.value.addedCallback();
|
card.value.reload();
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
if (renderTable.value) {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
} else {
|
|
||||||
card.value.updatedCallback();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -126,19 +126,12 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchCardData();
|
fetchCardData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchCardData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 重置条件
|
// 重置条件
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:host-key:delete']"
|
<a-button v-permission="['asset:host-key:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -188,19 +188,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: HostKeyQueryRequest) => {
|
const doFetchTableData = async (request: HostKeyQueryRequest) => {
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
@open-update="(e) => drawer.openUpdate(e)" />
|
@open-update="(e) => drawer.openUpdate(e)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<host-key-form-drawer ref="drawer"
|
<host-key-form-drawer ref="drawer"
|
||||||
@added="modalAddCallback"
|
@added="reload"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="reload" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -39,21 +39,12 @@
|
|||||||
|
|
||||||
const renderTable = computed(() => appStore.hostKeyView === 'table');
|
const renderTable = computed(() => appStore.hostKeyView === 'table');
|
||||||
|
|
||||||
// 添加回调
|
// 重新加载
|
||||||
const modalAddCallback = () => {
|
const reload = () => {
|
||||||
if (renderTable.value) {
|
if (renderTable.value) {
|
||||||
table.value.addedCallback();
|
table.value.reload();
|
||||||
} else {
|
} else {
|
||||||
card.value.addedCallback();
|
card.value.reload();
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
if (renderTable.value) {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
} else {
|
|
||||||
card.value.updatedCallback();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -303,19 +303,12 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchCardData();
|
fetchCardData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchCardData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 重置条件
|
// 重置条件
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:host:delete']"
|
<a-button v-permission="['asset:host:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -330,7 +330,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -345,19 +345,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: HostQueryRequest) => {
|
const doFetchTableData = async (request: HostQueryRequest) => {
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
@open-update-config="(e) => hostConfig.open(e)" />
|
@open-update-config="(e) => hostConfig.open(e)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<host-form-modal ref="modal"
|
<host-form-modal ref="modal"
|
||||||
@added="modalAddCallback"
|
@added="reload"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="reload" />
|
||||||
<!-- 配置面板 -->
|
<!-- 配置面板 -->
|
||||||
<host-config-drawer ref="hostConfig" />
|
<host-config-drawer ref="hostConfig" />
|
||||||
<!-- 分组配置 -->
|
<!-- 分组配置 -->
|
||||||
@@ -54,21 +54,12 @@
|
|||||||
|
|
||||||
const renderTable = computed(() => appStore.hostView === 'table');
|
const renderTable = computed(() => appStore.hostView === 'table');
|
||||||
|
|
||||||
// 添加回调
|
// 重新加载
|
||||||
const modalAddCallback = () => {
|
const reload = () => {
|
||||||
if (renderTable.value) {
|
if (renderTable.value) {
|
||||||
table.value.addedCallback();
|
table.value.reload();
|
||||||
} else {
|
} else {
|
||||||
card.value.addedCallback();
|
card.value.reload();
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
if (renderTable.value) {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
} else {
|
|
||||||
card.value.updatedCallback();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗? 删除后会中断执行!`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗? 删除后会中断执行!`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:exec-command-log:delete']"
|
<a-button v-permission="['asset:exec-command-log:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -255,7 +255,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:exec-template:delete']"
|
<a-button v-permission="['asset:exec-template:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -183,19 +183,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: ExecTemplateQueryRequest) => {
|
const doFetchTableData = async (request: ExecTemplateQueryRequest) => {
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
@open-exec="(e) => execModal.open(e)" />
|
@open-exec="(e) => execModal.open(e)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<exec-template-form-drawer ref="drawer"
|
<exec-template-form-drawer ref="drawer"
|
||||||
@added="modalAddCallback"
|
@added="() => table.reload()"
|
||||||
@updated="modalUpdateCallback"
|
@updated="() => table.reload()"
|
||||||
@open-host="(e) => openHostModal('drawer', e)" />
|
@open-host="(e) => openHostModal('drawer', e)" />
|
||||||
<!-- 执行模态框 -->
|
<!-- 执行模态框 -->
|
||||||
<exec-template-exec-drawer ref="execModal"
|
<exec-template-exec-drawer ref="execModal"
|
||||||
@@ -40,16 +40,6 @@
|
|||||||
const hostModal = ref();
|
const hostModal = ref();
|
||||||
const lastOpenHostRef = ref();
|
const lastOpenHostRef = ref();
|
||||||
|
|
||||||
// 添加回调
|
|
||||||
const modalAddCallback = () => {
|
|
||||||
table.value.addedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 打开主机模态框
|
// 打开主机模态框
|
||||||
const openHostModal = (openRef: string, data: any) => {
|
const openHostModal = (openRef: string, data: any) => {
|
||||||
lastOpenHostRef.value = openRef;
|
lastOpenHostRef.value = openRef;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:upload-task:delete']"
|
<a-button v-permission="['asset:upload-task:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -231,7 +231,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗? 删除后会中断执行!`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗? 删除后会中断执行!`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:exec-job-log:delete']"
|
<a-button v-permission="['asset:exec-job-log:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -235,7 +235,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['asset:exec-job:delete']"
|
<a-button v-permission="['asset:exec-job:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -238,7 +238,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -253,19 +253,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 修改状态
|
// 修改状态
|
||||||
const updateStatus = async (id: number, status: number) => {
|
const updateStatus = async (id: number, status: number) => {
|
||||||
|
|||||||
@@ -8,12 +8,12 @@
|
|||||||
@test-cron="openNextCron" />
|
@test-cron="openNextCron" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<exec-job-form-drawer ref="drawer"
|
<exec-job-form-drawer ref="drawer"
|
||||||
@added="modalAddCallback"
|
@added="() => table.reload()"
|
||||||
@updated="modalUpdateCallback"
|
@updated="() => table.reload()"
|
||||||
@open-host="(e) => hostModal.open(e)"
|
@open-host="(e) => hostModal.open(e)"
|
||||||
@open-template="() => templateModal.open()"
|
@open-template="() => templateModal.open()"
|
||||||
@test-cron="openNextCron"
|
@test-cron="openNextCron"
|
||||||
@gen-cron="openGeneratorCron" />
|
@gen-cron="(e) => genModal.open(e)" />
|
||||||
<!-- 任务详情模态框 -->
|
<!-- 任务详情模态框 -->
|
||||||
<exec-job-detail-drawer ref="detail" />
|
<exec-job-detail-drawer ref="detail" />
|
||||||
<!-- cron 执行时间模态框 -->
|
<!-- cron 执行时间模态框 -->
|
||||||
@@ -58,26 +58,11 @@
|
|||||||
const templateModal = ref();
|
const templateModal = ref();
|
||||||
const hostModal = ref();
|
const hostModal = ref();
|
||||||
|
|
||||||
// 添加回调
|
|
||||||
const modalAddCallback = () => {
|
|
||||||
table.value.addedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 打开下次执行时间
|
// 打开下次执行时间
|
||||||
const openNextCron = (cron: string) => {
|
const openNextCron = (cron: string) => {
|
||||||
nextCron.value.open({ expression: cron, times: CronNextTimes });
|
nextCron.value.open({ expression: cron, times: CronNextTimes });
|
||||||
};
|
};
|
||||||
|
|
||||||
// 打开生成表达式
|
|
||||||
const openGeneratorCron = (cron: string) => {
|
|
||||||
genModal.value.open(cron);
|
|
||||||
};
|
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
const dictStore = useDictStore();
|
const dictStore = useDictStore();
|
||||||
await dictStore.loadKeys(dictKeys);
|
await dictStore.loadKeys(dictKeys);
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['infra:dict-key:delete']"
|
<a-button v-permission="['infra:dict-key:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -222,21 +222,13 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
cacheStore.reset('dictKeys');
|
cacheStore.reset('dictKeys');
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
cacheStore.reset('dictKeys');
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 打开查看视图
|
// 打开查看视图
|
||||||
const openView = async (record: DictKeyQueryResponse) => {
|
const openView = async (record: DictKeyQueryResponse) => {
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
@open-view="(v, t) => view.open(v, t)" />
|
@open-view="(v, t) => view.open(v, t)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<dict-key-form-modal ref="modal"
|
<dict-key-form-modal ref="modal"
|
||||||
@added="modalAddCallback"
|
@added="() => table.reload()"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="() => table.reload()" />
|
||||||
<!-- json 查看器模态框 -->
|
<!-- json 查看器模态框 -->
|
||||||
<json-editor-modal ref="view" />
|
<json-editor-modal ref="view" />
|
||||||
</div>
|
</div>
|
||||||
@@ -33,16 +33,6 @@
|
|||||||
const modal = ref();
|
const modal = ref();
|
||||||
const view = ref();
|
const view = ref();
|
||||||
|
|
||||||
// 添加回调
|
|
||||||
const modalAddCallback = () => {
|
|
||||||
table.value.addedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
const dictStore = useDictStore();
|
const dictStore = useDictStore();
|
||||||
await dictStore.loadKeys(dictKeys);
|
await dictStore.loadKeys(dictKeys);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['infra:dict-value:delete']"
|
<a-button v-permission="['infra:dict-value:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -198,19 +198,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 修改 key
|
// 修改 key
|
||||||
const changeKey = ({ id, keyName }: { id: number, keyName: string }) => {
|
const changeKey = ({ id, keyName }: { id: number, keyName: string }) => {
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
@open-history="(e) => history.open(e.id, e.label)" />
|
@open-history="(e) => history.open(e.id, e.label)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<dict-value-form-modal ref="modal"
|
<dict-value-form-modal ref="modal"
|
||||||
@added="modalAddCallback"
|
@added="() => table.reload()"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="() => table.reload()" />
|
||||||
<!-- 历史值模态框 -->
|
<!-- 历史值模态框 -->
|
||||||
<history-value-modal ref="history"
|
<history-value-modal ref="history"
|
||||||
:type="historyType"
|
:type="historyType"
|
||||||
:rollback="rollback"
|
:rollback="rollback"
|
||||||
@updated="modalUpdateCallback" />
|
@updated="() => table.reload()" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -37,16 +37,6 @@
|
|||||||
const history = ref();
|
const history = ref();
|
||||||
const cacheStore = useCacheStore();
|
const cacheStore = useCacheStore();
|
||||||
|
|
||||||
// 添加回调
|
|
||||||
const modalAddCallback = () => {
|
|
||||||
table.value.addedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 修改回调
|
|
||||||
const modalUpdateCallback = () => {
|
|
||||||
table.value.updatedCallback();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 回滚
|
// 回滚
|
||||||
const rollback = async (id: number, valueId: number) => {
|
const rollback = async (id: number, valueId: number) => {
|
||||||
await rollbackDictValue({ id, valueId });
|
await rollbackDictValue({ id, valueId });
|
||||||
|
|||||||
@@ -270,21 +270,13 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
formRef.value.resetFields();
|
formRef.value.resetFields();
|
||||||
loadMenuData(true);
|
loadMenuData(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
formRef.value.resetFields();
|
|
||||||
loadMenuData(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载菜单
|
// 加载菜单
|
||||||
const loadMenuData = async (all: any = undefined) => {
|
const loadMenuData = async (all: any = undefined) => {
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
@open-update="(e) => modal.openUpdate(e)" />
|
@open-update="(e) => modal.openUpdate(e)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<menu-form-modal ref="modal"
|
<menu-form-modal ref="modal"
|
||||||
@added="() => table.addedCallback()"
|
@added="() => table.reload()"
|
||||||
@updated="() => table.updatedCallback()" />
|
@updated="() => table.reload()" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['infra:operator-log:delete']"
|
<a-button v-permission="['infra:operator-log:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
|
|||||||
@@ -181,19 +181,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: RoleQueryRequest) => {
|
const doFetchTableData = async (request: RoleQueryRequest) => {
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
@open-grant="(e) => grantModal.open(e)" />
|
@open-grant="(e) => grantModal.open(e)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<role-form-modal ref="modal"
|
<role-form-modal ref="modal"
|
||||||
@added="() => table.addedCallback()"
|
@added="() => table.reload()"
|
||||||
@updated="() => table.updatedCallback()" />
|
@updated="() => table.reload()" />
|
||||||
<!-- 分配角色菜单模态框 -->
|
<!-- 分配角色菜单模态框 -->
|
||||||
<role-menu-grant-modal ref="grantModal" />
|
<role-menu-grant-modal ref="grantModal" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
<a-popconfirm :content="`确认删除选中的 ${selectedKeys.length} 条记录吗?`"
|
||||||
position="br"
|
position="br"
|
||||||
type="warning"
|
type="warning"
|
||||||
@ok="deleteSelectRows">
|
@ok="deleteSelectedRows">
|
||||||
<a-button v-permission="['infra:system-user:delete']"
|
<a-button v-permission="['infra:system-user:delete']"
|
||||||
type="primary"
|
type="primary"
|
||||||
status="danger"
|
status="danger"
|
||||||
@@ -226,7 +226,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 删除选中行
|
// 删除选中行
|
||||||
const deleteSelectRows = async () => {
|
const deleteSelectedRows = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
// 调用删除接口
|
// 调用删除接口
|
||||||
@@ -258,19 +258,12 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加后回调
|
// 重新加载
|
||||||
const addedCallback = () => {
|
const reload = () => {
|
||||||
fetchTableData();
|
fetchTableData();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 更新后回调
|
defineExpose({ reload });
|
||||||
const updatedCallback = () => {
|
|
||||||
fetchTableData();
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
addedCallback, updatedCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
const doFetchTableData = async (request: UserQueryRequest) => {
|
const doFetchTableData = async (request: UserQueryRequest) => {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
@open-grant-role="(e) => grantRoleModal.open(e)" />
|
@open-grant-role="(e) => grantRoleModal.open(e)" />
|
||||||
<!-- 添加修改模态框 -->
|
<!-- 添加修改模态框 -->
|
||||||
<user-form-modal ref="modal"
|
<user-form-modal ref="modal"
|
||||||
@added="() => table.addedCallback()"
|
@added="() => table.reload()"
|
||||||
@updated="() => table.updatedCallback()" />
|
@updated="() => table.reload()" />
|
||||||
<!-- 重置密码模态框 -->
|
<!-- 重置密码模态框 -->
|
||||||
<user-reset-password-form-modal ref="resetModal" />
|
<user-reset-password-form-modal ref="resetModal" />
|
||||||
<!-- 分配角色模态框 -->
|
<!-- 分配角色模态框 -->
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -22,7 +22,7 @@
|
|||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<revision>2.2.0</revision>
|
<revision>2.2.1</revision>
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<maven.surefire.plugin.version>3.0.0-M5</maven.surefire.plugin.version>
|
<maven.surefire.plugin.version>3.0.0-M5</maven.surefire.plugin.version>
|
||||||
|
|||||||
Reference in New Issue
Block a user