Yansen 2 jaren geleden
bovenliggende
commit
7dfab40d0e
4 gewijzigde bestanden met toevoegingen van 82 en 16 verwijderingen
  1. 16
    2
      src/pages/roles/menus.jsx
  2. 45
    10
      src/routes/routes.jsx
  3. 15
    0
      src/services/role.js
  4. 6
    4
      src/utils/arr2Tree.js

+ 16
- 2
src/pages/roles/menus.jsx Bestand weergeven

@@ -2,6 +2,7 @@ import React from 'react';
2 2
 import { Button, Card, Tree, Modal } from 'antd';
3 3
 import useBool from '@/utils/hooks/useBool';
4 4
 import arr2Tree from '@/utils/arr2Tree';
5
+import { getResourceList } from '@/services/role';
5 6
 
6 7
 export default (props) => {
7 8
   const { role } = props;
@@ -9,6 +10,7 @@ export default (props) => {
9 10
   const [loading, startLoading, cancelLoading] = useBool();
10 11
   const [list, setList] = React.useState([]);
11 12
   const [treeData, setTreeData] = React.useState([]);
13
+  const treeDictRef = React.useRef();
12 14
 
13 15
   const title = role ? `${role.name} - 授权菜单` : '授权菜单';
14 16
 
@@ -19,6 +21,16 @@ export default (props) => {
19 21
     console.log('onCheck', checkedKeys, info);
20 22
   };
21 23
 
24
+  React.useEffect(() => {
25
+    startLoading();
26
+    getResourceList({ pageSize: 500, type: 'menu' }).then((res) => {
27
+      cancelLoading();
28
+      setList(res.records || []);
29
+    }).catch(() => {
30
+      cancelLoading();
31
+    })
32
+  }, []);
33
+
22 34
   React.useEffect(() => {
23 35
     if (!role) {
24 36
       setList([]);
@@ -29,7 +41,9 @@ export default (props) => {
29 41
     // 先转为需要的格式
30 42
     const arr = list.map(x => ({ title: x.name, key: x.id, parentId: x.parentId }));
31 43
     // 再转为 tree
32
-    setTreeData(arr2Tree(arr));
44
+    const [tree, dict] = arr2Tree(arr);
45
+    setTreeData(tree);
46
+    treeDictRef.current = dict;
33 47
   }, [list]);
34 48
 
35 49
   return (
@@ -40,7 +54,7 @@ export default (props) => {
40 54
     >
41 55
       <Tree
42 56
         checkable
43
-        onSelect={onSelect}
57
+        selectable={false}
44 58
         onCheck={onCheck}
45 59
         treeData={treeData}
46 60
       />

+ 45
- 10
src/routes/routes.jsx Bestand weergeven

@@ -158,13 +158,6 @@ export default [
158 158
               title: '库存维护',
159 159
             },
160 160
           },
161
-          {
162
-            path: 'log',
163
-            element: <StockLog />,
164
-            meta: {
165
-              title: '库存日志',
166
-            },
167
-          },
168 161
         ],
169 162
       },
170 163
       {
@@ -178,20 +171,48 @@ export default [
178 171
             index: true,
179 172
             element: <Navigate to='rotationChart/list' replace />,
180 173
           },
174
+          {
175
+            path: 'station',
176
+            element: null,
177
+            meta: {
178
+              title: '本站信息',
179
+            },
180
+          },
181 181
           {
182 182
             path: 'rotationChart/list',
183 183
             element: <RotationChartList />,
184 184
             meta: {
185
-              title: '轮播图管理',
185
+              title: '公告内容',
186 186
             },
187 187
           },
188 188
           {
189 189
             path: 'rotationChart/edit',
190 190
             element: <RotationChartEdit />,
191 191
             meta: {
192
-              title: '轮播图维护',
192
+              title: '公告维护',
193 193
             },
194
-          }
194
+          },
195
+          {
196
+            path: 'regulation',
197
+            element: null,
198
+            meta: {
199
+              title: '规章制度',
200
+            },
201
+          },
202
+          {
203
+            path: 'emergency-plan',
204
+            element: null,
205
+            meta: {
206
+              title: '应急预案',
207
+            },
208
+          },
209
+          {
210
+            path: 'files',
211
+            element: null,
212
+            meta: {
213
+              title: '文件管理',
214
+            },
215
+          },
195 216
         ],
196 217
       },
197 218
       {
@@ -227,12 +248,26 @@ export default [
227 248
               hideInMenu: true,
228 249
             },
229 250
           },
251
+          {
252
+            path: 'log',
253
+            element: <StockLog />,
254
+            meta: {
255
+              title: '库存操作日志',
256
+            },
257
+          },
230 258
           {
231 259
             path: 'roles',
232 260
             element: <Roles />,
233 261
             meta: {
234 262
               title: '系统角色管理',
235 263
             },
264
+          },
265
+          {
266
+            path: 'user',
267
+            element: null,
268
+            meta: {
269
+              title: '系统用户管理',
270
+            },
236 271
           }
237 272
         ],
238 273
       },

+ 15
- 0
src/services/role.js Bestand weergeven

@@ -12,6 +12,15 @@ import { restful } from '@/utils/request';
12 12
   deleteRole,
13 13
  ] = restful('/roles');
14 14
 
15
+ 
16
+ const [
17
+  getResourceList,
18
+  getResourceDetail,
19
+  saveResource,
20
+  updateResource,
21
+  deleteResource,
22
+ ] = restful('/resources');
23
+
15 24
 
16 25
  export {
17 26
   getRoleList,
@@ -19,4 +28,10 @@ import { restful } from '@/utils/request';
19 28
   saveRole,
20 29
   updateRole,
21 30
   deleteRole,
31
+  
32
+  getResourceList,
33
+  getResourceDetail,
34
+  saveResource,
35
+  updateResource,
36
+  deleteResource,
22 37
  }

+ 6
- 4
src/utils/arr2Tree.js Bestand weergeven

@@ -1,10 +1,10 @@
1 1
 
2
-export default function arr2Tree(arr = [], parent = 'parentId') {
2
+export default function arr2Tree(arr = [], parent = 'parentId', key = 'key') {
3 3
   // 转换为字典
4 4
   const dict = arr.reduce((acc, item) => {
5 5
     return {
6 6
       ...acc,
7
-      [item.id]: {
7
+      [item[key]]: {
8 8
         ...item,
9 9
         children: []
10 10
       }
@@ -18,7 +18,7 @@ export default function arr2Tree(arr = [], parent = 'parentId') {
18 18
     const parentNodeId = item[parent];
19 19
 
20 20
     if (parentNodeId === rootId) {
21
-      tree.push(item);
21
+      tree.push(dict[item[key]]);
22 22
     } else {
23 23
       const parentNode = dict[parentNodeId];
24 24
       if (parentNode) {
@@ -27,6 +27,8 @@ export default function arr2Tree(arr = [], parent = 'parentId') {
27 27
     }
28 28
   }
29 29
 
30
-  return tree;
30
+  console.log(tree, dict)
31
+
32
+  return [tree, dict];
31 33
 }
32 34