|
@@ -5,6 +5,13 @@ import type { ResponseData } from 'alova';
|
|
import { requestMethodFactory } from '@/platform/request.ts';
|
|
import { requestMethodFactory } from '@/platform/request.ts';
|
|
import type { AccountModel } from '@model/account.model.ts';
|
|
import type { AccountModel } from '@model/account.model.ts';
|
|
|
|
|
|
|
|
+import { defaultMenus, type MenuPath, menus as menusMap } from '@/router/menu.ts';
|
|
|
|
+
|
|
|
|
+interface AccountData {
|
|
|
|
+ token: string;
|
|
|
|
+ account: AccountModel;
|
|
|
|
+}
|
|
|
|
+
|
|
export function loginMethod(data: { username: string; password: string }) {
|
|
export function loginMethod(data: { username: string; password: string }) {
|
|
return requestMethodFactory(
|
|
return requestMethodFactory(
|
|
PharmacyHttpClient.Post<string, ResponseData>(`/login/v2`, data, {
|
|
PharmacyHttpClient.Post<string, ResponseData>(`/login/v2`, data, {
|
|
@@ -17,7 +24,7 @@ export function loginMethod(data: { username: string; password: string }) {
|
|
|
|
|
|
export function getAccountMethod(token: string) {
|
|
export function getAccountMethod(token: string) {
|
|
return requestMethodFactory(
|
|
return requestMethodFactory(
|
|
- SystemHttpClient.Get<{ token: string; account: AccountModel }, ResponseData>(`/user/getInfo`, {
|
|
|
|
|
|
+ SystemHttpClient.Get<AccountData, ResponseData>(`/user/getInfo`, {
|
|
headers: { Authorization: token },
|
|
headers: { Authorization: token },
|
|
transform(data) {
|
|
transform(data) {
|
|
const user = data?.user;
|
|
const user = data?.user;
|
|
@@ -27,10 +34,30 @@ export function getAccountMethod(token: string) {
|
|
id: user?.userId?.toString(),
|
|
id: user?.userId?.toString(),
|
|
name: user?.nickName ?? user?.userName ?? '',
|
|
name: user?.nickName ?? user?.userName ?? '',
|
|
username: user?.userName,
|
|
username: user?.userName,
|
|
- nickname: user?.nickName
|
|
|
|
|
|
+ nickname: user?.nickName,
|
|
},
|
|
},
|
|
};
|
|
};
|
|
},
|
|
},
|
|
}),
|
|
}),
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+export function getMenusMethod({ token, ...account }: AccountData) {
|
|
|
|
+ return requestMethodFactory(
|
|
|
|
+ SystemHttpClient.Get<AccountData & { menus: typeof defaultMenus }, ResponseData[]>(`/menu/getPdaRouters`, {
|
|
|
|
+ headers: { Authorization: token },
|
|
|
|
+ transform(data) {
|
|
|
|
+ let menus;
|
|
|
|
+ if (Array.isArray(data)) {
|
|
|
|
+ menus = data.map(({ path, meta }) => {
|
|
|
|
+ const name = meta?.title || (menusMap[path as MenuPath]?.title ?? '');
|
|
|
|
+ return { path, name };
|
|
|
|
+ }).filter(Boolean);
|
|
|
|
+ } else {
|
|
|
|
+ menus = defaultMenus;
|
|
|
|
+ }
|
|
|
|
+ return Object.assign(account, { token, menus });
|
|
|
|
+ },
|
|
|
|
+ }),
|
|
|
|
+ );
|
|
|
|
+}
|