Archived
实例不可删除、不可编辑(2026-08-26 用户定):L3 撤掉编辑/删除入口,只留进行中的终止活动;需求稿同步关闭两条待确认
This commit is contained in:
@@ -332,7 +332,7 @@ function Detail({ route, nav }: { route: Route; nav: Nav }) {
|
||||
case 'actd':
|
||||
return <ActvPage id={route.id} nav={nav} />;
|
||||
case 'acti':
|
||||
return <ActiPage id={route.id} nav={nav} />;
|
||||
return <ActiPage id={route.id} />;
|
||||
case 'tool':
|
||||
return <ToolPage id={route.id} />;
|
||||
case 'obj':
|
||||
|
||||
@@ -724,10 +724,11 @@ const STEP_RES_TONE: Readonly<Record<DemoStep['res'], string>> = {
|
||||
/**
|
||||
* L3 · 实例详情 —— 一次运行的完整视图(2026-08-26 规划,用户确认后落地):
|
||||
* 主从 2:1(DESIGN-SPEC §9)—— 左「动作过程记录」是主角(追溯与验收的落点),
|
||||
* 右栏输入/输出是辅助;编辑与删除收在这一层(功能 5/6),不污染清单。
|
||||
* 右栏输入/输出是辅助。实例不可删除、不可编辑(2026-08-26 用户定)——
|
||||
* 编辑/删除入口撤掉,唯一的动作是进行中的「终止活动」。
|
||||
* 数据为静态占位,结构按将来接口的形状铺。
|
||||
*/
|
||||
export function ActiPage({ id, nav }: { id: string; nav: Nav }) {
|
||||
export function ActiPage({ id }: { id: string }) {
|
||||
const [aid, iid] = id.split(':');
|
||||
const a = DEMO_ACTIVITIES.find((x) => x.id === aid);
|
||||
const inst = a !== undefined ? demoInstances(a.owner).find((x) => x.id === iid) : undefined;
|
||||
@@ -735,7 +736,7 @@ export function ActiPage({ id, nav }: { id: string; nav: Nav }) {
|
||||
term 记下终止时刻 —— 终止的过程面与「自己跑挂」不同(当前步记「已终止」,不是「附件缺失」那种失败原因) */
|
||||
const [term, setTerm] = useState<string | undefined>(undefined);
|
||||
if (a === undefined || inst === undefined) {
|
||||
return <Note tone="warn">实例不存在 —— 它可能已被删除,从面包屑返回活动详情看看。</Note>;
|
||||
return <Note tone="warn">实例不存在 —— 它不在该活动的清单里,从面包屑返回活动详情看看。</Note>;
|
||||
}
|
||||
const state: InstanceState = term !== undefined ? '失败' : inst.state;
|
||||
const steps = term !== undefined ? terminatedSteps(inst.startedAt) : demoSteps(state, inst.startedAt);
|
||||
@@ -771,9 +772,9 @@ export function ActiPage({ id, nav }: { id: string; nav: Nav }) {
|
||||
<Chip ico="cpu">{a.llm}</Chip>
|
||||
</>
|
||||
}
|
||||
desc="一次运行的完整视图:输入 / 过程 / 输出 / 状态。编辑与删除收在这一层,清单页不受打扰。"
|
||||
desc="一次运行的完整视图:输入 / 过程 / 输出 / 状态 —— 实例不可编辑、不可删除,进行中的运行可终止。"
|
||||
acts={[
|
||||
/* 头部动作(2026-08-26 规划):进行中可终止(二次确认);编辑本期只留入口(编什么待定);删除二次确认(用户标注存疑,先按规划做) */
|
||||
/* 唯一动作(2026-08-26 用户定:实例不许删、不许编):进行中可终止,二次确认 */
|
||||
...(state === '进行中'
|
||||
? [
|
||||
{
|
||||
@@ -790,19 +791,6 @@ export function ActiPage({ id, nav }: { id: string; nav: Nav }) {
|
||||
} satisfies ActSpec,
|
||||
]
|
||||
: []),
|
||||
{ label: '编辑实例', ico: 'pencil-line', disabled: true },
|
||||
{
|
||||
label: '删除实例',
|
||||
ico: 'trash-2',
|
||||
danger: true,
|
||||
ask: {
|
||||
title: `确认删除实例 ${inst.id}?`,
|
||||
note: '删除后,这次运行的输入 / 过程 / 输出记录一并移除,清单里也不再出现。',
|
||||
impact: { who: '该实例及其全部运行记录', undo: '不可撤销 —— 删除即清空', when: '确认后立即生效(本期前端演示,接口对接后落库)' },
|
||||
okLabel: '确认删除',
|
||||
onOk: () => nav.push({ k: 'actd', id: a.id }),
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
{reason !== undefined && <Note tone="warn">{reason}</Note>}
|
||||
|
||||
Reference in New Issue
Block a user