feat(@vben/web-antd): 新增区域安保配置模块

- 新增区域安保 API 接口定义
- 新增区域安保配置页面,支持区域视图和人员视图
- 包含人员绑定弹窗和人员卡片组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-03-15 16:54:38 +08:00
parent b1db581d36
commit b9f45c8fdc
7 changed files with 1425 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
import { requestClient } from '#/api/request';
export namespace AreaSecurityApi {
/** 区域-安保人员绑定记录(对应后端 OpsAreaSecurityUserRespVO */
export interface AreaSecurityUser {
id: number;
areaId: number;
userId: number;
userName: string;
teamId?: number;
enabled: boolean;
sort: number;
createTime?: string;
}
/** 绑定安保人员请求(对应后端 OpsAreaSecurityUserBindReqVO */
export interface BindReq {
areaId: number;
userId: number;
userName?: string;
teamId?: number;
sort?: number;
}
/** 更新绑定请求(对应后端 OpsAreaSecurityUserUpdateReqVO */
export interface UpdateReq {
id: number;
enabled?: boolean;
sort?: number;
teamId?: number;
}
}
// ========== 区域安保人员绑定 API ==========
// 后端路径前缀: /ops/security/area-user
/** 获取某区域已绑定的安保人员列表 */
export function getAreaSecurityUserList(areaId: number) {
return requestClient.get<AreaSecurityApi.AreaSecurityUser[]>(
'/ops/security/area-user/list',
{ params: { areaId } },
);
}
/** 绑定安保人员到区域 */
export function bindAreaSecurityUser(data: AreaSecurityApi.BindReq) {
return requestClient.post<number>('/ops/security/area-user/bind', data);
}
/** 更新绑定信息(启用/停用、排序、团队) */
export function updateAreaSecurityUser(data: AreaSecurityApi.UpdateReq) {
return requestClient.put<boolean>('/ops/security/area-user/update', data);
}
/** 解绑安保人员(按绑定记录 ID */
export function unbindAreaSecurityUser(id: number) {
return requestClient.delete<boolean>('/ops/security/area-user/unbind', {
params: { id },
});
}