Archived
数据工单有了自己的面孔;件上四处样式对齐;缺库不再问人;5173 反代改回本机
用户在工作台上连报六条(2026-08-27):
- 对话区把数据工单摆成「执行工单」→ 契约 ExecutionWorkOrder.variant:'data'(引擎侧与执行工单无异,
只换面孔),归一层从卡上带下来,web 新增 DataForm(同一套办法、另一副面孔:色/图标/「数据工单」/「确认写入」),
办结卡与治理台人类工具目录同步;活动的两张数据工单卡骨架标 variant:"data"。
- 表显示不全不能右滑 → 目标件把 overflow-x:auto 写在 .tbl-wrap,平台包装是 .jc-tbl-wrap,谁都没管到;补一条。
- 表头只留中文 → 三张数据工单表去英文列名与 .thd 小字。
- 编辑态内部料号「只读字 + 输入框」并排 → 目标件 #tbl1 .jc-vcell{display:inline}(id 特异度)盖过
table.on 的隐藏规则,表 1 每格其实都并排,PN 那格恰好有字;用 id 特异度覆盖回去。
- input 与 select 没对齐 → 徽标从前包 .ro 编辑态留着、压在下拉框头上把那格顶低 13px,改成随只读格一起藏;
input/select 钉同一高度。
- 第一步「派数据工单还是放弃候选」不该问人 → 决策卡退役(覆盖规格「候选 ≥2 可放弃」那一条,用户定),
查无记录一律自动派;剧本/说明书/测试/e2e 同步(e2e 新增 expectAsks.max 断言「不该问的没问」)。
顺带:5173 的 /api 反代默认指向一条公网隧道(150.158.83.131:46100 → nps → npc → 本机 :8787),
浏览器每次请求先出公网再绕回来;默认改回本机,要远端的显式给 API_PROXY_TARGET。
静态渲染实证:900px 宽的框里横向能滑 200px;编辑态同一行 3 input + 1 select 全部 32px 同一 y;
只读 PN 格 display:none。活动包 1.4.0;2097 测 / typecheck / lint / depcruise 绿。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FJcX8A6TWp4GRs41TYryEh
This commit is contained in:
+12
-8
@@ -608,9 +608,9 @@ const SUITES = {
|
||||
cases: [
|
||||
{
|
||||
sample: 0,
|
||||
name: '候选缺库 · XL2596S-5.0 派数据工单(P-08 + P-10)· 审核先点名驳回再通过',
|
||||
// 决策卡序:候选 ≥2 缺库先问 → create;审核第一张点名意见驳回;第二张通过
|
||||
decideSeq: ['create', 'custom:使能阈值那条 UNKNOWN 的去向请写明验证任务号与测试条件', 'approve'],
|
||||
name: '候选缺库 · XL2596S-5.0 自动派数据工单(P-08 + P-10)· 审核先点名驳回再通过',
|
||||
// 决策卡序(2026-08-27 起缺库不再问人,数据工单自动派):审核第一张点名意见驳回;第二张通过
|
||||
decideSeq: ['custom:使能阈值那条 UNKNOWN 的去向请写明验证任务号与测试条件', 'approve'],
|
||||
expectDecision: true,
|
||||
expectPort: 'assessment-released',
|
||||
stageEdits: {
|
||||
@@ -706,11 +706,11 @@ const SUITES = {
|
||||
},
|
||||
{
|
||||
sample: 3,
|
||||
name: '三候选 · 两颗缺库各问一次 · 国产 32V 硬约束不推荐',
|
||||
decideSeq: ['create', 'create', 'approve'],
|
||||
name: '三候选 · 两颗缺库一律自动派单 · 国产 32V 硬约束不推荐',
|
||||
decideSeq: ['approve'],
|
||||
expectDecision: true,
|
||||
// 两颗候选缺库 → 按规格各问一次(审核卡也是决策卡,所以要按问法数,不能只看张数)
|
||||
expectAsks: [{ re: /查无记录/, count: 2 }],
|
||||
// 缺库不再问人(2026-08-27 用户定):这一例一张「查无记录」决策卡都不该出现
|
||||
expectAsks: [{ re: /查无记录/, count: 0, max: 0 }],
|
||||
expectPort: 'assessment-released',
|
||||
stageEdits: {
|
||||
'parts.profile': [
|
||||
@@ -1389,12 +1389,16 @@ async function runCase(suite, kase) {
|
||||
* 而审核卡也是决策卡 —— `decisions > 0` 于是恒真,该问没问照样绿)。
|
||||
*/
|
||||
if (kase.expectAsks !== undefined) {
|
||||
for (const { re, count } of kase.expectAsks) {
|
||||
for (const { re, count, max } of kase.expectAsks) {
|
||||
const got = asked.filter((a) => re.test(a)).length;
|
||||
if (got < count) {
|
||||
console.log(` ⚠️ 该问的没问够:${re} 期望 ≥${count} 张,实际 ${got} 张 —— 判失败`);
|
||||
ok = false;
|
||||
}
|
||||
if (max !== undefined && got > max) {
|
||||
console.log(` ⚠️ 不该问的问了:${re} 最多 ${max} 张,实际 ${got} 张 —— 判失败`);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (kase.expectDecision && decisions === 0) {
|
||||
|
||||
Reference in New Issue
Block a user