From 690d32937162eca3b71318df87f1befd7459785a Mon Sep 17 00:00:00 2001 From: chenxing Date: Sat, 10 Oct 2026 15:16:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(notice):=20=E9=80=9A=E7=9F=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BF=AE=E8=AE=A212=E9=A1=B9=E5=85=A8=E9=87=8F?= =?UTF-8?q?=E8=90=BD=E5=9C=B0=E2=80=94=E2=80=94=E5=B7=B2=E5=8F=91=E9=80=81?= =?UTF-8?q?=E5=B9=BB=E5=BD=B1=E7=9C=81=E7=95=A5=E5=8F=B7/=E7=BF=BB?= =?UTF-8?q?=E9=A1=B5=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E5=8C=96/?= =?UTF-8?q?=E9=99=84=E4=BB=B6upFile=E5=AD=97=E6=AE=B5/=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E7=8A=B6=E6=80=81Tag=E5=BE=BD=E6=A0=87=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=89=B2=E7=B3=BB/=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E4=B8=AD=E7=A6=81=E7=94=A8=E5=88=A0=E9=99=A4/=E5=BE=85?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=93=8D=E4=BD=9C=E5=88=97operating-link+?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E8=AF=A6=E6=83=85/=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=A2=84=E8=A7=88=E9=80=89=E4=B8=AD=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=9B=BE/=E4=B8=80=E9=94=AE=E5=B7=B2=E8=AF=BB?= =?UTF-8?q?=E6=94=B9SvgIcon(read-all.svg)/=E5=9B=BE=E7=89=87=E9=99=84?= =?UTF-8?q?=E4=BB=B6icon-tupian/=E8=AF=A6=E6=83=85=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E4=B8=A4=E7=AB=AF=E5=AF=B9=E9=BD=90/=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E6=8D=A2=E8=A1=8C=E5=B8=83=E5=B1=80/?= =?UTF-8?q?=E6=8A=84=E9=80=81=E9=A1=B5=E6=8E=A5=E5=85=A5TablePageAlovaNew(?= =?UTF-8?q?usePagination=E9=A1=BB=E8=BF=94=E5=9B=9EMethod)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/read-all.svg | 1 + src/assets/styles/main.scss | 13 +++++++ src/components/NoticeUpload.vue | 8 ++-- src/types/notice.ts | 4 ++ src/utils/index.ts | 2 +- src/views/notice/NoticeAccept.vue | 29 ++++++++------- src/views/notice/NoticeCc.vue | 60 +++++++++--------------------- src/views/notice/NoticeList.vue | 38 ++++++++++--------- src/views/notice/NoticeSetting.vue | 13 ++++++- 9 files changed, 89 insertions(+), 79 deletions(-) create mode 100644 src/assets/icons/read-all.svg diff --git a/src/assets/icons/read-all.svg b/src/assets/icons/read-all.svg new file mode 100644 index 0000000..5f94c0f --- /dev/null +++ b/src/assets/icons/read-all.svg @@ -0,0 +1 @@ + diff --git a/src/assets/styles/main.scss b/src/assets/styles/main.scss index ab5e585..fade497 100644 --- a/src/assets/styles/main.scss +++ b/src/assets/styles/main.scss @@ -115,3 +115,16 @@ h4.subtitle { margin-right: 4px; margin-bottom: 2px; } + +/* 修复表格幻影省略号(2026-10-10):.ivu-table-cell 基础样式自带 text-overflow:ellipsis, + tooltip 列(.ivu-tooltip 行内块包装 + width:100%)与操作列(图标外包 Tooltip)未溢出也常显「...」。 + 恢复组件预期的块级/flex 渲染层级即可;内层 .ivu-table-cell-tooltip-content 的真省略号与 + 悬浮 tooltip 不受影响(已在 dev:mock 实测:短内容无省略号、长标题正常截断+悬浮提示)。 */ +/* 两条同为 3 类特异性(0,3,0):后者居后胜出 → tooltip 列(.ivu-table-cell-tooltip)最终 flex + (组件预期布局),操作列裸 .ivu-tooltip 包装取 block。 */ +.ivu-table .ivu-table-cell > .ivu-tooltip { + display: block; +} +.ivu-table .ivu-table-cell > .ivu-table-cell-tooltip { + display: flex; +} diff --git a/src/components/NoticeUpload.vue b/src/components/NoticeUpload.vue index 56032b2..28d9b1e 100644 --- a/src/components/NoticeUpload.vue +++ b/src/components/NoticeUpload.vue @@ -92,16 +92,18 @@ export default { display: block; .upload-row { display: flex; - align-items: center; + align-items: flex-start; /* 提示语与按钮首行对齐(列表换行后不再垂直居中整块) */ } :deep(.ivu-upload) { display: inline-flex; + flex-wrap: wrap; /* 允许内部列表换行 */ align-items: center; } /* 文件列表整体另起一行,每项独占一行,不再与按钮挤在一起 */ :deep(.ivu-upload-list) { display: block; - margin-top: 8px; + width: 100%; /* 文件列表整体独占下一行 */ + margin-top: 4px; } :deep(.ivu-upload-list-file) { padding: 4px 0; @@ -110,7 +112,7 @@ export default { margin-left: 10px; color: #f90; font-size: 12px; - line-height: 1; + line-height: 32px; /* 与默认 Button 等高,紧贴按钮右侧 */ } } diff --git a/src/types/notice.ts b/src/types/notice.ts index fa3fc77..6d74906 100644 --- a/src/types/notice.ts +++ b/src/types/notice.ts @@ -64,6 +64,10 @@ export interface NoticeVo { smsFlag: number; /** 接收人列表(JSON) */ receiveList: string | null; + /** 附件ID串("1,2,3";后端 Lombok 序列化名为 upFile,对齐旧 .NET UpFile 语义) */ + upFile?: string | null; + /** @deprecated 旧 .NET 接口的 PascalCase 附件字段,仅作读取兼容 */ + UpFile?: string | null; createBy: string | null; createTime: string | null; updateBy: string | null; diff --git a/src/utils/index.ts b/src/utils/index.ts index bdf6523..89b558d 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -100,7 +100,7 @@ export default class Utils { "div", { class: `operating-btn iconfont ${iconClass}`, - onClick: callback, + onClick: disabled ? null : callback, }, null, ), diff --git a/src/views/notice/NoticeAccept.vue b/src/views/notice/NoticeAccept.vue index 4209eca..840044b 100644 --- a/src/views/notice/NoticeAccept.vue +++ b/src/views/notice/NoticeAccept.vue @@ -5,6 +5,7 @@ import { Message, Tooltip } from "view-ui-plus"; import { noticeApi } from "@/api/module/notice"; import type { NoticeDetailVo, NoticeQuery, NoticeVo, NoticePageResult } from "@/types/notice"; import FilePreviewModal from "@/components/FilePreviewModal.vue"; +import SvgIcon from "@/components/SvgIcon.vue"; import Utils from "@/utils"; /* ============ 左侧列表 ============ */ @@ -111,7 +112,7 @@ function openPreview(item: { name?: string; filename?: string; fileid?: number; }; } -/* 附件图标(按扩展名,图标名对齐旧版 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"; @@ -119,7 +120,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"; } @@ -171,7 +173,7 @@ function shortDate(date: string) {
未读{{ page.unreadCount || 0 }}条 - +
-

来源:{{ detail.DeptName }}

-

发布人:{{ detail.TeaName }}

-

发布时间:{{ detail.EditDate }}

+

来源:{{ detail.DeptName }}

+

发布人:{{ detail.TeaName }}

+

发布时间:{{ detail.EditDate }}

- 附件:{{ (detail.ChaoSend || []).length }}个 + 附件:{{ (detail.ChaoSend || []).length }}个 全部下载

@@ -306,12 +308,6 @@ function shortDate(date: string) { } .clear-icon { cursor: pointer; - font-size: 18px; - color: var(--text-3); - transition: color 0.15s; - &:hover { - color: var(--brand); - } } } .search-box { @@ -443,6 +439,13 @@ function shortDate(date: string) { p { margin: 0; } + /* 标签两端撑开:冒号纵向对齐、值从同一列起(宽度取「发布时间」4 字) */ + .meta-label { + display: inline-block; + width: 4em; + text-align: justify; + text-align-last: justify; + } .to-file { margin-left: 8px; color: var(--brand); diff --git a/src/views/notice/NoticeCc.vue b/src/views/notice/NoticeCc.vue index 7bd26b7..d6102f5 100644 --- a/src/views/notice/NoticeCc.vue +++ b/src/views/notice/NoticeCc.vue @@ -1,34 +1,26 @@