Parcourir la source

Merge branch 'leng_dev' of https://gitee.ltd/pigx/pigx-ui into leng_dev

冷冷 il y a 6 ans
Parent
commit
b7b5845d3e
2 fichiers modifiés avec 95 ajouts et 103 suppressions
  1. 15 14
      src/store/modules/user.js
  2. 80 89
      src/views/admin/role/index.vue

+ 15 - 14
src/store/modules/user.js

@@ -5,7 +5,7 @@ import { deepClone, encryption } from '@/util/util'
 import webiste from '@/const/website'
 import { GetMenu } from '@/api/admin/menu'
 
-function addPath(ele, first) {
+function addPath (ele, first) {
   const menu = webiste.menu
   const propsConfig = menu.props
   const propsDefault = {
@@ -48,7 +48,7 @@ const user = {
   },
   actions: {
     // 根据用户名登录
-    LoginByUsername({ commit }, userInfo) {
+    LoginByUsername ({ commit }, userInfo) {
       const user = encryption({
         data: userInfo,
         key: 'pigxpigxpigxpigx',
@@ -68,7 +68,7 @@ const user = {
       })
     },
     // 根据手机号登录
-    LoginByPhone({ commit }, userInfo) {
+    LoginByPhone ({ commit }, userInfo) {
       return new Promise((resolve, reject) => {
         loginByMobile(userInfo.mobile, userInfo.code).then(response => {
           const data = response.data
@@ -83,7 +83,7 @@ const user = {
       })
     },
     // 根据OpenId登录
-    LoginBySocial({ commit }, param) {
+    LoginBySocial ({ commit }, param) {
       return new Promise((resolve, reject) => {
         loginBySocial(param.state, param.code).then(response => {
           const data = response.data
@@ -97,7 +97,7 @@ const user = {
         })
       })
     },
-    GetUserInfo({ commit }) {
+    GetUserInfo ({ commit }) {
       return new Promise((resolve, reject) => {
         getUserInfo().then((res) => {
           const data = res.data.data || {}
@@ -111,7 +111,7 @@ const user = {
       })
     },
     // 刷新token
-    RefreshToken({ commit, state }) {
+    RefreshToken ({ commit, state }) {
       return new Promise((resolve, reject) => {
         refreshToken(state.refresh_token).then(response => {
           const data = response.data
@@ -126,7 +126,7 @@ const user = {
       })
     },
     // 登出
-    LogOut({ commit }) {
+    LogOut ({ commit }) {
       return new Promise((resolve, reject) => {
         logout().then(() => {
           commit('SET_MENU', [])
@@ -145,7 +145,7 @@ const user = {
       })
     },
     // 注销session
-    FedLogOut({ commit }) {
+    FedLogOut ({ commit }) {
       return new Promise(resolve => {
         commit('SET_MENU', [])
         commit('SET_PERMISSIONS', [])
@@ -159,9 +159,9 @@ const user = {
       })
     },
     // 获取系统菜单
-    GetMenu({
+    GetMenu ({
       commit
-    }) {
+    }, type) {
       return new Promise(resolve => {
         GetMenu().then((res) => {
           const data = res.data.data
@@ -169,7 +169,7 @@ const user = {
           menu.forEach(ele => {
             addPath(ele)
           })
-          commit('SET_MENU', menu)
+          commit('SET_MENU', { type, menu })
           resolve(menu)
         })
       })
@@ -204,11 +204,12 @@ const user = {
     SET_USER_INFO: (state, userInfo) => {
       state.userInfo = userInfo
     },
-    SET_MENU: (state, menu) => {
-      state.menu = menu
+    SET_MENU: (state, params = {}) => {
+      let { menu, type } = params;
+      if (type !== false) state.menu = menu
       setStore({
         name: 'menu',
-        content: state.menu,
+        content: menu,
         type: 'session'
       })
     },

+ 80 - 89
src/views/admin/role/index.vue

@@ -18,92 +18,82 @@
 <template>
   <div class="app-container calendar-list-container">
     <basic-container>
-      <avue-crud
-        ref="crud"
-        :option="tableOption"
-        :data="list"
-        :page="page"
-        v-model="form"
-        :table-loading="listLoading"
-        :before-open="handleOpenBefore"
-        @on-load="getList"
-        @search-change="handleFilter"
-        @refresh-change="handleRefreshChange"
-        @row-update="update"
-        @row-save="create">
+      <avue-crud ref="crud"
+                 :option="tableOption"
+                 :data="list"
+                 :page="page"
+                 v-model="form"
+                 :table-loading="listLoading"
+                 :before-open="handleOpenBefore"
+                 @on-load="getList"
+                 @search-change="handleFilter"
+                 @refresh-change="handleRefreshChange"
+                 @row-update="update"
+                 @row-save="create">
 
         <template slot="menuLeft">
-          <el-button
-            v-if="roleManager_btn_add"
-            class="filter-item"
-            type="primary"
-            icon="el-icon-edit"
-            @click="handleCreate">添加
+          <el-button v-if="roleManager_btn_add"
+                     class="filter-item"
+                     type="primary"
+                     icon="el-icon-edit"
+                     @click="handleCreate">添加
           </el-button>
         </template>
-        <template slot="dsScopeForm" slot-scope="scope">
+        <template slot="dsScopeForm"
+                  slot-scope="scope">
           <div v-if="form.dsType == 1">
-            <el-tree
-              ref="scopeTree"
-              :data="dsScopeData"
-              :check-strictly="true"
-              :props="defaultProps"
-              :default-checked-keys="checkedDsScope"
-              class="filter-tree"
-              node-key="id"
-              highlight-current
-              show-checkbox/>
+            <el-tree ref="scopeTree"
+                     :data="dsScopeData"
+                     :check-strictly="true"
+                     :props="defaultProps"
+                     :default-checked-keys="checkedDsScope"
+                     class="filter-tree"
+                     node-key="id"
+                     highlight-current
+                     show-checkbox />
           </div>
         </template>
 
-        <template
-          slot="menu"
-          slot-scope="scope">
-          <el-button
-            v-if="roleManager_btn_edit"
-            type="text"
-            size="mini"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row,scope.index)">编辑
+        <template slot="menu"
+                  slot-scope="scope">
+          <el-button v-if="roleManager_btn_edit"
+                     type="text"
+                     size="mini"
+                     icon="el-icon-edit"
+                     @click="handleUpdate(scope.row,scope.index)">编辑
           </el-button>
-          <el-button
-            v-if="roleManager_btn_del"
-            type="text"
-            size="mini"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row,scope.index)">删除
+          <el-button v-if="roleManager_btn_del"
+                     type="text"
+                     size="mini"
+                     icon="el-icon-delete"
+                     @click="handleDelete(scope.row,scope.index)">删除
           </el-button>
-          <el-button
-            v-if="roleManager_btn_perm"
-            type="text"
-            size="mini"
-            icon="el-icon-plus"
-            @click="handlePermission(scope.row,scope.index)">权限
+          <el-button v-if="roleManager_btn_perm"
+                     type="text"
+                     size="mini"
+                     icon="el-icon-plus"
+                     @click="handlePermission(scope.row,scope.index)">权限
           </el-button>
         </template>
       </avue-crud>
     </basic-container>
-    <el-dialog
-      :visible.sync="dialogPermissionVisible"
-      title="分配权限">
-      <el-tree
-        ref="menuTree"
-        :data="treeData"
-        :default-checked-keys="checkedKeys"
-        :check-strictly="false"
-        :props="defaultProps"
-        :filter-node-method="filterNode"
-        class="filter-tree"
-        node-key="id"
-        highlight-current
-        show-checkbox
-        default-expand-all/>
-      <div
-        slot="footer"
-        class="dialog-footer">
-        <el-button
-          type="primary"
-          @click="updatePermession(roleId)">更 新
+    <el-dialog :visible.sync="dialogPermissionVisible"
+               title="分配权限">
+      <el-tree ref="menuTree"
+               :data="treeData"
+               :default-checked-keys="checkedKeys"
+               :check-strictly="false"
+               :props="defaultProps"
+               :filter-node-method="filterNode"
+               class="filter-tree"
+               node-key="id"
+               highlight-current
+               show-checkbox
+               default-expand-all />
+      <div slot="footer"
+           class="dialog-footer">
+        <el-button type="primary"
+                   @click="updatePermession(roleId)">更 新
         </el-button>
       </div>
     </el-dialog>
@@ -119,7 +109,7 @@ import { mapGetters } from 'vuex'
 
 export default {
   name: 'TableRole',
-  data() {
+  data () {
     return {
       searchForm: {},
       tableOption: tableOption,
@@ -150,7 +140,7 @@ export default {
       roleManager_btn_perm: false
     }
   },
-  created() {
+  created () {
     this.roleManager_btn_add = this.permissions['sys_role_add']
     this.roleManager_btn_edit = this.permissions['sys_role_edit']
     this.roleManager_btn_del = this.permissions['sys_role_del']
@@ -160,7 +150,7 @@ export default {
     ...mapGetters(['elements', 'permissions'])
   },
   methods: {
-    getList(page, params) {
+    getList (page, params) {
       this.listLoading = true
       fetchList(Object.assign({
         current: page.currentPage,
@@ -173,17 +163,17 @@ export default {
         this.listLoading = false
       })
     },
-    handleRefreshChange() {
+    handleRefreshChange () {
       this.getList(this.page)
     },
-    handleFilter(form) {
+    handleFilter (form) {
       this.searchForm = form
       this.getList(this.page, form)
     },
-    handleCreate() {
+    handleCreate () {
       this.$refs.crud.rowAdd()
     },
-    handleOpenBefore(show) {
+    handleOpenBefore (show) {
       fetchTree().then(response => {
         this.dsScopeData = response.data.data
         if (this.form.dsScope) {
@@ -194,10 +184,10 @@ export default {
       })
       show()
     },
-    handleUpdate(row, index) {
+    handleUpdate (row, index) {
       this.$refs.crud.rowEdit(row, index)
     },
-    handlePermission(row) {
+    handlePermission (row) {
       fetchRoleTree(row.roleId)
         .then(response => {
           this.checkedKeys = response.data.data
@@ -219,7 +209,7 @@ export default {
        * @param temp 临时存放节点id的数组
        * @return 太监节点id数组
        */
-    resolveAllEunuchNodeId(json, idArr, temp) {
+    resolveAllEunuchNodeId (json, idArr, temp) {
       for (let i = 0; i < json.length; i++) {
         const item = json[i]
         // 存在子节点,递归遍历;不存在子节点,将json的id添加到临时数组中
@@ -231,27 +221,27 @@ export default {
       }
       return temp
     },
-    filterNode(value, data) {
+    filterNode (value, data) {
       if (!value) return true
       return data.label.indexOf(value) !== -1
     },
-    getNodeData(data, done) {
+    getNodeData (data, done) {
       done()
     },
-    handleDelete(row, index) {
+    handleDelete (row, index) {
       var _this = this
       this.$confirm('是否确认删除名称为"' + row.roleName + '"' + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
-      }).then(function() {
+      }).then(function () {
         return delObj(row.roleId)
       }).then(() => {
         this.getList(this.page)
         this.$notify.success('删除成功')
       })
     },
-    create(row, done, loading) {
+    create (row, done, loading) {
       if (this.form.dsType === 1) {
         this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',')
       }
@@ -263,7 +253,7 @@ export default {
         loading()
       })
     },
-    update(row, index, done, loading) {
+    update (row, index, done, loading) {
       if (this.form.dsType === 1) {
         this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',')
       }
@@ -275,11 +265,12 @@ export default {
         loading()
       })
     },
-    updatePermession(roleId) {
+    updatePermession (roleId) {
       this.menuIds = ''
       this.menuIds = this.$refs.menuTree.getCheckedKeys().join(',').concat(',').concat(this.$refs.menuTree.getHalfCheckedKeys().join(','))
       permissionUpd(roleId, this.menuIds).then(() => {
         this.dialogPermissionVisible = false
+        this.$store.dispatch('GetMenu', false)
         this.$notify.success('修改成功')
       })
     }