系统布局配置支持动态标题开关
This commit is contained in:
		
							parent
							
								
									a3116cd27d
								
							
						
					
					
						commit
						557672ba9f
					
				@ -1,3 +1,6 @@
 | 
			
		||||
# 页面标题
 | 
			
		||||
VUE_APP_TITLE = 若依管理系统
 | 
			
		||||
 | 
			
		||||
# 开发环境配置
 | 
			
		||||
ENV = 'development'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,6 @@
 | 
			
		||||
# 页面标题
 | 
			
		||||
VUE_APP_TITLE = 若依管理系统
 | 
			
		||||
 | 
			
		||||
# 生产环境配置
 | 
			
		||||
ENV = 'production'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,6 @@
 | 
			
		||||
# 页面标题
 | 
			
		||||
VUE_APP_TITLE = 若依管理系统
 | 
			
		||||
 | 
			
		||||
NODE_ENV = production
 | 
			
		||||
 | 
			
		||||
# 测试环境配置
 | 
			
		||||
 | 
			
		||||
@ -55,6 +55,7 @@
 | 
			
		||||
    "vue": "2.6.12",
 | 
			
		||||
    "vue-count-to": "1.0.13",
 | 
			
		||||
    "vue-cropper": "0.5.5",
 | 
			
		||||
    "vue-meta": "^2.4.0",
 | 
			
		||||
    "vue-router": "3.4.9",
 | 
			
		||||
    "vuedraggable": "2.24.3",
 | 
			
		||||
    "vuex": "3.6.0"
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,14 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default  {
 | 
			
		||||
  name:  'App'
 | 
			
		||||
  name:  'App',
 | 
			
		||||
    metaInfo() {
 | 
			
		||||
        return {
 | 
			
		||||
            title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
 | 
			
		||||
            titleTemplate: title => {
 | 
			
		||||
                return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@ -62,6 +62,11 @@
 | 
			
		||||
        <el-switch v-model="sidebarLogo" class="drawer-switch" />
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="drawer-item">
 | 
			
		||||
        <span>动态标题</span>
 | 
			
		||||
        <el-switch v-model="dynamicTitle" class="drawer-switch" />
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <el-divider/>
 | 
			
		||||
 | 
			
		||||
      <el-button size="small" type="primary" plain icon="el-icon-document-add" @click="saveSetting">保存配置</el-button>
 | 
			
		||||
@ -129,6 +134,17 @@ export default {
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    dynamicTitle: {
 | 
			
		||||
      get() {
 | 
			
		||||
        return this.$store.state.settings.dynamicTitle
 | 
			
		||||
      },
 | 
			
		||||
      set(val) {
 | 
			
		||||
        this.$store.dispatch('settings/changeSetting', {
 | 
			
		||||
          key: 'dynamicTitle',
 | 
			
		||||
          value: val
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    themeChange(val) {
 | 
			
		||||
@ -160,6 +176,7 @@ export default {
 | 
			
		||||
            "tagsView":${this.tagsView},
 | 
			
		||||
            "fixedHeader":${this.fixedHeader},
 | 
			
		||||
            "sidebarLogo":${this.sidebarLogo},
 | 
			
		||||
            "dynamicTitle":${this.dynamicTitle},
 | 
			
		||||
            "sideTheme":"${this.sideTheme}",
 | 
			
		||||
            "theme":"${this.theme}"
 | 
			
		||||
          }`
 | 
			
		||||
 | 
			
		||||
@ -20,6 +20,8 @@ import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels,
 | 
			
		||||
import Pagination from "@/components/Pagination";
 | 
			
		||||
// 自定义表格工具扩展
 | 
			
		||||
import RightToolbar from "@/components/RightToolbar"
 | 
			
		||||
// 头部标签插件
 | 
			
		||||
import VueMeta from 'vue-meta'
 | 
			
		||||
 | 
			
		||||
// 全局方法挂载
 | 
			
		||||
Vue.prototype.getDicts = getDicts
 | 
			
		||||
@ -49,6 +51,7 @@ Vue.component('Pagination', Pagination)
 | 
			
		||||
Vue.component('RightToolbar', RightToolbar)
 | 
			
		||||
 | 
			
		||||
Vue.use(permission)
 | 
			
		||||
Vue.use(VueMeta)
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * If you don't want to use mock-server
 | 
			
		||||
 | 
			
		||||
@ -12,6 +12,7 @@ const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
 | 
			
		||||
router.beforeEach((to, from, next) => {
 | 
			
		||||
  NProgress.start()
 | 
			
		||||
  if (getToken()) {
 | 
			
		||||
    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
 | 
			
		||||
    /* has token*/
 | 
			
		||||
    if (to.path === '/login') {
 | 
			
		||||
      next({ path: '/' })
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,4 @@
 | 
			
		||||
module.exports = {
 | 
			
		||||
  title: '若依管理系统',
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 侧边栏主题 深色主题theme-dark,浅色主题theme-light
 | 
			
		||||
   */
 | 
			
		||||
@ -31,6 +29,11 @@ module.exports = {
 | 
			
		||||
   */
 | 
			
		||||
  sidebarLogo: true,
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 是否显示动态标题
 | 
			
		||||
   */
 | 
			
		||||
  dynamicTitle: false,
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * @type {string | array} 'production' | ['production', 'development']
 | 
			
		||||
   * @description Need show err logs component.
 | 
			
		||||
 | 
			
		||||
@ -1,17 +1,19 @@
 | 
			
		||||
import variables from '@/assets/styles/element-variables.scss'
 | 
			
		||||
import defaultSettings from '@/settings'
 | 
			
		||||
 | 
			
		||||
const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo } = defaultSettings
 | 
			
		||||
const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
 | 
			
		||||
 | 
			
		||||
const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
 | 
			
		||||
const state = {
 | 
			
		||||
  title: '',
 | 
			
		||||
  theme: storageSetting.theme || variables.theme,
 | 
			
		||||
  sideTheme: storageSetting.sideTheme || sideTheme,
 | 
			
		||||
  showSettings: showSettings,
 | 
			
		||||
  topNav:  storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
 | 
			
		||||
  tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
 | 
			
		||||
  fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
 | 
			
		||||
  sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo
 | 
			
		||||
  sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
 | 
			
		||||
  dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
 | 
			
		||||
}
 | 
			
		||||
const mutations = {
 | 
			
		||||
  CHANGE_SETTING: (state, { key, value }) => {
 | 
			
		||||
@ -22,8 +24,13 @@ const mutations = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const actions = {
 | 
			
		||||
  // 修改布局设置
 | 
			
		||||
  changeSetting({ commit }, data) {
 | 
			
		||||
    commit('CHANGE_SETTING', data)
 | 
			
		||||
  },
 | 
			
		||||
  // 设置网页标题
 | 
			
		||||
  setTitle({ commit }, title) {
 | 
			
		||||
    state.title = title
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,11 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
const path = require('path')
 | 
			
		||||
const defaultSettings = require('./src/settings.js')
 | 
			
		||||
 | 
			
		||||
function resolve(dir) {
 | 
			
		||||
  return path.join(__dirname, dir)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const name = defaultSettings.title || '若依管理系统' // 标题
 | 
			
		||||
const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
 | 
			
		||||
 | 
			
		||||
const port = process.env.port || process.env.npm_config_port || 80 // 端口
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user