diff --git a/pages/article/article-list.vue b/pages/article/article-list.vue index 91a6cb3..fa30aba 100644 --- a/pages/article/article-list.vue +++ b/pages/article/article-list.vue @@ -84,6 +84,7 @@ import { storeToRefs } from "pinia"; import dayjs from "dayjs"; import api from "@/utils/api.js"; import useAccountStore from "@/store/account.js"; +import { toast } from "@/utils/widget.js"; import fullPage from "@/components/full-page.vue"; import EmptyData from "@/components/empty-data.vue"; @@ -138,6 +139,7 @@ const mapRowToView = (row) => { person: row?.customer?.name || "", team: row?.team?.name || "-", time: sendTime, + articleInfo: row?.articleInfo, }; }; @@ -196,8 +198,50 @@ const loadArticleList = async (reset = false) => { function goToDetail(item) { if (!item?.articleId) return; + if (isWechatChannels(item.articleInfo)) { + uni.openChannelsActivity({ + finderUserName: item.articleInfo.wechatChannels.finderUserName, + feedId: item.articleInfo.wechatChannels.feedId, + success: () => { + markArticleRead(item._id); + }, + fail: err => { + const errMsg = err.errMsg || ''; + if (/cancel/i.test(errMsg)) { + return + } + toast(`打开视频号失败:${errMsg}`) + } + }) + return + } uni.navigateTo({ url: `/pages/article/article-detail?sendId=${item._id}&id=${item.articleId}&corpId=${corpId.value}` }); } + +function isWechatChannels(item) { + return item?.wechatChannels?.finderUserName && item?.wechatChannels?.feedId; +} + +async function markArticleRead(sendId) { + const unionid = account.value?.unionid; + if (!unionid || !articleId) return; + try { + const { success } = await api( + "addArticleReadRecord", + { corpId: corpId.value, articleId, unionid, sendId }, + false + ); + if (success) { + const idx = articles.value.findIndex(i => i._id === sendId); + if (idx !== -1) { + articles.value[idx].status = "YES"; + } + } + } catch (err) { + console.warn("markArticleRead failed:", err?.message || err); + } +}; + onLoad(opts => { corpId.value = opts.corpId; teamId.value = opts.teamId; diff --git a/pages/message/components/message-types.vue b/pages/message/components/message-types.vue index 34bebe4..14dfd3d 100644 --- a/pages/message/components/message-types.vue +++ b/pages/message/components/message-types.vue @@ -78,6 +78,7 @@