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:
@@ -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-if="baseGuid" color="blue">升版本 · 基于 v{{ sourceVersion }}({{ DEF_STATUS[sourceStatus] }})</Tag>
|
||||||
<Tag v-else color="green">新建</Tag>
|
<Tag v-else color="green">新建</Tag>
|
||||||
</div>
|
</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">
|
<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>
|
<Button type="primary" :loading="saving" @click="onSave">保存草稿</Button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -625,7 +603,7 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
|
|||||||
<span v-else class="ip-mini">保存后生成</span>
|
<span v-else class="ip-mini">保存后生成</span>
|
||||||
<Button v-if="sourceFlowGuid" size="small" @click="copyGuid">复制</Button>
|
<Button v-if="sourceFlowGuid" size="small" @click="copyGuid">复制</Button>
|
||||||
</div>
|
</div>
|
||||||
<div class="ip-tip">flowGuid 发布后不变,业务方绑定流程用此键</div>
|
<div class="ip-tip">flowGuid 发布后不变,业务方绑定流程用此键<br>保存仅生成草稿;发布校验以后端为准</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="ip-sec">
|
<section class="ip-sec">
|
||||||
@@ -670,16 +648,6 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
|
|||||||
</aside>
|
</aside>
|
||||||
</div>
|
</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" />
|
<ApprovalDrawer v-model="nodeDrawer" :node="editingNode" @removed="nodeDrawer = false" />
|
||||||
<NotifyDrawer v-model="notifyDrawer" :node="editingNotify" @removed="notifyDrawer = false" />
|
<NotifyDrawer v-model="notifyDrawer" :node="editingNotify" @removed="notifyDrawer = false" />
|
||||||
<ConditionDrawer v-model="conditionDrawer" :node="editingCondition" @removed="conditionDrawer = false" />
|
<ConditionDrawer v-model="conditionDrawer" :node="editingCondition" @removed="conditionDrawer = false" />
|
||||||
@@ -743,28 +711,15 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
|
|||||||
.hd-title {
|
.hd-title {
|
||||||
font-size: 15px;
|
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 {
|
.hd-right {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
.ed-canvas {
|
.ed-canvas {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
@@ -806,30 +761,6 @@ onUnmounted(() => window.removeEventListener("beforeunload", onBeforeUnload));
|
|||||||
color: #808695;
|
color: #808695;
|
||||||
border: 1.5px solid #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) */
|
/* 升版本改动说明弹窗(议题二③,规格对齐原型 V2) */
|
||||||
.cl-note {
|
.cl-note {
|
||||||
background: #fff7e6;
|
background: #fff7e6;
|
||||||
|
|||||||
Reference in New Issue
Block a user