Selaa lähdekoodia

:recycle: 重构代码。token 放入sessionstore,新增简洁皮肤

冷冷 6 vuotta sitten
vanhempi
commit
065cb5b1e8

+ 1 - 1
src/const/crud/admin/role.js

@@ -88,7 +88,7 @@ export const tableOption = {
       value: 3
     }]
   }, {
-    label:'数据权限限定范围',
+    label:'',
     prop: 'dsScope',
     formsolt: true,
     hide: true

+ 2 - 10
src/const/crud/admin/token.js

@@ -42,11 +42,11 @@ export const tableOption = {
     align: 'center'
   }, {
     label: '用户名',
-    prop: 'user_name',
+    prop: 'username',
     align: 'center'
   }, {
     label: '令牌',
-    prop: 'token_value',
+    prop: 'access_token',
     align: 'center',
     'overHidden': true
   }, {
@@ -57,13 +57,5 @@ export const tableOption = {
     label: '过期时间',
     prop: 'expires_in',
     align: 'center'
-  }, {
-    label: '客户端',
-    prop: 'client_id',
-    align: 'center'
-  }, {
-    label: '授权类型',
-    prop: 'grant_type',
-    align: 'center'
   }]
 }

+ 1 - 1
src/const/website.js

@@ -13,7 +13,7 @@ export default {
       '一个基于Avue2 开发无需前端知识,即可快速上手的开发平台。',
       '最大程度上帮助企业节省时间成本和费用开支。',
       'QQ群:23754102',
-      '当前版本:v2.0.0'
+      '当前版本:v2.1.0'
     ]
   },
   statusWhiteList: [428],

+ 0 - 11
src/page/index/top/index.vue

@@ -66,20 +66,9 @@
           <i class="el-icon-arrow-down el-icon--right"></i>
         </span>
         <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item>
-            <router-link to="/">首页</router-link>
-          </el-dropdown-item>
           <el-dropdown-item>
             <router-link to="/info/index">个人信息</router-link>
           </el-dropdown-item>
-          <el-dropdown-item>
-            <a href="https://gitee.com/smallweigit/avue"
-               target="_blank">码云地址</a>
-          </el-dropdown-item>
-          <el-dropdown-item>
-            <a href="https://github.com/nmxiaowei/avue"
-               target="_blank">github</a>
-          </el-dropdown-item>
           <el-dropdown-item @click.native="logout"
                             divided>退出系统</el-dropdown-item>
         </el-dropdown-menu>

+ 50 - 49
src/page/index/top/top-theme.vue

@@ -26,59 +26,60 @@
 </template>
 
 <script>
-import { setTheme } from '@/util/util'
-import { mapGetters } from 'vuex';
-export default {
-  data () {
-    return {
-      box: false,
-      text: '',
-      list: [
-        {
-          name: '默认',
-          value: '',
-        }, {
-          name: '炫彩',
-          value: 'theme-star'
-        },{
-          name: '火山',
-          value: 'theme-volcano'
-        }, {
-          name: '黑色',
-          value: 'theme-black'
-        }, {
-          name: '渐变',
-          value: 'theme-gradual'
-        }
-      ]
-    }
-  },
-  watch: {
-    text: function (val) {
-      this.$store.commit('SET_THEME_NAME', val);
-      setTheme(val);
-    }
-  },
-  computed: {
-    ...mapGetters(["themeName"])
-  },
-  mounted () {
-    this.text = this.themeName;
-    if (!this.text) {
-      this.text = '';
-    }
-  },
-  methods: {
-    open () {
-      this.box = true;
+  import {setTheme} from '@/util/util'
+  import {mapGetters} from 'vuex';
+
+  export default {
+    data() {
+      return {
+        box: false,
+        text: '',
+        list: [
+          {
+            name: '默认',
+            value: '',
+          }, {
+            name: '简洁',
+            value: 'theme-volcano'
+          }, {
+            name: '炫彩',
+            value: 'theme-star'
+          }, {
+            name: '紫色',
+            value: 'theme-black'
+          }, {
+            name: '渐变',
+            value: 'theme-gradual'
+          }
+        ]
+      }
+    },
+    watch: {
+      text: function (val) {
+        this.$store.commit('SET_THEME_NAME', val);
+        setTheme(val);
+      }
+    },
+    computed: {
+      ...mapGetters(["themeName"])
+    },
+    mounted() {
+      this.text = this.themeName;
+      if (!this.text) {
+        this.text = '';
+      }
+    },
+    methods: {
+      open() {
+        this.box = true;
+      }
     }
   }
-}
 </script>
 
 <style lang="scss" scoped>
-.list {
-  width: 100%;
-}
+  .list {
+    width: 100%;
+  }
 </style>
 

+ 9 - 9
src/permission.js

@@ -3,12 +3,12 @@
  *
  */
 import router from './router/router'
-import store from './store'
-import { validatenull } from '@/util/validate'
-import { getToken } from '@/util/auth'
+import store from '@/store'
+import {getStore} from '@/util/store'
+import {validatenull} from '@/util/validate'
 import NProgress from 'nprogress' // progress bar
 import 'nprogress/nprogress.css' // progress bar style
-NProgress.configure({ showSpinner: false })
+NProgress.configure({showSpinner: false})
 const lockPage = store.getters.website.lockPage // 锁屏页
 router.beforeEach((to, from, next) => {
   // 缓冲设置
@@ -25,18 +25,18 @@ router.beforeEach((to, from, next) => {
     }
   }
   const meta = to.meta || {}
-  if (getToken()) {
+  if (store.getters.access_token) {
     if (store.getters.isLock && to.path != lockPage) {
-      next({ path: lockPage })
+      next({path: lockPage})
     } else if (to.path === '/login') {
-      next({ path: '/' })
+      next({path: '/'})
     } else {
       if (store.getters.roles.length === 0) {
         store.dispatch('GetUserInfo').then(() => {
-          next({ ...to, replace: true })
+          next({...to, replace: true})
         }).catch(() => {
           store.dispatch('FedLogOut').then(() => {
-            next({ path: '/login' })
+            next({path: '/login'})
           })
         })
       } else {

+ 5 - 5
src/router/axios.js

@@ -1,12 +1,11 @@
 import {serialize} from '@/util/util'
-import store from '../store'
 import {getStore} from '../util/store'
-import {getToken} from '@/util/auth'
 import NProgress from 'nprogress' // progress bar
 import errorCode from '@/const/errorCode'
 import router from "@/router/router"
 import {Message} from 'element-ui'
-import 'nprogress/nprogress.css' // progress bar style
+import 'nprogress/nprogress.css'
+import store from "@/store"; // progress bar style
 axios.defaults.timeout = 30000
 // 返回其他状态吗
 axios.defaults.validateStatus = function (status) {
@@ -24,8 +23,9 @@ axios.interceptors.request.use(config => {
   NProgress.start() // start progress bar
   const TENANT_ID = getStore({name: 'tenantId'})
   const isToken = (config.headers || {}).isToken === false
-  if (store.getters.access_token && !isToken) {
-    config.headers['Authorization'] = 'Bearer ' + getToken()// token
+  let token =  store.getters.access_token
+  if (token && !isToken) {
+    config.headers['Authorization'] = 'Bearer ' + token// token
   }
   if (TENANT_ID) {
     config.headers['TENANT_ID'] = TENANT_ID // 租户ID

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

@@ -1,4 +1,3 @@
-import {removeToken, setToken} from '@/util/auth'
 import {getStore, setStore} from '@/util/store'
 import {isURL} from '@/util/validate'
 import {getUserInfo, loginByMobile, loginBySocial, loginByUsername, logout, refeshToken} from '@/api/login'
@@ -57,7 +56,6 @@ const user = {
       return new Promise((resolve, reject) => {
         loginByUsername(user.username, user.password, user.code, user.randomStr).then(response => {
           const data = response.data
-          setToken(data.access_token)
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
@@ -73,7 +71,6 @@ const user = {
       return new Promise((resolve, reject) => {
         loginByMobile(userInfo.mobile, userInfo.code).then(response => {
           const data = response.data
-          setToken(data.access_token)
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
@@ -89,7 +86,6 @@ const user = {
       return new Promise((resolve, reject) => {
         loginBySocial(param.state, param.code).then(response => {
           const data = response.data
-          setToken(data.access_token)
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
@@ -118,7 +114,6 @@ const user = {
       return new Promise((resolve, reject) => {
         refeshToken(state.refresh_token).then(response => {
           const data = response.data
-          setToken(data.access_token)
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
@@ -142,7 +137,6 @@ const user = {
           commit('SET_ROLES', [])
           commit('DEL_ALL_TAG')
           commit('CLEAR_LOCK')
-          removeToken()
           resolve()
         }).catch(error => {
           reject(error)
@@ -160,7 +154,6 @@ const user = {
         commit('SET_ROLES', [])
         commit('DEL_ALL_TAG')
         commit('CLEAR_LOCK')
-        removeToken()
         resolve()
       })
     },

+ 1 - 1
src/styles/theme/index.scss

@@ -2,7 +2,7 @@
 @import './star.scss';
 //渐变主题
 @import './gradual.scss';
-//火山
+//简洁
 @import './volcano.scss';
 //黑色
 @import './black.scss';

+ 4 - 4
src/styles/theme/volcano.scss

@@ -2,7 +2,7 @@
   .avue-header,
   .avue-logo,
   .tags-container {
-      background-color: #FA541C!important;
+      background-color: #1b82f1!important;
   }
   .avue-sidebar--tip{
     background-color:transparent;
@@ -73,13 +73,13 @@
       }
       background-color:#fff !important;
       &.is-active {
-        background-color: #fa541f !important;
+        background-color: #1b82f1  !important;
         span,
         i {
           color: #fff
         }
         &:hover {
-          background-color: #fa5220 !important;
+          background-color: #1b82f1  !important;
         }
       }
     }
@@ -92,7 +92,7 @@
       }
     }
     .el-menu-item.is-active,.el-submenu__title.is-active{
-      background-color: #fa511e !important;
+      background-color: #1b82f1 !important;
       i,span{
         color:#fff !important;
       }

+ 0 - 15
src/util/auth.js

@@ -1,15 +0,0 @@
-import Cookies from 'js-cookie'
-
-const TokenKey = 'x-access-token'
-
-export function getToken () {
-  return Cookies.get(TokenKey)
-}
-
-export function setToken (token) {
-  return Cookies.set(TokenKey, token)
-}
-
-export function removeToken () {
-  return Cookies.remove(TokenKey)
-}

+ 2 - 2
src/views/admin/token/index.vue

@@ -84,12 +84,12 @@
       },
       rowDel: function (row, index) {
         var _this = this
-        this.$confirm('是否强制' + row.user_name+ '下线?', '提示', {
+        this.$confirm('是否强制' + row.username+ '下线?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
         }).then(function () {
-          return delObj(row.token_value)
+          return delObj(row.access_token)
         }).then(data => {
           _this.tableData.splice(index, 1)
           _this.$message({

+ 5 - 2
src/views/admin/user/info.vue

@@ -109,7 +109,7 @@
   import {handleDown} from "@/api/admin/user";
   import {handleImg, openWindow} from '@/util/util'
   import {mapState} from 'vuex'
-  import {getToken} from '@/util/auth'
+  import store from "@/store";
   import request from '@/router/axios'
 
   export default {
@@ -130,7 +130,7 @@
         avatarUrl: '',
         show: false,
         headers: {
-          Authorization: 'Bearer ' + getToken()
+          Authorization: 'Bearer ' + store.getters.access_token
         },
         ruleForm2: {
           username: '',
@@ -161,6 +161,9 @@
     },
     methods: {
       switchTab(tab, event) {
+        if (tab.name === 'userManager') {
+          handleImg(this.ruleForm2.avatar, 'avatar')
+        }
         this.switchStatus = tab.name
       },
       submitForm(formName) {