🔨 优化系统配置逻辑.
This commit is contained in:
@@ -34,116 +34,116 @@ public interface ConfigKeys {
|
||||
/**
|
||||
* SFTP 文件预览大小
|
||||
*/
|
||||
String SFTP_PREVIEW_SIZE = "sftp_previewSize";
|
||||
String SFTP_PREVIEW_SIZE = "sftp.preview-size";
|
||||
|
||||
/**
|
||||
* SFTP 重复文件备份
|
||||
*/
|
||||
String SFTP_UPLOAD_PRESENT_BACKUP = "sftp_uploadPresentBackup";
|
||||
String SFTP_UPLOAD_PRESENT_BACKUP = "sftp.upload-present-backup";
|
||||
|
||||
/**
|
||||
* SFTP 备份文件名称
|
||||
*/
|
||||
String SFTP_UPLOAD_BACKUP_FILE_NAME = "sftp_uploadBackupFileName";
|
||||
String SFTP_UPLOAD_BACKUP_FILE_NAME = "sftp.upload-backup-file-name";
|
||||
|
||||
/**
|
||||
* 加密公钥
|
||||
*/
|
||||
String ENCRYPT_PUBLIC_KEY = "encrypt_publicKey";
|
||||
String ENCRYPT_PUBLIC_KEY = "encrypt.public-key";
|
||||
|
||||
/**
|
||||
* 加密私钥
|
||||
*/
|
||||
String ENCRYPT_PRIVATE_KEY = "encrypt_privateKey";
|
||||
String ENCRYPT_PRIVATE_KEY = "encrypt.private-key";
|
||||
|
||||
/**
|
||||
* 日志前端显示行数
|
||||
*/
|
||||
String LOG_WEB_SCROLL_LINES = "log_webScrollLines";
|
||||
String LOG_WEB_SCROLL_LINES = "log.web-scroll-lines";
|
||||
|
||||
/**
|
||||
* 日志加载偏移行
|
||||
*/
|
||||
String LOG_TRACKER_LOAD_LINES = "log_trackerLoadLines";
|
||||
String LOG_TRACKER_LOAD_LINES = "log.tracker-load-lines";
|
||||
|
||||
/**
|
||||
* 日志加载间隔毫秒
|
||||
*/
|
||||
String LOG_TRACKER_LOAD_INTERVAL = "log_trackerLoadInterval";
|
||||
String LOG_TRACKER_LOAD_INTERVAL = "log.tracker-load-interval";
|
||||
|
||||
/**
|
||||
* 是否生成详细的执行日志
|
||||
*/
|
||||
String LOG_EXEC_DETAIL_LOG = "log_execDetailLog";
|
||||
String LOG_EXEC_DETAIL_ENABLED = "log.exec-detail.enabled";
|
||||
|
||||
/**
|
||||
* 凭证有效期分
|
||||
* 凭证有效期 分
|
||||
*/
|
||||
String LOGIN_LOGIN_SESSION_TIME = "login_loginSessionTime";
|
||||
String LOGIN_LOGIN_SESSION_TIME = "login.login-session-time";
|
||||
|
||||
/**
|
||||
* 允许多端登录
|
||||
*/
|
||||
String LOGIN_ALLOW_MULTI_DEVICE = "login_allowMultiDevice";
|
||||
String LOGIN_ALLOW_MULTI_DEVICE = "login.allow-multi-device";
|
||||
|
||||
/**
|
||||
* 允许凭证续签
|
||||
*/
|
||||
String LOGIN_ALLOW_REFRESH = "login_allowRefresh";
|
||||
String LOGIN_ALLOW_REFRESH = "login.allow-refresh";
|
||||
|
||||
/**
|
||||
* 凭证续签最大次数
|
||||
*/
|
||||
String LOGIN_MAX_REFRESH_COUNT = "login_maxRefreshCount";
|
||||
String LOGIN_MAX_REFRESH_COUNT = "login.max-refresh-count";
|
||||
|
||||
/**
|
||||
* 凭证续签间隔分
|
||||
*/
|
||||
String LOGIN_REFRESH_INTERVAL = "login_refreshInterval";
|
||||
String LOGIN_REFRESH_INTERVAL = "login.refresh-interval";
|
||||
|
||||
/**
|
||||
* 登录失败锁定
|
||||
*/
|
||||
String LOGIN_LOGIN_FAILED_LOCK = "login_loginFailedLock";
|
||||
String LOGIN_LOGIN_FAILED_LOCK = "login.login-failed-lock";
|
||||
|
||||
/**
|
||||
* 登录失败锁定阈值分
|
||||
* 登录失败锁定阈值
|
||||
*/
|
||||
String LOGIN_LOGIN_FAILED_LOCK_THRESHOLD = "login_loginFailedLockThreshold";
|
||||
String LOGIN_LOGIN_FAILED_LOCK_THRESHOLD = "login.login-failed-lock-threshold";
|
||||
|
||||
/**
|
||||
* 登录失败锁定时间分
|
||||
* 登录失败锁定时间 分
|
||||
*/
|
||||
String LOGIN_LOGIN_FAILED_LOCK_TIME = "login_loginFailedLockTime";
|
||||
String LOGIN_LOGIN_FAILED_LOCK_TIME = "login.login-failed-lock-time";
|
||||
|
||||
/**
|
||||
* 登录失败发信
|
||||
*/
|
||||
String LOGIN_LOGIN_FAILED_SEND = "login_loginFailedSend";
|
||||
String LOGIN_LOGIN_FAILED_SEND = "login.login-failed-send";
|
||||
|
||||
/**
|
||||
* 登录失败发信阈值
|
||||
*/
|
||||
String LOGIN_LOGIN_FAILED_SEND_THRESHOLD = "login_loginFailedSendThreshold";
|
||||
String LOGIN_LOGIN_FAILED_SEND_THRESHOLD = "login.login-failed-send-threshold";
|
||||
|
||||
/**
|
||||
* 是否开启自动清理命令记录
|
||||
*/
|
||||
String AUTO_CLEAR_EXEC_LOG_ENABLED = "autoClear_execLogEnabled";
|
||||
String AUTO_CLEAR_EXEC_LOG_ENABLED = "auto-clear.exec-log.enabled";
|
||||
|
||||
/**
|
||||
* 自动清理命令记录保留天数
|
||||
*/
|
||||
String AUTO_CLEAR_EXEC_LOG_KEEP_DAYS = "autoClear_execLogKeepDays";
|
||||
String AUTO_CLEAR_EXEC_LOG_KEEP_DAYS = "auto-clear.exec-log.keep-days";
|
||||
|
||||
/**
|
||||
* 是否开启自动清理终端连接记录
|
||||
*/
|
||||
String AUTO_CLEAR_TERMINAL_LOG_ENABLED = "autoClear_terminalLogEnabled";
|
||||
String AUTO_CLEAR_TERMINAL_LOG_ENABLED = "auto-clear.terminal-log.enabled";
|
||||
|
||||
/**
|
||||
* 自动清理终端连接记录保留天数
|
||||
*/
|
||||
String AUTO_CLEAR_TERMINAL_LOG_KEEP_DAYS = "autoClear_terminalLogKeepDays";
|
||||
String AUTO_CLEAR_TERMINAL_LOG_KEEP_DAYS = "auto-clear.terminal-log.keep-days";
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ spring:
|
||||
port: ${REDIS_PORT:6379}
|
||||
password: ${REDIS_PASSWORD:Data@123456}
|
||||
database: ${REDIS_DATABASE:1}
|
||||
data-version: ${REDIS_DATA_VERSION:1}
|
||||
data-version: ${REDIS_DATA_VERSION:2}
|
||||
mock: false
|
||||
redisson:
|
||||
threads: 2
|
||||
|
||||
@@ -25,7 +25,7 @@ spring:
|
||||
port: ${REDIS_PORT:6379}
|
||||
password: ${REDIS_PASSWORD:Data@123456}
|
||||
database: ${REDIS_DATABASE:0}
|
||||
data-version: ${REDIS_DATA_VERSION:1}
|
||||
data-version: ${REDIS_DATA_VERSION:2}
|
||||
redisson:
|
||||
threads: 4
|
||||
netty-threads: 4
|
||||
|
||||
@@ -50,12 +50,12 @@ public class AppLogConfig {
|
||||
/**
|
||||
* 是否生成详细的执行日志
|
||||
*/
|
||||
private final ConfigRef<Boolean> execDetailLog;
|
||||
private final ConfigRef<Boolean> execDetailEnabled;
|
||||
|
||||
public AppLogConfig(ConfigStore configStore) {
|
||||
this.trackerLoadLines = configStore.int32(ConfigKeys.LOG_TRACKER_LOAD_LINES);
|
||||
this.trackerLoadInterval = configStore.int32(ConfigKeys.LOG_TRACKER_LOAD_INTERVAL);
|
||||
this.execDetailLog = configStore.bool(ConfigKeys.LOG_EXEC_DETAIL_LOG);
|
||||
this.execDetailEnabled = configStore.bool(ConfigKeys.LOG_EXEC_DETAIL_ENABLED);
|
||||
}
|
||||
|
||||
public Integer getTrackerLoadLines() {
|
||||
@@ -66,8 +66,8 @@ public class AppLogConfig {
|
||||
return trackerLoadInterval.value;
|
||||
}
|
||||
|
||||
public Boolean getExecDetailLog() {
|
||||
return execDetailLog.value;
|
||||
public Boolean getExecDetailEnabled() {
|
||||
return execDetailEnabled.value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -193,7 +193,7 @@ public class ExecTaskHandler implements IExecTaskHandler {
|
||||
* @return handler
|
||||
*/
|
||||
private IExecCommandHandler createCommandHandler(Long execHostId) {
|
||||
if (Booleans.isTrue(appLogConfig.getExecDetailLog())) {
|
||||
if (Booleans.isTrue(appLogConfig.getExecDetailEnabled())) {
|
||||
// 详细日志
|
||||
return new ExecCommandDetailHandler(execHostId, execLog, builtParams, timeoutChecker);
|
||||
} else {
|
||||
|
||||
@@ -59,6 +59,7 @@ public interface UserCacheKeyDefine {
|
||||
CacheKeyDefine LOGIN_FAILED_COUNT = new CacheKeyBuilder()
|
||||
.key("user:login-failed:{}")
|
||||
.desc("用户登录失败次数 ${username}")
|
||||
.noPrefix()
|
||||
.type(Integer.class)
|
||||
.struct(RedisCacheStruct.STRING)
|
||||
.build();
|
||||
|
||||
@@ -49,6 +49,7 @@ public interface AlarmPolicyCacheKeyDefine {
|
||||
CacheKeyDefine ALARM_RULE_SILENCE = new CacheKeyBuilder()
|
||||
.key("alarm:silence:{}:{}")
|
||||
.desc("告警规则沉默标志 ${agentKey} ${ruleId}")
|
||||
.noPrefix()
|
||||
.type(Long.class)
|
||||
.struct(RedisCacheStruct.STRING)
|
||||
.build();
|
||||
|
||||
@@ -45,53 +45,53 @@ export type SystemSetting = SftpSetting
|
||||
* SFTP 设置
|
||||
*/
|
||||
export interface SftpSetting {
|
||||
sftp_previewSize: number;
|
||||
sftp_uploadPresentBackup: string;
|
||||
sftp_uploadBackupFileName: string;
|
||||
['sftp.preview-size']: number;
|
||||
['sftp.upload-present-backup']: string;
|
||||
['sftp.upload-backup-file-name']: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录设置
|
||||
*/
|
||||
export interface LoginSetting {
|
||||
login_allowMultiDevice: string;
|
||||
login_allowRefresh: string;
|
||||
login_maxRefreshCount: number;
|
||||
login_refreshInterval: number;
|
||||
login_loginFailedLock: string;
|
||||
login_loginFailedLockThreshold: number;
|
||||
login_loginFailedLockTime: number;
|
||||
login_loginFailedSend: string;
|
||||
login_loginFailedSendThreshold: number;
|
||||
login_loginSessionTime: number;
|
||||
['login.allow-multi-device']: string;
|
||||
['login.allow-refresh']: string;
|
||||
['login.max-refresh-count']: number;
|
||||
['login.refresh-interval']: number;
|
||||
['login.login-failed-lock']: string;
|
||||
['login.login-failed-lock-threshold']: number;
|
||||
['login.login-failed-lock-time']: number;
|
||||
['login.login-failed-send']: string;
|
||||
['login.login-failed-send-threshold']: number;
|
||||
['login.login-session-time']: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密设置
|
||||
*/
|
||||
export interface EncryptSetting {
|
||||
encrypt_publicKey: string;
|
||||
encrypt_privateKey: string;
|
||||
['encrypt.public-key']: string;
|
||||
['encrypt.private-key']: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志设置
|
||||
*/
|
||||
export interface LogSetting {
|
||||
log_webScrollLines: number;
|
||||
log_trackerLoadLines: number;
|
||||
log_trackerLoadInterval: number;
|
||||
log_execDetailLog: string;
|
||||
['log.web-scroll-lines']: number;
|
||||
['log.tracker-load-lines']: number;
|
||||
['log.tracker-load-interval']: number;
|
||||
['log.exec-detail.enabled']: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动清理设置
|
||||
*/
|
||||
export interface AutoClearSetting {
|
||||
autoClear_execLogEnabled: string;
|
||||
autoClear_execLogKeepDays: number;
|
||||
autoClear_terminalLogEnabled: string;
|
||||
autoClear_terminalLogKeepDays: number;
|
||||
['auto-clear.exec-log.enabled']: string;
|
||||
['auto-clear.exec-log.keep-days']: number;
|
||||
['auto-clear.terminal-log.enabled']: string;
|
||||
['auto-clear.terminal-log.keep-days']: number;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
execLog.value = { ...record };
|
||||
currentHostExecId.value = record.hosts[0].id;
|
||||
// 获取最大显示行数
|
||||
const { log_webScrollLines } = await useCacheStore().loadSystemSetting();
|
||||
const scrollLines = toAnonymousNumber(log_webScrollLines) || 1000;
|
||||
const { 'log.web-scroll-lines': webScrollLines } = await useCacheStore().loadSystemSetting();
|
||||
const scrollLines = toAnonymousNumber(webScrollLines) || 1000;
|
||||
// 创建 appender
|
||||
appender.value = markRaw(new LogAppender({
|
||||
id: record.id,
|
||||
|
||||
@@ -12,7 +12,7 @@ export const encrypt = async (data: string | undefined): Promise<string | undefi
|
||||
return data;
|
||||
}
|
||||
// 获取公钥
|
||||
const publicKey = (await useCacheStore().loadSystemSetting()).encrypt_publicKey;
|
||||
const publicKey = (await useCacheStore().loadSystemSetting())['encrypt.public-key'];
|
||||
const encryptor = new JSEncrypt();
|
||||
encryptor.setPublicKey(publicKey);
|
||||
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
label-align="right"
|
||||
:auto-label-width="true">
|
||||
<!-- 自动清理执行记录 -->
|
||||
<a-form-item field="autoClear_execLogEnabled"
|
||||
label="自动清理执行记录"
|
||||
<a-form-item label="自动清理执行记录"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.autoClear_execLogEnabled"
|
||||
<a-switch v-model="setting['auto-clear.exec-log.enabled']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -24,11 +23,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 执行记录保留天数 -->
|
||||
<a-form-item field="autoClear_execLogKeepDays"
|
||||
label="执行记录保留天数"
|
||||
<a-form-item label="执行记录保留天数"
|
||||
:rules="[{required: true, message: '请输入执行记录保留天数'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.autoClear_execLogKeepDays"
|
||||
<a-input-number v-model="setting['auto-clear.exec-log.keep-days']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -44,11 +42,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 自动清理终端记录 -->
|
||||
<a-form-item field="autoClear_terminalLogEnabled"
|
||||
label="自动清理终端记录"
|
||||
<a-form-item label="自动清理终端记录"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.autoClear_terminalLogEnabled"
|
||||
<a-switch v-model="setting['auto-clear.terminal-log.enabled']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -59,11 +56,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 终端记录保留天数 -->
|
||||
<a-form-item field="autoClear_terminalLogKeepDays"
|
||||
label="终端记录保留天数"
|
||||
<a-form-item label="终端记录保留天数"
|
||||
:rules="[{required: true, message: '请输入终端记录保留天数'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.autoClear_terminalLogKeepDays"
|
||||
<a-input-number v-model="setting['auto-clear.terminal-log.keep-days']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -138,8 +134,8 @@
|
||||
const { data } = await getSystemSetting(SystemSettingTypes.AUTO_CLEAR);
|
||||
setting.value = {
|
||||
...data,
|
||||
autoClear_execLogKeepDays: toAnonymousNumber(data.autoClear_execLogKeepDays),
|
||||
autoClear_terminalLogKeepDays: toAnonymousNumber(data.autoClear_terminalLogKeepDays),
|
||||
'auto-clear.exec-log.keep-days': toAnonymousNumber(data['auto-clear.exec-log.keep-days']),
|
||||
'auto-clear.terminal-log.keep-days': toAnonymousNumber(data['auto-clear.terminal-log.keep-days']),
|
||||
};
|
||||
} catch (e) {
|
||||
} finally {
|
||||
@@ -150,7 +146,4 @@
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.input-wrapper {
|
||||
width: 368px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -13,23 +13,21 @@
|
||||
<a-alert>请输入 PKCS8 格式的 RSA Base64 密钥, 用于前后端传输时的数据加密</a-alert>
|
||||
</a-form-item>
|
||||
<!-- 加密公钥 -->
|
||||
<a-form-item field="encrypt_publicKey"
|
||||
label="加密公钥"
|
||||
<a-form-item label="加密公钥"
|
||||
:rules="[{required: true, message: '请输入加密公钥'}]"
|
||||
hide-asterisk>
|
||||
<a-textarea v-model="setting.encrypt_publicKey"
|
||||
class="input-wrapper"
|
||||
<a-textarea v-model="setting['encrypt.public-key']"
|
||||
class="text-wrapper"
|
||||
placeholder="RSA 公钥 Base64"
|
||||
:auto-size="{ minRows: 5, maxRows: 5 }"
|
||||
allow-clear />
|
||||
</a-form-item>
|
||||
<!-- 加密私钥 -->
|
||||
<a-form-item field="encrypt_privateKey"
|
||||
label="加密私钥"
|
||||
<a-form-item label="加密私钥"
|
||||
:rules="[{required: true, message: '请输入加密私钥'}]"
|
||||
hide-asterisk>
|
||||
<a-textarea v-model="setting.encrypt_privateKey"
|
||||
class="input-wrapper"
|
||||
<a-textarea v-model="setting['encrypt.private-key']"
|
||||
class="text-wrapper"
|
||||
placeholder="RSA 私钥 Base64"
|
||||
:auto-size="{ minRows: 14, maxRows: 14 }"
|
||||
allow-clear />
|
||||
@@ -97,8 +95,8 @@
|
||||
setLoading(true);
|
||||
try {
|
||||
const { data } = await generatorKeypair();
|
||||
setting.value.encrypt_publicKey = data.publicKey;
|
||||
setting.value.encrypt_privateKey = data.privateKey;
|
||||
setting.value['encrypt.public-key'] = data.publicKey;
|
||||
setting.value['encrypt.private-key'] = data.privateKey;
|
||||
} catch (e) {
|
||||
} finally {
|
||||
setLoading(false);
|
||||
@@ -125,7 +123,7 @@
|
||||
.main-container {
|
||||
width: 728px !important;
|
||||
|
||||
.input-wrapper {
|
||||
.text-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
label-align="right"
|
||||
:auto-label-width="true">
|
||||
<!-- 执行详细日志 -->
|
||||
<a-form-item field="log_execDetailLog"
|
||||
label="执行详细日志"
|
||||
<a-form-item label="执行详细日志"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.log_execDetailLog"
|
||||
<a-switch v-model="setting['log.exec-detail.enabled']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -24,11 +23,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 最大显示行数 -->
|
||||
<a-form-item field="log_webScrollLines"
|
||||
label="最大显示行数"
|
||||
<a-form-item label="最大显示行数"
|
||||
:rules="[{required: true, message: '请输入日志最大显示行数'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.log_webScrollLines"
|
||||
<a-input-number v-model="setting['log.web-scroll-lines']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="999999"
|
||||
@@ -44,11 +42,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 日志加载行数 -->
|
||||
<a-form-item field="log_trackerLoadLines"
|
||||
label="日志加载行数"
|
||||
<a-form-item label="日志加载行数"
|
||||
:rules="[{required: true, message: '请输入日志加载行数'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.log_trackerLoadLines"
|
||||
<a-input-number v-model="setting['log.tracker-load-lines']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -64,11 +61,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 日志监听间隔 -->
|
||||
<a-form-item field="log_trackerLoadInterval"
|
||||
label="日志监听间隔"
|
||||
<a-form-item label="日志监听间隔"
|
||||
:rules="[{required: true, message: '请输入日志监听间隔'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.log_trackerLoadInterval"
|
||||
<a-input-number v-model="setting['log.tracker-load-interval']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -143,9 +139,9 @@
|
||||
const { data } = await getSystemSetting(SystemSettingTypes.LOG);
|
||||
setting.value = {
|
||||
...data,
|
||||
log_webScrollLines: toAnonymousNumber(data.log_webScrollLines),
|
||||
log_trackerLoadInterval: toAnonymousNumber(data.log_trackerLoadInterval),
|
||||
log_trackerLoadLines: toAnonymousNumber(data.log_trackerLoadLines),
|
||||
'log.web-scroll-lines': toAnonymousNumber(data['log.web-scroll-lines']),
|
||||
'log.tracker-load-interval': toAnonymousNumber(data['log.tracker-load-interval']),
|
||||
'log.tracker-load-lines': toAnonymousNumber(data['log.tracker-load-lines']),
|
||||
};
|
||||
} catch (e) {
|
||||
} finally {
|
||||
@@ -156,7 +152,4 @@
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.input-wrapper {
|
||||
width: 368px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
label-align="right"
|
||||
:auto-label-width="true">
|
||||
<!-- 允许多端登录 -->
|
||||
<a-form-item field="login_allowMultiDevice"
|
||||
label="允许多端登录"
|
||||
<a-form-item label="允许多端登录"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.login_allowMultiDevice"
|
||||
<a-switch v-model="setting['login.allow-multi-device']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -24,11 +23,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 允许凭证续签 -->
|
||||
<a-form-item field="login_allowRefresh"
|
||||
label="允许凭证续签"
|
||||
<a-form-item label="允许凭证续签"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.login_allowRefresh"
|
||||
<a-switch v-model="setting['login.allow-refresh']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -39,11 +37,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 登录失败锁定 -->
|
||||
<a-form-item field="login_loginFailedLock"
|
||||
label="登录失败锁定"
|
||||
<a-form-item label="登录失败锁定"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.login_loginFailedLock"
|
||||
<a-switch v-model="setting['login.login-failed-lock']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -54,11 +51,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 登录失败发信 -->
|
||||
<a-form-item field="login_loginFailedSend"
|
||||
label="登录失败发信"
|
||||
<a-form-item label="登录失败发信"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.login_loginFailedSend"
|
||||
<a-switch v-model="setting['login.login-failed-send']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -69,11 +65,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 凭证有效期 -->
|
||||
<a-form-item field="login_loginSessionTime"
|
||||
label="凭证有效期"
|
||||
<a-form-item label="凭证有效期"
|
||||
:rules="[{required: true, message: '请输入凭证有效期'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.login_loginSessionTime"
|
||||
<a-input-number v-model="setting['login.login-session-time']"
|
||||
class="input-wrapper"
|
||||
:min="1"
|
||||
:max="99999"
|
||||
@@ -89,11 +84,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 凭证续签间隔 -->
|
||||
<a-form-item field="login_refreshInterval"
|
||||
label="凭证续签间隔"
|
||||
<a-form-item label="凭证续签间隔"
|
||||
:rules="[{required: true, message: '请输入凭证续签间隔时间'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.login_refreshInterval"
|
||||
<a-input-number v-model="setting['login.refresh-interval']"
|
||||
class="input-wrapper"
|
||||
:min="1"
|
||||
:max="99999"
|
||||
@@ -109,11 +103,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 凭证续签最大次数 -->
|
||||
<a-form-item field="login_maxRefreshCount"
|
||||
label="凭证续签最大次数"
|
||||
<a-form-item label="凭证续签最大次数"
|
||||
:rules="[{required: true, message: '请输入凭证续签最大次数'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.login_maxRefreshCount"
|
||||
<a-input-number v-model="setting['login.max-refresh-count']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -125,11 +118,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 登录失败锁定阈值 -->
|
||||
<a-form-item field="login_loginFailedLockThreshold"
|
||||
label="登录失败锁定阈值"
|
||||
<a-form-item label="登录失败锁定阈值"
|
||||
:rules="[{required: true, message: '请输入登录失败锁定阈值'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.login_loginFailedLockThreshold"
|
||||
<a-input-number v-model="setting['login.login-failed-lock-threshold']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -141,11 +133,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 登录失败锁定时间 -->
|
||||
<a-form-item field="login_loginFailedLockTime"
|
||||
label="登录失败锁定时间"
|
||||
<a-form-item label="登录失败锁定时间"
|
||||
:rules="[{required: true, message: '请输入登录失败锁定时间'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.login_loginFailedLockTime"
|
||||
<a-input-number v-model="setting['login.login-failed-lock-time']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="999999"
|
||||
@@ -161,11 +152,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 登录失败发信阈值 -->
|
||||
<a-form-item field="login_loginFailedSendThreshold"
|
||||
label="登录失败发信阈值"
|
||||
<a-form-item label="登录失败发信阈值"
|
||||
:rules="[{required: true, message: '请输入登录失败发信阈值'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.login_loginFailedSendThreshold"
|
||||
<a-input-number v-model="setting['login.login-failed-send-threshold']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="99999"
|
||||
@@ -236,12 +226,12 @@
|
||||
const { data } = await getSystemSetting(SystemSettingTypes.LOGIN);
|
||||
setting.value = {
|
||||
...data,
|
||||
login_loginSessionTime: toAnonymousNumber(data.login_loginSessionTime),
|
||||
login_maxRefreshCount: toAnonymousNumber(data.login_maxRefreshCount),
|
||||
login_refreshInterval: toAnonymousNumber(data.login_refreshInterval),
|
||||
login_loginFailedLockThreshold: toAnonymousNumber(data.login_loginFailedLockThreshold),
|
||||
login_loginFailedLockTime: toAnonymousNumber(data.login_loginFailedLockTime),
|
||||
login_loginFailedSendThreshold: toAnonymousNumber(data.login_loginFailedSendThreshold),
|
||||
'login.login-session-time': toAnonymousNumber(data['login.login-session-time']),
|
||||
'login.max-refresh-count': toAnonymousNumber(data['login.max-refresh-count']),
|
||||
'login.refresh-interval': toAnonymousNumber(data['login.refresh-interval']),
|
||||
'login.login-failed-lock-threshold': toAnonymousNumber(data['login.login-failed-lock-threshold']),
|
||||
'login.login-failed-lock-time': toAnonymousNumber(data['login.login-failed-lock-time']),
|
||||
'login.login-failed-send-threshold': toAnonymousNumber(data['login.login-failed-send-threshold']),
|
||||
};
|
||||
} catch (e) {
|
||||
} finally {
|
||||
@@ -252,7 +242,4 @@
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.input-wrapper {
|
||||
width: 368px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -9,11 +9,10 @@
|
||||
label-align="right"
|
||||
:auto-label-width="true">
|
||||
<!-- 重复文件备份 -->
|
||||
<a-form-item field="sftp_uploadPresentBackup"
|
||||
label="重复文件备份"
|
||||
<a-form-item label="重复文件备份"
|
||||
:rules="[{required: true, message: '请选择此项'}]"
|
||||
hide-asterisk>
|
||||
<a-switch v-model="setting.sftp_uploadPresentBackup"
|
||||
<a-switch v-model="setting['sftp.upload-present-backup']"
|
||||
type="round"
|
||||
checked-value="true"
|
||||
unchecked-value="false"
|
||||
@@ -24,11 +23,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 备份文件名称 -->
|
||||
<a-form-item field="sftp_uploadBackupFileName"
|
||||
label="备份文件名称"
|
||||
<a-form-item label="备份文件名称"
|
||||
:rules="[{required: true, message: '请输入备份文件名称'}]"
|
||||
hide-asterisk>
|
||||
<a-input v-model="setting.sftp_uploadBackupFileName"
|
||||
<a-input v-model="setting['sftp.upload-backup-file-name']"
|
||||
class="input-wrapper"
|
||||
placeholder="请输入备份文件名称模板"
|
||||
allow-clear />
|
||||
@@ -37,11 +35,10 @@
|
||||
</template>
|
||||
</a-form-item>
|
||||
<!-- 文件预览大小 -->
|
||||
<a-form-item field="sftp_previewSize"
|
||||
label="文件预览大小"
|
||||
<a-form-item label="文件预览大小"
|
||||
:rules="[{required: true, message: '请输入文件预览大小'}]"
|
||||
hide-asterisk>
|
||||
<a-input-number v-model="setting.sftp_previewSize"
|
||||
<a-input-number v-model="setting['sftp.preview-size']"
|
||||
class="input-wrapper"
|
||||
:min="0"
|
||||
:max="200"
|
||||
@@ -116,7 +113,7 @@
|
||||
const { data } = await getSystemSetting(SystemSettingTypes.SFTP);
|
||||
setting.value = {
|
||||
...data,
|
||||
sftp_previewSize: toAnonymousNumber(data.sftp_previewSize),
|
||||
'sftp.preview-size': toAnonymousNumber(data['sftp.preview-size']),
|
||||
};
|
||||
} catch (e) {
|
||||
} finally {
|
||||
@@ -127,7 +124,4 @@
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.input-wrapper {
|
||||
width: 368px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -132,6 +132,10 @@
|
||||
.alert-href {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.input-wrapper {
|
||||
width: 368px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -4,5 +4,5 @@ export const SystemSettingTypes = {
|
||||
ENCRYPT: 'encrypt',
|
||||
LOGIN: 'login',
|
||||
LOG: 'log',
|
||||
AUTO_CLEAR: 'autoClear',
|
||||
AUTO_CLEAR: 'auto-clear',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user