feat(ui/publish-records): surface 已存草稿 status and client-only manage hint

Render publish_type=draft tasks with the warn tone and 已存草稿 label, swap
the management link copy to 打开草稿箱 for weixin_gzh, and expand the task
summary to mention the publish_authorization_required reason. In the admin
drawer, stop falling back to external_manage_url for missing public links
and instead show a hint pointing operators back to the desktop client for
weixin_gzh / zol records.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-29 19:57:11 +08:00
parent a09d44d8f0
commit 99a992f34b
3 changed files with 60 additions and 6 deletions
@@ -229,7 +229,13 @@ async function refreshArticleData(): Promise<void> {
}
function resolvePublishLink(record: PublishRecord): string {
return record.external_article_url || record.external_manage_url || "";
return record.external_article_url?.trim() || "";
}
function shouldShowClientManageHint(record: PublishRecord): boolean {
return !resolvePublishLink(record)
&& Boolean(record.external_manage_url?.trim())
&& ["weixin_gzh", "zol"].includes(record.platform_id);
}
async function copyPublishLink(record: PublishRecord): Promise<void> {
@@ -395,6 +401,9 @@ async function copyPublishLink(record: PublishRecord): Promise<void> {
</a-button>
</a-tooltip>
</div>
<span v-else-if="shouldShowClientManageHint(record)" class="article-drawer__record-hint">
{{ t("media.records.clientManageHint") }}
</span>
<span v-else class="article-drawer__record-empty">--</span>
</template>
</template>
@@ -521,6 +530,11 @@ async function copyPublishLink(record: PublishRecord): Promise<void> {
font-size: 12px;
}
.article-drawer__record-hint {
color: var(--muted);
font-size: 12px;
}
.article-drawer__record-link {
flex: 1;
min-width: 0;
@@ -1086,6 +1086,7 @@ const zhCN = {
copy: "复制",
empty: "暂无发布记录",
linkEmpty: "当前记录还没有可用链接",
clientManageHint: "仅有管理页面,请在客户端打开管理页面查看",
copySuccess: "链接已复制",
},
},