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:
@@ -49,8 +49,8 @@ const navItems = computed(() => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: "/media-platforms",
|
to: "/media-platforms",
|
||||||
title: "媒体平台",
|
title: "媒体账号",
|
||||||
description: "发布媒体授权、多个账号绑定与表格化管理",
|
description: "发布媒体授权、多个账号绑定管理",
|
||||||
count: accounts.filter((item) => publishIDs.has(item.platform)).length,
|
count: accounts.filter((item) => publishIDs.has(item.platform)).length,
|
||||||
icon: LinkOutlined,
|
icon: LinkOutlined,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ const tableColumns = [
|
|||||||
<section class="hero-card">
|
<section class="hero-card">
|
||||||
<div class="hero-header">
|
<div class="hero-header">
|
||||||
<div class="hero-title">
|
<div class="hero-title">
|
||||||
<p class="eyebrow">媒体授权中心</p>
|
<p class="eyebrow">MEDIA ACCOUNTS</p>
|
||||||
<h2>媒体账号管理</h2>
|
<h2>媒体账号管理</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="hero-actions">
|
<div class="hero-actions">
|
||||||
|
|||||||
@@ -233,9 +233,6 @@ async function unbindPlatform(account: AccountRow) {
|
|||||||
<div class="hero-title">
|
<div class="hero-title">
|
||||||
<p class="eyebrow">AI PLATFORMS</p>
|
<p class="eyebrow">AI PLATFORMS</p>
|
||||||
<h2>AI 平台管理</h2>
|
<h2>AI 平台管理</h2>
|
||||||
<p class="summary">
|
|
||||||
首次点击“授权”会打开前台登录窗口,登录完成后绑定到当前 partition。后续数据抓取与巡检一律走隐藏窗口,用户看不见采集过程。
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="hero-actions">
|
<div class="hero-actions">
|
||||||
<a-button type="primary" ghost class="modern-btn" :loading="loading" @click="refreshAccounts">
|
<a-button type="primary" ghost class="modern-btn" :loading="loading" @click="refreshAccounts">
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ interface PublishTaskItem {
|
|||||||
createdAt: number;
|
createdAt: number;
|
||||||
updatedAt: number;
|
updatedAt: number;
|
||||||
externalArticleUrl: string | null;
|
externalArticleUrl: string | null;
|
||||||
externalManageUrl: string | null;
|
|
||||||
publishType: string | null;
|
publishType: string | null;
|
||||||
fallbackReason: string | null;
|
fallbackReason: string | null;
|
||||||
errorMessage: string | null;
|
errorMessage: string | null;
|
||||||
@@ -439,7 +438,6 @@ const publishTasks = computed<PublishTaskItem[]>(() =>
|
|||||||
externalArticleUrl: publishType === "draft"
|
externalArticleUrl: publishType === "draft"
|
||||||
? null
|
? null
|
||||||
: extractString(result.external_article_url) ?? buildWangyihaoArticleUrl(task, result) ?? buildSohuArticleUrl(task, result),
|
: extractString(result.external_article_url) ?? buildWangyihaoArticleUrl(task, result) ?? buildSohuArticleUrl(task, result),
|
||||||
externalManageUrl: extractString(result.external_manage_url),
|
|
||||||
publishType,
|
publishType,
|
||||||
fallbackReason,
|
fallbackReason,
|
||||||
errorMessage: normalizeTaskErrorMessage(
|
errorMessage: normalizeTaskErrorMessage(
|
||||||
@@ -464,7 +462,7 @@ const tableColumns = [
|
|||||||
{ title: "操作", key: "actions", align: "right" as const, width: 132, fixed: "right" as const },
|
{ 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>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -630,9 +628,8 @@ const tableScroll = { x: 1000 } as const;
|
|||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
<a-tooltip
|
<a-tooltip
|
||||||
v-if="record.externalArticleUrl"
|
v-if="record.externalArticleUrl"
|
||||||
:title="record.externalArticleUrl"
|
title="打开外链"
|
||||||
placement="top"
|
placement="top"
|
||||||
overlay-class-name="external-url-tooltip"
|
|
||||||
>
|
>
|
||||||
<a-button
|
<a-button
|
||||||
type="text"
|
type="text"
|
||||||
@@ -643,7 +640,10 @@ const tableScroll = { x: 1000 } as const;
|
|||||||
<template #icon><ExportOutlined /></template>
|
<template #icon><ExportOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip :title="`打开 ${record.accountName} 的${translatePlatform(record.platform)}工作台`" placement="top">
|
<a-tooltip
|
||||||
|
:title="`打开 ${record.accountName} 的${translatePlatform(record.platform)}工作台`"
|
||||||
|
placement="top"
|
||||||
|
>
|
||||||
<a-button
|
<a-button
|
||||||
type="text"
|
type="text"
|
||||||
class="icon-action-btn"
|
class="icon-action-btn"
|
||||||
@@ -667,6 +667,7 @@ const tableScroll = { x: 1000 } as const;
|
|||||||
type="text"
|
type="text"
|
||||||
class="icon-action-btn"
|
class="icon-action-btn"
|
||||||
:loading="actionPendingTaskId === record.id"
|
:loading="actionPendingTaskId === record.id"
|
||||||
|
:aria-label="`再次发送:${record.title}`"
|
||||||
>
|
>
|
||||||
<template #icon><SendOutlined /></template>
|
<template #icon><SendOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -991,22 +992,6 @@ const tableScroll = { x: 1000 } as const;
|
|||||||
color: #cbd5e1;
|
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 {
|
.error-message-row {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -1091,11 +1076,6 @@ const tableScroll = { x: 1000 } as const;
|
|||||||
background: #fef2f2;
|
background: #fef2f2;
|
||||||
}
|
}
|
||||||
|
|
||||||
:global(.external-url-tooltip .ant-tooltip-inner) {
|
|
||||||
max-width: min(520px, 80vw);
|
|
||||||
overflow-wrap: anywhere;
|
|
||||||
}
|
|
||||||
|
|
||||||
:global(.publish-error-popover .ant-popover-inner) {
|
:global(.publish-error-popover .ant-popover-inner) {
|
||||||
max-width: min(720px, 82vw);
|
max-width: min(720px, 82vw);
|
||||||
border: 1px solid #fecaca;
|
border: 1px solid #fecaca;
|
||||||
|
|||||||
Reference in New Issue
Block a user