Archived
话说的范围要盖住门拦的范围;报告上把缺哪几格红字直说
三件,都是「说的和做的不是同一件事」这一类的又一次现形。 **为什么模型会漏掉 start** —— 提示词那条规矩写窄了。 原文:「标了「须你启动」的项要先 start **再调工具**」——只说了调工具; 而拦截那一侧(`readyToWork`)管的是 tool / ask / human / decide / entry / finish 一整片。 模型那一拍要发的是 `human`(派工单),照字面读这条规矩管不着它,于是漏了 start, 撞上「S3_confirm 标了人工激活,要先 start 再干活」白烧一拍。 **话窄一格,模型就正好漏在那一格上。** 现在写全:动它之前先 start,发卡与 finish 都算; 只有 write 例外(它的 itemId 只是记账,挂不上照写)。 **目标价左对齐** —— 右对齐是给要竖着相加的那种数用的;这张表一行一个料、彼此不相加, 右对齐只让它跟自己的表头分了家:标题贴左、数贴右,中间空一条,眼睛来回找。 等宽字体留着(位数对齐仍有用),对齐跟表头走。 **报告上把缺哪几格红字直说** —— 从前只在空格子里摆一枚小小的「必填」胶囊, 九行料摊开就淹在表里;而人打开这一屏就是来填的。现在表上方一条红带, 点名还差几格、差在哪一行的哪一列。两个数由基座现算(`_missing` / `_missing_keys`), 与提交闸、放行门 L1 同一个数;**模版不算也不判** —— 「一格不缺就别出这条带」 交给样式表(`data-class-of` → `v-0` 那档 display:none)。 浏览器验过两态:缺 1 格时 v-1 显示,从件上补齐后重渲变 v-0 自动收起。 五道门禁全绿(975 passed)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsTDjoHovERXyy6Wmw1ALp
This commit is contained in:
@@ -73,7 +73,7 @@ export const manifest: ActivityManifest = {
|
||||
identity: {
|
||||
activityId: ACTIVITY_ID,
|
||||
name: 'A1 · 询价受理',
|
||||
packageVersion: '41.0.0',
|
||||
packageVersion: '42.0.0',
|
||||
category: '统一报价',
|
||||
sdkVersion: '0.1.0-m5',
|
||||
checksum: 'dev-checksum-quote-intake',
|
||||
|
||||
@@ -96,7 +96,15 @@ const BIND_CSS = `
|
||||
.proto-root .jc-tbl-in.on td > .jc-cell { display: block; }
|
||||
/* 类那一列平时只有一枚 24px 的徽,编辑态要放得下一个字 */
|
||||
.proto-root .jc-tbl-in.on td.jc-ty, .proto-root .jc-tbl-in.on th:nth-child(2) { width: 56px; min-width: 56px; }
|
||||
.proto-root .jc-tbl-in.on td.num > .jc-cell, .proto-root .jc-tbl-in.on .jc-cell.num { text-align: right; }
|
||||
/*
|
||||
* **数值列也左对齐**(2026-08-02 用户:「目标价的价格也要跟标题左对齐,右对齐太奇怪了」)。
|
||||
*
|
||||
* 右对齐是给**要竖着相加的那种数**用的(金额合计、数量小计)——这张表里的目标价
|
||||
* 一行一个料、彼此不相加,右对齐只是让它和自己的表头分家:标题贴左、数贴右,
|
||||
* 中间空一条,眼睛得来回找。等宽字体留着(位数对齐仍有用),对齐方式跟表头走。
|
||||
*/
|
||||
.proto-root .jc-vcell.num, .proto-root .jc-cell.num { text-align: left; }
|
||||
.proto-root .jc-tbl-in.on td.num > .jc-cell, .proto-root .jc-tbl-in.on .jc-cell.num { text-align: left; }
|
||||
/* 编辑态下必填空格子:红框 + 红 placeholder(原型的 req-empty 同款,只是由 :placeholder-shown 认) */
|
||||
.proto-root .jc-tbl-in.on td.req > .jc-cell:placeholder-shown { border-color: #f3b6b3; background: #fffafa; }
|
||||
.proto-root .jc-tbl-in.on tbody tr:has(td.req > .jc-cell:placeholder-shown) td { background: #fffbfb; }
|
||||
@@ -136,6 +144,20 @@ html.editable .proto-root .jc-editgate {
|
||||
.proto-root .jc-editgate.on .jc-egbtn.open { display: none; }
|
||||
.proto-root .jc-editgate.on .jc-egbtn.ghost, .proto-root .jc-editgate.on .jc-egbtn.save { display: inline-flex; }
|
||||
.proto-root .jc-editgate.on .jc-editgate-t { visibility: hidden; }
|
||||
/* 缺项红带 —— **只在这一屏可改时出现**,且一格不缺就不出(判断在样式表,不在填数里) */
|
||||
.proto-root .jc-gapbar { display: none; }
|
||||
html.editable .proto-root .jc-gapbar {
|
||||
display: flex; align-items: flex-start; gap: 8px;
|
||||
margin: 0 0 10px; padding: 9px 12px; border-radius: 9px;
|
||||
background: #fff5f5; border: 1px solid #f3b6b3; color: var(--danger);
|
||||
font-size: 12px; line-height: 1.65;
|
||||
}
|
||||
.proto-root .jc-gapbar svg { flex: 0 0 auto; margin-top: 2px; }
|
||||
.proto-root .jc-gapbar b { font-weight: 800; }
|
||||
.proto-root .jc-gapbar span { color: #9a3b36; }
|
||||
/* 一格不缺 —— 那条带没有话可说 */
|
||||
html.editable .proto-root .jc-gapbar.v-0 { display: none; }
|
||||
|
||||
/* 那条「怎么改」的提示只在开了闸之后说 —— 锁着的时候它是句废话 */
|
||||
.proto-root .jc-editbar { display: none; }
|
||||
.proto-root .jc-editgate.on + .jc-editbar { display: flex; }
|
||||
@@ -402,6 +424,23 @@ const listTable = (mode: 'draft' | 'final'): string => {
|
||||
};
|
||||
|
||||
/** 编辑态那条提示带 —— 原型的 `jc-editbar`,只在待处理那一屏现身 */
|
||||
/**
|
||||
* **缺哪几格,红字直说**(2026-08-02 用户:「执行单现在要怎么填不明显,在报告上明显一点」)。
|
||||
*
|
||||
* 从前这一屏只在空格子里摆一枚小小的「必填」胶囊 —— 九行料摊开,那几枚胶囊淹在表里,
|
||||
* 人得逐行扫过去才知道自己要动哪一格。而他打开这一屏就是来填的。
|
||||
*
|
||||
* 现在表上方直接一条红带:**还差 N 格,分别是哪一行的哪一列**。
|
||||
* 两个数都由基座现算(`域_对象_missing` / `_missing_keys`),模版不算也不判 ——
|
||||
* 「一格不缺就别出这条带」这个判断交给样式表:`data-class-of` 把数消毒成
|
||||
* `v-0` / `v-1` / …,`v-0` 那一档 `display:none`。件本身仍然只做取值。
|
||||
*/
|
||||
const gapBar = `<div class="jc-gapbar" data-class-of="quote_intake_record_missing">${ico('alert', 14)}
|
||||
<span><b>还差 <span data-slot="quote_intake_record_missing"></span> 格必填没补</b>
|
||||
—— <span data-slot="quote_intake_record_missing_keys"></span>。
|
||||
按右上角「编辑」开表,红框那几格就是要填的;补齐了才提交得了。</span>
|
||||
</div>`;
|
||||
|
||||
/**
|
||||
* 一张可改的表的**闸** —— 默认锁着,按「编辑」才开(2026-08-01 用户定)。
|
||||
*
|
||||
@@ -492,6 +531,7 @@ export const INTAKE_OVERVIEW = doc({
|
||||
part('受理要素', 'F-01 完整度自检') +
|
||||
four('gap') +
|
||||
part('有效 PN 清单', '<b data-slot="line_total"></b> 条 · 已剔除 <b data-slot="skipped_total"></b>') +
|
||||
gapBar +
|
||||
editGate('quote_intake.record', '有效 PN 清单') +
|
||||
listTable('draft') +
|
||||
addRowBar('quote_intake.record') +
|
||||
|
||||
@@ -441,8 +441,22 @@ export function createAgentRunner(deps: AgentRunnerDeps): {
|
||||
' (空着 = 这一列没有值);数值列(:number/:integer)尤其不能写空串。',
|
||||
' write 的 `itemId` 是**记账**:填正在干的那一项(它会亮进「进行中」);',
|
||||
' 挂不上(项已完成等)写也照落 —— 写的授权在台账声明,不在计划项。',
|
||||
' tool / ask 的 `itemId` 则要落在**当下可为**里;阶段(stage)只能 start,',
|
||||
' 标了「须你启动」的项要先 start 再调工具。',
|
||||
' tool / ask 的 `itemId` 则要落在**当下可为**里;阶段(stage)只能 start。',
|
||||
/*
|
||||
* **话说的范围要盖住门拦的范围**(2026-08-02 实测逼出来的)。
|
||||
*
|
||||
* 从前这一句写的是「标了「须你启动」的项要先 start **再调工具**」——
|
||||
* 只说了调工具。而拦截那一侧(`readyToWork`)管的是 tool / ask / human /
|
||||
* decide / entry / finish 一整片。模型那一拍要发的是 `human`(派工单),
|
||||
* 照字面读这条规矩管不着它,于是漏了 start,撞上
|
||||
* 「S3_confirm 标了人工激活,要先 start 再干活」白烧一拍。
|
||||
*
|
||||
* **门拦住的事和话说的事必须是同一件** —— 话窄一格,模型就正好漏在那一格上。
|
||||
* 例外只有 write:它的 itemId 只是记账,挂不上照写不拦(见 turn-runner 的注释)。
|
||||
*/
|
||||
' 标了「须你启动」的项,**动它之前先 start** —— 调工具、发卡(ask / human / decide / entry)、',
|
||||
' 宣告完成(finish)都算,一拍里 start 排在那个动作前面即可。',
|
||||
' 只有 write 例外:它的 itemId 只是记账,挂不上也照写。',
|
||||
'② **系统能干的活不要交给人**:调工具就在「可调工具」里挑,照它的入参键名填 ——',
|
||||
' 把一件工具做得到的事发成一张卡问人,是白占人的时间(实测踩过:该调历史价工具,',
|
||||
' 却发了一张「请查这三个 PN 的历史价」的卡)。触达世界的动作也只能 tool',
|
||||
|
||||
Reference in New Issue
Block a user