feat(activity-ops): 启动表单两格按芯片类型联动 —— 候选带分组键,先填的那格是锚
CI / ci (push) Failing after 10s

契约:launchOption 加 group/groupLabel(x-options.group 从字典表现读人读名)、
launchParam 加 linkGroup(x-link 结组);api-report 已随 --update 入库。
前端 launch-link.ts 纯函数管三条口径:锚摆全量、其余按锚的分组键收窄
(未标类型殿后一组,新增照走);锚粘着 —— 清空只解除收窄不换锚,人改得了主意。
服务端不据此立墙:combo 本就收候选之外的值,类型一致归 S1 收步判据
sub_eval_part_distinct_chip_type_id = 1(数得出来的门)。
W05 清单两格挂上 x-link: chip-type;文档同步。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
xcs
2026-08-31 18:57:29 +08:00
co-authored by Claude Fable 5
parent 04ec718a66
commit 8c5f3a7736
13 changed files with 630 additions and 20 deletions
+13
View File
@@ -296,9 +296,16 @@ export declare const launchParamTypeSchema: z.ZodEnum<{
list: "list";
}>;
export type LaunchParamType = z.infer<typeof launchParamTypeSchema>;
/**
* 一条候选。`group` 是**联动分组键**(2026-08-31 用户定):清单 `x-options.group` 指了哪一列,
* 这颗候选就带上它在那一列的值(如料号的 `chip_type_id`);空串 = 那一列没值(「未标类型」)。
* `groupLabel` 是这枚键的人读名(从字典表现读,如「DC-DC 降压稳压器」),读不到就没有 —— 界面退回摆键本身。
*/
export declare const launchOptionSchema: z.ZodObject<{
value: z.ZodString;
label: z.ZodString;
group: z.ZodOptional<z.ZodString>;
groupLabel: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type LaunchOption = z.infer<typeof launchOptionSchema>;
export declare const launchParamSchema: z.ZodObject<{
@@ -317,8 +324,11 @@ export declare const launchParamSchema: z.ZodObject<{
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
value: z.ZodString;
label: z.ZodString;
group: z.ZodOptional<z.ZodString>;
groupLabel: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>>;
default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
linkGroup: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type LaunchParam = z.infer<typeof launchParamSchema>;
export declare const launchParamsSchema: z.ZodObject<{
@@ -340,8 +350,11 @@ export declare const launchParamsSchema: z.ZodObject<{
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
value: z.ZodString;
label: z.ZodString;
group: z.ZodOptional<z.ZodString>;
groupLabel: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>>;
default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
linkGroup: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
export type LaunchParams = z.infer<typeof launchParamsSchema>;
@@ -176,8 +176,11 @@ export declare const opsLaunchParamsRoute: {
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
value: z.ZodString;
label: z.ZodString;
group: z.ZodOptional<z.ZodString>;
groupLabel: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>>;
default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
linkGroup: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
};