业务平台 (biz) 与物联运维平台 (iot) 共享同一后端,需按前端来源过滤菜单, 避免同一角色在两端看到相同菜单。 - 新增 CLIENT_ID 常量,请求拦截器 / 基础 client 统一注入 X-Client-Id 头, 后端密码登录 & refresh-token 据此绑定 token 的 client/platform - SystemMenuApi.Menu 增加 platform 字段 - 菜单表单新增"所属平台"选择项(PLATFORM_OPTIONS),为 null 则两端共享 配合后端迁移 sql/mysql/migrations/2026-04-20_oauth2_client_platform.sql。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { requestClient } from '#/api/request';
|
|
|
|
export namespace SystemMenuApi {
|
|
/** 菜单信息 */
|
|
export interface Menu {
|
|
id: number;
|
|
name: string;
|
|
permission: string;
|
|
type: number;
|
|
sort: number;
|
|
parentId: number;
|
|
path: string;
|
|
icon: string;
|
|
component: string;
|
|
componentName?: string;
|
|
status: number;
|
|
visible: boolean;
|
|
keepAlive: boolean;
|
|
alwaysShow?: boolean;
|
|
platform?: string;
|
|
createTime: Date;
|
|
}
|
|
}
|
|
|
|
/** 查询菜单(精简)列表 */
|
|
export async function getSimpleMenusList() {
|
|
return requestClient.get<SystemMenuApi.Menu[]>('/system/menu/simple-list');
|
|
}
|
|
|
|
/** 查询菜单列表 */
|
|
export async function getMenuList(params?: Record<string, any>) {
|
|
return requestClient.get<SystemMenuApi.Menu[]>('/system/menu/list', {
|
|
params,
|
|
});
|
|
}
|
|
|
|
/** 获取菜单详情 */
|
|
export async function getMenu(id: number) {
|
|
return requestClient.get<SystemMenuApi.Menu>(`/system/menu/get?id=${id}`);
|
|
}
|
|
|
|
/** 新增菜单 */
|
|
export async function createMenu(data: SystemMenuApi.Menu) {
|
|
return requestClient.post('/system/menu/create', data);
|
|
}
|
|
|
|
/** 修改菜单 */
|
|
export async function updateMenu(data: SystemMenuApi.Menu) {
|
|
return requestClient.put('/system/menu/update', data);
|
|
}
|
|
|
|
/** 删除菜单 */
|
|
export async function deleteMenu(id: number) {
|
|
return requestClient.delete(`/system/menu/delete?id=${id}`);
|
|
}
|
|
|
|
/** 批量删除菜单 */
|
|
export async function deleteMenuList(ids: number[]) {
|
|
return requestClient.delete(`/system/menu/delete-list?ids=${ids.join(',')}`);
|
|
}
|