Commit bf171a78902240f080ed7c4972f5c2f8d309a047

Authored by fengtao
1 parent dfeb15db

feat:新增客户快速进入系统

... ... @@ -46,6 +46,12 @@
46 46 <TableAction
47 47 :actions="[
48 48 {
  49 + label: '进入',
  50 + icon: 'ant-design:login-outlined',
  51 + tooltip: '以客户用户身份登录',
  52 + onClick: handleLoginCustomAdmin.bind(null, record),
  53 + },
  54 + {
49 55 label: '用户详情',
50 56 auth: 'api:yt:user:get',
51 57 icon: 'clarity:info-standard-line',
... ... @@ -96,6 +102,14 @@
96 102 import { useGo } from '/@/hooks/web/usePage';
97 103 import { useBatchDelete } from '/@/hooks/web/useBatchDelete';
98 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 { router } from '/@/router';
  109 + import { RoleEnum } from '/@/enums/roleEnum';
  110 + import { RouteRecordRaw } from 'vue-router';
  111 + import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
  112 + import { PageEnum } from '/@/enums/pageEnum';
99 113
100 114 export default defineComponent({
101 115 name: 'AccountManagement',
... ... @@ -168,8 +182,32 @@
168 182 function handleView(record: Recordable) {
169 183 go('/system/account_detail/' + record.id);
170 184 }
  185 + const userStore = useUserStore();
  186 +
  187 + const permissionStore = usePermissionStore();
  188 + async function handleLoginCustomAdmin(record: { tbUser: string; id: string }) {
  189 + try {
  190 + const { token, refreshToken } = await getUserToken(record.id);
  191 + userStore.storeToken(token, refreshToken);
  192 + const userInfo = await getMyInfo();
  193 + const permissionList = await getPermCode();
  194 + permissionStore.setPermCodeList(permissionList);
  195 + userStore.setUserInfo(userInfo);
  196 + userStore.setRoleList(userInfo.roles as RoleEnum[]);
  197 + const routes = await permissionStore.buildRoutesAction();
  198 + routes.forEach((route) => {
  199 + router.addRoute(route as unknown as RouteRecordRaw);
  200 + });
  201 + router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
  202 + permissionStore.setDynamicAddedRoute(true);
  203 + go(PageEnum.BASE_HOME);
  204 + } catch (error) {
  205 + } finally {
  206 + }
  207 + }
171 208
172 209 return {
  210 + handleLoginCustomAdmin,
173 211 registerTable,
174 212 registerModal,
175 213 handleCreate,
... ...