浏览代码

feat(api): role part1

gemercheung 3 年之前
父节点
当前提交
1cfff07185

+ 4 - 3
src/api/system/system.ts

@@ -19,14 +19,15 @@ import { defHttp } from '/@/utils/http/axios';
 enum Api {
   AccountList = '/basic-api/system/getAccountList',
   IsAccountExist = '/basic-api/system/accountExist',
-  DeptList = '/basic-api/sys/dept/list',
   setRoleStatus = '/basic-api/system/setRoleStatus',
   MenuList = '/zfb-api/zfb/shop/sys/menu/queryAll',
-  RolePageList = '/zfb-api/zfb/shop/sys/role/list',
-  GetAllRoleList = '/basic-api/system/getAllRoleList',
   saveMenu = '/zfb-api/zfb/shop/sys/menu/save',
   updateMenu = '/zfb-api/zfb/shop/sys/menu/update',
   deleteMenu = '/zfb-api/zfb/shop/sys/menu/delete',
+  RolePageList = '/zfb-api/zfb/shop/sys/role/list',
+  GetAllRoleList = '/basic-api/system/getAllRoleList',
+  DeptList = '/zfb-api/zfb/shop/sys/dept/list',
+  DeptTree = '',
 }
 
 export const getAccountList = (params: AccountParams) =>

+ 9 - 9
src/router/routes/modules/scenes.ts

@@ -14,15 +14,15 @@ const scenes: AppRouteModule = {
     orderNo: 101,
   },
   children: [
-    {
-      path: 'down',
-      name: 'ScenesDownload',
-      component: () => import('/@/views/dashboard/scenes/download.vue'),
-      meta: {
-        title: t('routes.dashboard.scenesDownload'),
-        icon: 'mdi:box-download',
-      },
-    },
+    // {
+    //   path: 'down',
+    //   name: 'ScenesDownload',
+    //   component: () => import('/@/views/dashboard/scenes/download.vue'),
+    //   meta: {
+    //     title: t('routes.dashboard.scenesDownload'),
+    //     icon: 'mdi:box-download',
+    //   },
+    // },
     {
       path: 'list',
       name: 'ScenesList',

+ 2 - 3
src/views/dashboard/system/menu/MenuDrawer.vue

@@ -17,7 +17,7 @@
   import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
 
   import { getMenuList, saveMenuApi, updateMenuApi } from '/@/api/system/system';
-  import { makeMenuTree } from '/@/utils/treeUtils';
+  import { makeMenuTree, TreeMenuNode } from '/@/utils/treeUtils';
 
   export default defineComponent({
     name: 'MenuDrawer',
@@ -43,8 +43,7 @@
             ...data.record,
           });
         }
-        const tData = await getMenuList();
-        console.log('tData', tData);
+        const tData = (await getMenuList()) as any as TreeMenuNode[];
         const treeData = makeMenuTree(tData);
         updateSchema({
           field: 'parentId',

+ 15 - 4
src/views/dashboard/system/role/RoleDrawer.vue

@@ -12,12 +12,22 @@
         <BasicTree
           v-model:value="model[field]"
           :treeData="treeData"
-          :fieldNames="{ title: 'menuName', key: 'id' }"
-          checkable
+          :fieldNames="{ title: 'name', key: 'menuId' }"
+          :checkable="true"
           toolbar
           title="菜单分配"
         />
       </template>
+      <template #dept="{ model, field }">
+        <BasicTree
+          v-model:value="model[field]"
+          :treeData="treeData"
+          :fieldNames="{ title: 'name', key: 'menuId' }"
+          :checkable="true"
+          toolbar
+          title="权限分配"
+        />
+      </template>
     </BasicForm>
   </BasicDrawer>
 </template>
@@ -27,7 +37,7 @@
   import { formSchema } from './role.data';
   import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
   import { BasicTree, TreeItem } from '/@/components/Tree';
-
+  import { makeMenuTree, TreeMenuNode } from '/@/utils/treeUtils';
   import { getMenuList } from '/@/api/system/system';
 
   export default defineComponent({
@@ -49,7 +59,8 @@
         setDrawerProps({ confirmLoading: false });
         // 需要在setFieldsValue之前先填充treeData,否则Tree组件可能会报key not exist警告
         if (unref(treeData).length === 0) {
-          treeData.value = (await getMenuList()) as any as TreeItem[];
+          const tData = (await getMenuList()) as any as TreeMenuNode[];
+          treeData.value = makeMenuTree(tData);
         }
         isUpdate.value = !!data?.isUpdate;
 

+ 41 - 23
src/views/dashboard/system/role/role.data.ts

@@ -2,11 +2,17 @@ import { BasicColumn } from '/@/components/Table';
 import { FormSchema } from '/@/components/Table';
 import { h } from 'vue';
 import { Switch } from 'ant-design-vue';
-import { setRoleStatus } from '/@/api/system/system';
-import { useMessage } from '/@/hooks/web/useMessage';
+import { Time } from '/@/components/Time';
+// import { setRoleStatus } from '/@/api/system/system';
+// import { useMessage } from '/@/hooks/web/useMessage';
 
 export const columns: BasicColumn[] = [
   {
+    title: 'ID',
+    dataIndex: 'roleId',
+    width: 80,
+  },
+  {
     title: '角色名称',
     dataIndex: 'roleName',
     width: 200,
@@ -23,33 +29,33 @@ export const columns: BasicColumn[] = [
   },
   {
     title: '状态',
-    dataIndex: 'status',
+    dataIndex: 'canShow',
     width: 120,
     customRender: ({ record }) => {
       if (!Reflect.has(record, 'pendingStatus')) {
         record.pendingStatus = false;
       }
       return h(Switch, {
-        checked: record.status === '1',
+        checked: record.canShow === 0,
         checkedChildren: '已启用',
         unCheckedChildren: '已禁用',
-        loading: record.pendingStatus,
-        onChange(checked: boolean) {
-          record.pendingStatus = true;
-          const newStatus = checked ? '1' : '0';
-          const { createMessage } = useMessage();
-          setRoleStatus(record.id, newStatus)
-            .then(() => {
-              record.status = newStatus;
-              createMessage.success(`已成功修改角色状态`);
-            })
-            .catch(() => {
-              createMessage.error('修改角色状态失败');
-            })
-            .finally(() => {
-              record.pendingStatus = false;
-            });
-        },
+        loading: record.pendingStatus as any as boolean,
+        // onChange(checked: boolean) {
+        // record.pendingStatus = true;
+        // const newStatus = checked ? '1' : '0';
+        // const { createMessage } = useMessage();
+        // setRoleStatus(record.id, newStatus)
+        //   .then(() => {
+        //     record.status = newStatus;
+        //     createMessage.success(`已成功修改角色状态`);
+        //   })
+        //   .catch(() => {
+        //     createMessage.error('修改角色状态失败');
+        //   })
+        //   .finally(() => {
+        //     record.pendingStatus = false;
+        //   });
+        // },
       });
     },
   },
@@ -57,6 +63,12 @@ export const columns: BasicColumn[] = [
     title: '创建时间',
     dataIndex: 'createTime',
     width: 180,
+    customRender: ({ record }) => {
+      return h(Time, {
+        value: record.createTime,
+        mode: 'datetime',
+      });
+    },
   },
   {
     title: '备注',
@@ -72,7 +84,7 @@ export const searchFormSchema: FormSchema[] = [
     colProps: { span: 8 },
   },
   {
-    field: 'status',
+    field: 'canShow',
     label: '状态',
     component: 'Select',
     componentProps: {
@@ -117,8 +129,14 @@ export const formSchema: FormSchema[] = [
   },
   {
     label: ' ',
-    field: 'menu',
+    field: 'menuIdList',
     slot: 'menu',
     component: 'Input',
   },
+  {
+    label: ' ',
+    field: 'deptIdList',
+    slot: 'dept',
+    component: 'Input',
+  },
 ];