Browse Source

系统名称及LOGO动态控制

e 5 years ago
parent
commit
b2dd7dd30c

+ 1 - 1
src/layout/components/Navbar.vue

@@ -43,7 +43,7 @@ export default {
   props: {
   props: {
     adminName: {
     adminName: {
       type: String,
       type: String,
-      default: '超级管理员'
+      default: '管理员'
     }
     }
   },
   },
   computed: {
   computed: {

+ 9 - 6
src/layout/components/Sidebar/Logo.vue

@@ -2,11 +2,11 @@
   <div class="sidebar-logo-container" :class="{'collapse':collapse}">
   <div class="sidebar-logo-container" :class="{'collapse':collapse}">
     <transition name="sidebarLogoFade">
     <transition name="sidebarLogoFade">
       <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
       <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
-        <img src="@/assets/logo.png" class="sidebar-logo">
+        <img :src="systemImage" class="sidebar-logo">
       </router-link>
       </router-link>
       <router-link v-else key="expand" class="sidebar-logo-link" to="/">
       <router-link v-else key="expand" class="sidebar-logo-link" to="/">
-        <img src="@/assets/logo.png" class="sidebar-logo">
-        <h1 class="sidebar-title">{{ title }} </h1>
+        <img :src="systemImage" class="sidebar-logo">
+        <h1 class="sidebar-title">{{ systemName }} </h1>
       </router-link>
       </router-link>
     </transition>
     </transition>
   </div>
   </div>
@@ -21,9 +21,12 @@ export default {
       required: true
       required: true
     }
     }
   },
   },
-  data() {
-    return {
-      title: '星范商城后台管理系统'
+  computed: {
+    systemName() {
+      return this.$store.getters.systemName
+    },
+    systemImage() {
+      return this.$store.getters.systemImage
     }
     }
   }
   }
 }
 }

+ 2 - 1
src/layout/index.vue

@@ -4,7 +4,7 @@
     <sidebar class="sidebar-container" />
     <sidebar class="sidebar-container" />
     <div :class="{hasTagsView:needTagsView}" class="main-container">
     <div :class="{hasTagsView:needTagsView}" class="main-container">
       <div :class="{'fixed-header':fixedHeader}">
       <div :class="{'fixed-header':fixedHeader}">
-        <navbar />
+        <navbar :admin-name="adminName" />
         <tags-view v-if="needTagsView" />
         <tags-view v-if="needTagsView" />
       </div>
       </div>
       <app-main />
       <app-main />
@@ -36,6 +36,7 @@ export default {
     ...mapState({
     ...mapState({
       sidebar: state => state.app.sidebar,
       sidebar: state => state.app.sidebar,
       device: state => state.app.device,
       device: state => state.app.device,
+      adminName: state => state.user.name,
       showSettings: state => state.settings.showSettings,
       showSettings: state => state.settings.showSettings,
       needTagsView: state => state.settings.tagsView,
       needTagsView: state => state.settings.tagsView,
       fixedHeader: state => state.settings.fixedHeader
       fixedHeader: state => state.settings.fixedHeader

+ 1 - 1
src/settings.js

@@ -1,5 +1,5 @@
 module.exports = {
 module.exports = {
-  title: '星范商城后台管理系统',
+  title: '后台管理系统',
 
 
   /**
   /**
    * @type {boolean} true | false
    * @type {boolean} true | false

+ 3 - 2
src/store/getters.js

@@ -5,9 +5,10 @@ const getters = {
   visitedViews: state => state.tagsView.visitedViews,
   visitedViews: state => state.tagsView.visitedViews,
   cachedViews: state => state.tagsView.cachedViews,
   cachedViews: state => state.tagsView.cachedViews,
   token: state => state.user.token,
   token: state => state.user.token,
-  avatar: state => state.user.avatar,
+  systemName: state => state.user.systemName,
+  systemImage: state => state.user.systemImage,
   name: state => state.user.name,
   name: state => state.user.name,
-  introduction: state => state.user.introduction,
+  avatar: state => state.user.avatar,
   roles: state => state.user.roles,
   roles: state => state.user.roles,
   permission_routes: state => state.permission.routes,
   permission_routes: state => state.permission.routes,
   errorLogs: state => state.errorLog.logs
   errorLogs: state => state.errorLog.logs

+ 27 - 7
src/store/modules/user.js

@@ -1,5 +1,6 @@
 // import { login, logout, getInfo } from '@/api/user'
 // import { login, logout, getInfo } from '@/api/user'
 import { login, getInfo } from '@/api/user'
 import { login, getInfo } from '@/api/user'
+import { getOrganizeInfo } from '@/api/other'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import router, { resetRouter } from '@/router'
 import router, { resetRouter } from '@/router'
 // import store from '@/store'
 // import store from '@/store'
@@ -8,7 +9,8 @@ const state = {
   token: getToken(),
   token: getToken(),
   name: '',
   name: '',
   avatar: '',
   avatar: '',
-  introduction: '',
+  systemName: '',
+  systemImage: '',
   roles: []
   roles: []
 }
 }
 
 
@@ -16,8 +18,11 @@ const mutations = {
   SET_TOKEN: (state, token) => {
   SET_TOKEN: (state, token) => {
     state.token = token
     state.token = token
   },
   },
-  SET_INTRODUCTION: (state, introduction) => {
-    state.introduction = introduction
+  SET_SYSTEM_NAME: (state, systemName) => {
+    state.systemName = systemName
+  },
+  SET_SYSTEM_IMAGE: (state, systemImage) => {
+    state.systemImage = systemImage
   },
   },
   SET_NAME: (state, name) => {
   SET_NAME: (state, name) => {
     state.name = name
     state.name = name
@@ -31,6 +36,22 @@ const mutations = {
 }
 }
 
 
 const actions = {
 const actions = {
+  getSysInfo: function({ commit, state }, organizeID) {
+    return new Promise((resolve, reject) => {
+      getOrganizeInfo({ id: organizeID }).then(response => {
+        const { data } = response
+        if (data) {
+          const { systemName, systemImage } = data
+          commit('SET_SYSTEM_NAME', systemName)
+          commit('SET_SYSTEM_IMAGE', systemImage)
+        }
+        resolve(data)
+      }).catch(error => {
+        reject(error)
+      })
+    })
+  },
+
   // user login
   // user login
   login: function({ commit }, userInfo) {
   login: function({ commit }, userInfo) {
     const { account, password, organizeID } = userInfo
     const { account, password, organizeID } = userInfo
@@ -60,12 +81,11 @@ const actions = {
           reject('getInfo: roles must be a non-null array!')
           reject('getInfo: roles must be a non-null array!')
         } */
         } */
         data.roles = ['admin']
         data.roles = ['admin']
-        data.introduction = 'I am a super administrator'
-        const { roles, account, avatar, introduction } = data
+        const { roles, accountName, avatar } = data
         commit('SET_ROLES', roles)
         commit('SET_ROLES', roles)
-        commit('SET_NAME', account)
+        commit('SET_NAME', accountName)
         commit('SET_AVATAR', avatar)
         commit('SET_AVATAR', avatar)
-        commit('SET_INTRODUCTION', introduction)
+        // commit('SET_SYSTEM_NAME', introduction)
         resolve(data)
         resolve(data)
       }).catch(error => {
       }).catch(error => {
         reject(error)
         reject(error)

+ 16 - 5
src/views/login/index.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <div class="login-container">
+  <div v-loading="pageLoading" class="login-container">
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left">
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left">
 
 
       <div class="title-container">
       <div class="title-container">
@@ -43,14 +43,14 @@
       </el-form-item>
       </el-form-item>
 
 
       <el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">登录</el-button>
       <el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">登录</el-button>
-      <div class="footer"><p>copyrigh © 2019星范商城后台V1.0.0</p></div>
+      <!-- <div class="footer"><p>copyrigh © 2019星范商城后台V1.0.0</p></div> -->
     </el-form>
     </el-form>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
 import { validUsername } from '@/utils/validate'
 import { validUsername } from '@/utils/validate'
-import { getOrganizeInfo } from '@/api/other'
+// import { getOrganizeInfo } from '@/api/other'
 
 
 export default {
 export default {
   name: 'Login',
   name: 'Login',
@@ -70,6 +70,7 @@ export default {
       }
       }
     }
     }
     return {
     return {
+      pageLoading: true,
       systemName: '',
       systemName: '',
       systemImage: '',
       systemImage: '',
       loginForm: {
       loginForm: {
@@ -99,10 +100,20 @@ export default {
   },
   },
   methods: {
   methods: {
     initAdminLogin() {
     initAdminLogin() {
-      getOrganizeInfo({ id: this.organizeID }).then(response => {
+      this.pageLoading = true
+      this.$store.dispatch('user/getSysInfo', this.organizeID).then(() => {
+        this.systemName = this.$store.getters.systemName
+        this.systemImage = this.$store.getters.systemImage
+        this.pageLoading = false
+      }).catch(() => {
+        this.pageLoading = false
+      })
+      /* getOrganizeInfo({ id: this.organizeID }).then(response => {
         this.systemName = response.data.systemName
         this.systemName = response.data.systemName
         this.systemImage = response.data.systemImage
         this.systemImage = response.data.systemImage
-      })
+        this.$store.commit('SET_SYSTEM_NAME', response.data.systemName)
+        this.$store.commit('SET_SYSTEM_IMAGE', response.data.systemImage)
+      }) */
     },
     },
     showPwd() {
     showPwd() {
       if (this.passwordType === 'password') {
       if (this.passwordType === 'password') {