diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js b/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js index 0e4b4c5..02b681f 100644 --- a/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js +++ b/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js @@ -1448,20 +1448,23 @@ async function renderVideoDetail(view, id) { const parseBtn = (mode) => ``; const emptyAct = (icon, title, desc) => `
${svgIcon(icon, 40)}
${title}
${desc}
${parseBtn('parse')}
`; const tabBtns = [['script', '视频脚本'], ['deconstruct', '视频拆解']].map(([k, label]) => ``).join(''); - /* R59:拆解 tab 内容区 = 关键信息卡(默认)/ 拆解全文 切换视图(同账号设定卡片交互:右上角卡/文切换钮,无 AI、纯前端抽取) */ + /* R59:拆解 tab 内容区 = 关键信息卡(默认)/ 拆解全文 切换视图(同账号设定卡片交互:卡/文切换钮,无 AI、纯前端抽取) */ + const vkSwitch = (active) => `
`; + /* 行尾工具(09-04 并入 tab 行右侧,内容区上方不再空工具行):随当前 tab 与数据状态输出 */ + let tabTools = ''; + if (tab === 'script' && scriptMd) tabTools = parseBtn('refresh'); + else if (tab === 'deconstruct' && deconstructMd) tabTools = (keyCardHtml ? vkSwitch(vkMode) : '') + parseBtn('refresh'); const deconPanel = () => { if (!deconstructMd) return emptyAct('chart', '暂无视频拆解', '该视频尚未完成结构化拆解。点击「解析」对该视频做 MCP 内容解析(同时产出「视频脚本」与「视频拆解」,约需数分钟)。'); - if (!keyCardHtml) return `
${parseBtn('refresh')}
${renderMarkdown(deconstructMd)}
`; - const vkSwitch = `
`; - return `
${vkSwitch}${parseBtn('refresh')}
-
+ if (!keyCardHtml) return `
${renderMarkdown(deconstructMd)}
`; + return `
${keyCardHtml}
${renderMarkdown(deconstructMd)}
`; }; let body = ''; if (tab === 'script') body = scriptMd - ? `
${parseBtn('refresh')}
${renderMarkdown(scriptMd)}
` + ? `
${renderMarkdown(scriptMd)}
` : emptyAct('file-text', '暂无视频脚本', '该视频尚未解析。点击「解析」对该视频做 MCP 内容解析(同时产出「视频脚本」与「视频拆解」,约需数分钟)。'); else if (tab === 'deconstruct') body = deconPanel(); view.innerHTML = ` @@ -1476,7 +1479,7 @@ async function renderVideoDetail(view, id) { ${infoGrid('标签', `${v.tags ? esc(v.tags) : '无'} ${viewLink}`, true, true)}
-
${tabBtns}
+
${tabBtns}
${tabTools}
${body} `; diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html b/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html index 66fefc0..cda5f1b 100644 --- a/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html +++ b/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html @@ -4,7 +4,7 @@ 短视频工作台 - + @@ -43,6 +43,6 @@ - + diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/public/style.css b/project/短视频脚本创作/V1.0/mcn-work-shop/public/style.css index c8aad01..79113a2 100644 --- a/project/短视频脚本创作/V1.0/mcn-work-shop/public/style.css +++ b/project/短视频脚本创作/V1.0/mcn-work-shop/public/style.css @@ -407,8 +407,7 @@ main#view { height: calc(100vh - 55px); overflow: auto; } /* 55px=topbar 实际 .page { padding: 20px 24px; max-width: 1440px; margin: 0 auto; } /* ================= 视频详情页 md-body:内容相对 tab 缩进 20px + 标题字号收紧 ================= */ .page-detail .md-body { font-size: 15px; margin-left: 20px; } -/* 视频详情内容右上角工具条(09-03 R28):已解析内容顶部右对齐放「刷新」按钮 */ -.vd-tools { display: flex; justify-content: flex-end; margin: 2px 0 8px 20px; } +/* 视频详情内容右上角工具条(09-03 R28,09-04 已并入 tab 行 .tab-tools 不再独立成行) */ .page-detail .md-body h1 { font-size: 20px; border-bottom: 1px solid var(--border); padding-bottom: 4px; margin: 14px 0 8px; } .page-detail .md-body h2 { font-size: 17px; border-bottom: 1px solid var(--border); padding-bottom: 3px; margin: 12px 0 6px; } .page-detail .md-body h3 { font-size: 15px; margin: 10px 0 6px; } @@ -486,10 +485,14 @@ main#view { height: calc(100vh - 55px); overflow: auto; } /* 55px=topbar 实际 .pager-total, .pager-info { color: var(--dim); font-size: 15px; } /* ================= 数据页 tab(下划线式:无背景,激活蓝色文字+直线下划线,与内容左对齐) ================= */ -.tabs { display: flex; gap: 4px; margin-bottom: 20px; margin-left: 0; border-bottom: 1px solid var(--border); } +.tabs { display: flex; align-items: center; gap: 4px; margin-bottom: 20px; margin-left: 0; border-bottom: 1px solid var(--border); } .tab { border: none; background: none; padding: 8px 16px; font-size: 15px; color: var(--dim); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; border-radius: 0; } .tab:hover { color: var(--primary); } .tab-active { color: var(--primary); font-weight: 600; border-bottom-color: var(--primary); } +/* 行尾工具(09-04 并入 tab 行右侧:刷新/卡文切换等,内容区不再空工具行);tab-spacer 把工具推到最右 */ +.tab-spacer { flex: 1; } +.tab-tools { display: inline-flex; align-items: center; gap: 8px; margin-right: 8px; } +.tab-tools .vk-switch { display: inline-flex; align-items: center; } /* 数据页列表标题(如账号视频列表):与上方内容间隔 20px */ .video-list-title { margin: 20px 0 10px; font-size: 17px; font-weight: 600; } /* 账号详情视频列表:发布时间列收窄 20px(155→135);标题列 th 不设固定宽度(auto 自然分配,避免钳制列宽), @@ -551,7 +554,6 @@ td.td-title { max-width: 240px; } .video-info .video-grid .info-item:not(.info-wide) .info-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ================= R59 视频关键信息卡(拆解 tab 默认视图,卡/文切换) ================= */ -.vd-tools { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin: 2px 0 8px 20px; } .vk-switch { display: inline-flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: var(--panel); } .vk-switch .vi-btn { padding: 4px 9px; } .vd-wrap .md-body { margin-left: 20px; }