张延森 6 years ago
parent
commit
6d1c143e01

+ 14
- 1
src/config/api.js View File

345
       method: 'delete',
345
       method: 'delete',
346
       url: `${commPrefix}/role`
346
       url: `${commPrefix}/role`
347
     }
347
     }
348
-  }
348
+  },
349
+  menu:{
350
+    list: {
351
+      method: 'get',
352
+      url: `${commPrefix}/sysmenu`
353
+    },
354
+    add: {
355
+      method: 'post',
356
+      url: `${commPrefix}/sysmenuAdd`
357
+    },
358
+    
359
+  },
360
+  
361
+
349
 }
362
 }
350
 export default apis
363
 export default apis

+ 2
- 0
src/store/index.js View File

19
 import followup from './modules/followup'
19
 import followup from './modules/followup'
20
 import sysyrole from './modules/role'
20
 import sysyrole from './modules/role'
21
 import goods from './modules/goods'
21
 import goods from './modules/goods'
22
+import sysmenu from './modules/sysmenu'
22
 
23
 
23
 Vue.use(Vuex)
24
 Vue.use(Vuex)
24
 
25
 
43
     followup,
44
     followup,
44
     sysyrole,
45
     sysyrole,
45
     goods,
46
     goods,
47
+    sysmenu,
46
   }
48
   }
47
 })
49
 })
48
 
50
 

+ 11
- 0
src/store/modules/role.js View File

83
 
83
 
84
             })
84
             })
85
         },
85
         },
86
+        aAddNode({ commit }) {
87
+            return new Promise((resolve, reject) => {
88
+                const api = lodash.get(apis, 'menu.add')
89
+                interact(api).then((data) => {
90
+                    resolve(data)
91
+                    commit('setMenus', data)
92
+                }).catch(() => {
93
+                    reject()
94
+                })
95
+            })
96
+        },
86
     }
97
     }
87
 }
98
 }

+ 2
- 2
src/store/modules/sysuser.js View File

107
         })
107
         })
108
       })
108
       })
109
     },
109
     },
110
-    userRoledetails ({ commit }, payload) {
110
+    userRoledetails (_, payload) {
111
       return new Promise((resolve, reject) => {
111
       return new Promise((resolve, reject) => {
112
         const api = lodash.get(apis, 'sysuser.userRoledetails')
112
         const api = lodash.get(apis, 'sysuser.userRoledetails')
113
         interact(api,payload).then((data) => {
113
         interact(api,payload).then((data) => {
114
-          commit('updateList', data)
114
+          //commit('updateList', data)
115
           resolve(data)
115
           resolve(data)
116
         }).catch(() => {
116
         }).catch(() => {
117
           reject()
117
           reject()

+ 22
- 4
src/views/index.js View File

40
           },
40
           },
41
         ],
41
         ],
42
       },
42
       },
43
+      // {
44
+      //   path: 'sysuser/userRole',
45
+      //   name: 'userRole',
46
+      //   component: () => import('./sysuser/userRole/list.vue'),
47
+      //   meta: {
48
+      //     menuShow: true,
49
+      //     title: '人员角色',
50
+      //   },
51
+      // },
43
       {
52
       {
44
-        path: 'sysuser/userRole',
45
-        name: 'userRole',
46
-        component: () => import('./sysuser/userRole/list.vue'),
53
+        path: 'sysmenu/list',
54
+        name: 'sysmenu',
55
+        component: () => import('./sysmenu/list.vue'),
47
         meta: {
56
         meta: {
48
           menuShow: true,
57
           menuShow: true,
49
-          title: '人员角色',
58
+          title: '菜单管理',
59
+        },
60
+      },
61
+      {
62
+        path: 'sysmenu/add',
63
+        name: 'sysmenuAdd',
64
+        component: () => import('./sysmenu/add.vue'),
65
+        meta: {
66
+          menuShow: false,
67
+          title: '添加菜单',
50
         },
68
         },
51
       },
69
       },
52
       {
70
       {

+ 36
- 1
src/views/sysuser/edit.vue View File

23
           <el-option label="启用" :value="1"></el-option>
23
           <el-option label="启用" :value="1"></el-option>
24
         </el-select>
24
         </el-select>
25
       </el-form-item>
25
       </el-form-item>
26
+
27
+      <el-form-item label="角色权限"  required>
28
+      <el-select v-model="roleId" multiple placeholder="请选择">
29
+      <el-option
30
+      v-for="(item, index) in sysRole"
31
+      :key="index"
32
+      :label="item.roleName"
33
+      :value="item.roleId">
34
+      </el-option>
35
+      </el-select>
36
+      </el-form-item>
26
       <el-form-item>
37
       <el-form-item>
27
         <el-button type="primary" @click="onSubmit">保存</el-button>
38
         <el-button type="primary" @click="onSubmit">保存</el-button>
28
         <el-button @click="onCancel">取消</el-button>
39
         <el-button @click="onCancel">取消</el-button>
39
 export default {
50
 export default {
40
   data () {
51
   data () {
41
     return {
52
     return {
53
+      formInline: {
54
+        userId: '',
55
+        label: [],
56
+        value: [],
57
+        menuArray: []
58
+        
59
+      },
60
+      roleId: [],
61
+      sysRole:[],
42
       rules: {
62
       rules: {
43
         nickname: [
63
         nickname: [
44
           { required: true, message: '请输入用户名', trigger: 'blur' }
64
           { required: true, message: '请输入用户名', trigger: 'blur' }
49
         status: [
69
         status: [
50
           { required: true, message: '请选择状态', trigger: 'change' }
70
           { required: true, message: '请选择状态', trigger: 'change' }
51
         ],
71
         ],
52
-      }
72
+      },
73
+    
74
+        value1: [],
75
+        value2: []
53
     }
76
     }
54
   },
77
   },
55
   methods: {
78
   methods: {
57
       'getDetail',
80
       'getDetail',
58
       'addSysUser',
81
       'addSysUser',
59
       'editSysUser',
82
       'editSysUser',
83
+      'userRoledetails',
84
+      'updateUserRolede',
60
     ]),
85
     ]),
61
     ...mapUserMutations([
86
     ...mapUserMutations([
62
       'updateDetail',
87
       'updateDetail',
88
+      
63
     ]),
89
     ]),
64
     onCancel () {
90
     onCancel () {
65
       this.$router.back()
91
       this.$router.back()
81
           this.editSysUser({...this.detail, isSales: 1}).then(() => {
107
           this.editSysUser({...this.detail, isSales: 1}).then(() => {
82
             this.$notify.success('编辑信息成功')
108
             this.$notify.success('编辑信息成功')
83
           })
109
           })
110
+          // 保存角色
111
+          console.log('this.formInline.menuArray',this.formInline.menuArray)
112
+          this.formInline.menuArray = this.roleId
113
+          this.updateUserRolede(this.formInline)
84
         }
114
         }
85
 
115
 
86
       })
116
       })
102
     }),
132
     }),
103
   },
133
   },
104
   created () {
134
   created () {
135
+    this.formInline.userId = this.$route.query.id
136
+    this.userRoledetails(this.formInline).then((data)=>{
137
+        this.sysRole = data.sysRole
138
+        this.roleId = data.arrayList
139
+    })
105
     this.init()
140
     this.init()
106
   },
141
   },
107
 }
142
 }

+ 62
- 6
src/views/sysuser/list.vue View File

2
 <r-layout>
2
 <r-layout>
3
   <xm-search @submit="search">
3
   <xm-search @submit="search">
4
     <el-form-item>
4
     <el-form-item>
5
-      <el-input v-model="filterData.name" placeholder="用户名" clearable></el-input>
5
+      <el-input v-model="listQuery.name" placeholder="用户名" clearable></el-input>
6
     </el-form-item>
6
     </el-form-item>
7
     <el-form-item>
7
     <el-form-item>
8
-      <el-input v-model="filterData.phone" placeholder="手机号" clearable></el-input>
8
+      <el-input v-model="listQuery.phone" placeholder="手机号" clearable></el-input>
9
     </el-form-item>
9
     </el-form-item>
10
     <el-form-item>
10
     <el-form-item>
11
-        <el-select v-model="filterData.identity" placeholder="请选择">
11
+        <el-select v-model="listQuery.identity" placeholder="请选择">
12
           <el-option label="全部"></el-option>
12
           <el-option label="全部"></el-option>
13
           <el-option
13
           <el-option
14
             v-for="item in identityDict"
14
             v-for="item in identityDict"
55
       </el-table-column>
55
       </el-table-column>
56
       <el-table-column
56
       <el-table-column
57
         fixed="right"
57
         fixed="right"
58
-        label="操作"
59
-        width="120">
58
+        label="操作">
60
         <template slot-scope="scope">
59
         <template slot-scope="scope">
61
           <el-button type="text" @click="handleEdit(scope.row)" size="small">编辑</el-button>
60
           <el-button type="text" @click="handleEdit(scope.row)" size="small">编辑</el-button>
61
+           <el-button type="text" @click="addUserRole(scope.row)" size="small">添加权限</el-button>       
62
         </template>
62
         </template>
63
       </el-table-column>
63
       </el-table-column>
64
     </el-table>
64
     </el-table>
73
     @current-change="getList"
73
     @current-change="getList"
74
   >
74
   >
75
   </el-pagination>
75
   </el-pagination>
76
+
77
+    <el-dialog title="添加权限" :visible.sync="filterData.dialogFormVisible" :show-close="filterData.close">
78
+      <el-form :model="filterData">  
79
+      <el-form-item label="角色权限"  required>
80
+      <el-select v-model="userRoleId" multiple placeholder="请选择">
81
+      <el-option
82
+      v-for="(item, index) in sysRole"
83
+      :key="index"
84
+      :label="item.roleName"
85
+      :value="item.roleId">
86
+      </el-option>
87
+      </el-select>
88
+      </el-form-item>
89
+
90
+      </el-form>
91
+      <div slot="footer" class="dialog-footer">
92
+        <el-button @click="TransactionReplyOff">取 消</el-button>
93
+        <el-button type="primary" @click="TransactionReplyAdd()">确 定</el-button>
94
+      </div>
95
+    </el-dialog>
96
+
97
+
76
 </r-layout>
98
 </r-layout>
77
 </template>
99
 </template>
78
 
100
 
89
         name: '',
111
         name: '',
90
         phone: '',
112
         phone: '',
91
         identity: undefined,
113
         identity: undefined,
114
+        dialogFormVisible: false,
115
+        close: false,
116
+        menuArray:[]
92
       },
117
       },
118
+      listQuery: {
119
+        name: '',
120
+        phone: '',
121
+        identity: undefined,
122
+      },
123
+      sysRole:[],
124
+      userRoleId:[],
93
       pageNavi: {
125
       pageNavi: {
94
         page: 1,
126
         page: 1,
95
         size: 10,
127
         size: 10,
106
   methods: {
138
   methods: {
107
     ...mapUserActions([
139
     ...mapUserActions([
108
       'getSysUserList',
140
       'getSysUserList',
141
+      'userRoledetails',
142
+      'updateUserRolede',
109
     ]),
143
     ]),
110
     handleEdit (row) {
144
     handleEdit (row) {
111
       this.$router.push({ name: 'sysuseredit', query: {id: row.userId} })
145
       this.$router.push({ name: 'sysuseredit', query: {id: row.userId} })
112
     },
146
     },
147
+    addUserRole (row) {
148
+      this.filterData.userId = row.userId;
149
+          this.userRoledetails(this.filterData).then((data)=>{
150
+          this.sysRole = data.sysRole
151
+          this.userRoleId = data.arrayList
152
+      })
153
+      this.filterData.dialogFormVisible = true
154
+    },
113
     addUser () {
155
     addUser () {
114
       this.$router.push({ name: 'sysuseredit' })
156
       this.$router.push({ name: 'sysuseredit' })
115
     },
157
     },
117
       this.getSysUserList({
159
       this.getSysUserList({
118
         pageNum: this.pageNavi.page || 1,
160
         pageNum: this.pageNavi.page || 1,
119
         pageSize: this.pageNavi.size,
161
         pageSize: this.pageNavi.size,
120
-        ...this.filterData,
162
+        ...this.listQuery,
121
       }).then((data) => {
163
       }).then((data) => {
122
         const { current: page, size, total } = data
164
         const { current: page, size, total } = data
123
         this.pageNavi = { page, size, total }
165
         this.pageNavi = { page, size, total }
139
     getIdentityName (val) {
181
     getIdentityName (val) {
140
       const identity = (this.identityDict || []).filter(x => x.value == val)[0] || {}
182
       const identity = (this.identityDict || []).filter(x => x.value == val)[0] || {}
141
       return identity.label || '-'
183
       return identity.label || '-'
184
+    },
185
+    TransactionReplyOff(){
186
+      this.filterData.dialogFormVisible = false
187
+      this.getList()
188
+    },
189
+    TransactionReplyAdd(){
190
+          this.filterData.menuArray = this.userRoleId
191
+          this.updateUserRolede(this.filterData).then((res)=>{
192
+            console.log('测试返回值:', res)
193
+            this.getList()
194
+          })
195
+          this.filterData.dialogFormVisible = false 
196
+          
142
     }
197
     }
198
+    
143
   },
199
   },
144
   created () {
200
   created () {
145
     this.init()
201
     this.init()

+ 7
- 9
src/views/sysuser/userRole/addUserRole.vue View File

1
 <template>
1
 <template>
2
   <div id="root">
2
   <div id="root">
3
     <el-form ref="formInline" :model="formInline" :rules="rules" label-width="100px" class="demo-formInline">
3
     <el-form ref="formInline" :model="formInline" :rules="rules" label-width="100px" class="demo-formInline">
4
-      <el-form-item class="filter-item" label="手机号" prop="phone" >
5
-        <el-input v-model.trim="formInline.phone" placeholder="手机号" />
6
-      </el-form-item>
7
       <el-form-item label="角色" prop="menuArray">
4
       <el-form-item label="角色" prop="menuArray">
8
         <!-- default-expanded-keys 展示选中的
5
         <!-- default-expanded-keys 展示选中的
9
              default-checked-keys 勾上选中的-->
6
              default-checked-keys 勾上选中的-->
14
           :default-checked-keys="formInline.menuArray"
11
           :default-checked-keys="formInline.menuArray"
15
           :props="defaultProps"
12
           :props="defaultProps"
16
           show-checkbox
13
           show-checkbox
17
-          node-key="id"
18
-          @check-change="handleCheckChange"/>
14
+          node-key="id"/>
19
       </el-form-item>
15
       </el-form-item>
20
       <el-form-item>
16
       <el-form-item>
21
-        <el-button type="primary" @click="submitForm('formInline')">立即创建</el-button>
17
+        <el-button type="primary" @click="submitForm('formInline')">添加权限</el-button>
22
       </el-form-item>
18
       </el-form-item>
23
     </el-form>
19
     </el-form>
24
   </div>
20
   </div>
40
         pageSize: 10,
36
         pageSize: 10,
41
         menuArray:[],
37
         menuArray:[],
42
         roleId:[],
38
         roleId:[],
43
-         empty:[]
39
+         empty:[],
40
+         userId:'',
44
 
41
 
45
       },
42
       },
46
       defaultProps: {
43
       defaultProps: {
67
     })
64
     })
68
   },
65
   },
69
   created() {
66
   created() {
67
+    this.formInline.userId = this.$route.query.id
70
     this.dateQuery()
68
     this.dateQuery()
71
   },
69
   },
72
   methods: {
70
   methods: {
116
        this.formInline.roleId.push(item.roleId)
114
        this.formInline.roleId.push(item.roleId)
117
        })
115
        })
118
        this.addUserRole(this.formInline).then((data)=>{ 
116
        this.addUserRole(this.formInline).then((data)=>{ 
119
-         if(data.phone === this.formInline.phone){
120
-             this.$router.push({ name: 'userRole' })
117
+         if(data.userId === this.formInline.userId){
118
+             this.$router.push({ name: 'sysuserlist' })
121
              return
119
              return
122
              }
120
              }
123
        })}
121
        })}