From 0b9e99d00f333ba4ee79113084cb4163439562d8 Mon Sep 17 00:00:00 2001
From: HoshinoSuzumi <master@uniiem.com>
Date: Sun, 22 Sep 2024 01:26:18 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E9=A1=B5=E9=9D=A2?=
 =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8D=95=E4=BD=8D=E3=80=81=E8=A7=92=E8=89=B2?=
 =?UTF-8?q?=E3=80=81=E6=9D=83=E9=99=90=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/pages/my/index.vue | 10 ++++++++--
 src/types/api/user.ts  | 40 ++++++++++++++++++++++++++++++++++++++--
 2 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/src/pages/my/index.vue b/src/pages/my/index.vue
index 3f8d143..a000923 100644
--- a/src/pages/my/index.vue
+++ b/src/pages/my/index.vue
@@ -15,6 +15,11 @@ const logout = () => {
   router.replaceAll('/pages/login/index')
 }
 
+const departmentMap = {
+  4: '重庆眩生花科技有限公司',
+  5: '重庆电子科技职业大学',
+}
+
 onMounted(() => {
   toast.loading({
     msg: '加载中...'
@@ -32,8 +37,9 @@ onMounted(() => {
       <WdCellGroup :border="true">
         <WdCell title="用户名" :value="user.userinfo?.username || '-'" />
         <WdCell title="邮箱" :value="user.userinfo?.email || '-'" />
-        <WdCell title="单位" :value="user.userinfo?.department_id || '-'" />
-        <WdCell title="角色" :value="user.userinfo?.roles.join('') || '-'" />
+        <WdCell title="单位" :value="user.userinfo?.department_id ? departmentMap[user.userinfo.department_id] : '-'" />
+        <WdCell title="角色" :value="user.userinfo?.roles.map(i => i.role_name).join(', ') || '-'" />
+        <WdCell title="权限" :value="user.userinfo?.jobs.map(i => i.job_name).join(', ') || '-'" />
       </WdCellGroup>
       <div class="px-4">
         <wd-button plain hairline block type="error" @click="logout">退出账号</wd-button>
diff --git a/src/types/api/user.ts b/src/types/api/user.ts
index 84c7a1b..54b82ff 100644
--- a/src/types/api/user.ts
+++ b/src/types/api/user.ts
@@ -12,8 +12,8 @@ export interface User {
   updated_at: string;
   deleted_at: Date;
   permissions: Permission[];
-  roles: any[];
-  jobs: any[];
+  roles: Role[];
+  jobs: Job[];
 }
 
 export interface Permission {
@@ -41,3 +41,39 @@ export enum PermissionModule {
   Permissions = "permissions",
   User = "user",
 }
+
+export interface Job {
+  id: number;
+  job_name: string;
+  coding: string;
+  status: number;
+  sort: number;
+  description: string;
+  creator_id: number;
+  created_at: string;
+  updated_at: string;
+  pivot: JobPivot;
+}
+
+export interface JobPivot {
+  user_id: number;
+  job_id: number;
+}
+
+export interface Role {
+  id: number;
+  role_name: string;
+  identify: string;
+  parent_id: number;
+  description: string;
+  data_range: number;
+  creator_id: number;
+  created_at: string;
+  updated_at: string;
+  pivot: RolePivot;
+}
+
+export interface RolePivot {
+  user_id: number;
+  role_id: number;
+}