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 @@