From 8704b5ee9c8df9580dc5f17a50bdd73f6abdeb47 Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期一, 10 八月 2026 20:24:09 +0800
Subject: [PATCH] fix(talent): show news preview and tags (bug #24089)
---
rencaika/pages/news/news.uvue | 10 ++++++++--
talent-card-server/src/main/java/com/talentcard/server/business/portal/PortalService.java | 11 +++++++++--
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/rencaika/pages/news/news.uvue b/rencaika/pages/news/news.uvue
index 90d5cbe..b61d8ed 100644
--- a/rencaika/pages/news/news.uvue
+++ b/rencaika/pages/news/news.uvue
@@ -19,7 +19,7 @@
<view class="news-body">
<view class="news-copy">
<text class="news-summary">{{item.summary}}</text>
- <view class="news-meta"><text class="news-tag">公招信息</text><text class="news-time">{{item.time}}</text></view>
+ <view class="news-meta"><text v-if="item.tag != ''" class="news-tag">{{item.tag}}</text><text class="news-time">{{item.time}}</text></view>
</view>
<image class="news-thumb" src="/static/news-assets/meeting-thumb.jpg" mode="aspectFill"></image>
</view>
@@ -89,6 +89,11 @@
const text = '' + value
return text.length >= 16 ? text.substring(0, 16).replace('T', ' ') : text.replace('T', ' ')
}
+ const contentPreview = (value: any): string => {
+ if (value == null) return ''
+ const plain = (value as string).replace(/\s+/g, ' ').trim()
+ return plain.length > 64 ? plain.substring(0, 64) + '...' : plain
+ }
const mapNewsRecords = (records: any[]): any[] => {
const mapped: any[] = []
for (let index = 0; index < records.length; index++) {
@@ -96,7 +101,8 @@
mapped.push({
id: '' + item.id,
title: item.title != null ? item.title as string : '人才资讯',
- summary: item.summary != null ? item.summary as string : '',
+ summary: contentPreview(item.contentPreview),
+ tag: item.summary != null ? item.summary as string : '',
time: formatNewsTime(item.publishTime)
})
}
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/portal/PortalService.java b/talent-card-server/src/main/java/com/talentcard/server/business/portal/PortalService.java
index b1fa8c8..2121c81 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/portal/PortalService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/portal/PortalService.java
@@ -83,12 +83,19 @@
@Transactional(readOnly = true)
public PageResult<Map<String, Object>> news(int page, int size) {
- return page("""
- select id, title, summary, cover_url, source, view_count, is_top, publish_time
+ PageResult<Map<String, Object>> result = page("""
+ select id, title, summary, cover_url, source, content, view_count, is_top, publish_time
from news_article
where deleted = 0 and status = 1
order by is_top desc, sort_no desc, publish_time desc, id desc
""", "select count(*) from news_article where deleted = 0 and status = 1", page, size);
+ List<Map<String, Object>> records = result.records().stream().map(row -> {
+ Map<String, Object> item = new LinkedHashMap<>(row);
+ item.put("contentPreview", htmlToText((String) item.get("content")));
+ item.remove("content");
+ return item;
+ }).toList();
+ return new PageResult<>(records, result.page(), result.size(), result.total());
}
@Transactional
--
Gitblit v1.7.1