diff --git a/index.html b/index.html index 71508f5..5f10364 100644 --- a/index.html +++ b/index.html @@ -193,7 +193,7 @@ button,input,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!im
基于左侧原意重新表达这一整段,不需要逐句对应原文。
自动保存0 characters
-
+
需要一点帮助?
@@ -1022,6 +1022,18 @@ function renderParagraphSwitcher(){ $('#focusOriginal').classList.toggle('active', originalView==='focus'); $('#fullOriginal').classList.toggle('active', originalView==='full'); } +// 轻量更新段号按钮状态(active / has-copy),不重建 DOM: +// 改写区 blur(点段号的 mousedown 触发)若重建按钮,mouseup 时按钮已被替换, +// 第一次点击会丢失(用户实测:改完字点段号要连点两次)。 +function updateParagraphSwitcherState(){ + const wrap = $('#paragraphSwitcher'); + if(!wrap) return; + wrap.querySelectorAll('[data-para-index]').forEach(btn=>{ + const i = Number(btn.dataset.paraIndex); + btn.classList.toggle('active', i===current); + btn.classList.toggle('has-copy', hasRewrite(i)); + }); +} function renderOriginalPane(){ const wrap=$('#originalFull'); wrap.innerHTML=''; @@ -1144,6 +1156,18 @@ async function toggleTranslate(){ btn.disabled = false; renderTranslateBtn(); renderTranslateBox(); } +// 体验优化:把当前段原文一键复制到改写区 —— 顾问以原文为起点手动改写 +// (改写区已有内容时二次确认,避免覆盖已写的工作)。 +function copyOriginalToRewrite(){ + const area = $('#rewriteArea'); + const text = String(paragraphs[current]||'').trim(); + if(!area || !text) return; + if(String(area.value||'').trim() && !confirm('改写区已有内容,确定用原文覆盖吗?')) return; + area.value = text; + area.focus(); + onRewriteInput({target: area}); // 复用输入处理:状态/字数提示/译文过期/保存调度 + track('original_copied_to_rewrite', {paragraph_id: pidOf(current)}); +} // 体验优化:原文中文对照(逐句)—— 顾问读英文吃力时,特别是被高亮标注 // 「需要改写」的句子,需要它的中文意思才能判断怎么改。 // 句子由前端拆分(en 为原文精确文本,服务端原样回填),命中批注 evidence 的 @@ -1312,7 +1336,7 @@ function onRewriteInput(e){ } } scheduleSave(current); - renderParagraphSwitcher(); + updateParagraphSwitcherState(); updateProgress(); } function onRewriteBlur(){ @@ -1321,7 +1345,7 @@ function onRewriteBlur(){ if(hasRewrite(current)) rewriteStatus[current] = 'REWRITTEN'; else rewriteStatus[current] = 'UNTOUCHED'; flushSave(current); - renderParagraphSwitcher(); + updateParagraphSwitcherState(); // 不重建按钮:避免点击段号时 mousedown→blur 重建导致第一次点击丢失 updateProgress(); } function recordExposure(kind, text){ @@ -1604,6 +1628,7 @@ $('#rewriteArea').addEventListener('input', onRewriteInput); $('#rewriteArea').addEventListener('blur', onRewriteBlur); $('#showScaffold').onclick=toggleScaffold; $('#showReference').onclick=toggleReference; +$('#copyOriginalBtn').onclick=copyOriginalToRewrite; $('#translateBtn').onclick=toggleTranslate; $('#recheckHistoryBtn').onclick=()=>toggleRecheckHistory(); // 点击复检历史面板与开关按钮以外的区域自动收起