B3-2 编辑器顶栏精简 + 底部状态栏退役(配 B3-1 面板,两步提交可单独回滚)

- 顶栏只留 返回/「流程编辑器」/状态 Tag + 右侧「保存草稿」(名称/编码/应用三个输入框从 hd-mid 迁走,
  双向同源仍是 model.name/model.code/appKey 同一 ref)
- 删 footer.ed-status:错误/警告汇总进右面板分区3,「保存仅生成草稿;发布校验以后端为准」并入分区2 提示行
- 顺带删 .hd-mid/.ed-status/.st-* 死样式;.ed-canvas 加 min-width:0(1360px 档不出横向滚动)

验证:npm run build 通过
This commit is contained in:
chenxing
2026-10-12 16:21:54 +08:00
parent f0ec500348
commit dda7336323
+3 -72
View File
@@ -550,29 +550,7 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
<Tag v-else-if="baseGuid" color="blue">升版本 · 基于 v{{ sourceVersion }}({{ DEF_STATUS[sourceStatus] }})</Tag>
<Tag v-else color="green">新建</Tag>
</div>
<div class="hd-mid">
<label>名称 <Input v-model="model.name" placeholder="流程名称" style="width: 200px" :maxlength="30" /></label>
<label>
编码
<Input
v-model="model.code"
placeholder="内部管理键,发布后不可改"
style="width: 220px"
:disabled="!!editId || !!baseGuid"
:maxlength="40"
/>
</label>
<label>
应用 <span style="color: #ed4014">*</span>
<Select v-model="appKey" placeholder="归属应用(必选)" style="width: 170px" filterable>
<Option v-for="a in appOptions" :key="a.appKey" :value="a.appKey">{{ a.appName }}</Option>
</Select>
</label>
</div>
<div class="hd-right">
<Button @click="settingsDrawer = true">流程设置</Button>
<Button @click="jsonDrawer = true">源码</Button>
<Button :disabled="!editId" @click="onOpenDiagram">图示预览</Button>
<Button type="primary" :loading="saving" @click="onSave">保存草稿</Button>
</div>
</header>
@@ -625,7 +603,7 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
<span v-else class="ip-mini">保存后生成</span>
<Button v-if="sourceFlowGuid" size="small" @click="copyGuid">复制</Button>
</div>
<div class="ip-tip">flowGuid 发布后不变,业务方绑定流程用此键</div>
<div class="ip-tip">flowGuid 发布后不变,业务方绑定流程用此键<br>保存仅生成草稿;发布校验以后端为准</div>
</section>
<section class="ip-sec">
@@ -670,16 +648,6 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
</aside>
</div>
<footer class="ed-status" :class="{ bad: countErrors(issues).length }">
<span v-if="countErrors(issues).length" class="st-bad">
✗ {{ countErrors(issues).length }} 个问题:{{ countErrors(issues).map((i) => i.text).join(";") }}
</span>
<span v-else class="st-ok">
✓ 校验通过<span v-if="countWarns(issues).length">({{ countWarns(issues).length }} 个警告)</span>
</span>
<span class="st-right">保存仅生成草稿;发布校验以后端为准</span>
</footer>
<ApprovalDrawer v-model="nodeDrawer" :node="editingNode" @removed="nodeDrawer = false" />
<NotifyDrawer v-model="notifyDrawer" :node="editingNotify" @removed="notifyDrawer = false" />
<ConditionDrawer v-model="conditionDrawer" :node="editingCondition" @removed="conditionDrawer = false" />
@@ -743,28 +711,15 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
.hd-title {
font-size: 15px;
}
.hd-mid {
display: flex;
align-items: center;
gap: 12px;
flex: 1;
justify-content: center;
}
.hd-mid label {
display: flex;
align-items: center;
gap: 6px;
color: #808695;
font-size: 13px;
white-space: nowrap;
}
.hd-right {
display: flex;
gap: 8px;
white-space: nowrap;
margin-left: auto;
}
.ed-canvas {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
align-items: flex-start;
@@ -806,30 +761,6 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
color: #808695;
border: 1.5px solid #808695;
}
.ed-status {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 16px;
background: #fff;
border-top: 1px solid #eee;
font-size: 12px;
z-index: 9;
}
.ed-status.bad {
background: #fff5f5;
}
.st-ok {
color: #19be6b;
}
.st-bad {
color: #ed4014;
}
.st-right {
margin-left: auto;
color: #b0b6c1;
white-space: nowrap;
}
/* 升版本改动说明弹窗(议题二③,规格对齐原型 V2) */
.cl-note {
background: #fff7e6;