fix: bug
This commit is contained in:
@@ -4,42 +4,59 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>{{ app_name }}</title>
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=20260406a" />
|
||||
<link rel="stylesheet" href="/static/style.css?v=20260421a" />
|
||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg?v=20260428h" />
|
||||
<link rel="stylesheet" href="/static/style.css?v=20260428h" />
|
||||
</head>
|
||||
<body>
|
||||
<header class="topbar">
|
||||
<div class="brand">
|
||||
<h1>{{ app_name }}</h1>
|
||||
<p class="muted">从原文到公众号草稿,一页完成编辑、封面和发布。</p>
|
||||
</div>
|
||||
<div class="topbar-actions">
|
||||
<div class="wechat-account-switch" title="草稿发布、封面上传均使用此处选中的公众号">
|
||||
<label for="wechatAccountSelect" class="wechat-account-label">发表主体</label>
|
||||
<select id="wechatAccountSelect" class="topbar-select" aria-label="切换公众号"></select>
|
||||
<span id="wechatAccountStatus" class="muted small wechat-account-status" aria-live="polite"></span>
|
||||
<div class="product-shell">
|
||||
<aside class="side-nav" aria-label="主导航">
|
||||
<div class="side-brand">
|
||||
<div class="brand-lockup">
|
||||
<img class="logo-mark" src="/static/favicon.svg?v=20260428h" alt="" />
|
||||
<h1>{{ app_name }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
<a class="subtle-link" href="/settings">公众号设置</a>
|
||||
<button id="logoutBtn" class="subtle-btn topbar-btn" type="button">退出登录</button>
|
||||
</div>
|
||||
</header>
|
||||
<nav class="nav-group">
|
||||
<div class="nav-label">工作台</div>
|
||||
<a class="nav-item is-active" href="/">内容生产</a>
|
||||
<a class="nav-item" href="/settings">账号与模型</a>
|
||||
<a class="nav-item" href="/guide">新手引导</a>
|
||||
</nav>
|
||||
<div class="side-footer">生产环境 · 内容工作流</div>
|
||||
</aside>
|
||||
|
||||
<div class="workspace">
|
||||
<header class="topbar topbar-compact">
|
||||
<div class="topbar-actions">
|
||||
<div class="wechat-account-switch" title="发布将使用当前账号">
|
||||
<label for="wechatAccountSelect" class="wechat-account-label">发表主体</label>
|
||||
<select id="wechatAccountSelect" class="topbar-select" aria-label="切换公众号"></select>
|
||||
<span id="wechatAccountStatus" class="muted small wechat-account-status" aria-live="polite"></span>
|
||||
</div>
|
||||
<a class="icon-btn" href="/guide" aria-label="新手引导" title="新手引导">?</a>
|
||||
<a class="icon-btn" href="/settings" aria-label="设置" title="设置">⚙</a>
|
||||
<button id="logoutBtn" class="icon-btn topbar-btn" type="button" aria-label="退出登录" title="退出登录">⎋</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="layout">
|
||||
<section class="panel input-panel">
|
||||
<div class="panel-head">
|
||||
<h2>内容输入</h2>
|
||||
<h2>写作输入</h2>
|
||||
</div>
|
||||
|
||||
<div class="panel-scroll">
|
||||
<section class="form-section">
|
||||
<div class="field-head">
|
||||
<label>内容</label>
|
||||
<span id="sourceCount" class="meta">0 字</span>
|
||||
</div>
|
||||
<textarea id="sourceText" rows="9" placeholder="粘贴原文(长帖、线程、摘录均可),洗稿会围绕原文主题展开…"></textarea>
|
||||
<textarea id="sourceText" rows="5" placeholder="粘贴原文内容"></textarea>
|
||||
|
||||
<div class="grid2">
|
||||
<div>
|
||||
<label>标题提示</label>
|
||||
<input id="titleHint" type="text" placeholder="如:AI Agent 商业化路径" />
|
||||
<input id="titleHint" type="text" placeholder="可选:标题方向" />
|
||||
</div>
|
||||
<div class="multi-field">
|
||||
<div class="field-head">
|
||||
@@ -59,10 +76,12 @@
|
||||
<label class="multi-dropdown-option"><input type="checkbox" name="audienceChip" value="普通读者" />普通读者</label>
|
||||
</div>
|
||||
</details>
|
||||
<input id="audienceExtra" type="text" class="multi-extra" placeholder="其他补充(可选)" />
|
||||
<input id="audienceExtra" type="text" class="multi-extra" placeholder="可选补充" />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="form-section">
|
||||
<div class="grid2">
|
||||
<div class="multi-field">
|
||||
<div class="field-head">
|
||||
@@ -83,23 +102,23 @@
|
||||
<label class="multi-dropdown-option"><input type="checkbox" name="toneChip" value="理性克制" />理性克制</label>
|
||||
</div>
|
||||
</details>
|
||||
<input id="toneExtra" type="text" class="multi-extra" placeholder="其他补充(可选)" />
|
||||
<input id="toneExtra" type="text" class="multi-extra" placeholder="可选补充" />
|
||||
</div>
|
||||
<div>
|
||||
<label>避免词汇</label>
|
||||
<input id="avoidWords" type="text" placeholder="如:颠覆、闭环、赋能" />
|
||||
<input id="avoidWords" type="text" placeholder="可选:避免词汇" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid2">
|
||||
<div>
|
||||
<label>必须保留观点</label>
|
||||
<input id="keepPoints" type="text" placeholder="逗号分隔" />
|
||||
<input id="keepPoints" type="text" placeholder="可选:保留观点(逗号分隔)" />
|
||||
</div>
|
||||
<div class="target-chars-block">
|
||||
<label>改写目标字数</label>
|
||||
<div class="target-chars-inline">
|
||||
<input id="targetBodyChars" type="number" min="180" max="2200" step="10" value="500" placeholder="如:500" />
|
||||
<input id="targetBodyChars" type="number" min="180" max="2200" step="10" value="500" placeholder="目标字数" />
|
||||
<div class="target-chars-quick" aria-label="快捷字数">
|
||||
<button type="button" class="target-char-chip" data-target-chars="300">300</button>
|
||||
<button type="button" class="target-char-chip is-active" data-target-chars="500">500</button>
|
||||
@@ -109,9 +128,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="form-section">
|
||||
<button id="rewriteBtn" class="primary">改写并排版</button>
|
||||
<p id="status" class="status"></p>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel output-panel">
|
||||
@@ -119,6 +142,8 @@
|
||||
<h2>发布内容</h2>
|
||||
</div>
|
||||
|
||||
<div class="panel-scroll">
|
||||
<section class="form-section">
|
||||
<label>标题</label>
|
||||
<input id="title" type="text" />
|
||||
|
||||
@@ -127,38 +152,93 @@
|
||||
<span id="summaryCount" class="meta">0 字</span>
|
||||
</div>
|
||||
<textarea id="summary" rows="2"></textarea>
|
||||
</section>
|
||||
|
||||
<label>公众号封面(可选上传)</label>
|
||||
<div class="cover-tools">
|
||||
<input id="coverFile" type="file" accept="image/png,image/jpeg,image/jpg,image/webp" />
|
||||
<button id="coverUploadBtn" class="subtle-btn" type="button">上传封面并绑定</button>
|
||||
</div>
|
||||
<input id="thumbMediaId" type="text" placeholder="thumb_media_id(上传后自动填充,也可手动粘贴)" />
|
||||
<p id="coverHint" class="muted small">未上传时将使用后端默认封面策略。</p>
|
||||
|
||||
<section class="form-section">
|
||||
<div class="field-head">
|
||||
<label>正文(4~6 自然段,字数由左侧配置)</label>
|
||||
<label>公众号封面</label>
|
||||
<span class="meta">900×383 横版头图</span>
|
||||
</div>
|
||||
<div class="cover-mode-switch" role="tablist" aria-label="封面模式切换">
|
||||
<button id="coverModeManualBtn" class="cover-mode-btn is-active" type="button">手动上传封面</button>
|
||||
<button id="coverModeAiBtn" class="cover-mode-btn" type="button">AI 自动生成封面</button>
|
||||
</div>
|
||||
<div id="coverAiSection" class="cover-ai-box" hidden>
|
||||
<div class="cover-ai-copy">
|
||||
<strong>AI 自动生成封面</strong>
|
||||
<span>按标题生成并自动上传绑定。</span>
|
||||
</div>
|
||||
<div class="cover-tools">
|
||||
<input id="coverStyleHint" type="text" placeholder="可选:封面风格" />
|
||||
<button id="coverGenerateBtn" class="primary" type="button">按标题生成封面</button>
|
||||
</div>
|
||||
<label class="check-label cover-auto-check"
|
||||
><input id="coverAutoAfterRewrite" type="checkbox" />改写后自动按输出标题生成封面</label
|
||||
>
|
||||
<div id="coverPreviewWrap" class="cover-preview-wrap" hidden>
|
||||
<img id="coverPreview" class="cover-preview" alt="公众号封面预览" />
|
||||
</div>
|
||||
</div>
|
||||
<div id="coverManualSection">
|
||||
<label>手动上传封面</label>
|
||||
<div class="cover-tools">
|
||||
<input id="coverFile" type="file" accept="image/png,image/jpeg,image/jpg,image/webp" />
|
||||
<button id="coverUploadBtn" class="subtle-btn" type="button">上传封面并绑定</button>
|
||||
</div>
|
||||
<div class="cover-tools">
|
||||
<input id="coverUrl" type="url" placeholder="图片 URL(http/https)" />
|
||||
<button id="coverUrlUploadBtn" class="subtle-btn" type="button">URL 上传并绑定</button>
|
||||
</div>
|
||||
</div>
|
||||
<input id="thumbMediaId" type="text" placeholder="thumb_media_id(可选)" />
|
||||
<p id="coverHint" class="muted small">当前为手动上传模式。</p>
|
||||
</section>
|
||||
|
||||
<section class="form-section">
|
||||
<div class="field-head">
|
||||
<label>正文</label>
|
||||
<span id="bodyCount" class="meta">0 字</span>
|
||||
</div>
|
||||
<div class="body-split">
|
||||
<textarea id="body" rows="7" placeholder="五段之间空一行;无需 # 标题"></textarea>
|
||||
<textarea id="body" rows="6" placeholder="可直接编辑正文"></textarea>
|
||||
<div class="preview-panel">
|
||||
<div class="field-head">
|
||||
<label>排版预览</label>
|
||||
<span class="meta">实时同步</span>
|
||||
<span class="meta">实时</span>
|
||||
</div>
|
||||
<div id="bodyPreview" class="markdown-preview"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="actions">
|
||||
<section class="form-section">
|
||||
<div class="poster-tools">
|
||||
<div class="field-head">
|
||||
<label>段落海报(首段不生成)</label>
|
||||
<span class="meta">自动上传</span>
|
||||
</div>
|
||||
<div class="poster-actions-row">
|
||||
<button id="posterGenerateBtn" class="subtle-btn" type="button">生成段落海报</button>
|
||||
<label class="check-label poster-auto-check"
|
||||
><input id="posterAutoInclude" type="checkbox" checked />发布时自动插入海报</label
|
||||
>
|
||||
</div>
|
||||
<p id="posterHint" class="muted small">改写后可生成段落海报。</p>
|
||||
<div id="posterPreviewList" class="poster-preview-list"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="actions publish-actions">
|
||||
<button id="wechatBtn" class="primary">发布到公众号草稿箱</button>
|
||||
<button id="imBtn" class="secondary">发送到 IM</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
||||
<script src="/static/app.js?v=20260421a"></script>
|
||||
<script src="/static/app.js?v=20260428h"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user