update
This commit is contained in:
parent
7d9186d31c
commit
26fec1bf40
51
package-lock.json
generated
51
package-lock.json
generated
@ -22,6 +22,8 @@
|
||||
"qs": "^6.11.2",
|
||||
"vue": "^2.6.14",
|
||||
"vue-iframe": "^0.0.0",
|
||||
"vue-live2d": "^1.3.1",
|
||||
"vue-meta": "^2.4.0",
|
||||
"vue-router": "^3.5.1",
|
||||
"vue2-element-dict": "^1.0.2",
|
||||
"vuex": "^3.6.2"
|
||||
@ -16200,6 +16202,15 @@
|
||||
"resolved": "https://registry.npmjs.org/vue-iframe/-/vue-iframe-0.0.0.tgz",
|
||||
"integrity": "sha512-gH791EBUqJrsa5SuGhxeujyK4NFngJnuvpSJN0p5W5VoHmYkW35ZekOLlCZTN658VsXUYNGCPHlk9bzLtRyd7Q=="
|
||||
},
|
||||
"node_modules/vue-live2d": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/vue-live2d/-/vue-live2d-1.3.1.tgz",
|
||||
"integrity": "sha512-CWi495jWERVm9E/l9e7duLCuPsvJdPqKrY9XAStWpk7Uixrs5GwqA3qvfQGihfwrfRLthaRVoZDW3+ZZJ5O2RQ==",
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.5",
|
||||
"vue": "^2.6.11"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-loader": {
|
||||
"version": "17.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.3.1.tgz",
|
||||
@ -16286,6 +16297,22 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-meta": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-meta/-/vue-meta-2.4.0.tgz",
|
||||
"integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==",
|
||||
"dependencies": {
|
||||
"deepmerge": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-meta/node_modules/deepmerge": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
|
||||
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-router": {
|
||||
"version": "3.6.5",
|
||||
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz",
|
||||
@ -29729,6 +29756,15 @@
|
||||
"resolved": "https://registry.npmjs.org/vue-iframe/-/vue-iframe-0.0.0.tgz",
|
||||
"integrity": "sha512-gH791EBUqJrsa5SuGhxeujyK4NFngJnuvpSJN0p5W5VoHmYkW35ZekOLlCZTN658VsXUYNGCPHlk9bzLtRyd7Q=="
|
||||
},
|
||||
"vue-live2d": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/vue-live2d/-/vue-live2d-1.3.1.tgz",
|
||||
"integrity": "sha512-CWi495jWERVm9E/l9e7duLCuPsvJdPqKrY9XAStWpk7Uixrs5GwqA3qvfQGihfwrfRLthaRVoZDW3+ZZJ5O2RQ==",
|
||||
"requires": {
|
||||
"core-js": "^3.6.5",
|
||||
"vue": "^2.6.11"
|
||||
}
|
||||
},
|
||||
"vue-loader": {
|
||||
"version": "17.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.3.1.tgz",
|
||||
@ -29791,6 +29827,21 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"vue-meta": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-meta/-/vue-meta-2.4.0.tgz",
|
||||
"integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==",
|
||||
"requires": {
|
||||
"deepmerge": "^4.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"deepmerge": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
|
||||
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"vue-router": {
|
||||
"version": "3.6.5",
|
||||
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz",
|
||||
|
@ -22,6 +22,8 @@
|
||||
"qs": "^6.11.2",
|
||||
"vue": "^2.6.14",
|
||||
"vue-iframe": "^0.0.0",
|
||||
"vue-live2d": "^1.3.1",
|
||||
"vue-meta": "^2.4.0",
|
||||
"vue-router": "^3.5.1",
|
||||
"vue2-element-dict": "^1.0.2",
|
||||
"vuex": "^3.6.2"
|
||||
|
@ -15,7 +15,7 @@
|
||||
<img style="width: 28px" :src="require('@/assets/img/null.png')" alt="图标">
|
||||
</div>
|
||||
</el-image>
|
||||
<span v-if="item.name" style="overflow-x: scroll;margin-top:2px;margin-left:10px;width:90%;text-align: center">{{item.name}}</span>
|
||||
<span v-if="item.name" style="overflow-x: scroll;margin-top:2px;margin-left:10px;width:300px;height: 30px;white-space: nowrap;text-align: center">{{item.name}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -44,12 +44,27 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
|
||||
// toDetail(id){
|
||||
// if(id){
|
||||
// this.$router.push({
|
||||
// path: '/nav',
|
||||
// query: {
|
||||
// uid: id,
|
||||
// refresh: true
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// return false;
|
||||
// }
|
||||
// },
|
||||
|
||||
toDetail(id){
|
||||
if(id){
|
||||
let pathInfo = this.$router.resolve({
|
||||
path: '/nav',
|
||||
query: {
|
||||
uid: id,
|
||||
refresh: true
|
||||
}
|
||||
})
|
||||
window.open(pathInfo.href, '_self');
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<div class="wrapper" :key="UrlId">
|
||||
<LeftSide :category="category"></LeftSide>
|
||||
<div class="DefinedPage">
|
||||
<div class="LeftPart" style="overflow: auto">
|
||||
@ -141,6 +141,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="热度趋势" class="JustBack" style="width:670px;display:flex; flex-direction: column; flex-wrap: nowrap;">
|
||||
<div style="width:670px;color: var(--theme-color)">
|
||||
<div class="HeadLine" style="margin-top:50px">
|
||||
<div class="HeadSquare"></div>
|
||||
<div class="TitleFont"><i class="el-icon-info"></i>特别声明</div>
|
||||
</div>
|
||||
<div class="ArticleContent">
|
||||
<span>
|
||||
{{copyright_info}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--用户评论-->
|
||||
<div id="用户评论" v-show="update" class="JustBack" style="width:670px;
|
||||
height:auto;display:flex; flex-direction: column; flex-wrap: nowrap;">
|
||||
@ -379,16 +392,29 @@ export default {
|
||||
rules: {
|
||||
rating: [{ required: 'true', message: '请输入评分!', trigger: 'blur' }],
|
||||
content: [{ required: 'true', message: '请输入评价!', trigger: 'blur' }],
|
||||
}
|
||||
},
|
||||
copyright_info:null,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$route': 'getPath'
|
||||
// '$route': 'getPath',
|
||||
$route () {
|
||||
this.getPath();
|
||||
if(this.$route.query.refresh){
|
||||
this.GetAllComment();
|
||||
this.GetAllCate();
|
||||
this.addViewByTime();
|
||||
this.UrlId = this.$route.query.uid;
|
||||
this.getUser();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
// this.GetAllComment();
|
||||
this.GetAllComment();
|
||||
this.GetAllCate();
|
||||
this.getConfig('copyright_info');
|
||||
},
|
||||
created() {
|
||||
this.addViewByTime();
|
||||
@ -403,6 +429,35 @@ export default {
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
getConfig(name) {
|
||||
let _this = this;
|
||||
if (name) {
|
||||
axios({
|
||||
method: 'get',
|
||||
url: '/api/getConfig',
|
||||
params: {
|
||||
name: name
|
||||
}
|
||||
}).then(function (res) {
|
||||
if (res) {
|
||||
if (res.data.copyright_info) {
|
||||
_this.copyright_info = res.data.copyright_info.value;
|
||||
}
|
||||
|
||||
// if(res.data.light_bg){
|
||||
// _this.light_bg=res.data.light_bg.value;
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
closeDialog() {
|
||||
var that = this;
|
||||
// 先重置
|
||||
|
@ -55,6 +55,7 @@ export default {
|
||||
path: '/nav',
|
||||
query: {
|
||||
uid: id,
|
||||
refresh: true
|
||||
}
|
||||
})
|
||||
window.open(pathInfo.href, '_self');
|
||||
|
@ -22,7 +22,7 @@
|
||||
<!-- <div class="app-card__subtext">{{nav.desc}}</div>-->
|
||||
<div class="dividing-line"></div>
|
||||
<div class="app-card-buttons">
|
||||
<el-tooltip v-if="nav.agentHint" class="item" effect="dark" :content="nav.agentHint" placement="bottom">
|
||||
<el-tooltip v-if="nav.agentHint || copyright_info" class="item" effect="dark" :content="nav.agentHint || copyright_info" placement="bottom">
|
||||
<i v-show="nav.isNeedAgent===1" style="color: red" class="qr el-icon-info"></i>
|
||||
</el-tooltip>
|
||||
<!-- <button class="content-button status-button"><i class="el-icon-d-arrow-right"></i>详情</button>-->
|
||||
@ -66,10 +66,11 @@ export default {
|
||||
return {
|
||||
imageCode: '',
|
||||
dialogVisible:false,
|
||||
copyright_info:null,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.getConfig('copyright_info');
|
||||
},
|
||||
created() {
|
||||
|
||||
@ -116,13 +117,41 @@ export default {
|
||||
path: '/nav',
|
||||
query: {
|
||||
uid: this.nav.urlId,
|
||||
refresh: true
|
||||
}
|
||||
})
|
||||
window.open(pathInfo.href, '_self');
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
getConfig(name) {
|
||||
let _this = this;
|
||||
if (name) {
|
||||
axios({
|
||||
method: 'get',
|
||||
url: '/api/getConfig',
|
||||
params: {
|
||||
name: name
|
||||
}
|
||||
}).then(function (res) {
|
||||
if (res) {
|
||||
if (res.data.copyright_info) {
|
||||
_this.copyright_info = res.data.copyright_info.value;
|
||||
}
|
||||
|
||||
// if(res.data.light_bg){
|
||||
// _this.light_bg=res.data.light_bg.value;
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
23
src/components/setting/comment/CommentManage.vue
Normal file
23
src/components/setting/comment/CommentManage.vue
Normal file
@ -0,0 +1,23 @@
|
||||
<template>
|
||||
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "CommentManage",
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
computed: {},
|
||||
methods: {}
|
||||
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -9,7 +9,9 @@
|
||||
<InfoCard v-if="this.infoData.urlListNum && this.infoData.name1 && this.infoData.icon1" :info="this.infoData.urlListNum" :name="this.infoData.name1" :icon="this.infoData.icon1"></InfoCard>
|
||||
<InfoCard v-if="this.infoData.cateNum && this.infoData.name2 && this.infoData.icon2" :info="this.infoData.cateNum" :name="this.infoData.name2" :icon="this.infoData.icon2" style="margin-left: 10px"></InfoCard>
|
||||
</div>
|
||||
|
||||
<div style="display: flex;align-items: center;justify-content: center">
|
||||
<vueLive2d :size="450" :homePage="homepage"></vueLive2d>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -19,10 +21,10 @@ import PersonalInfoCard from "@/components/setting/home/PersonalInfoCard.vue";
|
||||
import InfoCard from "@/components/setting/home/InfoCard.vue";
|
||||
import axios from "axios";
|
||||
import Vue from "vue";
|
||||
|
||||
import vueLive2d from 'vue-live2d'
|
||||
export default {
|
||||
name: "PersonalHomePage",
|
||||
components: { InfoCard, PersonalInfoCard},
|
||||
components: { InfoCard, PersonalInfoCard,vueLive2d},
|
||||
data() {
|
||||
return {
|
||||
infoData:{
|
||||
@ -33,6 +35,7 @@ export default {
|
||||
icon1:'https://imgbed.landaiqing.space/img/1/2023/12/25/1_65893ab12d3f2_1703492272311_20231225.webp',
|
||||
icon2:'https://imgbed.landaiqing.space/img/1/2023/12/25/1_65893af89eecf_1703492343951_20231225.webp',
|
||||
},
|
||||
homepage:'https://landaiqing.space'
|
||||
|
||||
}
|
||||
},
|
||||
|
@ -22,12 +22,12 @@
|
||||
<!-- <span class="min-title">Logo(深色模式)</span>-->
|
||||
<!-- <UploadComponent :config-name="dark_logo" style="margin-top: 10px;"></UploadComponent>-->
|
||||
<!-- </div>-->
|
||||
<div class="min-content" style="margin-left: 50px">
|
||||
<span class="min-title">Favicon</span>
|
||||
<div class="img-card">
|
||||
<UploadComponent style="margin-top: 10px;" :config-name="favicon"></UploadComponent>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="min-content" style="margin-left: 50px">-->
|
||||
<!-- <span class="min-title">Favicon</span>-->
|
||||
<!-- <div class="img-card">-->
|
||||
<!-- <UploadComponent style="margin-top: 10px;" :config-name="favicon"></UploadComponent>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<!-- <div class="color-select">-->
|
||||
<!-- <span class="theme-color-select">主题色:</span>-->
|
||||
@ -115,7 +115,6 @@ export default {
|
||||
dark_bg:null,
|
||||
light_bg:null,
|
||||
value:null,
|
||||
favicon:"favicon",
|
||||
logo:'logo',
|
||||
dark_bg_file:'dark_bg_file',
|
||||
light_bg_file:'light_bg_file',
|
||||
|
@ -19,10 +19,10 @@
|
||||
<span class="min-title">站名:</span>
|
||||
<el-input
|
||||
placeholder="请输入站名"
|
||||
v-model="website_name"
|
||||
v-model="metaInfo.website_name"
|
||||
clearable
|
||||
style="margin-top:10px"
|
||||
@change="setInfoConfig('website_name',website_name,'String')"
|
||||
@change="setInfoConfig('website_name',metaInfo.website_name,'String')"
|
||||
>
|
||||
</el-input>
|
||||
</div>
|
||||
@ -32,9 +32,9 @@
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
placeholder="请输入内容"
|
||||
v-model="seo_desc"
|
||||
v-model="metaInfo.seo_desc"
|
||||
style="margin-top:10px"
|
||||
@change="setInfoConfig('seo_desc',seo_desc,'String')">
|
||||
@change="setInfoConfig('seo_desc',metaInfo.seo_desc,'String')">
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="LineInput">
|
||||
@ -43,9 +43,9 @@
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
placeholder="请输入内容"
|
||||
v-model="seo_key_words"
|
||||
v-model="metaInfo.seo_key_words"
|
||||
style="margin-top:10px"
|
||||
@change="setInfoConfig('seo_key_words',seo_key_words,'String')">
|
||||
@change="setInfoConfig('seo_key_words',metaInfo.seo_key_words,'String')">
|
||||
</el-input>
|
||||
</div>
|
||||
<!-- <div class="LineInput">-->
|
||||
@ -82,17 +82,17 @@
|
||||
<!-- </div>-->
|
||||
<!-- <el-button @click="addItem" style="width: 100px;margin-top:20px" plain round type="primary">增加</el-button>-->
|
||||
<!-- </div>-->
|
||||
<div class="LineInput" style="margin-top:25px!important;">
|
||||
<span class="min-title">底部信息:</span>
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
placeholder="请输入内容"
|
||||
v-model="bottom_info"
|
||||
style="margin-top:10px"
|
||||
@change="setInfoConfig('bottom_info',bottom_info,'String')">
|
||||
</el-input>
|
||||
</div>
|
||||
<!-- <div class="LineInput" style="margin-top:25px!important;">-->
|
||||
<!-- <span class="min-title">底部信息:</span>-->
|
||||
<!-- <el-input-->
|
||||
<!-- type="textarea"-->
|
||||
<!-- :rows="3"-->
|
||||
<!-- placeholder="请输入内容"-->
|
||||
<!-- v-model="bottom_info"-->
|
||||
<!-- style="margin-top:10px"-->
|
||||
<!-- @change="setInfoConfig('bottom_info',bottom_info,'String')">-->
|
||||
<!-- </el-input>-->
|
||||
<!-- </div>-->
|
||||
<div style="display: flex;flex-direction: column">
|
||||
<span class="min-title">版权信息:</span>
|
||||
<el-input
|
||||
@ -205,23 +205,22 @@
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import Vue from "vue";
|
||||
import {mapMutations} from "vuex";
|
||||
|
||||
export default {
|
||||
name: "InformationSettings",
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
website_name: null,
|
||||
seo_desc : null,
|
||||
seo_key_words: null,
|
||||
metaInfo:{
|
||||
website_name: null,
|
||||
seo_desc : null,
|
||||
seo_key_words: null,
|
||||
},
|
||||
bottom_info: null,
|
||||
copyright_info: null,
|
||||
icp_info: null,
|
||||
proxy_prompts: null,
|
||||
// form: [{
|
||||
// name: null,
|
||||
// url: null,
|
||||
// }]
|
||||
loading:true,
|
||||
}
|
||||
},
|
||||
@ -229,7 +228,6 @@ export default {
|
||||
this.getInfoConfig('website_name');
|
||||
this.getInfoConfig('seo_desc');
|
||||
this.getInfoConfig('seo_key_words');
|
||||
this.getInfoConfig('bottom_info');
|
||||
this.getInfoConfig('copyright_info');
|
||||
this.getInfoConfig('icp_info');
|
||||
this.getInfoConfig('proxy_prompts');
|
||||
@ -239,6 +237,8 @@ export default {
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
|
||||
...mapMutations(['setTitle','setKeywords','setDescription']),
|
||||
setInfoConfig(name,value,type){
|
||||
let _this = this;
|
||||
if (localStorage.getItem('userId')&&localStorage.getItem('Authorization')) {
|
||||
@ -303,13 +303,17 @@ export default {
|
||||
}).then(function (res) {
|
||||
if(res){
|
||||
if(res.data.website_name){
|
||||
_this.website_name=res.data.website_name.value;
|
||||
_this.metaInfo.website_name=res.data.website_name.value;
|
||||
_this.setTitle({title:_this.metaInfo.website_name});
|
||||
}
|
||||
if(res.data.seo_desc){
|
||||
_this.seo_desc=res.data.seo_desc.value;
|
||||
_this.metaInfo.seo_desc=res.data.seo_desc.value;
|
||||
_this.setDescription({description:_this.metaInfo.seo_desc});
|
||||
|
||||
}
|
||||
if(res.data.seo_key_words){
|
||||
_this.seo_key_words=res.data.seo_key_words.value;
|
||||
_this.metaInfo.seo_key_words=res.data.seo_key_words.value;
|
||||
_this.setKeywords({keywords:_this.metaInfo.seo_key_words});
|
||||
}
|
||||
if(res.data.bottom_info){
|
||||
_this.bottom_info=res.data.bottom_info.value;
|
||||
|
15
src/main.js
15
src/main.js
@ -5,6 +5,7 @@ import store from './store'
|
||||
import axios from "axios";
|
||||
import ElementUI from 'element-ui';
|
||||
import 'element-ui/lib/theme-chalk/index.css';
|
||||
import VueMeta from "vue-meta";
|
||||
Vue.prototype.axios = axios;
|
||||
// 请求拦截器, 每次请求都会在请求头中携带token
|
||||
axios.interceptors.request.use((config) => {
|
||||
@ -50,5 +51,19 @@ Vue.use(ElementUI);
|
||||
new Vue({
|
||||
router,
|
||||
store,
|
||||
metaInfo() {
|
||||
return {
|
||||
title: localStorage.getItem('title'),
|
||||
meta: [
|
||||
{
|
||||
name: "keywords",
|
||||
content: localStorage.getItem('keywords'),
|
||||
}, {
|
||||
name: "description",
|
||||
content: localStorage.getItem('description'),
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
render: h => h(App)
|
||||
}).$mount('#app')
|
||||
|
@ -21,6 +21,7 @@ import bannerManage from "@/components/setting/banner/BannerManage.vue";
|
||||
import userManage from "@/components/setting/user/UserManage.vue";
|
||||
import noticeManage from "@/components/setting/notice/NoticeManage.vue";
|
||||
import attachmentManage from "@/components/setting/attachment/AttachmentManage.vue";
|
||||
import commentManage from "@/components/setting/comment/CommentManage.vue";
|
||||
|
||||
const originalPush = VueRouter.prototype.push
|
||||
VueRouter.prototype.push = function push(location) {
|
||||
@ -151,6 +152,11 @@ const routes = [
|
||||
name: '/importExport',
|
||||
component: importExport,
|
||||
},
|
||||
{
|
||||
path: '/comment',
|
||||
name: '/comment',
|
||||
component: commentManage,
|
||||
},
|
||||
|
||||
],
|
||||
},
|
||||
|
@ -4,37 +4,49 @@ import Vuex from 'vuex'
|
||||
Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
state: {
|
||||
theme:localStorage.getItem('theme') ? localStorage.getItem('theme') : '',
|
||||
userId:localStorage.getItem('userId') ? localStorage.getItem('userId') : '',
|
||||
userRole:localStorage.getItem('userRole') ? localStorage.getItem('userRole') : '',
|
||||
// 存储token
|
||||
Authorization: localStorage.getItem('Authorization') ? localStorage.getItem('Authorization') : '',
|
||||
},
|
||||
getters: {
|
||||
},
|
||||
mutations: {
|
||||
setTheme:(state,data)=>{
|
||||
state.theme=data.theme;
|
||||
localStorage.setItem('theme',data.theme);
|
||||
},
|
||||
changeLogin (state, user) {
|
||||
state.Authorization = user.Authorization;
|
||||
localStorage.setItem('Authorization', user.Authorization);
|
||||
},
|
||||
setUserId(state,user){
|
||||
state.userId=user.userId;
|
||||
localStorage.setItem('userId',user.userId);
|
||||
},
|
||||
setUserRole(state,user){
|
||||
state.userRole=user.userRole;
|
||||
localStorage.setItem('userRole',user.userRole);
|
||||
state: {
|
||||
title: localStorage.getItem('title') ? localStorage.getItem('title') : '',
|
||||
keywords: localStorage.getItem('keywords') ? localStorage.getItem('keywords') : '',
|
||||
description: localStorage.getItem('description') ? localStorage.getItem('description') : '',
|
||||
theme: localStorage.getItem('theme') ? localStorage.getItem('theme') : '',
|
||||
userId: localStorage.getItem('userId') ? localStorage.getItem('userId') : '',
|
||||
userRole: localStorage.getItem('userRole') ? localStorage.getItem('userRole') : '',
|
||||
// 存储token
|
||||
Authorization: localStorage.getItem('Authorization') ? localStorage.getItem('Authorization') : '',
|
||||
},
|
||||
getters: {},
|
||||
mutations: {
|
||||
setTitle(state, data){
|
||||
state.title = data.title;
|
||||
localStorage.setItem('title', data.title);
|
||||
},
|
||||
setKeywords(state, data){
|
||||
state.keywords = data.keywords;
|
||||
localStorage.setItem('keywords', data.keywords);
|
||||
},
|
||||
setDescription(state, data){
|
||||
state.description = data.description;
|
||||
localStorage.setItem('description', data.description);
|
||||
},
|
||||
setTheme(state, data){
|
||||
state.theme = data.theme;
|
||||
localStorage.setItem('theme', data.theme);
|
||||
},
|
||||
changeLogin(state, user) {
|
||||
state.Authorization = user.Authorization;
|
||||
localStorage.setItem('Authorization', user.Authorization);
|
||||
},
|
||||
setUserId(state, user) {
|
||||
state.userId = user.userId;
|
||||
localStorage.setItem('userId', user.userId);
|
||||
},
|
||||
setUserRole(state, user) {
|
||||
state.userRole = user.userRole;
|
||||
localStorage.setItem('userRole', user.userRole);
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
actions: {
|
||||
},
|
||||
modules: {
|
||||
}
|
||||
},
|
||||
actions: {},
|
||||
modules: {}
|
||||
})
|
||||
|
@ -6,13 +6,13 @@
|
||||
<div class="video-bg">
|
||||
<el-image v-if="imageUrl" style="width: 100%;height: 100%" :src="'data:image/jpg;base64,'+imageUrl">
|
||||
<div slot="error" class="image-slot">
|
||||
<img style="width: 100%" :src="require('@/assets/img/macos-big-sur-1280x720-dark-wwdc-2020-22655.jpg')" alt="背景">
|
||||
<video width="320" height="240" autoplay="" loop="" muted="" __idm_id__="1581057">
|
||||
<source src="../assets/video/background.mp4" type="video/mp4">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
</div>
|
||||
</el-image>
|
||||
<video v-else width="320" height="240" autoplay="" loop="" muted="" __idm_id__="1581057">
|
||||
<source src="../assets/video/background.mp4" type="video/mp4">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
|
||||
</div>
|
||||
<div v-if="value==='1'" class="dark-light" @click="changeStyle">
|
||||
<svg viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round"
|
||||
@ -28,6 +28,10 @@
|
||||
</keep-alive>
|
||||
<div class="overlay-app"></div>
|
||||
</div>
|
||||
<div v-if="icp_info!==''" style="z-index: 9999;display: flex;flex-direction: row;margin-bottom: -30px">
|
||||
<el-link style="color: var(--theme-color);" :underline="false" href="https://beian.miit.gov.cn/" target="_blank">备案号: </el-link>
|
||||
<el-link style="color: var(--theme-color);" :underline="false" href="https://beian.miit.gov.cn/" target="_blank"> {{icp_info}}</el-link>
|
||||
</div>
|
||||
</body>
|
||||
</template>
|
||||
|
||||
@ -49,30 +53,29 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
isLight: false,
|
||||
folderTrue: [],
|
||||
folderFalse: [],
|
||||
value:null,
|
||||
imageUrl:null,
|
||||
|
||||
icp_info:null,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let nowDate = new Date()
|
||||
let hour = nowDate.getHours()
|
||||
//黑夜时
|
||||
if (hour > 18 && hour <= 24 || hour < 6) {
|
||||
this.goDark()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// let nowDate = new Date()
|
||||
// let hour = nowDate.getHours()
|
||||
// //黑夜时
|
||||
// if (hour > 18 && hour <= 24 || hour < 6) {
|
||||
// this.goDark()
|
||||
// }
|
||||
//根据本地存储状态哦按段
|
||||
if (localStorage.getItem('theme') === 'dark') {
|
||||
this.goDark()
|
||||
}else{
|
||||
this.goLight();
|
||||
}
|
||||
|
||||
},
|
||||
created() {
|
||||
this.getConfig('open_dark_light');
|
||||
this.getConfig('icp_info');
|
||||
|
||||
},
|
||||
computed: {},
|
||||
|
||||
@ -93,13 +96,13 @@ export default {
|
||||
if (res.data.open_dark_light) {
|
||||
_this.value = res.data.open_dark_light.value;
|
||||
}
|
||||
// if(res.data.dark_bg){
|
||||
// _this.dark_bg=res.data.dark_bg.value;
|
||||
// }
|
||||
if(res.data.icp_info){
|
||||
_this.icp_info=res.data.icp_info.value;
|
||||
}
|
||||
// if(res.data.light_bg){
|
||||
// _this.light_bg=res.data.light_bg.value;
|
||||
// }
|
||||
// _this.loading=false;
|
||||
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
@ -140,16 +143,18 @@ export default {
|
||||
},
|
||||
|
||||
goDark() {
|
||||
this.getImageByConfig('dark_bg_file');
|
||||
|
||||
//黑夜的
|
||||
document.body.classList.remove('light-mode')
|
||||
this.setTheme({theme:'dark'})
|
||||
this.setTheme({theme:'dark'});
|
||||
this.getImageByConfig('dark_bg_file');
|
||||
},
|
||||
goLight() {
|
||||
this.getImageByConfig('light_bg_file');
|
||||
|
||||
//白天的
|
||||
document.body.classList.add('light-mode')
|
||||
this.setTheme({theme:'light'});
|
||||
this.getImageByConfig('light_bg_file');
|
||||
},
|
||||
changeStyle() {
|
||||
this.isLight = !this.isLight
|
||||
|
@ -24,6 +24,10 @@
|
||||
</div>
|
||||
<div class="overlay-app"></div>
|
||||
</div>
|
||||
<div v-if="icp_info!==''" style="z-index: 9999;display: flex;flex-direction: row">
|
||||
<el-link style="color: var(--theme-color);" :underline="false" href="https://beian.miit.gov.cn/" target="_blank">备案号: </el-link>
|
||||
<el-link style="color: var(--theme-color);" :underline="false" href="https://beian.miit.gov.cn/" target="_blank"> {{icp_info}}</el-link>
|
||||
</div>
|
||||
</body>
|
||||
</template>
|
||||
|
||||
@ -43,13 +47,28 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
value:null,
|
||||
|
||||
isLight:false,
|
||||
icp_info:null,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
created() {
|
||||
this.getConfig('open_dark_light');
|
||||
this.getConfig('icp_info');
|
||||
// let nowDate = new Date()
|
||||
// let hour = nowDate.getHours()
|
||||
// //黑夜时
|
||||
// if (hour > 18 && hour <= 24 || hour < 6) {
|
||||
// this.goDark()
|
||||
// }
|
||||
//根据本地存储状态哦按段
|
||||
if (localStorage.getItem('theme') === 'dark') {
|
||||
this.goDark()
|
||||
}else{
|
||||
this.goLight();
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
methods:{
|
||||
@ -68,9 +87,9 @@ export default {
|
||||
if (res.data.open_dark_light) {
|
||||
_this.value = res.data.open_dark_light.value;
|
||||
}
|
||||
// if(res.data.dark_bg){
|
||||
// _this.dark_bg=res.data.dark_bg.value;
|
||||
// }
|
||||
if(res.data.icp_info){
|
||||
_this.icp_info=res.data.icp_info.value;
|
||||
}
|
||||
// if(res.data.light_bg){
|
||||
// _this.light_bg=res.data.light_bg.value;
|
||||
// }
|
||||
|
Loading…
Reference in New Issue
Block a user