See999 před 5 roky
rodič
revize
96e5c6c2aa

binární
src/assets/img/pc1.png Zobrazit soubor


binární
src/assets/img/pc2.png Zobrazit soubor


binární
src/assets/img/pc3.png Zobrazit soubor


binární
src/assets/img/pc4.png Zobrazit soubor


binární
src/assets/img/pc5.png Zobrazit soubor


+ 282 - 93
src/xt_pages/role/components/EditRole.vue Zobrazit soubor

@@ -1,113 +1,302 @@
1 1
 <template>
2
-    <el-dialog title='新增角色' width="600px" :visible.sync="visible" :before-close="_close">
3
-        <el-form :model="form" :rules="rules" ref="form" label-width="90px">
2
+  <el-dialog
3
+    title="新增用户"
4
+    width="660px"
5
+    :visible.sync="visible"
6
+    :before-close="_close"
7
+  >
8
+    <!-- <el-form :model="form" :rules="rules" ref="form" label-width="90px">
4 9
             <el-form-item label="角色名称 : " prop="name">
5 10
                 <el-input v-model="form.name" placeholder="" maxlength="30" ></el-input>
6 11
             </el-form-item>
7 12
             <el-form-item label="角色描述 : " prop="intro">
8 13
                 <el-input type="textarea" v-model="form.intro" placeholder="" resize="none" rows="4" ></el-input>
9 14
             </el-form-item>
10
-        </el-form>
11
-        <div slot="footer" class="dialog-footer">
12
-            <el-button @click="hide">取 消</el-button>
13
-            <el-button type="primary" @click="submitAction()">保 存</el-button>
15
+    </el-form>-->
16
+    <div class="chooseuser">
17
+      <span style="color:#303133">选择用户:</span>
18
+      <el-radio v-model="checked" label="1">从已有员工中选择</el-radio>
19
+      <el-radio v-model="checked" label="2">新增员工</el-radio>
20
+    </div>
21
+    <div v-if="checked == '1'" class="roleContent">
22
+      <div class="roleContentLeft">
23
+        <p style="color:#303133">选择:</p>
24
+        <div class="chooseBox">
25
+          <div>
26
+            <el-checkbox
27
+              :indeterminate="isIndeterminate"
28
+              v-model="checkAll"
29
+              @change="handleCheckAllChange"
30
+              >全选</el-checkbox
31
+            >
32
+          </div>
33
+          <el-checkbox-group
34
+            v-model="checkedCities"
35
+            @change="handleCheckedCitiesChange"
36
+          >
37
+            <!-- <el-checkbox v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox> -->
38
+            <div class="checkone" v-for="city in cities" :key="city">
39
+              <el-checkbox :label="city">
40
+                <img src="https://kuyi.shengws.com/S1.png" alt />
41
+                <span>名字</span>
42
+              </el-checkbox>
43
+            </div>
44
+          </el-checkbox-group>
14 45
         </div>
15
-    </el-dialog>
46
+      </div>
47
+      <div class="roleContentRight">
48
+        <p style="color:#303133">已选:</p>
49
+        <div class="chooseBox">
50
+          <div class="hasChoosedOne">
51
+            <img src="https://kuyi.shengws.com/S1.png" alt />
52
+            <span>名字</span>
53
+          </div>
54
+        </div>
55
+      </div>
56
+    </div>
57
+    <div v-if="checked == '2'" class="newStaff">
58
+      <el-form
59
+        :model="ruleForm"
60
+        :rules="newrules"
61
+        label-position="right"
62
+        label-width="80px"
63
+        style="width:40%"
64
+      >
65
+        <el-form-item label="姓名" prop="name">
66
+          <el-input v-model="ruleForm.name"></el-input>
67
+        </el-form-item>
68
+        <el-form-item label="手机号" prop="phone">
69
+          <el-input v-model="ruleForm.phone"></el-input>
70
+        </el-form-item>
71
+        <el-form-item label="职位">
72
+          <el-input></el-input>
73
+        </el-form-item>
74
+      </el-form>
75
+      <div class="newItem">
76
+        <p style="width:80px;text-align:right;padding-right:8px">
77
+          <i
78
+            class="el-icon-circle-plus"
79
+            style="font-size:20px;color:#338AFB"
80
+          ></i>
81
+        </p>
82
+        <p style="color:#409FFF">继续新增员工</p>
83
+      </div>
84
+    </div>
85
+    <div slot="footer" class="dialog-footer">
86
+      <el-button @click="hide">取 消</el-button>
87
+      <el-button type="primary" @click="submitAction()">保 存</el-button>
88
+    </div>
89
+  </el-dialog>
16 90
 </template>
17 91
 
18 92
 <script>
19
-import {addRole, modifyRole} from '@/api/role/role'
93
+import { addRole, modifyRole } from "@/api/role/role";
20 94
 
21 95
 export default {
22
-    name: 'EditRole',
23
-    data() {
24
-        return {
25
-            form: {
26
-                id: 0,
27
-                name: '',
28
-                intro: ''
29
-            },
30
-            'visible': false,
31
-            rules: {
32
-                name: [
33
-                    {required: true, message: '请输入角色名称', trigger: 'blur'},
34
-                    {max: 10, message: '10个字以内', trigger: 'blur'}
35
-                ],
36
-                intro: [
37
-                    {required: true, message: '请输入角色说明', trigger: 'blur'},
38
-                ]
39
-            }
40
-        }
96
+  name: "EditRole",
97
+  data() {
98
+    return {
99
+      form: {
100
+        id: 0,
101
+        name: "",
102
+        intro: ""
103
+      },
104
+      visible: false,
105
+      rules: {
106
+        name: [
107
+          { required: true, message: "请输入角色名称", trigger: "blur" },
108
+          { max: 10, message: "10个字以内", trigger: "blur" }
109
+        ],
110
+        intro: [{ required: true, message: "请输入角色说明", trigger: "blur" }]
111
+      },
112
+
113
+      //
114
+      checked: "1",
115
+      checkAll: false,
116
+      checkedCities: [],
117
+      cities: ["上海", "北京", "广州", "深圳"],
118
+      isIndeterminate: true,
119
+      ruleForm: {
120
+        name: "",
121
+        phone: "",
122
+        position: ""
123
+      },
124
+      newrules: {
125
+        name: [
126
+          { required: true, message: "请输入角色名称", trigger: "blur" },
127
+          { max: 10, message: "10个字以内", trigger: "blur" }
128
+        ],
129
+        phone: [{ required: true, message: "请输入手机号", trigger: "blur" }]
130
+      }
131
+    };
132
+  },
133
+  methods: {
134
+    _close: function(done) {
135
+      this.clear();
136
+      done();
137
+    },
138
+    clear: function() {
139
+      this.form.id = 0;
140
+      this.form.name = "";
141
+      this.form.intro = "";
142
+    },
143
+    show() {
144
+      this.clear();
145
+      this.visible = true;
41 146
     },
42
-    methods: {
43
-        _close: function(done) {
44
-            this.clear()
45
-            done()
46
-        },
47
-        clear: function() {
48
-            this.form.id = 0
49
-            this.form.name = ''
50
-            this.form.intro = ''
51
-        },
52
-        show() {
53
-            this.clear()
54
-            this.visible = true
55
-        },
56
-        hide() {
57
-            this.clear()
58
-            this.visible = false
59
-        },
60
-        modify(id, name, intro) {
61
-            this.form.id = id
62
-            this.form.name = name
63
-            this.form.intro = intro
64
-            this.visible = true
65
-        },
66
-        submitAction() {
67
-            this.$refs.form.validate((valid) => {
68
-                if (valid) { // 验证通过
69
-                    if (this.form.id === 0) { // 新增 role
70
-                        addRole(this.form.name, this.form.intro).then(rs => {
71
-                            var resp = rs.data
72
-                            if (resp.state === 1) {
73
-                                var new_id = resp.data.id
74
-                                var new_name = resp.data.name
75
-                                var new_intro = resp.data.intro
76
-                                var new_status = resp.data.status
77
-                                this.$emit('did-add-role', new_id, new_name, new_intro, new_status)
147
+    hide() {
148
+      this.clear();
149
+      this.visible = false;
150
+    },
151
+    modify(id, name, intro) {
152
+      this.form.id = id;
153
+      this.form.name = name;
154
+      this.form.intro = intro;
155
+      this.visible = true;
156
+    },
157
+    submitAction() {
158
+      this.$refs.form.validate(valid => {
159
+        if (valid) {
160
+          // 验证通过
161
+          if (this.form.id === 0) {
162
+            // 新增 role
163
+            addRole(this.form.name, this.form.intro)
164
+              .then(rs => {
165
+                var resp = rs.data;
166
+                if (resp.state === 1) {
167
+                  var new_id = resp.data.id;
168
+                  var new_name = resp.data.name;
169
+                  var new_intro = resp.data.intro;
170
+                  var new_status = resp.data.status;
171
+                  this.$emit(
172
+                    "did-add-role",
173
+                    new_id,
174
+                    new_name,
175
+                    new_intro,
176
+                    new_status
177
+                  );
78 178
 
79
-                                this.hide()
80
-                                
81
-                            } else {
82
-                                this.$message.error(resp.msg)
83
-                            }
84
-                            
85
-                        }).catch(err => {
86
-                            this.$message.error(err)
87
-                        })
88
-                        
89
-                    } else { // 修改 role
90
-                        modifyRole(this.form.id, this.form.name, this.form.intro).then(rs => {
91
-                            var resp = rs.data
92
-                            if (resp.state === 1) {
93
-                                this.$emit('did-edit-role', this.form.id, this.form.name, this.form.intro)
94
-                                this.hide()
95
-                                
96
-                            } else {
97
-                                this.$message.error(resp.msg)
98
-                            }
99
-                            
100
-                        }).catch(err => {
101
-                            this.$message.error(err)
102
-                        })
103
-                    }
104
-                    
105
-                } else { // 验证失败
106
-                    return false
179
+                  this.hide();
180
+                } else {
181
+                  this.$message.error(resp.msg);
182
+                }
183
+              })
184
+              .catch(err => {
185
+                this.$message.error(err);
186
+              });
187
+          } else {
188
+            // 修改 role
189
+            modifyRole(this.form.id, this.form.name, this.form.intro)
190
+              .then(rs => {
191
+                var resp = rs.data;
192
+                if (resp.state === 1) {
193
+                  this.$emit(
194
+                    "did-edit-role",
195
+                    this.form.id,
196
+                    this.form.name,
197
+                    this.form.intro
198
+                  );
199
+                  this.hide();
200
+                } else {
201
+                  this.$message.error(resp.msg);
107 202
                 }
108
-            })
203
+              })
204
+              .catch(err => {
205
+                this.$message.error(err);
206
+              });
207
+          }
208
+        } else {
209
+          // 验证失败
210
+          return false;
211
+        }
212
+      });
213
+    },
214
+    handleCheckAllChange(val) {
215
+      this.checkedCities = val ? this.cities : [];
216
+      this.isIndeterminate = false;
217
+    },
218
+    handleCheckedCitiesChange(value) {
219
+      let checkedCount = value.length;
220
+      this.checkAll = checkedCount === this.cities.length;
221
+      this.isIndeterminate =
222
+        checkedCount > 0 && checkedCount < this.cities.length;
223
+    }
224
+  }
225
+};
226
+</script>
227
+
228
+<style lang="scss" scoped>
229
+.roleContent {
230
+  margin-top: 20px;
231
+  display: flex;
232
+  justify-content: space-between;
233
+  .roleContentLeft {
234
+    .chooseBox {
235
+      width: 280px;
236
+      height: 320px;
237
+      overflow-y: auto;
238
+      border: 1px solid rgba(235, 238, 240, 1);
239
+      margin-top: 26px;
240
+      padding: 20px;
241
+      .checkone {
242
+        display: flex;
243
+        align-items: center;
244
+        height: 50px;
245
+      }
246
+      .el-checkbox__label {
247
+        display: flex;
248
+        align-items: center;
249
+        img {
250
+          width: 30px;
251
+          height: 30px;
252
+          margin-right: 10px;
253
+        }
254
+      }
255
+    }
256
+  }
257
+  .roleContentRight {
258
+    .chooseBox {
259
+      width: 280px;
260
+      height: 320px;
261
+      overflow-y: auto;
262
+      border: 1px solid rgba(235, 238, 240, 1);
263
+      margin-top: 26px;
264
+      padding: 20px;
265
+      .hasChoosedOne {
266
+        display: flex;
267
+        align-items: center;
268
+        height: 50px;
269
+        img {
270
+          width: 30px;
271
+          height: 30px;
272
+          margin-right: 10px;
109 273
         }
274
+      }
110 275
     }
276
+  }
111 277
 }
112
-</script>
278
+.newStaff {
279
+  margin-top: 26px;
280
+  .newItem {
281
+    display: flex;
282
+    align-items: center;
283
+  }
284
+}
285
+</style>
113 286
 
287
+<style lang="scss">
288
+.roleContent {
289
+  .roleContentLeft {
290
+    .chooseBox {
291
+      .el-checkbox {
292
+        display: flex;
293
+        align-items: center;
294
+      }
295
+      .el-checkbox__label {
296
+        display: flex;
297
+        align-items: center;
298
+      }
299
+    }
300
+  }
301
+}
302
+</style>

+ 151 - 0
src/xt_pages/role/components/PermissionSettings.vue Zobrazit soubor

@@ -0,0 +1,151 @@
1
+<template>
2
+  <el-dialog class="settingDialog" title="角色权限配置" width="750px" :visible.sync="visible">
3
+    <div class="roleSettings">
4
+      <div class="roleName">
5
+        <div class="roleNameLeft">
6
+          <p>角色名称</p>
7
+          <el-input placeholder="请输入内容" v-model="input" :disabled="true"></el-input>
8
+        </div>
9
+        <p style="color:#338AFB">删除该角色</p>
10
+      </div>
11
+      <div class="roleMain">
12
+        <div class="roleMainLeft">
13
+          <p class="roletitle">选择权限</p>
14
+          <div class="roleMainLeftBox">
15
+            <el-tree
16
+              :props="defaultProps"
17
+              :data="data"
18
+              :default-checked-keys="data"
19
+              node-key="id"
20
+              ref="tree"
21
+              default-expand-all
22
+              show-checkbox
23
+            >
24
+              <!-- <span class="custom-tree-node" slot-scope="{ node, data }">
25
+                                <span>{{ data.name }}</span>
26
+              </span>-->
27
+            </el-tree>
28
+          </div>
29
+        </div>
30
+        <div class="roleMainRight">
31
+          <div class="hasChoose">已选择权限</div>
32
+          <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
33
+        </div>
34
+      </div>
35
+    </div>
36
+  </el-dialog>
37
+</template>
38
+
39
+
40
+<script>
41
+export default {
42
+  data() {
43
+    return {
44
+      visible: false,
45
+      data: [
46
+        {
47
+          id: 1,
48
+          label: "一级 2",
49
+          children: [
50
+            {
51
+              id: 3,
52
+              label: "二级 2-1",
53
+              children: [
54
+                {
55
+                  id: 4,
56
+                  label: "三级 3-1-1"
57
+                },
58
+                {
59
+                  id: 5,
60
+                  label: "三级 3-1-2"
61
+                }
62
+              ]
63
+            },
64
+            {
65
+              id: 2,
66
+              label: "二级 2-2",
67
+              children: [
68
+                {
69
+                  id: 6,
70
+                  label: "三级 3-2-1"
71
+                },
72
+                {
73
+                  id: 7,
74
+                  label: "三级 3-2-2"
75
+                }
76
+              ]
77
+            }
78
+          ]
79
+        }
80
+      ],
81
+      defaultProps: {
82
+        children: "children",
83
+        label: "label"
84
+      }
85
+    };
86
+  },
87
+  methods: {
88
+    show() {
89
+      this.visible = true;
90
+    }
91
+  }
92
+};
93
+</script>
94
+
95
+<style lang="scss" scoped>
96
+.roleSettings {
97
+  .roleName {
98
+    display: flex;
99
+    align-items: center;
100
+    justify-content: space-between;
101
+  }
102
+  .roleNameLeft {
103
+    display: flex;
104
+    align-items: center;
105
+    p {
106
+      width: 100px;
107
+    }
108
+  }
109
+  .roleMain {
110
+    display: flex;
111
+    justify-content: space-between;
112
+    margin-top: 18px;
113
+    .roleMainLeft {
114
+      display: flex;
115
+      .roletitle {
116
+        width: 74px;
117
+      }
118
+      .roleMainLeftBox {
119
+        width: 300px;
120
+        height: 706px;
121
+        overflow-y: auto;
122
+        border: 1px solid rgba(234, 238, 240, 1);
123
+        border-radius: 4px;
124
+        padding: 20px 0 0 10px;
125
+      }
126
+    }
127
+    .roleMainRight {
128
+      width: 280px;
129
+      height: 706px;
130
+      overflow-y: auto;
131
+      border: 1px solid rgba(235, 238, 240, 1);
132
+      color: #303133;
133
+      .hasChoose {
134
+        height: 42px;
135
+        line-height: 42px;
136
+        padding-left: 20px;
137
+        background: #f6f8f9;
138
+      }
139
+    }
140
+  }
141
+}
142
+</style>
143
+
144
+
145
+<style lang="scss">
146
+.settingDialog {
147
+  .el-dialog__body {
148
+    max-height: 600px !important;
149
+  }
150
+}
151
+</style>

+ 241 - 51
src/xt_pages/role/role.vue Zobrazit soubor

@@ -12,7 +12,7 @@
12 12
       >
13 13
     </div>
14 14
     <div class="app-container">
15
-      <el-table
15
+      <!-- <el-table
16 16
         :data="roles"
17 17
         v-loading="loading_roles"
18 18
         border
@@ -22,24 +22,11 @@
22 22
           color: '#606266'
23 23
         }"
24 24
       >
25
-        <el-table-column
26
-          label="角色名称"
27
-          prop="name"
28
-          min-width="20%"
29
-          align="center"
30
-        ></el-table-column>
31
-        <el-table-column
32
-          label="角色描述"
33
-          prop="intro"
34
-          min-width="25%"
35
-          align="center"
36
-        ></el-table-column>
25
+        <el-table-column label="角色名称" prop="name" min-width="20%" align="center"></el-table-column>
26
+        <el-table-column label="角色描述" prop="intro" min-width="25%" align="center"></el-table-column>
37 27
         <el-table-column label="状态" min-width="15%" align="center">
38 28
           <template slot-scope="scope">
39
-            <div
40
-              v-if="scope.row.status == 1"
41
-              style="color: #67C23A; font-size:20px;"
42
-            >
29
+            <div v-if="scope.row.status == 1" style="color: #67C23A; font-size:20px;">
43 30
               <li class="el-icon-success"></li>
44 31
             </div>
45 32
             <div v-else style="color: #F56C6C; font-size:20px;">
@@ -49,28 +36,12 @@
49 36
         </el-table-column>
50 37
         <el-table-column label="操作" width="180" align="center">
51 38
           <template slot-scope="scope">
52
-            <router-link
53
-              :to="{ path: '/role/perview', query: { id: scope.row.id } }"
54
-            >
55
-              <el-tooltip
56
-                class="item"
57
-                effect="dark"
58
-                content="权限设置"
59
-                placement="top"
60
-              >
61
-                <el-button
62
-                  type="warning"
63
-                  icon="el-icon-setting"
64
-                  size="small"
65
-                ></el-button>
39
+            <router-link :to="{ path: '/role/perview', query: { id: scope.row.id } }">
40
+              <el-tooltip class="item" effect="dark" content="权限设置" placement="top">
41
+                <el-button type="warning" icon="el-icon-setting" size="small"></el-button>
66 42
               </el-tooltip>
67 43
             </router-link>
68
-            <el-tooltip
69
-              class="item"
70
-              effect="dark"
71
-              content="编辑"
72
-              placement="top"
73
-            >
44
+            <el-tooltip class="item" effect="dark" content="编辑" placement="top">
74 45
               <el-button
75 46
                 type="primary"
76 47
                 size="small"
@@ -79,12 +50,7 @@
79 50
               ></el-button>
80 51
             </el-tooltip>
81 52
 
82
-            <el-tooltip
83
-              class="item"
84
-              effect="dark"
85
-              content="移除"
86
-              placement="top"
87
-            >
53
+            <el-tooltip class="item" effect="dark" content="移除" placement="top">
88 54
               <el-button
89 55
                 type="danger"
90 56
                 size="small"
@@ -94,12 +60,7 @@
94 60
               ></el-button>
95 61
             </el-tooltip>
96 62
 
97
-            <el-tooltip
98
-              class="item"
99
-              effect="dark"
100
-              content="恢复"
101
-              placement="top"
102
-            >
63
+            <el-tooltip class="item" effect="dark" content="恢复" placement="top">
103 64
               <el-button
104 65
                 type="info"
105 66
                 size="small"
@@ -122,26 +83,185 @@
122 83
             layout="total, prev, pager, next, jumper"
123 84
           ></el-pagination>
124 85
         </el-col>
125
-      </el-row>
86
+      </el-row>-->
126 87
 
127 88
       <edit-role
128 89
         ref="edit_role"
129 90
         @did-add-role="didAddRole"
130 91
         @did-edit-role="didModifyRole"
131 92
       ></edit-role>
93
+      <permission-settings ref="permission_settings"></permission-settings>
94
+
95
+      <div class="roleTitle">
96
+        <i class="el-icon-warning warn"></i>
97
+        <p>
98
+          根据员工的职能选择角色,然后新增账号,可以自定义角色,进行权限配置
99
+        </p>
100
+      </div>
101
+      <div class="roleBox">
102
+        <div class="roleOne">
103
+          <div class="setting">
104
+            <i class="el-icon-setting"></i>
105
+            <span style="margin-right:20px" @click="onClick">权限配置</span>
106
+          </div>
107
+          <div class="avatar">
108
+            <img src="../../assets/img/pc1.png" alt />
109
+            <p class="avatarname">子管理员</p>
110
+          </div>
111
+          <div class="roleTip">
112
+            子管理员角色具备平台全部功能的使用权限,请谨慎配置...
113
+          </div>
114
+          <div class="roleTxt">
115
+            该角色目前已配置
116
+            <span style="color:#4A8AF3">0</span> 个员工
117
+          </div>
118
+          <div class="btnBox">
119
+            <el-button>新增用户</el-button>
120
+            <el-button>用户管理</el-button>
121
+          </div>
122
+        </div>
123
+        <div class="roleOne">
124
+          <div class="setting">
125
+            <i class="el-icon-setting"></i>
126
+            <span style="margin-right:20px">权限配置</span>
127
+          </div>
128
+          <div class="avatar">
129
+            <img src="../../assets/img/pc2.png" alt />
130
+            <p class="avatarname">医生</p>
131
+          </div>
132
+          <div class="roleTip">
133
+            医生角色能够进行建立患者档案,制定和调整患者透析治疗方案,定期评价病人的透析质量等...
134
+          </div>
135
+          <div class="roleTxt">
136
+            该角色目前已配置
137
+            <span style="color:#4A8AF3">0</span> 个员工
138
+          </div>
139
+          <div class="btnBox">
140
+            <el-button>新增用户</el-button>
141
+            <el-button>用户管理</el-button>
142
+          </div>
143
+        </div>
144
+        <div class="roleOne">
145
+          <div class="setting">
146
+            <i class="el-icon-setting"></i>
147
+            <span style="margin-right:20px">权限配置</span>
148
+          </div>
149
+          <div class="avatar">
150
+            <img src="../../assets/img/pc3.png" alt />
151
+            <p class="avatarname">护士</p>
152
+          </div>
153
+          <div class="roleTip">
154
+            护士角色能够进行病人透析管理,以及医院的感染控制与消毒记录等...
155
+          </div>
156
+          <div class="roleTxt">
157
+            该角色目前已配置
158
+            <span style="color:#4A8AF3">0</span> 个员工
159
+          </div>
160
+          <div class="btnBox">
161
+            <el-button>新增用户</el-button>
162
+            <el-button>用户管理</el-button>
163
+          </div>
164
+        </div>
165
+        <div class="roleOne">
166
+          <div class="setting">
167
+            <i class="el-icon-setting"></i>
168
+            <span style="margin-right:20px">权限配置</span>
169
+          </div>
170
+          <div class="avatar">
171
+            <img src="../../assets/img/pc2.png" alt />
172
+            <p class="avatarname">技师</p>
173
+          </div>
174
+          <div class="roleTip">
175
+            技师角色能够进行设备的管理,日常维护维修记录等...
176
+          </div>
177
+          <div class="roleTxt">
178
+            该角色目前已配置
179
+            <span style="color:#4A8AF3">0</span> 个员工
180
+          </div>
181
+          <div class="btnBox">
182
+            <el-button>新增用户</el-button>
183
+            <el-button>用户管理</el-button>
184
+          </div>
185
+        </div>
186
+        <div class="roleOne">
187
+          <div class="setting">
188
+            <i class="el-icon-setting"></i>
189
+            <span style="margin-right:20px">权限配置</span>
190
+          </div>
191
+          <div class="avatar">
192
+            <img src="../../assets/img/pc2.png" alt />
193
+            <p class="avatarname">运营</p>
194
+          </div>
195
+          <div class="roleTip">
196
+            运营角色能够在SCRM中管理微网站、使用营销工具、做会员管理和分销商品经营的操作...
197
+          </div>
198
+          <div class="roleTxt">
199
+            该角色目前已配置
200
+            <span style="color:#4A8AF3">0</span> 个员工
201
+          </div>
202
+          <div class="btnBox">
203
+            <el-button>新增用户</el-button>
204
+            <el-button>用户管理</el-button>
205
+          </div>
206
+        </div>
207
+        <div class="roleOne">
208
+          <div class="setting">
209
+            <i class="el-icon-setting"></i>
210
+            <span style="margin-right:20px">权限配置</span>
211
+          </div>
212
+          <div class="avatar">
213
+            <img src="../../assets/img/pc4.png" alt />
214
+            <p class="avatarname">库存</p>
215
+          </div>
216
+          <div class="roleTip">
217
+            库存角色负责透析耗材的日常管理,对耗材的入库、出库、退库的登记操作...
218
+          </div>
219
+          <div class="roleTxt">
220
+            该角色目前已配置
221
+            <span style="color:#4A8AF3">0</span> 个员工
222
+          </div>
223
+          <div class="btnBox">
224
+            <el-button>新增用户</el-button>
225
+            <el-button>用户管理</el-button>
226
+          </div>
227
+        </div>
228
+        <div class="roleOne">
229
+          <div class="setting">
230
+            <i class="el-icon-setting"></i>
231
+            <span style="margin-right:20px">权限配置</span>
232
+          </div>
233
+          <div class="avatar">
234
+            <img src="../../assets/img/pc5.png" alt />
235
+            <p class="avatarname">院长</p>
236
+          </div>
237
+          <div class="roleTip">
238
+            院长角色了解血透患者血液透析质量和相关的大数据,以及掌握透析中心整体运营情况
239
+          </div>
240
+          <div class="roleTxt">
241
+            该角色目前已配置
242
+            <span style="color:#4A8AF3">0</span> 个员工
243
+          </div>
244
+          <div class="btnBox">
245
+            <el-button>新增用户</el-button>
246
+            <el-button>用户管理</el-button>
247
+          </div>
248
+        </div>
249
+      </div>
132 250
     </div>
133 251
   </div>
134 252
 </template>
135 253
 
136 254
 <script>
137 255
 import EditRole from "./components/EditRole.vue";
256
+import PermissionSettings from "./components/PermissionSettings.vue";
138 257
 import { getRoles, setRoleStatus } from "@/api/role/role";
139 258
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
140 259
 
141 260
 export default {
142 261
   components: {
143 262
     EditRole,
144
-    BreadCrumb
263
+    BreadCrumb,
264
+    PermissionSettings
145 265
   },
146 266
   data: function() {
147 267
     return {
@@ -259,6 +379,11 @@ export default {
259 379
     },
260 380
     pageChange: function(nextPage) {
261 381
       this.requestRoleWithPage(nextPage);
382
+    },
383
+    ///
384
+
385
+    onClick() {
386
+      this.$refs.permission_settings.show();
262 387
     }
263 388
   }
264 389
 };
@@ -267,6 +392,71 @@ export default {
267 392
 .el-button + .el-button {
268 393
   margin-left: 0 !important;
269 394
 }
395
+.roleTitle {
396
+  display: flex;
397
+  align-items: center;
398
+  font-size: 14px;
399
+  margin-bottom: 24px;
400
+  .warn {
401
+    font-size: 18px;
402
+    color: #409eff;
403
+    margin-right: 5px;
404
+  }
405
+}
406
+.roleBox {
407
+  display: flex;
408
+  flex-wrap: wrap;
409
+  .roleOne {
410
+    width: 280px;
411
+    height: 350px;
412
+    margin: 0 15px 20px;
413
+    border: 1px solid rgba(235, 238, 240, 1);
414
+    border-radius: 4px;
415
+    overflow: hidden;
416
+  }
417
+  .setting {
418
+    // float: right;
419
+    text-align: right;
420
+    margin-right: 20px;
421
+    margin-top: 20px;
422
+    width: 100%;
423
+    color: #313234;
424
+  }
425
+  .avatar {
426
+    width: 100%;
427
+    display: flex;
428
+    justify-content: space-around;
429
+    flex-direction: column;
430
+    align-items: center;
431
+    img {
432
+      width: 60px;
433
+      height: 60px;
434
+      margin: 10px 0;
435
+    }
436
+    .avatarname {
437
+      font-size: 18px;
438
+    }
439
+  }
440
+  .roleTip {
441
+    width: 82%;
442
+    margin: 20px auto 10px;
443
+    font-size: 14px;
444
+    color: #989898;
445
+  }
446
+  .roleTxt {
447
+    width: 82%;
448
+    margin: 0 auto;
449
+    font-size: 14px;
450
+    color: #666666;
451
+  }
452
+  .btnBox {
453
+    width: 82%;
454
+    margin: 0 auto;
455
+    display: flex;
456
+    justify-content: space-between;
457
+    margin-top: 50px;
458
+  }
459
+}
270 460
 </style>
271 461
 <style>
272 462
 .el-table td,