NEZ-3483 feat: Log settings页面开发

This commit is contained in:
zyh
2024-05-31 09:31:08 +08:00
parent 63c3c029d3
commit ea73268c65
7 changed files with 104 additions and 11 deletions

View File

@@ -5,7 +5,7 @@
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "nezha", "name": "nezha-docs",
"version": "0.0.0", "version": "0.0.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@@ -71,7 +71,6 @@
.table-list { .table-list {
overflow-y: auto; overflow-y: auto;
height: 100%; height: 100%;
padding: 20px 0;
box-sizing: border-box; box-sizing: border-box;
} }

View File

@@ -89,7 +89,7 @@
</div> </div>
</template> </template>
<!--图表--> <!--图表-->
<div id="tableList" class="table-list chart-list-box" style="padding-top: 0;overflow: hidden"> <div id="tableList" class="table-list chart-list-box" style="overflow: hidden;">
<div id="dashboardScrollbar" class="table-list-box"> <div id="dashboardScrollbar" class="table-list-box">
<div class="box-content" ref="dashboardScrollbar" v-my-loading="chartListLoading" style="overflow-y: scroll;display: flex;flex-direction: column;overflow-x: hidden"> <div class="box-content" ref="dashboardScrollbar" v-my-loading="chartListLoading" style="overflow-y: scroll;display: flex;flex-direction: column;overflow-x: hidden">
<panel-variables :labelArrs="variables" :time-range="searchTime" @getPanelData="getPanelData"></panel-variables> <panel-variables :labelArrs="variables" :time-range="searchTime" @getPanelData="getPanelData"></panel-variables>

View File

@@ -261,10 +261,9 @@ export default {
} }
if (type == 'monitor') { if (type == 'monitor') {
if (response.data.interface_name) { if (response.data.interface_name) {
let arr = response.data.interface_name.split(',') const arr = response.data.interface_name.split(',')
this.monitor.interface_name = arr.map(item => { this.monitor.interface_name = arr.map(item => {
return { text: item } return { text: item }
}) })
} }
localStorage.setItem('nz-prometheus-federation-enabled', this.monitor.prometheus_federation_enabled) localStorage.setItem('nz-prometheus-federation-enabled', this.monitor.prometheus_federation_enabled)
@@ -285,7 +284,7 @@ export default {
param.pin_policy = JSON.stringify(this.basic.pin_policy) param.pin_policy = JSON.stringify(this.basic.pin_policy)
} }
if (type == 'monitor') { if (type == 'monitor') {
let str = this.monitor.interface_name.map(item=>{ const str = this.monitor.interface_name.map(item => {
return item.text return item.text
}) })
param.interface_name = str.join(',') param.interface_name = str.join(',')

View File

@@ -0,0 +1,91 @@
<template>
<div class="system">
<div class="system-config-form basicForm">
<el-form :model="auditlog" label-width="180px" size="small" ref="auditlogForm" :rules="auditlogRules" :validate-on-rule-change="false">
<!--operation log-->
<div class="system-title">{{$t('config.operationlog.operationlog')}}</div>
<el-form-item :label="$t('config.system.monitor.metrics_storage_retention')" prop="operation_log_retention" style="padding-bottom: 15px;">
<el-input v-model.number="auditlog.operation_log_retention">
<template slot="append"><span >{{$t('config.system.basic.day')}}</span></template>
</el-input>
<div class="el-form-item__tip">{{$t('config.system.basic.passPeriodValue')}}</div>
</el-form-item>
<!--web terminal log-->
<div class="system-title system-title-border">{{$t('config.terminallog.terminallog')}}</div>
<el-form-item :label="$t('config.system.monitor.metrics_storage_retention')" prop="terminal_record_local_retention">
<el-input v-model.number="auditlog.terminal_record_local_retention">
<template slot="append"><span >{{$t('config.system.basic.day')}}</span></template>
</el-input>
</el-form-item>
<el-form-item :label="$t('config.system.monitor.metrics_storage_type')" prop="terminal_storage_type">
<el-select v-model="auditlog.terminal_storage_type" popper-class="right-box-select-top right-public-box-dropdown-top">
<el-option :label="$t('config.system.monitor.local')" value="1"></el-option>
<el-option :label="$t('config.system.monitor.s3')" value="2"></el-option>
</el-select>
</el-form-item>
<transition name="el-zoom-in-top">
<div v-show="auditlog.terminal_storage_type == 2">
<el-form-item :label="$t('asset.endpoint')" prop="terminal_storage_s3_endpoint" :rules=" [ { required: auditlog.terminal_storage_type == 2, message: this.$t('validate.required'), trigger: 'blur' }]">
<el-input v-model="auditlog.terminal_storage_s3_endpoint">
</el-input>
</el-form-item>
<el-form-item :label="$t('config.system.monitor.metrics_storage_s3_bucket')" prop="terminal_storage_s3_bucket" :rules=" [ { required: auditlog.terminal_storage_type == 2, message: this.$t('validate.required'), trigger: 'blur' }]">
<el-input v-model="auditlog.terminal_storage_s3_bucket">
</el-input>
</el-form-item>
<el-form-item :label="$t('config.system.monitor.metrics_storage_s3_access_key')" prop="terminal_storage_s3_access_key" :rules=" [ { required: auditlog.terminal_storage_type == 2, message: this.$t('validate.required'), trigger: 'blur' }]">
<el-input v-model="auditlog.terminal_storage_s3_access_key">
</el-input>
</el-form-item>
<el-form-item :label="$t('config.terminallog.key')" prop="terminal_storage_s3_secret_access_key" :rules=" [ { required: auditlog.terminal_storage_type == 2, message: this.$t('validate.required'), trigger: 'blur' }]" class="monitorLastElement">
<el-input v-model="auditlog.terminal_storage_s3_secret_access_key" type="password" auto-complete="new-password" >
</el-input>
</el-form-item>
</div>
</transition>
<el-form-item>
<button id="system-monitor-save" v-has="'system_basic_edit'" :class="{'nz-btn-disabled':prevent_opt.save}" :disabled="prevent_opt.save" class="nz-btn nz-btn-size-normal nz-btn-style-normal" type="button" @click="saveSetInfo('auditlog','auditlogForm')">{{$t('overall.save')}}</button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import systemMixin from '../../common/mixin/system/systemMixin'
import routerPathParams from '../../common/mixin/routerPathParams'
export default {
name: 'auditlog',
mixins: [systemMixin, routerPathParams],
components: {
},
data () {
return {
switchTab: 'auditlog',
tag: '',
auditlog: {
operation_log_retention: '',
terminal_record_local_retention: '',
terminal_storage_type: '',
terminal_storage_s3_endpoint: '',
terminal_storage_s3_bucket: '',
terminal_storage_s3_access_key: '',
terminal_storage_s3_secret_access_key: ''
},
auditlogRules: {
operation_log_retention: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }],
terminal_record_local_retention: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }],
terminal_storage_type: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }],
metrics_storage_type: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }]
}
}
},
mounted () {
this.querySetInfo(this.switchTab)
},
methods: {
}
}
</script>

View File

@@ -8,7 +8,7 @@ import bus from '@/libs/bus'
import Message from '@/components/common/message/index' import Message from '@/components/common/message/index'
Vue.use(VueResource) Vue.use(VueResource)
const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance', '/i18n', '/terminal', 'uPlot'] // 免登陆白名单 const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance', '/i18n', '/terminal', '/auditLog'] // 免登陆白名单
export const permissionWhiteList = ['/profile', '/menu', ...loginWhiteList] // 权限白名单 export const permissionWhiteList = ['/profile', '/menu', ...loginWhiteList] // 权限白名单
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
if (window.entrance) { if (window.entrance) {

View File

@@ -180,6 +180,10 @@ export default new Router({
path: '/monitor', path: '/monitor',
component: resolve => require(['@/components/page/config/monitor'], resolve) component: resolve => require(['@/components/page/config/monitor'], resolve)
}, },
{
path: '/auditLog',
component: resolve => require(['@/components/page/config/auditLog'], resolve)
},
{ {
path: '/terminalSetting', path: '/terminalSetting',
component: resolve => require(['@/components/page/config/terminal'], resolve) component: resolve => require(['@/components/page/config/terminal'], resolve)