Commit 93d021a968e203abc4c71a086e2eacc54ddb0921

Authored by ww
1 parent e7ee002d

feat: tenant admin list add use tenant identity login

@@ -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 });