feat(frontend): owner identity profile admin page
- train/owner-profiles.vue: table + create/edit dialog + enable/disable with confirm; project options from org snapshot with manual fallback; concerns limited to 500 chars with content-discipline notice - route registered under 训练运营 with operationsConsoleRoles
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
type ApiResult<T> = { code: number; msg: string; data: T };
|
||||
|
||||
/**
|
||||
* 业主身份档案(实时对练 persona 的运营数据),moderator 角色门,与 question-admin 同口径。
|
||||
* 后端契约:/api/aihr/realtime/owner-profiles
|
||||
* - GET / 列表(本租户,含 enabled/version/审计字段)
|
||||
* - POST / 创建(同 projectCode 重复返回冲突)
|
||||
* - PUT /{id} 全量覆盖更新(联调时若后端改乐观锁可在此集中调整)
|
||||
* - POST /{id}/enable、POST /{id}/disable 启停(若后端改为 PUT /{id}/status 或全量带 enabled,
|
||||
* 只需调整下方 setOwnerProfileEnabled 一处封装)
|
||||
*/
|
||||
|
||||
export type OwnerProfile = {
|
||||
id: number;
|
||||
projectCode: string;
|
||||
projectName: string;
|
||||
ageRange: string;
|
||||
incomeLevel: string;
|
||||
familyStructure: string;
|
||||
concerns: string;
|
||||
enabled: boolean;
|
||||
version?: number;
|
||||
createBy?: string;
|
||||
createTime?: string;
|
||||
updateBy?: string;
|
||||
updateTime?: string;
|
||||
};
|
||||
|
||||
export type OwnerProfilePayload = {
|
||||
projectCode: string;
|
||||
projectName: string;
|
||||
ageRange: string;
|
||||
incomeLevel: string;
|
||||
familyStructure: string;
|
||||
concerns: string;
|
||||
};
|
||||
|
||||
export const listOwnerProfiles = (): Promise<ApiResult<OwnerProfile[]>> => request({
|
||||
url: '/api/aihr/realtime/owner-profiles', method: 'get'
|
||||
});
|
||||
|
||||
export const createOwnerProfile = (data: OwnerProfilePayload): Promise<ApiResult<OwnerProfile>> => request({
|
||||
url: '/api/aihr/realtime/owner-profiles', method: 'post', data, headers: { repeatSubmit: false }
|
||||
});
|
||||
|
||||
export const updateOwnerProfile = (id: number, data: OwnerProfilePayload): Promise<ApiResult<OwnerProfile>> => request({
|
||||
url: `/api/aihr/realtime/owner-profiles/${id}`, method: 'put', data, headers: { repeatSubmit: false }
|
||||
});
|
||||
|
||||
/**
|
||||
* 启停统一入口:先按独立 enable/disable 端点实现;
|
||||
* 若后端实际提供 PUT /{id}/status(带 enabled)或仅支持 PUT 全量带 enabled 字段,
|
||||
* 联调时只改这一个函数即可。
|
||||
*/
|
||||
export const setOwnerProfileEnabled = (id: number, enabled: boolean): Promise<ApiResult<OwnerProfile>> => request({
|
||||
url: `/api/aihr/realtime/owner-profiles/${id}/${enabled ? 'enable' : 'disable'}`, method: 'post', headers: { repeatSubmit: false }
|
||||
});
|
||||
Reference in New Issue
Block a user