dingxin 6 år sedan
förälder
incheckning
c18c7a0a7f

+ 21
- 1
src/config/api.js Visa fil

@@ -43,6 +43,26 @@ const apis = {
43 43
     roleManagementList:{
44 44
       method:'get',
45 45
       url: `${commPrefix}/user/roleManagementList`
46
+    },
47
+    roleAll:{
48
+      method:'get',
49
+      url: `${commPrefix}/roleAll`
50
+    },
51
+    addUserRole:{
52
+      method:'post',
53
+      url: `${commPrefix}/addUserRole`
54
+    },
55
+    userRoledetails:{
56
+      method:'get',
57
+      url: `${commPrefix}/userRoledetails`
58
+    },
59
+    updateUserRolede:{
60
+      method:'post',
61
+      url: `${commPrefix}/updateUserRolede`
62
+    },
63
+    deleteUserRole:{
64
+      method:'post',
65
+      url: `${commPrefix}/deleteUserRole`
46 66
     }
47 67
   },
48 68
   type: {
@@ -299,6 +319,6 @@ const apis = {
299 319
       method:'get',
300 320
       url: `${commPrefix}/customerList`
301 321
     }
302
-  },
322
+  }
303 323
 }
304 324
 export default apis

+ 51
- 1
src/store/modules/sysuser.js Visa fil

@@ -84,11 +84,61 @@ export default {
84 84
         commit('updateList', data)
85 85
       })
86 86
     },
87
-    roleManagementList({ commit }, payload) { // 查询所有
87
+    roleManagementList({ commit }, payload) { 
88 88
       const api = lodash.get(apis, 'sysuser.roleManagementList')
89 89
       interact(api, payload).then((data) => {
90 90
         commit('updateList', data)
91 91
       })
92
+    },
93
+    roleAll({ commit }, payload) { 
94
+      const api = lodash.get(apis, 'sysuser.roleAll')
95
+      interact(api, payload).then((data) => {
96
+        commit('updateList', data)
97
+      })
98
+    },
99
+    addUserRole ({ commit }, payload) {
100
+      return new Promise((resolve, reject) => {
101
+        const api = lodash.get(apis, 'sysuser.addUserRole')
102
+        interact(api,payload).then((data) => {
103
+          commit('updateList', data)
104
+          resolve(data)
105
+        }).catch(() => {
106
+          reject()
107
+        })
108
+      })
109
+    },
110
+    userRoledetails ({ commit }, payload) {
111
+      return new Promise((resolve, reject) => {
112
+        const api = lodash.get(apis, 'sysuser.userRoledetails')
113
+        interact(api,payload).then((data) => {
114
+          commit('updateList', data)
115
+          resolve(data)
116
+        }).catch(() => {
117
+          reject()
118
+        })
119
+      })
120
+    },
121
+    updateUserRolede ({ commit }, payload) {
122
+      return new Promise((resolve, reject) => {
123
+        const api = lodash.get(apis, 'sysuser.updateUserRolede')
124
+        interact(api,payload).then((data) => {
125
+          commit('updateList', data)
126
+          resolve(data)
127
+        }).catch(() => {
128
+          reject()
129
+        })
130
+      })
131
+    },
132
+    deleteRole ({ commit }, payload) {
133
+      return new Promise((resolve, reject) => {
134
+        const api = lodash.get(apis, 'sysuser.deleteUserRole')
135
+        interact(api,payload).then((data) => {
136
+          commit('updateList', data)
137
+          resolve(data)
138
+        }).catch(() => {
139
+          reject()
140
+        })
141
+      })
92 142
     }
93 143
   }
94 144
 }

+ 18
- 0
src/views/index.js Visa fil

@@ -36,6 +36,24 @@ const pages = [
36 36
           title: '员工管理',
37 37
         },
38 38
       },
39
+      {
40
+        path: 'sysuser/userRole/addUserRole',
41
+        name: 'addUserRole',
42
+        component: () => import('./sysuser/userRole/addUserRole.vue'),
43
+        meta: {
44
+          menuShow: false,
45
+          title: '添加员工权限',
46
+        },
47
+      },
48
+      {
49
+        path: 'sysuser/userRole/userRoleedit',
50
+        name: 'userRoleedit',
51
+        component: () => import('./sysuser/userRole/userRoleedit.vue'),
52
+        meta: {
53
+          menuShow: false,
54
+          title: '修改加员工权限',
55
+        },
56
+      },
39 57
       {
40 58
         path: 'sysuser/role',
41 59
         name: 'role',

+ 140
- 0
src/views/sysuser/userRole/addUserRole.vue Visa fil

@@ -0,0 +1,140 @@
1
+<template>
2
+  <div id="root">
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">
8
+        <!-- default-expanded-keys 展示选中的
9
+             default-checked-keys 勾上选中的-->
10
+        <el-tree
11
+          ref="tree"
12
+          :data="FollowupList"
13
+          :default-expanded-keys="formInline.menuArray"
14
+          :default-checked-keys="formInline.menuArray"
15
+          :props="defaultProps"
16
+          show-checkbox
17
+          node-key="id"
18
+          @check-change="handleCheckChange"/>
19
+      </el-form-item>
20
+      <el-form-item>
21
+        <el-button type="primary" @click="submitForm('formInline')">立即创建</el-button>
22
+      </el-form-item>
23
+    </el-form>
24
+  </div>
25
+</template>
26
+<script>
27
+import { createNamespacedHelpers } from 'vuex'
28
+const {mapState: mapUserManagementState, mapActions: mapUserManagementActions} = createNamespacedHelpers('sysuser')
29
+
30
+export default {
31
+  name: 'followup-index',
32
+  data() {
33
+    return {
34
+      formInline: {
35
+        customerName:'',
36
+        personName: '',
37
+        phone: '',
38
+        platNumber: '',
39
+        pageNum: 1,
40
+        pageSize: 10,
41
+        menuArray:[],
42
+        roleId:[],
43
+         empty:[]
44
+
45
+      },
46
+      defaultProps: {
47
+          id: 'id',
48
+        label: 'roleName'
49
+     },
50
+     rules: {
51
+        userName: [
52
+          { required: true, message: '名称', trigger: 'blur' }
53
+        ],
54
+        phone: [
55
+          { required: true, message: '请输入手机号', trigger: 'blur' },
56
+          { min: 11, max: 11, required: true, message: '请输入11位手机号', trigger: 'blur' }
57
+        ],
58
+        menuArray: [
59
+          { required: true, message: '请选择角色', trigger: 'blur' }
60
+        ]
61
+      }
62
+    }
63
+  },
64
+  computed: {
65
+    ...mapUserManagementState({
66
+     FollowupList: x => x.list
67
+    })
68
+  },
69
+  created() {
70
+    this.dateQuery()
71
+  },
72
+  methods: {
73
+    ...mapUserManagementActions([
74
+      'roleAll',
75
+      'addUserRole'
76
+    ]),
77
+    onSubmit() {
78
+      this.dateQuery()
79
+    },
80
+    dateQuery() {
81
+       this.roleAll(this.formInline)
82
+    },
83
+    handleSizeChange(val) {
84
+      // console.log(`每页 ${val} 条`)
85
+      this.formInline.pageSize = val
86
+    },
87
+    handleCurrentChange(val) {
88
+      // console.log(`当前页: ${val}`)
89
+      this.formInline.pageNum = val
90
+      this.dateQuery()
91
+    },
92
+    clear(){
93
+      this.formInline.customerName = ''
94
+      this.formInline.phone = ''
95
+      this.formInline.platNumber = ''
96
+      this.formInline.pageNum = 1
97
+      this.formInline.pageSize = 10
98
+      this.dateQuery()
99
+    },
100
+    addUser(){
101
+      this.$router.push({ name: 'addUserRole' })
102
+    },
103
+    submitForm(formName ){
104
+      // 获取选中的树形节点 key
105
+      this.formInline.menuArray = this.$refs.tree.getCheckedKeys()
106
+      this.$refs[formName].validate((valid) => {
107
+        const loading = this.$loading({
108
+          lock: false,
109
+          text: 'Loading',
110
+          spinner: 'el-icon-loading',
111
+          background: 'rgba(0, 0, 0, 0.7)'
112
+        })    
113
+      if(valid){ 
114
+       this.formInline.menuArray = this.$refs.tree.getCheckedNodes()
115
+       this.formInline.menuArray.map((item) => {
116
+       this.formInline.roleId.push(item.roleId)
117
+       })
118
+       this.addUserRole(this.formInline).then((data)=>{ 
119
+         if(data.phone === this.formInline.phone){
120
+             this.$router.push({ name: 'userRole' })
121
+             return
122
+             }
123
+       })}
124
+     
125
+           loading.close()
126
+      })
127
+    this.formInline.roleId = [] 
128
+  }
129
+}
130
+}
131
+</script>
132
+
133
+<style scoped>
134
+.demo-formInline {
135
+  width: 500px;
136
+  margin-top: 20px;
137
+  margin-left: auto;
138
+  margin-right: auto;
139
+}
140
+</style>

+ 38
- 30
src/views/sysuser/userRole/list.vue Visa fil

@@ -2,7 +2,7 @@
2 2
   <div id="root">
3 3
     <el-form :inline="true" :model="formInline" class="demo-form-inline">
4 4
       <el-form-item label="姓名">
5
-        <el-input v-model="formInline.customerName" placeholder="姓名"></el-input>
5
+        <el-input v-model="formInline.userName" placeholder="姓名"></el-input>
6 6
       </el-form-item> 
7 7
       <el-form-item label="电话">
8 8
         <el-input v-model="formInline.phone" placeholder="电话"></el-input>
@@ -12,16 +12,19 @@
12 12
         <el-button type="info" @click="clear">重置</el-button>
13 13
       </el-form-item>
14 14
     </el-form>
15
+  <el-row>
16
+    <el-button type="primary" @click="addUserRole()">添加</el-button>
17
+  </el-row>
15 18
     <el-table
16
-    :data="FollowupList"
19
+    :data="FollowupList.records"
17 20
     border>
18 21
     <el-table-column
19
-      prop="customerId"
22
+      prop="username"
20 23
       align='center'
21 24
       label="姓名">
22 25
     </el-table-column>
23 26
     <el-table-column
24
-      prop="customerName"
27
+      prop="roleName"
25 28
       align='center'
26 29
       label="角色名称">
27 30
     </el-table-column>
@@ -30,6 +33,15 @@
30 33
       align='center'
31 34
       label="电话">
32 35
     </el-table-column>
36
+     <el-table-column
37
+        fixed="right"
38
+        label="操作"
39
+        align='center'>
40
+        <template slot-scope="scope">
41
+          <el-button type="text" @click="handleEdit(scope.row.userId)" size="small">编辑</el-button>
42
+          <el-button type="text" @click="userRoleDelete(scope.row.userId)" size="small">删除</el-button>
43
+        </template>
44
+      </el-table-column>
33 45
   </el-table>
34 46
     <el-pagination
35 47
             style="margin-top:50px;float:right"
@@ -39,8 +51,9 @@
39 51
             :page-sizes="[1,10, 20, 30, 40]"
40 52
             :page-size="formInline.pageSize"
41 53
             layout="total, sizes, prev, pager, next, jumper"
54
+            :total="FollowupList.total || 0"
42 55
             >
43
-            <!-- :total="FollowupList.total || 0" -->
56
+           
44 57
     </el-pagination>
45 58
   </div>
46 59
 </template>
@@ -53,26 +66,29 @@ export default {
53 66
   data() {
54 67
     return {
55 68
       formInline: {
56
-        customerName:'',
69
+        userName:'',
57 70
         personName: '',
58 71
         phone: '',
59 72
         platNumber: '',
60 73
         pageNum: 1,
61
-        pageSize: 10
74
+        pageSize: 10,
75
+        userId: ''
62 76
       }
63 77
     }
64 78
   },
65 79
   computed: {
66 80
     ...mapUserManagementState({
67
-    FollowupList: x => x.followup
81
+     FollowupList: x => x.list,
68 82
     })
69 83
   },
70 84
   created() {
85
+     
71 86
     this.getPage()
72 87
   },
73 88
   methods: {
74 89
     ...mapUserManagementActions([
75 90
       'getUserManagementList',
91
+      'deleteRole'
76 92
     ]),
77 93
     onSubmit() {
78 94
       this.getPage()
@@ -93,36 +109,28 @@ export default {
93 109
       this.formInline.pageNum = val
94 110
       this.getPage()
95 111
     },
96
-    favorHouse (msg) {
97
-      if (msg == '1') {
98
-        return "三房"
99
-      } else if(msg == '2'){
100
-        return "四房"
101
-      }else if(msg == '3'){
102
-        return "四房以上"
103
-      }
104
-    },
105
-    favorLevel (msg) {
106
-      if (msg == 'A') {
107
-        return "买房"
108
-      } else if(msg == 'B'){
109
-        return "有意向金"
110
-      }else if(msg == 'C'){
111
-        return "考虑中"
112
-      }else if(msg == 'D'){
113
-        return "不买"
114
-      }
115
-    },
116 112
     clear(){
113
+      this.formInline.userName = ''
117 114
       this.formInline.customerName = ''
118 115
       this.formInline.phone = ''
119 116
       this.formInline.platNumber = ''
120 117
       this.formInline.pageNum = 1
121 118
       this.formInline.pageSize = 10
122 119
       this.getPage()
120
+    },
121
+    addUserRole(){
122
+      this.$router.push({ name: 'addUserRole' })
123
+
124
+    },
125
+    handleEdit(id){
126
+       this.$router.push({ name: 'userRoleedit', query: {id:id} })
127
+    },
128
+    userRoleDelete(id){
129
+       this.formInline.userId = id
130
+       this.deleteRole(this.formInline)
131
+       this.getPage()
123 132
     }
124
-   
125
-  }
133
+   }
126 134
 }
127 135
 </script>
128 136
 

+ 160
- 0
src/views/sysuser/userRole/userRoleedit.vue Visa fil

@@ -0,0 +1,160 @@
1
+<template>
2
+  <div id="root">
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.userName" placeholder="姓名" disabled/>
6
+      </el-form-item>
7
+      <el-form-item class="filter-item" label="手机号" prop="phone" >
8
+        <el-input v-model.trim="formInline.phone" placeholder="手机号" disabled/>
9
+      </el-form-item>
10
+      <el-form-item label="角色" prop="menuArray">
11
+        <!-- default-expanded-keys 展示选中的
12
+             default-checked-keys 勾上选中的-->
13
+        <el-tree
14
+          ref="tree"
15
+          node-key="roleId"
16
+          :data="FollowupList.sysRole"
17
+          :default-expanded-keys="[1]"
18
+          :default-checked-keys="this.formInline.menuArray"
19
+          :props="defaultProps"
20
+          show-checkbox
21
+          @check-change="handleCheckChange"/>
22
+      </el-form-item>
23
+      <el-form-item>
24
+        <el-button type="primary" @click="submitForm('formInline')">立即创建</el-button>
25
+      </el-form-item>
26
+    </el-form>
27
+  </div>
28
+</template>
29
+<script>
30
+import { createNamespacedHelpers } from 'vuex'
31
+const {mapState: mapUserManagementState, mapActions: mapUserManagementActions} = createNamespacedHelpers('sysuser')
32
+
33
+export default {
34
+  name: 'followup-index',
35
+  data() {
36
+    return {
37
+      formInline: {
38
+        customerName:'',
39
+        personName: '',
40
+        phone: '',
41
+        platNumber: '',
42
+        pageNum: 1,
43
+        pageSize: 10,
44
+        menuArray:[],
45
+        roleId:[],
46
+        userId:'',
47
+        userName: '',
48
+
49
+      },
50
+      defaultProps: {
51
+          label: 'roleName'
52
+     },
53
+     fullscreenLoading: false,
54
+     rules: {
55
+        userName: [
56
+          { required: true, message: '名称', trigger: 'blur' }
57
+        ],
58
+        loginName: [
59
+          { required: true, message: '请输入手机号', trigger: 'blur' },
60
+          { min: 11, max: 11, required: true, message: '请输入11位手机号', trigger: 'blur' }
61
+        ],
62
+        menuArray: [
63
+          { required: true, message: '请选择角色', trigger: 'blur' }
64
+        ]
65
+      }
66
+    }
67
+  },
68
+  computed: {
69
+    ...mapUserManagementState({
70
+     FollowupList: x => x.list
71
+    })
72
+  },
73
+  created() {
74
+    this.formInline.userId = this.$route.query.id
75
+    this.dataQuery()
76
+  },
77
+  methods: {
78
+    ...mapUserManagementActions([
79
+      'userRoledetails',
80
+      'updateUserRolede'
81
+    ]),
82
+    onSubmit() {
83
+      this.dataQuery()
84
+    },
85
+    dataQuery() {
86
+       this.userRoledetails(this.formInline).then((data)=>{
87
+         this.formInline.menuArray = data.arrayList;
88
+         this.formInline.phone = data.user.phone 
89
+         this.formInline.userName = data.user.username
90
+       })
91
+    },
92
+    handleSizeChange(val) {
93
+      // console.log(`每页 ${val} 条`)
94
+      this.formInline.pageSize = val
95
+    },
96
+    handleCurrentChange(val) {
97
+      // console.log(`当前页: ${val}`)
98
+      this.formInline.pageNum = val
99
+      this.dataQuery()
100
+    },
101
+    clear(){
102
+      this.formInline.customerName = ''
103
+      this.formInline.phone = ''
104
+      this.formInline.platNumber = ''
105
+      this.formInline.pageNum = 1
106
+      this.formInline.pageSize = 10
107
+      this.dataQuery()
108
+    },
109
+    addUser(){
110
+      this.$router.push({ name: 'addUserRole' })
111
+    },
112
+      resetForm(formName) {
113
+      this.$refs[formName].resetFields()
114
+    },
115
+    submitForm(formName ){
116
+      // 获取选中的树形节点 key
117
+      this.formInline.menuArray = this.$refs.tree.getCheckedKeys()
118
+        this.fullscreenLoading = true;
119
+        setTimeout(() => {
120
+          this.fullscreenLoading = false;
121
+        }, 2000);
122
+      this.$refs[formName].validate((valid) => {
123
+        const loading = this.$loading({
124
+          lock: false,
125
+          text: 'Loading',
126
+          spinner: 'el-icon-loading',
127
+          background: 'rgba(0, 0, 0, 0.7)'
128
+        })
129
+      if(valid){  
130
+          this.updateUserRolede(this.formInline).then(()=>{
131
+             this.$router.push({ name: 'userRole' })  
132
+            loading.close()
133
+            return false  
134
+  
135
+       })
136
+      }else{
137
+      loading.close()
138
+      return false
139
+      }
140
+      })
141
+  },
142
+  // 获取当前所有key
143
+  acquireKey(){
144
+       this.formInline.menuArray = this.$refs.tree.getCheckedNodes()
145
+       this.formInline.menuArray.map((item) => {
146
+       this.formInline.roleId.push(item.roleId)
147
+       })
148
+  }
149
+}
150
+}
151
+</script>
152
+
153
+<style scoped>
154
+.demo-formInline {
155
+  width: 500px;
156
+  margin-top: 20px;
157
+  margin-left: auto;
158
+  margin-right: auto;
159
+}
160
+</style>