Commit 93d021a968e203abc4c71a086e2eacc54ddb0921
1 parent
e7ee002d
feat: tenant admin list add use tenant identity login
Showing
3 changed files
with
46 additions
and
2 deletions
| @@ -14,7 +14,7 @@ enum Api { | @@ -14,7 +14,7 @@ enum Api { | ||
| 14 | * @description: Get user menu based on id | 14 | * @description: Get user menu based on id |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -export const getMenuList = (args) => { | 17 | +export const getMenuList = (args?: number) => { |
| 18 | const userStore = useUserStore(); | 18 | const userStore = useUserStore(); |
| 19 | let url = Api.GetMenuList; | 19 | let url = Api.GetMenuList; |
| 20 | try { | 20 | try { |
| @@ -94,3 +94,9 @@ export function forgetPasswordApi(data) { | @@ -94,3 +94,9 @@ export function forgetPasswordApi(data) { | ||
| 94 | data, | 94 | data, |
| 95 | }); | 95 | }); |
| 96 | } | 96 | } |
| 97 | + | ||
| 98 | +export const getUserToken = (id: string) => { | ||
| 99 | + return defHttp.get<Record<'token' | 'refreshToken', string>>({ | ||
| 100 | + url: `/third/login/id/${id}`, | ||
| 101 | + }); | ||
| 102 | +}; |
| @@ -16,6 +16,14 @@ | @@ -16,6 +16,14 @@ | ||
| 16 | <TableAction | 16 | <TableAction |
| 17 | :actions="[ | 17 | :actions="[ |
| 18 | { | 18 | { |
| 19 | + label: '进入', | ||
| 20 | + icon: 'ant-design:login-outlined', | ||
| 21 | + tooltip: '以租户管理员身份登录', | ||
| 22 | + onClick: handleLoginTenantAdmin.bind(null, record), | ||
| 23 | + }, | ||
| 24 | + ]" | ||
| 25 | + :drop-down-actions="[ | ||
| 26 | + { | ||
| 19 | label: '短信通知', | 27 | label: '短信通知', |
| 20 | icon: 'ant-design:send-outlined', | 28 | icon: 'ant-design:send-outlined', |
| 21 | tooltip: '发送通知短信', | 29 | tooltip: '发送通知短信', |
| @@ -94,6 +102,12 @@ | @@ -94,6 +102,12 @@ | ||
| 94 | import { MessageTypeEnum, SendResetPasswordEmailMsg } from '/@/api/tenant/tenantInfo'; | 102 | import { MessageTypeEnum, SendResetPasswordEmailMsg } from '/@/api/tenant/tenantInfo'; |
| 95 | import { useMessage } from '/@/hooks/web/useMessage'; | 103 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 96 | import { Authority } from '/@/components/Authority'; | 104 | import { Authority } from '/@/components/Authority'; |
| 105 | + import { getMyInfo, getPermCode, getUserToken } from '/@/api/sys/user'; | ||
| 106 | + import { useUserStore } from '/@/store/modules/user'; | ||
| 107 | + import { usePermissionStore } from '/@/store/modules/permission'; | ||
| 108 | + import { RoleEnum } from '/@/enums/roleEnum'; | ||
| 109 | + import { useGo } from '/@/hooks/web/usePage'; | ||
| 110 | + import { PageEnum } from '/@/enums/pageEnum'; | ||
| 97 | 111 | ||
| 98 | export default defineComponent({ | 112 | export default defineComponent({ |
| 99 | name: 'TenantAdminDrawer', | 113 | name: 'TenantAdminDrawer', |
| @@ -198,10 +212,15 @@ | @@ -198,10 +212,15 @@ | ||
| 198 | fixed: 'right', | 212 | fixed: 'right', |
| 199 | }, | 213 | }, |
| 200 | }); | 214 | }); |
| 215 | + | ||
| 216 | + let firstEnterFlag = true; | ||
| 201 | //默认传递页面数据 | 217 | //默认传递页面数据 |
| 202 | const [tenantAdminDrawer, { closeDrawer }] = useDrawerInner(async (data) => { | 218 | const [tenantAdminDrawer, { closeDrawer }] = useDrawerInner(async (data) => { |
| 203 | tenantId.value = data.record.tenantId; | 219 | tenantId.value = data.record.tenantId; |
| 204 | - reload(); | 220 | + !firstEnterFlag && reload(); |
| 221 | + if (firstEnterFlag) { | ||
| 222 | + firstEnterFlag = false; | ||
| 223 | + } | ||
| 205 | }); | 224 | }); |
| 206 | 225 | ||
| 207 | //提交按钮 | 226 | //提交按钮 |
| @@ -213,6 +232,24 @@ | @@ -213,6 +232,24 @@ | ||
| 213 | reload(); | 232 | reload(); |
| 214 | } | 233 | } |
| 215 | 234 | ||
| 235 | + const userStore = useUserStore(); | ||
| 236 | + const permissionStore = usePermissionStore(); | ||
| 237 | + const go = useGo(); | ||
| 238 | + async function handleLoginTenantAdmin(record: { tbUser: string; id: string }) { | ||
| 239 | + try { | ||
| 240 | + const { token, refreshToken } = await getUserToken(record.id); | ||
| 241 | + userStore.storeToken(token, refreshToken); | ||
| 242 | + const userInfo = await getMyInfo(); | ||
| 243 | + const permissionList = await getPermCode(); | ||
| 244 | + permissionStore.setPermCodeList(permissionList); | ||
| 245 | + userStore.setUserInfo(userInfo); | ||
| 246 | + userStore.setRoleList(userInfo.roles as RoleEnum[]); | ||
| 247 | + go(PageEnum.BASE_HOME); | ||
| 248 | + } catch (error) { | ||
| 249 | + } finally { | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + | ||
| 216 | return { | 253 | return { |
| 217 | tenantAdminDrawer, | 254 | tenantAdminDrawer, |
| 218 | handleCreateTenantAdmin, | 255 | handleCreateTenantAdmin, |
| @@ -225,6 +262,7 @@ | @@ -225,6 +262,7 @@ | ||
| 225 | handleDelete, | 262 | handleDelete, |
| 226 | handleResetPassword, | 263 | handleResetPassword, |
| 227 | handleSendMsg, | 264 | handleSendMsg, |
| 265 | + handleLoginTenantAdmin, | ||
| 228 | }; | 266 | }; |
| 229 | }, | 267 | }, |
| 230 | }); | 268 | }); |