feat: complete settings

This commit is contained in:
engigu
2023-12-31 21:31:56 +08:00
parent 77af985b76
commit 66b3a30a62
25 changed files with 595 additions and 37 deletions
@@ -10,9 +10,9 @@
<el-menu-item index="logCleanSetting">
日志清理
</el-menu-item>
<el-menu-item index="siteCustomSetting">
<!-- <el-menu-item index="siteCustomSetting">
站点设置
</el-menu-item>
</el-menu-item> -->
<el-menu-item index="aboutSetting">
站点关于
</el-menu-item>
@@ -1,14 +1,12 @@
<template>
<div class="setting-container">
<el-text size="small">当前版本v1.0.0</el-text>
<el-text size="small">当前版本{{ version }}</el-text>
<div class="buttom">
<div class="tips">
<el-text size="small">版本功能说明</el-text>
<el-tooltip placement="top">
<template #content>
logo请输入svg文本替换后登录页面ico导航栏logo将全部一起更换
<br />
*将在下一次登录的时候生效
<div v-html="desc"></div>
</template>
<el-icon>
<QuestionFilled />
@@ -20,7 +18,7 @@
</template>
<script>
import { defineComponent, reactive, toRefs } from 'vue';
import { defineComponent, reactive, toRefs, onMounted } from 'vue';
import { ElMessage } from 'element-plus'
import { request } from '@/api/api'
import { QuestionFilled } from '@element-plus/icons-vue'
@@ -35,8 +33,8 @@ export default defineComponent({
},
setup() {
const state = reactive({
oldPasswd: '',
newPasswd: '',
version: '',
desc: '',
});
const handleChange = async () => {
@@ -47,6 +45,21 @@ export default defineComponent({
ElMessage({ message: msg, type: 'success' })
}
}
const getAbout = async () => {
let params = { params: { section: "about" } };
const rsp = await request.get('/settings/getsetting', params);
if (await rsp.data.code == 200) {
let data = await rsp.data.data;
state.version = data.version;
state.desc = data.desc.replace(/\n/g, '<br />');
}
}
onMounted(() => {
getAbout();
})
return {
...toRefs(state), handleChange
}
@@ -4,7 +4,7 @@
<el-input v-model="cron" size="small" placeholder="请输入定时日志清除的Cron表达式">
<template size="small" #prepend>cron://</template>
</el-input>
<el-input v-model.number="keepNum" size="small" placeholder="请输入要保留的最近的日志条数" style="margin-top: 15px;">
<el-input v-model="keepNum" size="small" placeholder="请输入要保留的最近的日志条数" style="margin-top: 15px;">
<template size="small" #prepend>保留数</template>
</el-input>
</div>
@@ -29,7 +29,7 @@
</template>
<script>
import { defineComponent, reactive, toRefs } from 'vue';
import { defineComponent, reactive, toRefs, onMounted } from 'vue';
import { ElMessage } from 'element-plus'
import { QuestionFilled } from '@element-plus/icons-vue'
import { useRouter } from 'vue-router';
@@ -47,13 +47,20 @@ export default defineComponent({
setup() {
const router = useRouter();
const state = reactive({
section: 'log_config',
cron: '',
keepNum: 1000,
keepNum: '1000',
});
const handleSubmit = async () => {
let postData = { old_passwd: state.oldPasswd, new_passwd: state.newPasswd };
const rsp = await request.post('/settings/setpasswd', postData);
let postData = {
section: state.section,
data: {
cron: state.cron.trim(),
keep_num: state.keepNum.trim(),
},
};
const rsp = await request.post('/settings/set', postData);
if (await rsp.data.code == 200) {
let msg = await rsp.data.msg;
ElMessage({ message: msg, type: 'success' })
@@ -62,6 +69,21 @@ export default defineComponent({
const handleView = async () => {
router.push('/sendlogs?taskid=' + CONSTANT.LOG_TASK_ID, { replace: true });
}
const getSiteConfig = async () => {
let params = { params: { section: "log_config" } };
const rsp = await request.get('/settings/getsetting', params);
if (await rsp.data.code == 200) {
let data = await rsp.data.data;
state.cron = data.cron;
state.keepNum = data.keep_num;
}
}
onMounted(() => {
getSiteConfig();
})
return {
...toRefs(state), handleSubmit, handleView
}
@@ -17,7 +17,7 @@
<el-tooltip placement="top">
<template #content>
1. logo请输入svg文本替换后登录页面ico导航栏logo将全部一起更换
<br />
<br />
2. slogan将在登录页面展示
<br />
*将在下一次登录的时候生效
@@ -27,14 +27,14 @@
</el-icon>
</el-tooltip>
</div>
<el-button @click="handleView" size="small">查看日志</el-button>
<el-button @click="handleView" size="small">恢复默认</el-button>
<el-button @click="handleSubmit" size="small" type="primary">确定</el-button>
</div>
</div>
</template>
<script>
import { defineComponent, reactive, toRefs } from 'vue';
import { defineComponent, reactive, toRefs, onMounted } from 'vue';
import { ElMessage } from 'element-plus'
import { QuestionFilled } from '@element-plus/icons-vue'
import { useRouter } from 'vue-router';
@@ -55,11 +55,19 @@ export default defineComponent({
title: '',
slogan: '',
logo: '',
section: 'site_config',
});
const handleSubmit = async () => {
let postData = { old_passwd: state.oldPasswd, new_passwd: state.newPasswd };
const rsp = await request.post('/settings/setpasswd', postData);
let postData = {
section: state.section,
data: {
title: state.title.trim(),
slogan: state.slogan.trim(),
logo: state.logo.trim(),
},
};
const rsp = await request.post('/settings/set', postData);
if (await rsp.data.code == 200) {
let msg = await rsp.data.msg;
ElMessage({ message: msg, type: 'success' })
@@ -68,6 +76,22 @@ export default defineComponent({
const handleView = async () => {
router.push('/sendlogs?taskid=' + CONSTANT.LOG_TASK_ID, { replace: true });
}
const getSiteConfig = async () => {
let params = { params: { section: "site_config" } };
const rsp = await request.get('/settings/getsetting', params);
if (await rsp.data.code == 200) {
let data = await rsp.data.data;
state.title = data.title;
state.logo = data.logo;
state.slogan = data.slogan;
}
}
onMounted(() => {
getSiteConfig();
})
return {
...toRefs(state), handleSubmit, handleView
}