style(desktop-client): tighten media/AI/publish view copy and table chrome

Rename the media-platforms nav entry to "媒体账号", switch the Accounts hero eyebrow to MEDIA ACCOUNTS, drop the redundant AI platforms intro paragraph, and trim the publish list to use a generic external-link tooltip plus a slightly wider table to fit the renamed columns.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-30 21:06:12 +08:00
parent ed38721feb
commit 40ef60eae2
4 changed files with 10 additions and 33 deletions
@@ -49,8 +49,8 @@ const navItems = computed(() => {
},
{
to: "/media-platforms",
title: "媒体平台",
description: "发布媒体授权、多个账号绑定与表格化管理",
title: "媒体账号",
description: "发布媒体授权、多个账号绑定管理",
count: accounts.filter((item) => publishIDs.has(item.platform)).length,
icon: LinkOutlined,
},
@@ -330,7 +330,7 @@ const tableColumns = [
<section class="hero-card">
<div class="hero-header">
<div class="hero-title">
<p class="eyebrow">媒体授权中心</p>
<p class="eyebrow">MEDIA ACCOUNTS</p>
<h2>媒体账号管理</h2>
</div>
<div class="hero-actions">
@@ -233,9 +233,6 @@ async function unbindPlatform(account: AccountRow) {
<div class="hero-title">
<p class="eyebrow">AI PLATFORMS</p>
<h2>AI 平台管理</h2>
<p class="summary">
首次点击授权会打开前台登录窗口登录完成后绑定到当前 partition后续数据抓取与巡检一律走隐藏窗口用户看不见采集过程
</p>
</div>
<div class="hero-actions">
<a-button type="primary" ghost class="modern-btn" :loading="loading" @click="refreshAccounts">
@@ -40,7 +40,6 @@ interface PublishTaskItem {
createdAt: number;
updatedAt: number;
externalArticleUrl: string | null;
externalManageUrl: string | null;
publishType: string | null;
fallbackReason: string | null;
errorMessage: string | null;
@@ -439,7 +438,6 @@ const publishTasks = computed<PublishTaskItem[]>(() =>
externalArticleUrl: publishType === "draft"
? null
: extractString(result.external_article_url) ?? buildWangyihaoArticleUrl(task, result) ?? buildSohuArticleUrl(task, result),
externalManageUrl: extractString(result.external_manage_url),
publishType,
fallbackReason,
errorMessage: normalizeTaskErrorMessage(
@@ -464,7 +462,7 @@ const tableColumns = [
{ title: "操作", key: "actions", align: "right" as const, width: 132, fixed: "right" as const },
];
const tableScroll = { x: 1000 } as const;
const tableScroll = { x: 1080 } as const;
</script>
<template>
@@ -630,9 +628,8 @@ const tableScroll = { x: 1000 } as const;
<div class="action-buttons">
<a-tooltip
v-if="record.externalArticleUrl"
:title="record.externalArticleUrl"
title="打开外链"
placement="top"
overlay-class-name="external-url-tooltip"
>
<a-button
type="text"
@@ -643,7 +640,10 @@ const tableScroll = { x: 1000 } as const;
<template #icon><ExportOutlined /></template>
</a-button>
</a-tooltip>
<a-tooltip :title="`打开 ${record.accountName} 的${translatePlatform(record.platform)}工作台`" placement="top">
<a-tooltip
:title="`打开 ${record.accountName} 的${translatePlatform(record.platform)}工作台`"
placement="top"
>
<a-button
type="text"
class="icon-action-btn"
@@ -667,6 +667,7 @@ const tableScroll = { x: 1000 } as const;
type="text"
class="icon-action-btn"
:loading="actionPendingTaskId === record.id"
:aria-label="`再次发送:${record.title}`"
>
<template #icon><SendOutlined /></template>
</a-button>
@@ -991,22 +992,6 @@ const tableScroll = { x: 1000 } as const;
color: #cbd5e1;
}
.external-task-link {
display: inline-flex;
align-items: center;
gap: 4px;
color: #2563eb;
font-size: 12px;
font-weight: 500;
line-height: 1.4;
text-decoration: none;
}
.external-task-link:hover {
color: #1d4ed8;
text-decoration: underline;
}
.error-message-row {
display: block;
width: 100%;
@@ -1091,11 +1076,6 @@ const tableScroll = { x: 1000 } as const;
background: #fef2f2;
}
:global(.external-url-tooltip .ant-tooltip-inner) {
max-width: min(520px, 80vw);
overflow-wrap: anywhere;
}
:global(.publish-error-popover .ant-popover-inner) {
max-width: min(720px, 82vw);
border: 1px solid #fecaca;