沉淀数字员工角色偏好状态

This commit is contained in:
baiyanyun
2026-06-09 09:34:39 +08:00
parent 2f9af0b173
commit 726369f5a9
9 changed files with 216 additions and 32 deletions

View File

@@ -168,6 +168,8 @@ export interface DigitalEmployeeUiState {
reportScheduleTime: string;
reportGeneratedAtByDate: Record<string, string>;
decisionResultsByDate: Record<string, Record<string, string>>;
consoleRole?: string;
rolePreferences?: Record<string, unknown>;
profile: {
name: string;
company: string;
@@ -258,6 +260,8 @@ function defaultUiState(): DigitalEmployeeUiState {
reportScheduleTime: "18:00",
reportGeneratedAtByDate: {},
decisionResultsByDate: {},
consoleRole: "sales",
rolePreferences: {},
profile: {
name: "飞天数字员工",
company: "qimingclaw 客户端",
@@ -304,6 +308,11 @@ function normalizeNestedStringMap(value: unknown): Record<string, Record<string,
);
}
function normalizeRecord(value: unknown): Record<string, unknown> {
if (!value || typeof value !== "object" || Array.isArray(value)) return {};
return { ...value as Record<string, unknown> };
}
function normalizeUiState(
value: Partial<DigitalEmployeeUiState>,
): DigitalEmployeeUiState {
@@ -317,6 +326,10 @@ function normalizeUiState(
: fallback.reportScheduleTime,
reportGeneratedAtByDate: normalizeStringMap(value.reportGeneratedAtByDate),
decisionResultsByDate: normalizeNestedStringMap(value.decisionResultsByDate),
consoleRole: typeof value.consoleRole === "string" && value.consoleRole.trim()
? value.consoleRole
: fallback.consoleRole,
rolePreferences: normalizeRecord(value.rolePreferences),
profile: {
name: typeof profile.name === "string" && profile.name.trim()
? profile.name
@@ -347,6 +360,10 @@ function digitalEmployeeUiActionMessage(action: string, date?: string): string {
return `数字员工日报已生成${suffix}`;
case "decide_approval":
return `数字员工待决策事项已处理${suffix}`;
case "update_console_role":
return "数字员工角色已更新";
case "update_role_preferences":
return "数字员工运营偏好已更新";
default:
return `数字员工页面状态已更新${suffix}`;
}