chore(*): 仓库清理 - 移除本地上下文、请求日志与流程图草稿
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
81
CONTEXT.md
81
CONTEXT.md
@@ -1,81 +0,0 @@
|
||||
# 影策 · 编辑器上下文
|
||||
|
||||
面向 AI 影视与短剧创作工作台中的"时间线智能编辑器"子域:时间线模型、编辑命令、预览与导出、自动字幕、插件体系的统一语言。术语主要受 Concat(WolfCut)架构启发,插件部分参考 open-vetta「万物皆可插件」理念,适配 Web + Go 技术栈,详见 `docs/adr/`。
|
||||
|
||||
## 语言
|
||||
|
||||
**时间线 (Timeline)**:
|
||||
项目的时序编排视图,由轨道与片段组成;`TimelineProject`(v2)是编辑真相源的数据形状。
|
||||
_Avoid_: 时间轴、剪辑线
|
||||
|
||||
**轨道 (Track)**:
|
||||
同一类型片段的有序序列(video / audio / subtitle / text / image),有 `order` 与 `locked`。
|
||||
_Avoid_: 层(Layer 特指画布节点叠放,不用于时间线)
|
||||
|
||||
**片段 (Clip)**:
|
||||
时间线上对素材的一段引用:`startMs` + `durationMs` 定位在时间线,`sourceStartMs` / `sourceDurationMs` 定位在源素材内。
|
||||
_Avoid_: 素材(Media 指源头资产,Clip 是其时间线引用)
|
||||
|
||||
**直连媒体 (directMedia)**:
|
||||
仅时间线作用域的媒体引用(素材库/项目资产/本地上传直接入轨),存在时预览/导出优先从该字段解析,不回画布查节点。
|
||||
_Avoid_: 内联媒体、画布素材
|
||||
|
||||
**编辑命令 (EditCommand)**:
|
||||
唯一允许修改时间线的可序列化指令 `{ op, payload }`,经单队列顺序应用;UI 不直接改写模型。
|
||||
_Avoid_: 操作、mutate、setState(指组件内部状态)
|
||||
|
||||
**手势回显 (Echo)**:
|
||||
拖拽/裁剪等手势期间在本地预演的位置与效果,手势结束才提交一个编辑命令——撤销的粒度是手势而非每一像素。
|
||||
_Avoid_: 预览态、假数据
|
||||
|
||||
**预览近似 (Preview Approximation)**:
|
||||
交互期间用浏览器原生能力(`<video>` 裁剪缩放、CSS 滤镜、canvas 合成)渲染的近似画面,不是导出像素。
|
||||
_Avoid_: 预览帧、真实预览
|
||||
|
||||
**渲染真相 (Render Truth)**:
|
||||
导出产物的真实合成画面,由单一滤镜图计划驱动;预览近似与它参数同源、允许画质级差。
|
||||
_Avoid_: 最终预览、监看画面
|
||||
|
||||
**滤镜图 (Filter Graph / Render Plan)**:
|
||||
`buildTimelineRenderPlan` 生成的 ffmpeg 参数计划(trim → gap → concat → subtitle → burn),是导出滤镜串的唯一来源;新增效果禁止在 UI 手写第二套滤镜串。
|
||||
_Avoid_: 滤镜链、ffmpeg 参数(指手工拼的字符串)
|
||||
|
||||
**转写字幕 (Transcription)**:
|
||||
后端服务任务:把音频/视频片段经 ASR 转成字幕片段写回字幕轨道;前端只提交任务并展示进度。
|
||||
_Avoid_: 自动字幕(指 UI 按钮名,模型层术语为转写)
|
||||
|
||||
**预设插件 (Preset Plugin)**:
|
||||
随应用分发、默认启用、不可卸载的插件:编辑器全部 UI 与能力(时间线面板、预览、检查器、转写、导出、字幕工具)均为预设插件;与用户插件同 SDK 同清单,仅分发与权限语义不同。
|
||||
_Avoid_: 内置功能、硬编码面板(内置 = builtin 源码目录语义,指非插件化的历史形态)
|
||||
|
||||
**UI 插槽 (UI Slot)**:
|
||||
宿主暴露的注册式挂载点(`registerTimelinePanel` / `registerPreviewRenderer` / `registerExportRenderer` / `registerTranscriptionProvider` / `registerSubtitleTool` / `registerShortcutScope`),内置与第三方插件平等占位;插件不得绕过插槽直接挂载 DOM。
|
||||
_Avoid_: 面板数组、硬编码容器
|
||||
|
||||
**插件 SDK (Plugin SDK / yingce.plugin/v2)**:
|
||||
`definePlugin` + 清单 + 贡献类型 + 权限声明的统一形态;v2 在 v1 基础上新增 UI 插槽、预设分发与权限执行校验。
|
||||
_Avoid_: 插件协议(指 v1 旧称,v2 起称 SDK/清单)
|
||||
|
||||
**能力提供者 (Capability Provider)**:
|
||||
插件以 provider 身份注册的能力(如转写提供者、导出渲染器、预览渲染器),宿主在调用点校验权限后执行;未声明即不可见不可用。
|
||||
_Avoid_: 能力函数、功能开关
|
||||
|
||||
**语音滤镜 (Voice Filter)**:
|
||||
音频效果能力(音量/淡入淡出/均衡/回声/降噪/变速变调):预览近似走 Web Audio API,导出真相走 ffmpeg 音频滤镜,两者同源同参数模型(ADR-0006)。
|
||||
_Avoid_: 声音特效、音频美化
|
||||
|
||||
**模板 (Template)**:
|
||||
项目快照(章节 + 画布 + 时间线 + 资产引用清单,不含媒体二进制),支持存为模板 / 从模板新建;服务端模板表 + 缩略图(ADR-0006)。
|
||||
|
||||
**AI 编辑命令 (AI Edit Command)**:
|
||||
LLM 输出的受约束命令序列 JSON `{ commands, reasoning }`,op 来自命令白名单、payload 按 per-op schema 校验(fail-closed,单条非法整批拒绝);与手势命令同队列、同撤销栈(ADR-0007)。
|
||||
_Avoid_: AI 操作、自动剪辑
|
||||
|
||||
**时间线摘要 (Timeline Summary)**:
|
||||
时间线结构化精简版(轨道/片段/时长/关键属性,不含媒体二进制),作为 AI 对话上下文输入;纯函数生成、可测试(ADR-0007)。
|
||||
_Avoid_: 时间线导出、prompt 原文
|
||||
|
||||
**AI 助手插件 (editor-ai-assistant)**:
|
||||
对话式剪辑预设插件:AI 只读问答(timeline.read)+ 命令执行(timeline.command)+ 聚合转写/字幕高亮/素材入轨入口;复用画布 agent 聊天 UI 交互模式,不共享会话上下文(ADR-0007)。
|
||||
_Avoid_: 画布 Agent(指 canvas 会话桥接,与编辑器 AI 面板是两套会话)
|
||||
_Avoid_: 预设项目、项目副本
|
||||
@@ -1,33 +0,0 @@
|
||||
113. [GET] http://localhost:3000/api/auth/session => [200] OK
|
||||
114. [GET] http://localhost:3000/api/auth/session => [200] OK
|
||||
115. [GET] http://localhost:3000/api/resources/adcf0aa16af7e77050b3cacb021f1b19 => [200] OK
|
||||
116. [GET] http://localhost:3000/api/resources/e305a5e8bddb28cd273c4a0d6f0a2fb4 => [200] OK
|
||||
117. [GET] http://localhost:3000/api/resources/cbaaed7b310b261cbd1eb75358b07ea3 => [200] OK
|
||||
118. [GET] http://localhost:3000/api/resources/e81419caea57227c64768841af1fffe2 => [200] OK
|
||||
119. [GET] http://localhost:3000/api/resources/95eaef5cec7d441041bd6111a0ed5b31 => [200] OK
|
||||
120. [GET] http://localhost:3000/api/resources/2f67878ff10b0669638c436cfe8ddc4c => [200] OK
|
||||
121. [GET] http://localhost:3000/api/resources/b6be19120a7496a6202ee16c582ad890 => [200] OK
|
||||
122. [GET] http://localhost:3000/api/resources/3e4141851c94396338e74f409e17f2bc => [200] OK
|
||||
123. [GET] http://localhost:3000/api/resources/938f38e1093049b12372e3b99f8a39b2 => [200] OK
|
||||
124. [GET] http://localhost:3000/api/resources/a0b26bbfe0b48200be7979fa5dadfd55 => [200] OK
|
||||
125. [GET] http://localhost:3000/api/resources/854e004b5019d969b88776ef9b466617 => [200] OK
|
||||
126. [GET] http://localhost:3000/api/resources/e83236fff65eb9cde29bc2d1cb50de0a => [200] OK
|
||||
127. [GET] http://localhost:3000/api/resources/6a80ae4580b14c6685d5b61d62d5e61a => [200] OK
|
||||
128. [GET] http://localhost:3000/api/resources/d2b3302ed3ce7cffa9e03257162bdc3e => [200] OK
|
||||
129. [GET] http://localhost:3000/api/resources/2cce2b999f71b8eb4b2c3a2e29340edb => [200] OK
|
||||
130. [GET] http://localhost:3000/api/resources/4e431ce9109c16ff860097a765149b7b => [200] OK
|
||||
131. [GET] http://localhost:3000/api/resources/bab1aca9945ff1a7a1521ee044a876fd => [200] OK
|
||||
132. [GET] http://localhost:3000/api/resources/1596ca3a9b727ea5ea7238e8cc2baf7d => [200] OK
|
||||
133. [GET] http://localhost:3000/api/resources/17bc23a61ead486835ffbf45f9133a98 => [200] OK
|
||||
134. [GET] http://localhost:3000/api/resources/40568d507900709b599b1b9fc8824faa => [200] OK
|
||||
135. [GET] http://localhost:3000/api/resources/554b0c194074c98e4300ddaeb55a4c3b => [200] OK
|
||||
136. [GET] http://localhost:3000/api/resources/b0d81a7069c88f034d1042bcebf35982 => [200] OK
|
||||
137. [GET] http://localhost:3000/api/resources/5a7137e0da0d4c19e89d9e189cc57fc1 => [200] OK
|
||||
138. [GET] http://localhost:3000/api/resources/da6d8af4940b05794db3b20e7a7416e2 => [200] OK
|
||||
524. [GET] http://localhost:3000/api/user-data/snapshot => [200] OK
|
||||
525. [GET] http://localhost:3000/api/wallet?type=all&page=1&limit=1 => [200] OK
|
||||
526. [GET] http://localhost:3000/api/announcements => [200] OK
|
||||
857. [GET] http://localhost:3000/api/skills/added => [200] OK
|
||||
858. [GET] http://localhost:3000/api/skills/added => [200] OK
|
||||
|
||||
Note: 830 static requests not shown, run with "static" option to see them.
|
||||
@@ -1,69 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="drawio" version="26.0.0">
|
||||
<diagram name="图片上传到审美批注">
|
||||
<mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
|
||||
<mxCell id="lane1" value="用户与画布 UI" style="swimlane;html=1;rounded=1;startSize=32;horizontal=0;fillColor=#f5f7fb;strokeColor=#b8c2d1;fontStyle=1;fontColor=#26364a;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="30" width="350" height="900" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lane2" value="Canvas 状态与插件宿主" style="swimlane;html=1;rounded=1;startSize=32;horizontal=0;fillColor=#f5f7fb;strokeColor=#b8c2d1;fontStyle=1;fontColor=#26364a;" vertex="1" parent="1">
|
||||
<mxGeometry x="410" y="30" width="390" height="900" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lane3" value="AI 请求与结果校验" style="swimlane;html=1;rounded=1;startSize=32;horizontal=0;fillColor=#f5f7fb;strokeColor=#b8c2d1;fontStyle=1;fontColor=#26364a;" vertex="1" parent="1">
|
||||
<mxGeometry x="830" y="30" width="390" height="900" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lane4" value="报告展示与 SVG 批注" style="swimlane;html=1;rounded=1;startSize=32;horizontal=0;fillColor=#f5f7fb;strokeColor=#b8c2d1;fontStyle=1;fontColor=#26364a;" vertex="1" parent="1">
|
||||
<mxGeometry x="1250" y="30" width="390" height="900" as="geometry" />
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="n1" value="上传图片
或已有图片资源" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#26364a;" vertex="1" parent="lane1"><mxGeometry x="60" y="80" width="230" height="60" as="geometry" /></mxCell>
|
||||
<mxCell id="n2" value="图片节点生成/保存
content · previewContent · storageKey
宽高与 MIME 信息" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#26364a;" vertex="1" parent="lane1"><mxGeometry x="40" y="190" width="270" height="90" as="geometry" /></mxCell>
|
||||
<mxCell id="n3" value="连接到 AI 审美批改节点" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#26364a;" vertex="1" parent="lane1"><mxGeometry x="60" y="340" width="230" height="60" as="geometry" /></mxCell>
|
||||
<mxCell id="n4" value="点击“开始 AI 批改”" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#26364a;" vertex="1" parent="lane1"><mxGeometry x="60" y="470" width="230" height="60" as="geometry" /></mxCell>
|
||||
<mxCell id="n5" value="查看报告
图片 + 标注 + 问题建议" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#26364a;" vertex="1" parent="lane1"><mxGeometry x="60" y="760" width="230" height="70" as="geometry" /></mxCell>
|
||||
|
||||
<mxCell id="n6" value="Manifest 注册
ai-art-critique
仅接受 image / 隐藏输出端口" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#26364a;" vertex="1" parent="lane2"><mxGeometry x="55" y="80" width="280" height="80" as="geometry" /></mxCell>
|
||||
<mxCell id="n7" value="连线策略校验
目标 acceptsInputKind = image" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#26364a;" vertex="1" parent="lane2"><mxGeometry x="75" y="230" width="240" height="90" as="geometry" /></mxCell>
|
||||
<mxCell id="n8" value="解析上游图片
计算 sourceFingerprint
报告与图片版本绑定" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#26364a;" vertex="1" parent="lane2"><mxGeometry x="55" y="450" width="280" height="80" as="geometry" /></mxCell>
|
||||
<mxCell id="n9" value="读取媒体资源
imageToDataUrl / resolveImageUrl
生成可发送的 data URL" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#26364a;" vertex="1" parent="lane2"><mxGeometry x="55" y="590" width="280" height="80" as="geometry" /></mxCell>
|
||||
<mxCell id="n10" value="写回节点状态
running → completed / failed
metadata.artCritique" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#26364a;" vertex="1" parent="lane2"><mxGeometry x="55" y="750" width="280" height="80" as="geometry" /></mxCell>
|
||||
|
||||
<mxCell id="n11" value="组装多模态消息
system Prompt + 图片 image_url
注入 Rubric 2026-08-v1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#26364a;" vertex="1" parent="lane3"><mxGeometry x="55" y="80" width="280" height="90" as="geometry" /></mxCell>
|
||||
<mxCell id="n12" value="requestToolResponse()
复用现有模型渠道与请求适配" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#26364a;" vertex="1" parent="lane3"><mxGeometry x="55" y="230" width="280" height="70" as="geometry" /></mxCell>
|
||||
<mxCell id="n13" value="模型函数工具返回
submit_art_critique
summary / strengths / issues" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#26364a;" vertex="1" parent="lane3"><mxGeometry x="55" y="360" width="280" height="80" as="geometry" /></mxCell>
|
||||
<mxCell id="n14" value="本地解析与安全校验
JSON / 枚举 / 长度 / 坐标 0..1
不完整区域 → global" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#26364a;" vertex="1" parent="lane3"><mxGeometry x="55" y="510" width="280" height="90" as="geometry" /></mxCell>
|
||||
<mxCell id="n15" value="问题排序与裁剪
severity + confidence
最多保留 5 个重点问题" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#26364a;" vertex="1" parent="lane3"><mxGeometry x="55" y="660" width="280" height="80" as="geometry" /></mxCell>
|
||||
|
||||
<mxCell id="n16" value="ArtCritiqueReport
结构化报告落盘到节点状态" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#26364a;" vertex="1" parent="lane4"><mxGeometry x="55" y="80" width="280" height="70" as="geometry" /></mxCell>
|
||||
<mxCell id="n17" value="生成 SVG Overlay
box → polygon
point / global
标签碰撞与位置布局" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#26364a;" vertex="1" parent="lane4"><mxGeometry x="55" y="230" width="280" height="90" as="geometry" /></mxCell>
|
||||
<mxCell id="n18" value="Modal 双栏报告
左:原图与批注
右:总结、优点、问题、修改动作" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#26364a;" vertex="1" parent="lane4"><mxGeometry x="55" y="390" width="280" height="90" as="geometry" /></mxCell>
|
||||
<mxCell id="n19" value="用户点击标注/问题
筛选类别、查看建议
原图保持不变" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#26364a;" vertex="1" parent="lane4"><mxGeometry x="55" y="550" width="280" height="80" as="geometry" /></mxCell>
|
||||
<mxCell id="n20" value="输入指纹变化?
是 → stale,提示重新批改
否 → 继续查看历史报告" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#26364a;" vertex="1" parent="lane4"><mxGeometry x="75" y="700" width="240" height="90" as="geometry" /></mxCell>
|
||||
|
||||
<mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#6c8ebf;" edge="1" parent="1" source="n1" target="n2"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e2" value="图片资源" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#6c8ebf;" edge="1" parent="1" source="n2" target="n3"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e3" value="连接请求" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#d79b00;" edge="1" parent="1" source="n3" target="n7"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e4" value="通过" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;" edge="1" parent="1" source="n7" target="n4"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e5" value="点击运行" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#d79b00;" edge="1" parent="1" source="n4" target="n8"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9673a6;" edge="1" parent="1" source="n8" target="n9"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e7" value="data URL" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#6c8ebf;" edge="1" parent="1" source="n9" target="n11"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#6c8ebf;" edge="1" parent="1" source="n11" target="n12"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#6c8ebf;" edge="1" parent="1" source="n12" target="n13"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e10" value="结构化 JSON" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#d6b656;" edge="1" parent="1" source="n13" target="n14"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e11" value="校验通过" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#d6b656;" edge="1" parent="1" source="n14" target="n15"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e12" value="报告" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;" edge="1" parent="1" source="n15" target="n16"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e13" value="保存 completed" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;" edge="1" parent="1" source="n16" target="n10"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e14" value="显示报告" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;" edge="1" parent="1" source="n16" target="n17"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e15" value="可交互标注" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;" edge="1" parent="1" source="n17" target="n18"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e16" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#82b366;" edge="1" parent="1" source="n18" target="n19"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e17" value="刷新/重新打开时校验" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#d6b656;" edge="1" parent="1" source="n19" target="n20"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e18" value="需要重新批改" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#b85450;" edge="1" parent="1" source="n20" target="n4"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="180" y="855"/><mxPoint x="180" y="500"/></Array></mxGeometry></mxCell>
|
||||
<mxCell id="e19" value="继续查看" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#82b366;" edge="1" parent="1" source="n20" target="n5"><mxGeometry relative="1" as="geometry" /></mxCell>
|
||||
<mxCell id="e20" value="未通过:拒绝连线" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeColor=#b85450;" edge="1" parent="1" source="n7" target="n3"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="430" y="340"/><mxPoint x="430" y="420"/></Array></mxGeometry></mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
Reference in New Issue
Block a user