fix(ui): tab 改线型对齐 Notice;操作列 when→disabledWhen 置灰保位(用户验收反馈 R1)
build / build (push) Successful in 2m8s

- 工作台/回调管理两页 Tabs 去 type=card,改通道线型 .tabs-panel(对齐 Notice)
- 7 页 14 处按行隐藏动作改 disabledWhen 置灰保位(互斥钮恒一灰一活),
  规范 §5.2 新增按钮位置稳定性红线:按行变化一律 disabledWhen,when 仅限行无关全局模式
This commit is contained in:
chenxing
2026-10-10 21:47:30 +08:00
parent 43753f4f59
commit affb1bdeb7
7 changed files with 17 additions and 17 deletions
+2 -2
View File
@@ -27,8 +27,8 @@ const columns = [
actionColumn(
[
{ key: "detail", label: "详情", icon: "icon-browse", on: (r: any) => router.push(`/instance/${r.instanceId}?pid=101`) },
{ key: "withdraw", label: "撤回", icon: "icon-yaohao", on: (r: any) => onWithdraw(r), when: (r: any) => r.status === 10, danger: true },
{ key: "urge", label: "催办", icon: "icon-fasong", on: (r: any) => onUrge(r), when: (r: any) => r.status === 10 },
{ key: "withdraw", label: "撤回", icon: "icon-yaohao", on: (r: any) => onWithdraw(r), disabledWhen: (r: any) => r.status !== 10, danger: true },
{ key: "urge", label: "催办", icon: "icon-fasong", on: (r: any) => onUrge(r), disabledWhen: (r: any) => r.status !== 10 },
],
{ mode: "text", width: 180, fixed: "right" },
),
+1 -1
View File
@@ -85,7 +85,7 @@ function switchTab(name: string) {
<template>
<div class="tabs-wrapper">
<Tabs type="card" :value="tab" @on-click="switchTab">
<Tabs class="tabs-panel" :value="tab" @on-click="switchTab">
<TabPane label="我的待办" name="todo" />
<TabPane label="我的已办" name="done" />
<TabPane label="抄送我的" name="cc" />
+2 -2
View File
@@ -96,8 +96,8 @@ const deptColumns = [
[
{ key: "members", label: "成员", icon: "icon-yonghu", on: (r: any) => onMembers(r) },
{ key: "rename", label: "改名", icon: "icon-edit", on: (r: any) => onRename(r) },
{ key: "disable", label: "停用", icon: "icon-stop", on: (r: any) => onDeptStatus(r, false), when: (r: any) => r.status === 0, danger: true },
{ key: "enable", label: "启用", icon: "icon-play", on: (r: any) => onDeptStatus(r, true), when: (r: any) => r.status !== 0 },
{ key: "disable", label: "停用", icon: "icon-stop", on: (r: any) => onDeptStatus(r, false), disabledWhen: (r: any) => r.status !== 0, danger: true },
{ key: "enable", label: "启用", icon: "icon-play", on: (r: any) => onDeptStatus(r, true), disabledWhen: (r: any) => r.status === 0 },
{ key: "del", label: "删除", icon: "icon-shanchu", on: (r: any) => onDelete(r), danger: true },
],
{ mode: "text", width: 180 },
+3 -3
View File
@@ -32,8 +32,8 @@ const regColumns = [
{ title: "状态", width: 80, align: "center", render: (h: any, p: any) => h("Tag", { color: p.row.status === 0 ? "green" : "gray" }, () => (p.row.status === 0 ? "启用" : "停用")) },
actionColumn(
[
{ key: "disable", label: "停用", icon: "icon-stop", on: (r: any) => onRegStatus(r, true), when: (r: any) => r.status === 0, danger: true },
{ key: "enable", label: "启用", icon: "icon-shiyong", on: (r: any) => onRegStatus(r, false), when: (r: any) => r.status !== 0 },
{ key: "disable", label: "停用", icon: "icon-stop", on: (r: any) => onRegStatus(r, true), disabledWhen: (r: any) => r.status !== 0, danger: true },
{ key: "enable", label: "启用", icon: "icon-shiyong", on: (r: any) => onRegStatus(r, false), disabledWhen: (r: any) => r.status === 0 },
{ key: "resetSecret", label: "重置secret", icon: "icon-shezhi", on: (r: any) => onResetSecret(r) },
],
{ mode: "text", width: 140, fixed: "right" },
@@ -176,7 +176,7 @@ onMounted(loadRegs);
<template>
<div class="tabs-wrapper">
<Tabs type="card" :value="tab" @on-click="switchTab">
<Tabs class="tabs-panel" :value="tab" @on-click="switchTab">
<TabPane label="回调注册" name="regs" />
<TabPane label="推送日志" name="logs" />
<TabPane label="挂起中" name="hung" />
+5 -5
View File
@@ -43,14 +43,14 @@ const columns = [
{ title: "发布时间", width: 160, render: (h: any, p: any) => h("span", (p.row.publishTime || "").replace("T", " ") || "-") },
actionColumn(
[
{ key: "edit", label: "编辑", icon: "icon-edit", on: (r: any) => onEdit(r), when: (r: any) => r.status === 0 },
{ key: "publish", label: "发布", icon: "icon-fasong", on: (r: any) => onPublish(r), when: (r: any) => r.status === 0 },
{ key: "newVersion", label: "升版本", icon: "icon-tianjia", on: (r: any) => onNewVersion(r), when: (r: any) => r.status === 1 },
{ key: "edit", label: "编辑", icon: "icon-edit", on: (r: any) => onEdit(r), disabledWhen: (r: any) => r.status !== 0 },
{ key: "publish", label: "发布", icon: "icon-fasong", on: (r: any) => onPublish(r), disabledWhen: (r: any) => r.status !== 0 },
{ key: "newVersion", label: "升版本", icon: "icon-tianjia", on: (r: any) => onNewVersion(r), disabledWhen: (r: any) => r.status !== 1 },
// 停用:破坏性动作(已发布→停用),danger 沉底并进「更多」
{ key: "offline", label: "停用", icon: "icon-stop", on: (r: any) => onOffline(r), when: (r: any) => r.status === 1, danger: true },
{ key: "offline", label: "停用", icon: "icon-stop", on: (r: any) => onOffline(r), disabledWhen: (r: any) => r.status !== 1, danger: true },
// 与「停用」对称的专用启用通道(后端 /def/enable:仅停用版→已发布,重跑发布校验;
// 草稿不走这里,草稿用「发布」)
{ key: "enable", label: "启用", icon: "icon-play", on: (r: any) => onEnable(r), when: (r: any) => r.status === 2 },
{ key: "enable", label: "启用", icon: "icon-play", on: (r: any) => onEnable(r), disabledWhen: (r: any) => r.status !== 2 },
// 元数据原地编辑(2026-10-10 议题2):改名称/归属应用不升版本(含已发布/停用)
{ key: "editMeta", label: "编辑信息", icon: "icon-bianji", on: (r: any) => onEditMeta(r) },
{ key: "diagram", label: "图示", icon: "icon-tupian", on: (r: any) => onDiagram(r) },
+2 -2
View File
@@ -26,8 +26,8 @@ const columns = [
actionColumn(
[
{ key: "detail", label: "详情", icon: "icon-browse", on: (r: any) => router.push(`/instance/${r.id}?pid=102`) },
// 仅审批中的办件可能挂在条件分支节点(重跑入口对非挂起办件会得到业务错提示)
{ key: "reroute", label: "重跑路由", icon: "icon-play", on: (r: any) => onReroute(r), when: (r: any) => r.status === 10 },
// 仅审批中的办件可挂条件分支节点;其余行置灰保位(重跑入口对非挂起办件是业务错提示)
{ key: "reroute", label: "重跑路由", icon: "icon-play", on: (r: any) => onReroute(r), disabledWhen: (r: any) => r.status !== 10 },
],
{ mode: "text", width: 170, fixed: "right" },
),
+2 -2
View File
@@ -34,8 +34,8 @@ const columns = [
actionColumn(
[
{ key: "edit", label: "编辑", icon: "icon-edit", on: (r: any) => onEdit(r) },
{ key: "disable", label: "停用", icon: "icon-stop", on: (r: any) => onDisable(r), when: (r: any) => r.status === 1, danger: true },
{ key: "enable", label: "启用", icon: "icon-play", on: (r: any) => onEnable(r), when: (r: any) => r.status !== 1 },
{ key: "disable", label: "停用", icon: "icon-stop", on: (r: any) => onDisable(r), disabledWhen: (r: any) => r.status !== 1, danger: true },
{ key: "enable", label: "启用", icon: "icon-play", on: (r: any) => onEnable(r), disabledWhen: (r: any) => r.status === 1 },
],
{ mode: "text", width: 150, fixed: "right" },
),