Ver código fonte

Merge branch 'v4' of http://git.ycjcjy.com/welcome/pc-welcome3 into v4

张延森 6 anos atrás
pai
commit
0d7703e570

+ 46
- 0
src/config/api.js Ver arquivo

@@ -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: {
@@ -300,5 +320,31 @@ const apis = {
300 320
       url: `${commPrefix}/customerList`
301 321
     }
302 322
   },
323
+  sysRole: {
324
+    list: {
325
+      method: 'get',
326
+      url: `${commPrefix}/role`
327
+    },
328
+    getById: {
329
+      method: 'get',
330
+      url: `${commPrefix}/roleById`
331
+    },
332
+    save: {
333
+      method: 'post',
334
+      url: `${commPrefix}/role`
335
+    },
336
+    update: {
337
+      method: 'put',
338
+      url: `${commPrefix}/role`
339
+    },
340
+    menu: {
341
+      method: 'get',
342
+      url: `${commPrefix}/menus`
343
+    },
344
+    deleteMenu: {
345
+      method: 'delete',
346
+      url: `${commPrefix}/role`
347
+    }
348
+  }
303 349
 }
304 350
 export default apis

+ 3
- 1
src/store/index.js Ver arquivo

@@ -17,6 +17,7 @@ import management from './modules/management'
17 17
 import visitor from './modules/visitor' 
18 18
 import lobby from './modules/lobby'
19 19
 import followup from './modules/followup'
20
+import sysyrole from './modules/role'
20 21
 
21 22
 Vue.use(Vuex)
22 23
 
@@ -38,7 +39,8 @@ const store = new Vuex.Store({
38 39
     management,
39 40
     visitor,
40 41
     lobby,
41
-    followup
42
+    followup,
43
+    sysyrole
42 44
   }
43 45
 })
44 46
 

+ 1
- 1
src/store/modules/content.js Ver arquivo

@@ -25,7 +25,7 @@ export default {
25 25
     },
26 26
     addContent ({ commit }, payload) {
27 27
       const { onSuccess } = payload
28
-      const api = lodash.get(apis, 'content.add')
28
+      const api = lodash.get(apis, 'content.edi.vue')
29 29
       interact(api, payload.detail).then((data) => {
30 30
         commit('appendList', data)
31 31
         if (onSuccess) {

+ 1
- 1
src/store/modules/firstpage.js Ver arquivo

@@ -39,7 +39,7 @@ export default {
39 39
     },
40 40
     addFirstPage ( _, payload) {
41 41
       const { onSuccess } = payload
42
-      const api = lodash.get(apis, 'firstpage.add')
42
+      const api = lodash.get(apis, 'firstpage.edi.vue')
43 43
       interact(api, payload.detail).then((data) => {
44 44
         onSuccess(data)
45 45
       })

+ 1
- 1
src/store/modules/management.js Ver arquivo

@@ -20,7 +20,7 @@ export default {
20 20
       })
21 21
     },
22 22
     addManagement ({ commit }, payload) {
23
-      const api = replaceApiParams(lodash.get(apis, 'management.add'), payload)
23
+      const api = replaceApiParams(lodash.get(apis, 'management.edi.vue'), payload)
24 24
       interact(api).then((data) => {
25 25
         commit('updateManagement', data)
26 26
       })

+ 1
- 1
src/store/modules/notice.js Ver arquivo

@@ -34,7 +34,7 @@ export default {
34 34
     },
35 35
     addNotice ( _, payload) {
36 36
       const { onSuccess } = payload
37
-      const api = lodash.get(apis, 'notice.add')
37
+      const api = lodash.get(apis, 'notice.edi.vue')
38 38
       interact(api, payload.detail).then((data) => {
39 39
         onSuccess(data)
40 40
       })

+ 1
- 1
src/store/modules/person.js Ver arquivo

@@ -98,7 +98,7 @@ export default {
98 98
     },
99 99
     addPerson ( _, payload) {
100 100
       const { onSuccess } = payload
101
-      const api = lodash.get(apis, 'person.add')
101
+      const api = lodash.get(apis, 'person.edi.vue')
102 102
       interact(api, payload.detail).then((data) => {
103 103
         onSuccess(data)
104 104
       })

+ 87
- 0
src/store/modules/role.js Ver arquivo

@@ -0,0 +1,87 @@
1
+import lodash from 'lodash'
2
+import { interact, replaceApiParams } from '../../utils'
3
+import apis from '../../config/api'
4
+
5
+export default {
6
+    namespaced: true,
7
+    state: {
8
+        data: [],
9
+        menus: [],
10
+    },
11
+    mutations: {
12
+        setList(state, payload) {
13
+            state.data = payload
14
+        },
15
+        setMenus(state, payload) {
16
+            state.menus = payload
17
+        }
18
+    },
19
+    actions: {
20
+        GetList({ commit }, payload) {
21
+            return new Promise((resolve, reject) => {
22
+                const api = lodash.get(apis,'sysRole.list')
23
+                interact(api, payload).then((data) => {
24
+                    commit('setList', data)
25
+                    resolve(data)
26
+                }).catch(()=>{
27
+                    reject()
28
+                })
29
+
30
+            })
31
+        },
32
+        AddRole( _, payload) {
33
+            return new Promise((resolve, reject) => {
34
+                const api = lodash.get(apis,'sysRole.save')
35
+                interact(api, payload).then((data)=> {
36
+                    resolve(data)
37
+                }).catch(()=>{
38
+                    reject()
39
+                })
40
+            })
41
+        },
42
+        GetMenus({ commit }) {
43
+            return new Promise((resolve, reject) => {
44
+                const api = lodash.get(apis, 'sysRole.menu')
45
+                interact(api).then((data) => {
46
+                    resolve(data)
47
+                    commit('setMenus', data)
48
+                }).catch(() => {
49
+                    reject()
50
+                })
51
+            })
52
+        },
53
+        GetById(_, payload) {
54
+            return new Promise((resolve, reject) => {
55
+                const api = lodash.get(apis,'sysRole.getById')
56
+                interact(api, payload).then((data) => {
57
+                    resolve(data)
58
+                }).catch(()=>{
59
+                    reject()
60
+                })
61
+
62
+            })
63
+        },
64
+        UpdateRole(_, payload) {
65
+            return new Promise((resolve, reject) => {
66
+                const api = lodash.get(apis,'sysRole.update')
67
+                interact(api, payload).then((data) => {
68
+                    resolve(data)
69
+                }).catch(()=>{
70
+                    reject()
71
+                })
72
+
73
+            })
74
+        },
75
+        DeleteMenu(_, payload) {
76
+            return new Promise((resolve, reject) => {
77
+                const api = lodash.get(apis,'sysRole.deleteMenu')
78
+                interact(api, payload).then((data) => {
79
+                    resolve(data)
80
+                }).catch(()=>{
81
+                    reject()
82
+                })
83
+
84
+            })
85
+        },
86
+    }
87
+}

+ 52
- 2
src/store/modules/sysuser.js Ver arquivo

@@ -60,7 +60,7 @@ export default {
60 60
     },
61 61
     addSysUser ( _, payload) {
62 62
       const dtStr = window.JSON.stringify(payload)
63
-      const api = lodash.get(apis, 'sysuser.add')
63
+      const api = lodash.get(apis, 'sysuser.edi.vue')
64 64
       return interact(api, dtStr)
65 65
     },
66 66
     editSysUser ( _, payload) {
@@ -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
 }

+ 1
- 1
src/store/modules/type.js Ver arquivo

@@ -41,7 +41,7 @@ export default {
41 41
     },
42 42
     addType (_, payload) {
43 43
       const { onSuccess } = payload
44
-      const api = lodash.get(apis, 'type.add')
44
+      const api = lodash.get(apis, 'type.edi.vue')
45 45
       interact(api, payload.detail).then((data) => {
46 46
         onSuccess(data)
47 47
       })

+ 1
- 1
src/store/modules/words.js Ver arquivo

@@ -42,7 +42,7 @@ export default {
42 42
     },
43 43
     addWords ( _, payload) {
44 44
       const { onSuccess } = payload
45
-      const api = lodash.get(apis, 'words.add')
45
+      const api = lodash.get(apis, 'words.edi.vue')
46 46
       interact(api, payload.detail).then((data) => {
47 47
         onSuccess(data)
48 48
       })

+ 36
- 0
src/views/index.js Ver arquivo

@@ -49,6 +49,24 @@ const pages = [
49 49
           title: '员工管理',
50 50
         },
51 51
       },
52
+      {
53
+        path: 'sysuser/userRole/addUserRole',
54
+        name: 'addUserRole',
55
+        component: () => import('./sysuser/userRole/addUserRole.vue'),
56
+        meta: {
57
+          menuShow: false,
58
+          title: '添加员工权限',
59
+        },
60
+      },
61
+      {
62
+        path: 'sysuser/userRole/userRoleedit',
63
+        name: 'userRoleedit',
64
+        component: () => import('./sysuser/userRole/userRoleedit.vue'),
65
+        meta: {
66
+          menuShow: false,
67
+          title: '修改加员工权限',
68
+        },
69
+      },
52 70
       {
53 71
         path: 'sysuser/role',
54 72
         name: 'role',
@@ -58,6 +76,24 @@ const pages = [
58 76
           title: '角色管理',
59 77
         },
60 78
       },
79
+      {
80
+        path: 'sysuser/role/add',
81
+        name: 'role-add',
82
+        component: () => import('./sysuser/role/add/add.vue'),
83
+        meta: {
84
+          menuShow: false,
85
+          title: '角色添加',
86
+        },
87
+      },
88
+      {
89
+        path: 'sysuser/role/edi',
90
+        name: 'role-edi',
91
+        component: () => import('./sysuser/role/edi/edi.vue'),
92
+        meta: {
93
+          menuShow: false,
94
+          title: '角色修改',
95
+        },
96
+      },
61 97
       {
62 98
         path: 'device',
63 99
         name: 'devicelist',

+ 76
- 0
src/views/sysuser/role/add/add.vue Ver arquivo

@@ -0,0 +1,76 @@
1
+<template>
2
+    <div id="root">
3
+        <el-form ref="form" :model="form" label-width="80px">
4
+            <el-form-item label="角色名称">
5
+                <el-input v-model="form.roleName"></el-input>
6
+            </el-form-item>
7
+            <el-form-item label="菜单权限">
8
+                <el-tree
9
+                        :data="menus"
10
+                        show-checkbox
11
+                        node-key="menuId"
12
+                        ref="tree"
13
+                        :props="defaultProps">
14
+                </el-tree>
15
+            </el-form-item>
16
+            <el-form-item>
17
+                <el-button type="success" @click="onSubmit">提交</el-button>
18
+            </el-form-item>
19
+        </el-form>
20
+    </div>
21
+</template>
22
+
23
+<script>
24
+import { createNamespacedHelpers } from 'vuex'
25
+const {mapState: mapSysRoleState, mapActions: mapSysRoleActions } = createNamespacedHelpers('sysyrole')
26
+
27
+export default {
28
+  name: "addRole",
29
+  data() {
30
+      return {
31
+          form: {
32
+              roleName: '',
33
+              menuIds: []
34
+          },
35
+          defaultProps: {
36
+              label: 'menuName',
37
+              children: 'children'
38
+          }
39
+      }
40
+  },
41
+  computed: {
42
+      ...mapSysRoleState({
43
+          menus: x => x.menus
44
+      })
45
+  },
46
+  methods: {
47
+    ...mapSysRoleActions([
48
+        'GetMenus',
49
+        'AddRole'
50
+    ]),
51
+    getCheckedNodes() {
52
+      let idSet = new Set();
53
+      const checkedNodes = this.$refs.tree.getCheckedNodes();
54
+      checkedNodes.map((item,index) => {
55
+          idSet.add(item.menuId)
56
+          idSet.add(item.menuPid)
57
+      })
58
+
59
+        for (let [value] of idSet.entries()) this.form.menuIds.push(value);
60
+
61
+    },
62
+    onSubmit() {
63
+        this.getCheckedNodes()
64
+        this.AddRole(this.form)
65
+        this.$router.go(-1)
66
+    }
67
+  },
68
+  created() {
69
+      this.GetMenus()
70
+  }
71
+}
72
+</script>
73
+
74
+<style scoped>
75
+
76
+</style>

+ 98
- 0
src/views/sysuser/role/edi/edi.vue Ver arquivo

@@ -0,0 +1,98 @@
1
+<template>
2
+    <div id="root">
3
+        <el-form ref="form" :model="form" label-width="80px">
4
+            <el-form-item label="角色名称">
5
+                <el-input v-model="form.roleName"></el-input>
6
+            </el-form-item>
7
+            <el-form-item label="菜单权限">
8
+                <el-tree
9
+                        :data="menus"
10
+                        show-checkbox
11
+                        node-key="menuId"
12
+                        ref="tree"
13
+                        :default-checked-keys="checkedMenuKeys"
14
+                        :props="defaultProps">
15
+                </el-tree>
16
+            </el-form-item>
17
+            <el-form-item>
18
+                <el-button type="success" @click="onSubmit">提交</el-button>
19
+            </el-form-item>
20
+        </el-form>
21
+    </div>
22
+</template>
23
+
24
+<script>
25
+import { createNamespacedHelpers } from 'vuex'
26
+const {mapState: mapSysRoleState, mapActions: mapSysRoleActions } = createNamespacedHelpers('sysyrole')
27
+
28
+export default {
29
+  name: "ediRole",
30
+  data() {
31
+      return {
32
+          form: {
33
+              roleName: '',
34
+              roleId: '',
35
+              menuIds: []
36
+          },
37
+          defaultProps: {
38
+              label: 'menuName',
39
+              children: 'children'
40
+          },
41
+          checkedMenuKeys: [] // 默认勾选
42
+      }
43
+  },
44
+  computed: {
45
+      ...mapSysRoleState({
46
+          menus: x => x.menus
47
+      })
48
+  },
49
+  methods: {
50
+    ...mapSysRoleActions([
51
+        'GetMenus',
52
+        'AddRole',
53
+        'GetById',
54
+        'UpdateRole'
55
+    ]),
56
+    getCheckedNodes() {
57
+      let idSet = new Set();
58
+      const checkedNodes = this.$refs.tree.getCheckedNodes();
59
+      checkedNodes.map((item,index) => {
60
+          idSet.add(item.menuId)
61
+      })
62
+
63
+        for (let [value] of idSet.entries()) this.form.menuIds.push(value);
64
+
65
+    },
66
+    onSubmit() {
67
+        this.getCheckedNodes()
68
+        this.UpdateRole(this.form)
69
+        this.$router.go(-1)
70
+    },
71
+    getByRoleId() {
72
+        this.GetById({ roleId: this.form.roleId }).then((res) => {
73
+            this.form.roleId = res.roleId
74
+            this.form.roleName = res.roleName
75
+
76
+            this.menusParsing(res.menuList)
77
+        })
78
+    },
79
+    menusParsing(array) {
80
+        array.map((item,index) => {
81
+            this.checkedMenuKeys.push(item.menuId)
82
+            if (item.children !== null) {
83
+                this.menusParsing(item.children)
84
+            }
85
+        })
86
+    }
87
+  },
88
+  created() {
89
+      this.GetMenus()
90
+      this.form.roleId = this.$route.query.id
91
+      this.getByRoleId()
92
+  }
93
+}
94
+</script>
95
+
96
+<style scoped>
97
+
98
+</style>

+ 66
- 45
src/views/sysuser/role/list.vue Ver arquivo

@@ -2,31 +2,45 @@
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.roleName" placeholder="角色名称"></el-input>
6 6
       </el-form-item> 
7 7
       <el-form-item>
8 8
         <el-button type="primary" @click="onSubmit">查询</el-button>
9 9
         <el-button type="info" @click="clear">重置</el-button>
10 10
       </el-form-item>
11 11
     </el-form>
12
+    <div style="margin-bottom: 20px;">
13
+<!--      <router-link :to="{name: 'role-add'}" tag="el-button">添加</router-link>-->
14
+
15
+      <el-button type="success" @click="addRole">添加</el-button>
16
+      <el-button type="warning" @click="updateRole">修改</el-button>
17
+      <el-button type="danger" @click="deleteRole">删除</el-button>
18
+    </div>
12 19
     <el-table
13
-    :data="FollowupList"
20
+    :data="roleDataList.records"
21
+    @selection-change="handleSelectionChange"
14 22
     border>
23
+      <el-table-column
24
+              type="selection"
25
+              width="55"/>
15 26
     <el-table-column
16
-      prop="customerId"
27
+      prop="roleId"
17 28
       align='center'
18
-      label="角色名称">
19
-    </el-table-column>
29
+      label="编号"/>
20 30
     <el-table-column
21
-      prop="customerName"
31
+      prop="roleName"
22 32
       align='center'
23
-      label="角色状态">
24
-    </el-table-column>
33
+      label="角色名称"/>
25 34
     <el-table-column
26
-      prop="phone"
35
+      prop="roleStatus"
27 36
       align='center'
28
-      label="创建时间">
37
+      label="角色状态">
38
+      <template slot-scope="scope">{{ scope.row.status === 1 ? '有效' : '无效' }}</template>
29 39
     </el-table-column>
40
+    <el-table-column
41
+       prop="createDate"
42
+       align='center'
43
+       label="创建时间"/>
30 44
   </el-table>
31 45
     <el-pagination
32 46
             style="margin-top:50px;float:right"
@@ -35,6 +49,7 @@
35 49
             :current-page="formInline.pageNum"
36 50
             :page-sizes="[1,10, 20, 30, 40]"
37 51
             :page-size="formInline.pageSize"
52
+            :total="roleDataList.total"
38 53
             layout="total, sizes, prev, pager, next, jumper"
39 54
             >
40 55
             <!-- :total="FollowupList.total || 0" -->
@@ -43,39 +58,38 @@
43 58
 </template>
44 59
 <script>
45 60
 import { createNamespacedHelpers } from 'vuex'
46
-const {mapState: mapUserManagementState, mapActions: mapUserManagementActions } = createNamespacedHelpers('sysuser')
61
+const {mapState: mapSysRoleState, mapActions: mapSysRoleActions } = createNamespacedHelpers('sysyrole')
47 62
 
48 63
 export default {
49 64
   name: 'followup-index',
50 65
   data() {
51 66
     return {
52 67
       formInline: {
53
-        customerName:'',
54
-        personName: '',
55
-        phone: '',
56
-        platNumber: '',
68
+        roleName: '',
57 69
         pageNum: 1,
58 70
         pageSize: 10
59
-      }
71
+      },
72
+      ids: []
60 73
     }
61 74
   },
62 75
   computed: {
63
-    ...mapUserManagementState({
64
-    FollowupList: x => x.followup
76
+    ...mapSysRoleState({
77
+    roleDataList: x => x.data
65 78
     })
66 79
   },
67 80
   created() {
68 81
     this.getPage()
69 82
   },
70 83
   methods: {
71
-    ...mapUserManagementActions([
72
-      'roleManagementList',
84
+    ...mapSysRoleActions([
85
+      'GetList',
86
+      'DeleteMenu'
73 87
     ]),
74 88
     onSubmit() {
75 89
       this.getPage()
76 90
     },
77 91
     getPage() {
78
-       this.roleManagementList(this.formInline)
92
+       this.GetList(this.formInline)
79 93
       // window.console.log(this.$store)
80 94
       // this.$store.commit('security/foo')
81 95
       // this.$store.dispatch('security/getSecurity')
@@ -90,35 +104,42 @@ export default {
90 104
       this.formInline.pageNum = val
91 105
       this.getPage()
92 106
     },
93
-    favorHouse (msg) {
94
-      if (msg == '1') {
95
-        return "三房"
96
-      } else if(msg == '2'){
97
-        return "四房"
98
-      }else if(msg == '3'){
99
-        return "四房以上"
100
-      }
101
-    },
102
-    favorLevel (msg) {
103
-      if (msg == 'A') {
104
-        return "买房"
105
-      } else if(msg == 'B'){
106
-        return "有意向金"
107
-      }else if(msg == 'C'){
108
-        return "考虑中"
109
-      }else if(msg == 'D'){
110
-        return "不买"
111
-      }
112
-    },
113 107
     clear(){
114
-      this.formInline.customerName = ''
115
-      this.formInline.phone = ''
116
-      this.formInline.platNumber = ''
108
+      this.formInline.roleName = ''
117 109
       this.formInline.pageNum = 1
118 110
       this.formInline.pageSize = 10
119 111
       this.getPage()
112
+    },
113
+    addRole() {
114
+      this.$router.push({name: 'role-add'})
115
+    },
116
+    deleteRole() {
117
+      if (this.ids.length <= 0) {
118
+        this.$message.error("请至少选择一行")
119
+        return
120
+      }
121
+
122
+      this.DeleteMenu({ menuIds: this.ids })
123
+      this.getPage()
124
+    },
125
+    updateRole() {
126
+      if (this.ids.length > 1) {
127
+        this.$message.error("只能针对一行操作")
128
+        return
129
+      }
130
+      if (this.ids.length <= 0) {
131
+        this.$message.error("请至少选择一行")
132
+        return
133
+      }
134
+
135
+      this.$router.push({name: 'role-edi', query: { id: this.ids[0] }})
136
+    },
137
+    handleSelectionChange(val) {
138
+      this.ids = []
139
+      val.map((item,index)=> {
140
+        this.ids.push(item.roleId);
141
+      })
120 142
     }
121
-   
122 143
   }
123 144
 }
124 145
 </script>

+ 140
- 0
src/views/sysuser/userRole/addUserRole.vue Ver arquivo

@@ -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 Ver arquivo

@@ -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 Ver arquivo

@@ -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>