From 982065c424de46c511a8cadb66660c941ebbfff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E8=AF=9A?= <1009578407@qq.com> Date: Tue, 1 Sep 2026 16:00:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=81=8C=E5=B7=A5=E7=A6=8F=E5=88=A9PC?= =?UTF-8?q?=E7=AB=AF=E7=B3=BB=E7=BB=9F=E9=BB=98=E8=AE=A4=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=A4=8D=E9=80=89=E6=A1=86=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=EF=BC=9B=E8=81=8C=E4=BB=A3=E4=BC=9APC=E7=AB=AF=E6=8A=95?= =?UTF-8?q?=E7=A5=A8=E7=BB=9F=E8=AE=A1=E7=BB=93=E6=9E=9C=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E7=A1=AE=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=EF=BC=9B=E4=BD=93=E8=82=B2=E6=B4=BB=E5=8A=A8h5=E5=88=86?= =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E6=8A=A5=E5=90=8D=E6=9D=83=E9=99=90=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=EF=BC=9B=E5=93=81=E7=89=8C=E6=B4=BB=E5=8A=A8h5?= =?UTF-8?q?=E8=81=94=E7=B3=BB=E4=BA=BA=E5=AD=97=E6=AE=B5=E8=B6=85=E9=95=BF?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E9=80=82=E9=85=8D=E4=BF=AE=E5=A4=8D=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../congress/materials/statistical/index.html | 18 ++++++-- .../welfare/projectMange/welfareOption.js | 16 +++---- .../zhghh5/activity/sports/eventList.html | 35 +++++++++++++++ .../activity/trainSignUp/list/index.html | 44 ++++++++++++++++++- 4 files changed, 100 insertions(+), 13 deletions(-) diff --git a/src/main/resources/views/platform/zhgh/democratic/congress/materials/statistical/index.html b/src/main/resources/views/platform/zhgh/democratic/congress/materials/statistical/index.html index 8c98b79b..2b5f8ace 100644 --- a/src/main/resources/views/platform/zhgh/democratic/congress/materials/statistical/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/congress/materials/statistical/index.html @@ -109,15 +109,27 @@ layout("/layouts/platform.html"){ if (!value) return [] try { const data = typeof value === "string" ? JSON.parse(value) : value - return Array.isArray(data) ? data : [] + if (Array.isArray(data)) return data + if (data && typeof data === "object") { + return Object.keys(data).map(item => ({item, result: data[item]})) + } + return [] } catch (e) { return [] } }, + voteOptionText(item) { + const value = item.result || item.vote || item.selected || item.option || item.value + if (Array.isArray(value)) return value.join("、") + if (value && typeof value === "object") { + return value.label || value.name || value.value || "-" + } + return value || "-" + }, voteResultText(value) { return this.parseVoteResult(value).map(item => { return (item.item || item.itemName || "投票项") + ":" + - (item.selected || item.option || item.value || "-") + this.voteOptionText(item) }).join(";") }, buildSummary(records) { @@ -125,7 +137,7 @@ layout("/layouts/platform.html"){ records.forEach(record => { this.parseVoteResult(record.voteResult).forEach(item => { const itemName = item.item || item.itemName || "投票项" - const option = item.selected || item.option || item.value || "-" + const option = this.voteOptionText(item) if (!counter[itemName]) counter[itemName] = {} counter[itemName][option] = (counter[itemName][option] || 0) + 1 }) diff --git a/src/main/resources/views/platform/zhgh/welfare/projectMange/welfareOption.js b/src/main/resources/views/platform/zhgh/welfare/projectMange/welfareOption.js index 0629aebd..4c2239a7 100644 --- a/src/main/resources/views/platform/zhgh/welfare/projectMange/welfareOption.js +++ b/src/main/resources/views/platform/zhgh/welfare/projectMange/welfareOption.js @@ -14,12 +14,11 @@ const welfareOption = { @@ -124,9 +123,10 @@ const welfareOption = { }, // 每个福利项目只允许配置一个系统默认选项,保存时会随福利选项一并提交。 - setSystemDefault(defaultOption) { + setSystemDefault(defaultOption, checked = true) { + this.systemDefaultOption = checked ? defaultOption : null; this.welfareList.forEach((item) => { - this.$set(item, 'isSystemDefault', item === defaultOption); + this.$set(item, 'isSystemDefault', checked && item === defaultOption); }); }, @@ -200,7 +200,7 @@ const welfareOption = { transform: translate(-50%, -50%); } - /deep/ .welfare-option .el-radio__label { + /deep/ .welfare-option .el-checkbox__label { padding-left: 0; } diff --git a/src/main/resources/views/platform/zhghh5/activity/sports/eventList.html b/src/main/resources/views/platform/zhghh5/activity/sports/eventList.html index ded3bea3..3825d7f1 100644 --- a/src/main/resources/views/platform/zhghh5/activity/sports/eventList.html +++ b/src/main/resources/views/platform/zhghh5/activity/sports/eventList.html @@ -397,6 +397,19 @@ layout("/layouts/platform_h5.html"){ justify-content: flex-end; } + .sports-event-union-action-hint { + display: inline-flex; + align-items: center; + color: #ed6a0c; + font-size: 12px; + line-height: 18px; + text-align: right; + } + + .sports-event-union-action-hint.is-authorized { + color: #1989fa; + } + .sports-event-page .table-card .table-card-footer .van-cell__value { display: flex; align-items: center; @@ -700,6 +713,12 @@ layout("/layouts/platform_h5.html"){ 取消报名 + + {{ canUnionApplyOnPc ? '分工会报名请在PC端进行' : '该活动为分工会报名,暂无权限' }} + @@ -731,6 +750,12 @@ layout("/layouts/platform_h5.html"){ 取消报名 + + {{ canUnionApplyOnPc ? '分工会报名请在PC端进行' : '该活动为分工会报名,暂无权限' }} + @@ -768,6 +793,16 @@ layout("/layouts/platform_h5.html"){ } }, components: {}, + computed: { + canUnionApplyOnPc() { + return this.$auth.hasRoleOr([ + "SYSADMIN", + "SCHOOL_UNION_ADMIN", + "BRANCH_UNION_CHAIRMAN", + "BRANCH_UNION_WENTI_SPORTS" + ]) && this.$auth.hasPermission("activity.apply") + } + }, methods: { toggleViewMode() { this.viewMode = this.viewMode === "card" ? "list" : "card" diff --git a/src/main/resources/views/platform/zhghh5/activity/trainSignUp/list/index.html b/src/main/resources/views/platform/zhghh5/activity/trainSignUp/list/index.html index c6832332..6d8bfb35 100644 --- a/src/main/resources/views/platform/zhghh5/activity/trainSignUp/list/index.html +++ b/src/main/resources/views/platform/zhghh5/activity/trainSignUp/list/index.html @@ -324,11 +324,37 @@ layout("/layouts/platform_h5.html"){ } .brand-course-card__detail:nth-child(-n + 2) .brand-course-card__detail-label, - .brand-course-card__detail:nth-child(-n + 2) .brand-course-card__detail-value { + .brand-course-card__detail:nth-child(2) .brand-course-card__detail-value { + overflow: hidden; + text-overflow: ellipsis; overflow-wrap: normal; white-space: nowrap; } + .brand-course-card__detail:first-child .brand-course-card__detail-value { + display: block; + max-width: 100%; + overflow: hidden; + overflow-wrap: normal; + text-overflow: ellipsis; + white-space: nowrap; + } + + .brand-course-contact-popover { + display: block; + min-width: 0; + max-width: 100%; + } + + .brand-course-contact-popover__content { + max-width: 240px; + padding: 8px 12px; + overflow-wrap: anywhere; + color: #33445a; + font-size: 12px; + line-height: 18px; + } + .brand-course-card__links { display: flex; min-width: 0; @@ -913,7 +939,17 @@ layout("/layouts/platform_h5.html"){
联系人
-
{{row.courseInstructor}}
+ +
{{row.courseInstructor || '暂无'}}
+ +
@@ -1009,6 +1045,7 @@ layout("/layouts/platform_h5.html"){ activeAssort: null, filterOpened: false, viewMode: 'card', + contactPopoverIndex: -1, weekdayCNMap: {0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六'}, } @@ -1017,6 +1054,9 @@ layout("/layouts/platform_h5.html"){ toggleViewMode() { this.viewMode = this.viewMode === 'card' ? 'list' : 'card' }, + setContactPopover(index, visible) { + this.contactPopoverIndex = visible ? index : -1 + }, onAssortChange(name) { this.pageForm.assortTypes = name ? JSON.stringify([name]) : [] this.doSearch()