🔨 优化系统配置逻辑.

This commit is contained in:
lijiahangmax
2025-10-09 14:31:43 +08:00
parent 37fc271741
commit b0be444fba
17 changed files with 129 additions and 158 deletions

View File

@@ -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>

View File

@@ -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%;
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -132,6 +132,10 @@
.alert-href {
text-decoration: none;
}
.input-wrapper {
width: 368px;
}
}
</style>

View File

@@ -4,5 +4,5 @@ export const SystemSettingTypes = {
ENCRYPT: 'encrypt',
LOGIN: 'login',
LOG: 'log',
AUTO_CLEAR: 'autoClear',
AUTO_CLEAR: 'auto-clear',
};