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