diff --git a/src/views/notice/NoticeApproval.vue b/src/views/notice/NoticeApproval.vue
index 83587e1..8f583c5 100644
--- a/src/views/notice/NoticeApproval.vue
+++ b/src/views/notice/NoticeApproval.vue
@@ -14,10 +14,9 @@
{{ row._opinion }}
-
-
+ 查看详情
+ 通过
+ 驳回
@@ -71,7 +70,7 @@
-
+
@@ -121,7 +120,7 @@ const todoCols = [
{ title: "摘要", key: "_summary", minWidth: 200, ellipsis: true, tooltip: true },
{ title: "当前节点", key: "nodeName", width: 110 },
{ title: "到达时间", key: "arriveTime", width: 170, render: fmtTime },
- { title: "操作", slot: "action", width: 150 },
+ { title: "操作", slot: "action", width: 190, align: "center" },
];
const instCols = [
@@ -138,7 +137,7 @@ const instCols = [
const embedVisible = ref(false);
const embedPageUrl = ref("");
-async function openEmbed(row: ApprovalInstance) {
+async function openEmbed(row: ApprovalInstance | ApprovalTodoTask) {
try {
const res = await noticeApi.flowEmbed(Number(row.bizId)).send();
embedPageUrl.value = res?.pageUrl || "";
@@ -207,6 +206,7 @@ function load() {
}
async function approve(row: ApprovalTodoTask) {
+ if (acting.value) return; // 链接式操作无 :loading 反馈,用 acting 拦截连点重复提交
acting.value = true;
try {
await approvalApi.approve(row.taskId).send();
diff --git a/src/views/notice/NoticeDetails.vue b/src/views/notice/NoticeDetails.vue
index 911e89e..fbc4559 100644
--- a/src/views/notice/NoticeDetails.vue
+++ b/src/views/notice/NoticeDetails.vue
@@ -209,7 +209,7 @@ function downAll() {
function displayName(item: { name?: string; filename?: string }) {
return item.name || item.filename || "";
}
-/* 附件图标(按扩展名,图标名对齐旧版 matchSuffix → icon-word/excel/ppt/pdf1/txt/tupian1/yasuo/weizhi) */
+/* 附件图标(按扩展名,图标名对齐旧版 matchSuffix → icon-word/excel/ppt/pdf1/txt/tupian/yasuo/weizhi) */
function getFileIcon(name: string) {
const suffix = String(name || "").split(".").pop()?.toLowerCase() || "";
if (["doc", "docx", "wps"].includes(suffix)) return "icon-word";
@@ -217,7 +217,8 @@ function getFileIcon(name: string) {
if (["ppt", "pptx"].includes(suffix)) return "icon-ppt";
if (["pdf"].includes(suffix)) return "icon-pdf1";
if (["txt"].includes(suffix)) return "icon-txt";
- if (["jpg", "jpeg", "png", "gif", "bmp"].includes(suffix)) return "icon-tupian1";
+ // 平台 icons.css 的 icon-tupian 是线性「图片」图标;icon-tupian1 是旧彩色图转单色,看不出是图片
+ if (["jpg", "jpeg", "png", "gif", "bmp"].includes(suffix)) return "icon-tupian";
if (["zip", "rar"].includes(suffix)) return "icon-yasuo";
return "icon-weizhi";
}
@@ -352,7 +353,7 @@ function openPreview(item: { name?: string; filename?: string; fileid?: number;
-
+
@@ -418,6 +419,19 @@ function openPreview(item: { name?: string; filename?: string; fileid?: number;