feat(ui): 详情页父子导航/列表链接按钮/办件详情内嵌流程图(办件进度抽屉数据源就绪)
build / build (push) Successful in 3m6s

This commit is contained in:
chenxing
2026-09-17 01:03:59 +08:00
parent e52c4324f6
commit 429a7f9152
9 changed files with 55 additions and 28 deletions
+5 -5
View File
@@ -3,6 +3,7 @@
import { ref, onMounted } from "vue";
import { Message, Modal } from "view-ui-plus";
import { flowApi } from "@/api/module/flow";
import Utils from "@/utils";
const LOG_STATUS: Record<number, string> = { 0: "待推/重试中", 1: "成功", 2: "死信" };
const EVENT_OPTIONS = ["flow.submitted", "flow.task.created", "flow.task.handled", "flow.completed", "flow.rejected", "flow.withdrawn"];
@@ -19,11 +20,10 @@ const regColumns = [
{ title: "订阅事件", key: "eventTypes", width: 200, render: (h: any, p: any) => h("span", p.row.eventTypes || "全部") },
{ title: "状态", width: 80, render: (h: any, p: any) => h("Tag", { color: p.row.status === 0 ? "green" : "gray" }, () => (p.row.status === 0 ? "启用" : "停用")) },
{ title: "操作", width: 220, render: (h: any, p: any) => {
const btns: any[] = [
h("Button", { size: "small", onClick: () => onRegStatus(p.row, p.row.status === 0) }, () => (p.row.status === 0 ? "停用" : "启用")),
h("Button", { size: "small", type: "warning", onClick: () => onResetSecret(p.row) }, () => "重置secret"),
return [
Utils.operatingTextHandle(h, p.row.status === 0 ? "停用" : "启用", "", () => onRegStatus(p.row, p.row.status === 0)),
Utils.operatingTextHandle(h, "重置secret", "text-error", () => onResetSecret(p.row)),
];
return h("div", { style: "display:flex;gap:4px" }, btns);
} },
];
@@ -60,7 +60,7 @@ const hungColumns = [
{ title: "末次结果", key: "lastError", minWidth: 220, render: (h: any, p: any) => h("span", p.row.lastError || p.row.lastHttpStatus || "-") },
{ title: "下次重推", width: 160, render: (h: any, p: any) => h("span", (p.row.nextRetryTime || "").replace("T", " ") || "-") },
{ title: "操作", width: 120, render: (h: any, p: any) =>
h("Button", { size: "small", type: "error", onClick: () => onMarkDead(p.row) }, () => "标记死信") },
Utils.operatingTextHandle(h, "标记死信", "text-error", () => onMarkDead(p.row)) },
];
async function loadRegs() {
+9 -8
View File
@@ -6,6 +6,7 @@ import { ref, onMounted } from "vue";
import { useRouter } from "vue-router";
import { Message } from "view-ui-plus";
import { flowApi } from "@/api/module/flow";
import Utils from "@/utils";
const router = useRouter();
const DEF_STATUS: Record<number, string> = { 0: "草稿", 1: "已发布", 2: "停用" };
@@ -25,18 +26,18 @@ const columns = [
} },
{ title: "GUID", key: "flowGuid", width: 200 },
{ title: "发布时间", width: 160, render: (h: any, p: any) => h("span", (p.row.publishTime || "").replace("T", " ") || "-") },
{ title: "操作", width: 330, render: (h: any, p: any) => {
{ title: "操作", width: 320, fixed: "right", render: (h: any, p: any) => {
const btns: any[] = [];
if (p.row.status === 0) {
btns.push(h("Button", { size: "small", type: "primary", onClick: () => onEdit(p.row) }, () => "编辑"));
btns.push(h("Button", { size: "small", type: "success", onClick: () => onPublish(p.row) }, () => "发布"));
btns.push(Utils.operatingTextHandle(h, "编辑", "", () => onEdit(p.row)));
btns.push(Utils.operatingTextHandle(h, "发布", "", () => onPublish(p.row)));
} else if (p.row.status === 1) {
btns.push(h("Button", { size: "small", onClick: () => onNewVersion(p.row) }, () => "升版本"));
btns.push(h("Button", { size: "small", type: "warning", onClick: () => onOffline(p.row) }, () => "停用"));
btns.push(Utils.operatingTextHandle(h, "升版本", "", () => onNewVersion(p.row)));
btns.push(Utils.operatingTextHandle(h, "停用", "text-error", () => onOffline(p.row)));
}
btns.push(h("Button", { size: "small", onClick: () => onDiagram(p.row) }, () => "图示"));
btns.push(h("Button", { size: "small", onClick: () => onVersions(p.row) }, () => "版本历史"));
return h("div", { style: "display:flex;gap:4px" }, btns);
btns.push(Utils.operatingTextHandle(h, "图示", "", () => onDiagram(p.row)));
btns.push(Utils.operatingTextHandle(h, "版本历史", "", () => onVersions(p.row)));
return btns;
} },
];
+2 -1
View File
@@ -3,6 +3,7 @@
import { ref, onMounted } from "vue";
import { useRouter } from "vue-router";
import { flowApi, INSTANCE_STATUS } from "@/api/module/flow";
import Utils from "@/utils";
const router = useRouter();
const loading = ref(false);
@@ -21,7 +22,7 @@ const columns = [
{ title: "提交人", key: "submitterName", width: 100 },
{ title: "提交时间", width: 160, render: (h: any, p: any) => h("span", (p.row.submitTime || "").replace("T", " ")) },
{ title: "操作", width: 90, render: (h: any, p: any) =>
h("Button", { size: "small", onClick: () => router.push(`/instance/${p.row.id}`) }, () => "详情") },
Utils.operatingTextHandle(h, "详情", "", () => router.push(`/instance/${p.row.id}?pid=102`)) },
];
async function load() {
+2 -1
View File
@@ -3,6 +3,7 @@
import { ref, onMounted } from "vue";
import { Message } from "view-ui-plus";
import { flowApi } from "@/api/module/flow";
import Utils from "@/utils";
const loading = ref(false);
const deptKeyFilter = ref("");
@@ -60,7 +61,7 @@ const columns = [
{ title: "状态", width: 90, render: (h: any, p: any) => h("Tag", { color: p.row.status === 0 ? "green" : "gray" }, () => (p.row.status === 0 ? "启用" : "停用")) },
{ title: "操作", width: 100, render: (h: any, p: any) =>
p.row.status === 0
? h("Button", { size: "small", type: "warning", onClick: () => onDisable(p.row) }, () => "停用")
? Utils.operatingTextHandle(h, "停用", "text-error", () => onDisable(p.row))
: h("span", "-") },
];