Commit 93d021a968e203abc4c71a086e2eacc54ddb0921

Authored by ww
1 parent e7ee002d

feat: tenant admin list add use tenant identity login

... ... @@ -14,7 +14,7 @@ enum Api {
14 14 * @description: Get user menu based on id
15 15 */
16 16
17   -export const getMenuList = (args) => {
  17 +export const getMenuList = (args?: number) => {
18 18 const userStore = useUserStore();
19 19 let url = Api.GetMenuList;
20 20 try {
... ...
... ... @@ -94,3 +94,9 @@ export function forgetPasswordApi(data) {
94 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 16 <TableAction
17 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 27 label: '短信通知',
20 28 icon: 'ant-design:send-outlined',
21 29 tooltip: '发送通知短信',
... ... @@ -94,6 +102,12 @@
94 102 import { MessageTypeEnum, SendResetPasswordEmailMsg } from '/@/api/tenant/tenantInfo';
95 103 import { useMessage } from '/@/hooks/web/useMessage';
96 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 112 export default defineComponent({
99 113 name: 'TenantAdminDrawer',
... ... @@ -198,10 +212,15 @@
198 212 fixed: 'right',
199 213 },
200 214 });
  215 +
  216 + let firstEnterFlag = true;
201 217 //默认传递页面数据
202 218 const [tenantAdminDrawer, { closeDrawer }] = useDrawerInner(async (data) => {
203 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 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 253 return {
217 254 tenantAdminDrawer,
218 255 handleCreateTenantAdmin,
... ... @@ -225,6 +262,7 @@
225 262 handleDelete,
226 263 handleResetPassword,
227 264 handleSendMsg,
  265 + handleLoginTenantAdmin,
228 266 };
229 267 },
230 268 });
... ...