PageSourceSearch

https://chaosuangeo.com/_nuxt/PrYch77z.js

js chaosuangeo.com collected 2026-10-02 01:26:41 UTC 46,575 bytes, 9 lines download raw bytes

1import{a as kt,j as c,d as xt,c as r,e as t,h as d,i as b,g as A,t as u,F as V,r as W,l as w,b as a,m as Ct,_ as $t,q as rn,u as dn,p as un,s as be,o as cn,Y as pn,x as we,y as he,C as Qe,f as n,z as G,V as vt,W as Xe,L as O,A as Ue,B as _e,n as ft,J as Be,v as mt,k as vn,N as fn,G as mn,a3 as gn,E as gt}from"./B_m38SBB.js";import{f as yn}from"./OU7mAnJy.js";import{u as bn}from"./hWmvzggX.js";import{u as wn}from"./CyVzmmFS.js";import{_ as hn}from"./DR5-4u_o.js";import{u as yt}from"./CFt8bk2q.js";import{s as kn}from"./c4tBL0at.js";const ie=c(null);let Pe=null;function It(){const ce=kt();async function h(){ie.value||(Pe||(Pe=ce("/content/adlaw-lexicon/",{method:"GET",silent:!0}).then(m=>{ie.value={forbidden:m.forbidden||[],whitelist:m.whitelist||[]}}).catch(()=>{ie.value={forbidden:[],whitelist:[]}}).finally(()=>{Pe=null})),await Pe)}function H(m){const C=ie.value;if(!C||!m)return[];let I=m;const k=[...C.whitelist].sort((x,g)=>g.length-x.length);for(const x of k)I.includes(x)&&(I=I.split(x).join("\0".repeat(x.length)));const M=[];for(const x of C.forbidden){let g=0;for(;;){const p=I.indexOf(x.pattern,g);if(p<0)break;M.push({word:x.pattern,index:p,severity:x.severity,replacement:x.replacement}),g=p+x.pattern.length}}return M.sort((x,g)=>x.index-g.index)}function pe(m,C){const I=ie.value;if(!I)return m;let k=m;const M=[...I.whitelist].sort((p,T)=>T.length-p.length),x=[];M.forEach((p,T)=>{if(k.includes(p)){const N=`\0WL${T}\0`;x.push([N,p]),k=k.split(p).join(N)}});const g=[...I.forbidden].sort((p,T)=>T.pattern.length-p.pattern.length);for(const p of g)p.replacement&&(C&&!C.includes(p.pattern)||(k=k.split(p.pattern).join(p.replacement)));for(const[p,T]of x)k=k.split(p).join(T);return k}function L(m){const C=ie.value;if(!C||!m)return m;const I=[...C.whitelist].sort((g,p)=>p.length-g.length);let k=m;const M={};I.forEach((g,p)=>{if(k.includes(g)){const T=`�WL${p}�`;M[T]=g,k=k.split(g).join(T)}});const x=[...C.forbidden].sort((g,p)=>p.pattern.length-g.pattern.length);for(const g of x){if(!k.includes(g.pattern))continue;const p=g.severity==="hard"?"adlaw-mark adlaw-mark-hard":"adlaw-mark adlaw-mark-caution";k=k.split(g.pattern).join(`<span class="${p}" title="疑似极限用语,请结合上下文判断">${g.pattern}</span>`)}for(const[g,p]of Object.entries(M))k=k.split(g).join(p);return k}function S(m){if(!m||typeof window>"u")return;const C=window.CSS,I=window.Highlight;if(!C?.highlights||!I)return;const k=ie.value;if(!k)return;const M=[...k.whitelist].sort((P,z)=>z.length-P.length),x=[...k.forbidden].sort((P,z)=>z.pattern.length-P.pattern.length),g=[],p=[],T=document.createTreeWalker(m,NodeFilter.SHOW_TEXT);let N;for(;N=T.nextNode();){const P=N.nodeValue||"";if(!P)continue;let z=P;for(const y of M){let v=z.indexOf(y);for(;v>=0;)z=z.slice(0,v)+"\0".repeat(y.length)+z.slice(v+y.length),v=z.indexOf(y,v+y.length)}for(const y of x){let v=0;for(;;){const _=z.indexOf(y.pattern,v);if(_<0)break;const R=document.createRange();try{R.setStart(N,_),R.setEnd(N,_+y.pattern.length)}catch{break}(y.severity==="hard"?g:p).push(R),v=_+y.pattern.length}}}const o=I;C.highlights.set("adlaw-hard",new o(...g)),C.highlights.set("adlaw-caution",new o(...p))}function ve(){const m=window.CSS;m?.highlights&&(m.highlights.delete("adlaw-hard"),m.highlights.delete("adlaw-caution"))}async function Z(m){return ce("/content/adlaw-suggest/",{method:"POST",silent:!0,body:{...m,use_llm:!0}})}return{ensureLexicon:h,detect:H,applyDictReplace:pe,highlight:L,markEditor:S,clearEditorMarks:ve,aiSuggest:Z,lexicon:ie}}const xn={class:"adlaw-card"},Cn={class:"adlaw-head"},$n={key:0,class:"adlaw-list"},In={class:"adlaw-word"},Tn={class:"adlaw-ctx"},An=["disabled"],_n={key:2,class:"adlaw-tip"},Sn={key:3,class:"adlaw-caution"},En={key:0,class:"adlaw-list"},Mn={class:"adlaw-word"},zn={class:"adlaw-ctx"},Ln=xt({__name:"AdlawAssistant",props:{title:{},contentHtml:{},brandName:{},targetQuery:{},canUndo:{type:Boolean}},emits:["apply","undo"],setup(ce,{emit:h}){const H=ce,pe=h,{ensureLexicon:L,detect:S,aiSuggest:ve}=It(),Z=Ct(),m=c(!1),C=c(!1);function I(y){return(y||"").replace(/<[^>]+>/g,"")}const k=w(()=>H.title||""),M=w(()=>I(H.contentHtml)),x=w(()=>{try{return[...S(k.value),...S(M.value)]}catch{return[]}}),g=w(()=>x.value.filter(y=>y.severity==="hard")),p=w(()=>x.value.filter(y=>y.severity==="caution"));function T(y,v){const _=new Set,R=[];for(const j of y){if(_.has(j.word))continue;_.add(j.word);const ee=v.indexOf(j.word);let ae="";if(ee>=0){const Q=Math.max(0,ee-6),X=Math.min(v.length,ee+j.word.length+6);ae=(Q>0?"…":"")+v.slice(Q,X)+(X<v.length?"…":"")}R.push({word:j.word,ctx:ae})}return R}const N=w(()=>{try{return T(g.value,k.value+" "+M.value)}catch{return[]}}),o=w(()=>{try{return T(p.value,k.value+" "+M.value)}catch{return[]}}),P=w(()=>{const y=x.value.length;return y===0?"已完成广告法自查,未发现需要留意的表述":`检测到 ${y} 处疑似极限用语,已在正文用红线标出,请结合上下文自行判断`});async function z(){C.value=!0;try{const y=await ve({title:H.title,content:M.value,brand_name:H.brandName,target_query:H.targetQuery});let v=H.contentHtml;
1for(const j of y.sentences||[])v=v.split(j.original).join(j.suggested);const _=y.title&&y.title.suggested!==H.title?y.title.suggested:H.title,R=(y.sentences?.length||0)+(y.title?1:0);(v!==H.contentHtml||_!==H.title)&&pe("apply",{title:_,content:v}),Z.success(R?`AI 优化了 ${R} 处,可点右上角撤销`:"这几处建议人工调整表述")}catch{Z.error("AI 优化暂不可用,建议人工调整")}finally{C.value=!1}}return L(),(y,v)=>(a(),r("section",xn,[t("header",Cn,[v[3]||(v[3]=t("i",{class:"ri-shield-check-line"},null,-1)),v[4]||(v[4]=t("span",null,"合规助手",-1)),ce.canUndo?(a(),r("button",{key:0,class:"adlaw-undo",title:"撤销上次 AI 优化",onClick:v[0]||(v[0]=_=>pe("undo"))},[...v[2]||(v[2]=[t("i",{class:"ri-arrow-go-back-line"},null,-1),d("撤销 ",-1)])])):b("",!0)]),t("p",{class:A(["adlaw-narrative",{clean:x.value.length===0}])},[t("i",{class:A(x.value.length===0?"ri-checkbox-circle-line":"ri-information-line")},null,2),d(" "+u(P.value),1)],2),N.value.length?(a(),r("ul",$n,[(a(!0),r(V,null,W(N.value,(_,R)=>(a(),r("li",{key:"h"+R,class:"adlaw-item"},[t("span",In,u(_.word),1),t("span",Tn,u(_.ctx),1)]))),128))])):b("",!0),N.value.length?(a(),r("button",{key:1,class:"adlaw-ai",disabled:C.value,onClick:z},[t("i",{class:A(C.value?"ri-loader-4-line adlaw-spin":"ri-sparkling-line")},null,2),d(" "+u(C.value?"AI 优化中…":"✨ 让 AI 结合上下文帮我改"),1)],8,An)):b("",!0),N.value.length?(a(),r("p",_n,'建议:先看正文红线逐处判断,"第一步""第一眼"等正常用词可忽略;AI 优化后可一键撤销。')):b("",!0),o.value.length?(a(),r("div",Sn,[t("button",{class:"adlaw-caution-toggle",onClick:v[1]||(v[1]=_=>m.value=!m.value)},[t("i",{class:A(m.value?"ri-arrow-down-s-line":"ri-arrow-right-s-line")},null,2),d(" "+u(o.value.length)+" 处慎用表述(黄色标注) ",1)]),m.value?(a(),r("ul",En,[(a(!0),r(V,null,W(o.value,(_,R)=>(a(),r("li",{key:"c"+R,class:"adlaw-item caution"},[t("span",Mn,u(_.word),1),t("span",zn,u(_.ctx),1)]))),128))])):b("",!0)])):b("",!0),v[5]||(v[5]=t("p",{class:"adlaw-disclaimer"},[t("i",{class:"ri-information-line"}),d(" 仅标注常见极限用语,不构成合规判定,请结合上下文自行判断")],-1))]))}}),Rn=Object.assign($t(Ln,[["__scopeId","data-v-37dd0ccc"]]),{__name:"AdlawAssistant"}),On={class:"page-shell"},Hn={class:"breadcrumb"},Nn={class:"page-head"},Un={class:"page-head-actions"},Bn={class:"tabs-surface"},Pn={class:"tabs-bar"},jn={class:"tabs"},qn={key:0,class:"tab-badge"},Gn={class:"tabs-bar-right"},Vn={class:"tabs-panel"},Dn={class:"compose-form"},Kn={class:"compose-section-head"},Fn={class:"compose-section-title-wrap"},Wn={class:"compose-section-title"},Qn={key:0,class:"required-pill"},Xn={class:"compose-input-xl"},Jn=["onKeydown"],Yn={key:0,class:"ri-checkbox-circle-fill compose-ok",title:"已填入"}
1,Zn={key:0,class:"compose-suggestions"},es=["onClick"],ts={class:"compose-section-head"},ns={class:"compose-section-title-wrap"},ss={class:"compose-section-title"},ls={key:0,class:"required-pill"},os={key:0,style:{"font-size":"12px",color:"var(--muted)"}},is={key:1,style:{"font-size":"12px",color:"var(--muted)"}},as={key:2,class:"brand-chips"},rs=["onClick"],ds={class:"brand-chip-avatar"},us={key:0,class:"ri-check-line brand-chip-check"},cs={class:"compose-section sec-spec"},ps={class:"spec-grid"},vs={class:"spec-field"},fs={class:"spec-field"},ms=["value"],gs={class:"spec-field"},ys={key:0,class:"spec-field"},bs=["value"],ws={class:"compose-section sec-req"},hs={key:0,class:"disclosure-panel"},ks={class:"composer-meta-row"},xs={key:0,style:{color:"var(--danger)"}},Cs={key:0,class:"compose-alerts"},$s={key:0,class:"inline-alert inline-alert-warning"},Is={key:1,class:"inline-alert inline-alert-info"},Ts={key:2,class:"inline-alert inline-alert-info"},As={class:"composer-cta"},_s={class:"composer-cta-left"},Ss={key:0,class:"composer-hint",style:{"max-width":"520px"}},Es={class:"composer-cta-right"},Ms={class:"composer-cta-balance"},zs=["disabled"],Ls={class:"tabs-panel"},Rs={key:0,class:"editor-empty"},Os={key:1,class:"editor-generating"},Hs={class:"editor-generating-step"},Ns={class:"editor-generating-progress"},Us={class:"editor-generating-elapsed"},Bs={class:"editor-card-head"},Ps={class:"editor-card-title"},js={class:"editor-card-actions"},qs={class:"zh-compare-main"},Gs={key:0},Vs={class:"editor-toolbar"},Ds=["disabled","title"],Ks={class:"editor-toolbar-meta"},Fs=["innerHTML"],Ws={key:0,class:"zh-compare-side"},Qs=["innerHTML"],Xs={class:"article-meta"},Js={class:"article-meta-grid"},Ys={class:"meta-cell meta-cover"},Zs=["src"],el={key:0,class:"ri-loader-4-line dl-spin"},tl={key:1,class:"ri-image-add-line"},nl={class:"meta-cell"},sl=["value"],ll={class:"meta-cell meta-tags"},ol={class:"tag-input-box"},il=["onClick"],al=["placeholder","onKeydown"],rl={class:"meta-cell meta-summary"},dl={class:"meta-count"},ul={class:"modal",style:{"max-width":"420px"}},cl={style:{"font-size":"13px",color:"var(--muted)","margin-bottom":"16px"}},pl={style:{display:"flex",gap:"8px","justify-content":"flex-end"}},vl={class:"modal",style:{"max-width":"460px","text-align":"center"}},fl={style:{"font-size":"13px",color:"var(--muted)","margin-bottom":"16px"}},ml={style:{color:"var(--text)"}},gl={class:"data-warn-list"},yl={key:0,class:"data-warn-item"},bl={key:1,class:"data-warn-item"},wl={style:{display:"flex",gap:"10px","margin-top":"20px"}},hl={class:"modal",style:{"max-width":"440px"}},kl={key:0,style:{padding:"24px","text-align":"center",color:"var(--muted)","font-size":"13px"}},xl={key:1},Cl={style:{border:"1px solid #e2e8f0","border-radius":"10px",padding:"14px 16px","margin-bottom":"12px",background:"#f8fafc"}},$l={style:{display:"flex","justify-content":"space-between","margin-bottom":"8px","font-size":"13px"}},Il={style:{color:"var(--text)","font-weight":"500"}},Tl={style:{display:"flex","justify-content":"space-between","margin-bottom":"8px","font-size":"13px"}},Al={style:{color:"var(--text)","font-weight":"500"}},_l={style:{display:"flex","justify-content":"space-between","font-size":"13px"}},Sl={style:{color:"var(--text)","font-weight":"500"}},El={style:{display:"flex","justify-content":"space-between","align-items":"center",padding:"12px 16px","border-radius":"10px",background:"#f0fdf4",border:"1px solid #86efac","margin-bottom":"10px"}},Ml={style:{"font-size":"22px","font-weight":"700",color:"#059669"}},zl={style:{display:"flex","justify-content":"space-between","align-items":"center",padding:"10px 16px","border-radius":"10px",background:"#f8fafc","font-size":"12px",color:"var(--muted)","margin-bottom":"16px"}},Ll={key:0,style:{padding:"10px 14px",background:"#fef2f2",border:"1px solid #fecaca","border-radius":"8px","font-size":"12px",color:"#991b1b","margin-bottom":"12px",display:"flex","align-items":"center",gap:"8px"}},Rl={style:{display:"flex",gap:"10px"}},Ol=["disabled"],je=4,bt=3e3,wt=480,ht="本文由AI辅助生成",Hl=xt({__name:"generator",setup(ce){const h=Ct(),H=rn(),pe=dn(),L=kt(),S=c(),ve=bn(),Z=wn(),m=un(),C=w(()=>ve.engines),I=w(()=>Z.items),k=w(()=>Z.loading),M=w(()=>m.balanceNum.toFixed(2)),x=c([]),g=c(""),p=c(!1),T=w(()=>[...new Set(x.value.filter(s=>s.status==="completed").map(s=>s.keyword))]),N=w(()=>p.value?T.value:T.value.slice(0,je)),o=vn({keyword:"",brandId:0,type:"品牌介绍文章",platform:"",length:"medium",specialRequirements:"",language:"zh"}),P=c([{code:"zh",name:"中文",default:!0}]),z=c("");async function y(){try{const s=await L("/content/content/generate-options/",{method:"GET"});if(s?.languages?.length){P.value=s.languages,z.value=s.notice||"";const e=s.languages.find(i=>i.default);e&&(o.language=e.code)}}catch{}}const v=w(()=>I.value.find(s=>
1s.id===o.brandId)?.name||""),_=w(()=>o.platform?C.value.find(s=>s.id===o.platform)?.name||o.platform:"目标平台"),R=["赌博","色情","暴力","毒品","传销","诈骗"],j=w(()=>o.specialRequirements?R.filter(s=>o.specialRequirements.includes(s)):[]),ee=w(()=>!!o.brandId),ae=w(()=>!o.keyword||!o.brandId?!0:x.value.some(s=>s.keyword===o.keyword&&s.status==="completed")),Q=c(!1);yt(Q);const X=w(()=>{if(!o.keyword||!o.brandId)return null;const s=ae.value,e=ee.value;return s&&e?"full":s&&!e?"report-only":!s&&e?"kb-only":"basic"}),Tt={full:{text:"完整模式",icon:"✓",tip:""},"report-only":{text:"报告模式",icon:"◑",tip:"建议完善品牌知识库,可提升内容权威性"},"kb-only":{text:"知识库模式",icon:"◑",tip:"建议先完成体检,可获得竞品突破点"},basic:{text:"基础模式 · 数据不足",icon:"⚠",tip:"生成效果有限,强烈建议先完成体检并创建知识库"}},ke=w(()=>X.value?Tt[X.value]:null),At=w(()=>{const s=X.value;return s==="full"?"status-full":s==="basic"?"status-basic":s==="report-only"||s==="kb-only"?"status-partial":"status-neutral"}),Se=c(!1),D=c("compose"),te=c(!1),Je=w(()=>te.value&&!o.keyword),Ye=w(()=>te.value&&!o.brandId);be(()=>o.keyword,s=>{s&&te.value&&o.brandId&&(te.value=!1)}),be(()=>o.brandId,s=>{s&&te.value&&o.keyword&&(te.value=!1)});function _t(s){s.target.blur(),o.keyword&&o.brandId&&Ze()}const fe=c(!1);yt(fe);const qe=c(0),Ee=c(!1),St=w(()=>o.length==="short"?"短文":o.length==="long"?"长文":"中篇"),xe=w(()=>m.balanceNum<qe.value);function Me(){fe.value=!1}async function Et(){fe.value=!0,Ee.value=!0;try{const s=await L("/content/content/quote-price/",{method:"POST",body:{action_type:"CONTENT_GENERATE",length:o.length,engine:o.platform||"",language:o.language}}
1);qe.value=Number(s?.estimated_cost)||0}catch(s){fe.value=!1,h.error(s?.message||"获取价格失败,请稍后重试")}finally{Ee.value=!1}}function Mt(){xe.value||(fe.value=!1,Vt())}function Ze(){if(!o.keyword||!o.brandId){te.value=!0,h.error("请填写关键词和选择品牌");return}if(te.value=!1,j.value.length>0){h.error("请先移除特殊要求中的敏感词");return}if(X.value==="basic"||X.value==="report-only"||X.value==="kb-only"){Q.value=!0;return}et()}function et(){!o.keyword||!o.brandId||Et()}const ne=c(!1),ze=c(""),se=c(0),me=c(0),$=c(""),U=c(!1),B=c(""),le=c(""),ge=c(!0),zt=w(()=>le.value?Ge(le.value):""),K=c(null);be(ne,s=>{s&&(D.value="editor")}),be($,s=>{s&&(D.value="editor")});function Ge(s){const e=s.split(`
2`),i=[];let f=!1;const l=()=>{f&&(i.push("</ul>"),f=!1)};for(const E of e){let Y=E;const dt=Y.match(/^### (.+)$/);if(dt){l(),i.push(`<h3>${dt[1]}</h3>`);continue}const ut=Y.match(/^## (.+)$/);if(ut){l(),i.push(`<h2>${ut[1]}</h2>`);continue}const ct=Y.match(/^# (.+)$/);if(ct){l(),i.push(`<h1>${ct[1]}</h1>`);continue}const pt=Y.match(/^- (.+)$/);if(pt){f||(i.push("<ul>"),f=!0);let We=pt[1];We=We.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>"),i.push(`<li>${We}</li>`);continue}l(),Y.trim()!==""&&(Y=Y.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>"),i.push(`<p>${Y}</p>`))}return l(),i.join("")}const Lt=w(()=>$.value?$.value.replace(/<[^>]+>/g,"").length:0);function J(s,e){S.value?.focus(),document.execCommand(s,!1,e),Le()}function Le(){S.value&&($.value=S.value.innerHTML),ot()}function Rt(){const s=window.prompt("链接地址 (https://...)");s&&J("createLink",s)}const tt=c(null),Ce=c(!1);let Re=null;function Oe(){if(!S.value)return;const s=window.getSelection();if(!s||s.rangeCount===0)return;const e=s.getRangeAt(0);S.value.contains(e.commonAncestorContainer)&&(Re=e.cloneRange())}function Ot(){const s=S.value;if(!s)return;s.focus();const e=window.getSelection();if(!e)return;if(Re&&s.contains(Re.commonAncestorContainer)){e.removeAllRanges(),e.addRange(Re);return}const i=document.createRange();i.selectNodeContents(s),i.collapse(!1),e.removeAllRanges(),e.addRange(i)}function Ht(){Oe(),tt.value?.click()}async function Nt(s){const e=s.target,i=e.files?.[0];if(i){if(!/^image\//.test(i.type)){h.error("只支持图片格式"),e.value="";return}if(i.size>5*1024*1024){h.error("图片需小于 5MB"),e.value="";return}Ce.value=!0;try{const f=new FormData;f.append("file",i);const l=await L("/content/content/upload-image/",{method:"POST",body:f});if(!l?.url)throw new Error("上传返回无效");Ot(),document.execCommand("insertImage",!1,l.url),Le(),h.success("图片插入成功")}catch(f){h.error(f?.message||"图片上传失败")}finally{Ce.value=!1,e.value=""}}}be([U,$],async([s,e])=>{if(!s)return;await gt();const i=S.value;i&&i.innerHTML!==e&&(i.innerHTML=e||""),ot()});const $e=["分析关键词语义","研究竞品内容策略","构建GEO优化框架","生成品牌内容","优化AI引用结构"],Ut=[{value:"tech",label:"技术分享"},{value:"news",label:"行业新闻"},{value:"product",label:"产品动态"},{value:"case",label:"案例展示"}],F=c(""),Ie=c(!1),Ve=c(null),re=c(""),oe=c(""),q=c([]),de=c("");function nt(){const s=de.value.trim().replace(/[,,]+$/,"").trim();if(!s){de.value="";return}q.value.includes(s)||q.value.push(s),de.value=""}function Bt(s){q.value.splice(s,1)}function Pt(){de.value.length===0&&q.value.length>0&&q.value.pop()}async function jt(s){const e=s.target,i=e.files?.[0];if(i){if(!/^image\//.test(i.type)){h.error("只支持图片格式"),e.value="";return}if(i.size>2*1024*1024){h.error("封面图需小于 2MB"),e.value="";return}Ie.value=!0;try{const f=new FormData;f.append("file",i);const l=await L("/content/content/upload-image/",{method:"POST",body:f});if(!l?.url)throw new Error("上传返回无效");F.value=l.url,h.success("封面上传成功")}catch(f){h.error(f?.message||"封面上传失败")}finally{Ie.value=!1,e.value=""}}}let ye=null,He=null;function De(){ye&&(clearTimeout(ye),ye=null),He&&(clearInterval(He),He=null)}function Te(s,e="error"){De(),ne.value=!1,s&&(e==="error"?h.error(s):h.show(s))}async function qt(s){try{const e=await L(`/content/content/${s}/`,{method:"GET"});if(B.value=e.title||"",$.value=e.content?Ge(e.content):"",le.value=e.recall_meta?.zh_translation||"",oe.value=e.summary||"",re.value=e.category||"",F.value=e.cover_image||"",!q.value.length){const i=Array.isArray(e.keywords)?e.keywords.filter(f=>typeof f=="string"):[];q.value=i}U.value=!1,h.success("文章已生成")}catch{h.error("内容已生成,但加载失败,请到稿件库查看")}finally{De(),ne.value=!1,se.value=$e.length,ze.value="生成完成"}}function Gt(s,e){const i=async()=>{try{const f=await L(`/celery_tasks/task-status/${s}/`,{method:"GET"}),l=f?.task_info?.status;if(l==="SUCCESS"){await qt(e);return}if(l==="FAILURE"){const E=f?.task_info?.error_message||"生成失败,请重试";Te(E);return}if(me.value>=wt){Te("生成超时,请稍后到稿件库查看","default");return}ye=setTimeout(i,bt)}catch{if(me.value>=wt){Te("生成超时,请稍后到稿件库查看","default");return}ye=setTimeout(i,5e3)}};ye=setTimeout(i,bt)}async function Vt(){if(!o.keyword||!o.brandId){h.error("请填写关键词和选择品牌");return}ne.value=!0,$.value="",le.value="",B.value="",K.value=null,U.value=!1,se.value=0,me.value=0,ze.value=$e[0]||"",He=fn(()=>{me.value++;const s=Math.min($e.length-1,Math.floor(me.value/15));s>se.value&&(se.value=s,ze.value=$e[s]||"")},1e3);try{const s=await L("/content/content/generate-content/",{method:"POST",body:{title:o.keyword,keywords:[o.keyword],brand:[o.brandId],length:o.length,engine_platform_key:o.platform||"",special_requirements:o.specialRequirements||"",language:o.language}}
2);if(typeof s.balance_after=="number"&&m.user&&(m.user.balance=s.balance_after),!s.task_id||!s.id){Te("生成请求异常,请重试");return}K.value=s.id,Gt(s.task_id,s.id)}catch(s){const e=s?.message||"生成请求失败";Te(e)}}function st(){const s=document.createElement("div");return s.innerHTML=$.value,s.innerText}async function Dt(){const s=`${ht}
3
4${st()}`;try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(s);else{const e=document.createElement("textarea");e.value=s,e.style.cssText="position:fixed;top:-9999px;opacity:0",document.body.appendChild(e),e.select();const i=document.execCommand("copy");if(document.body.removeChild(e),!i)throw new Error("execCommand copy 返回 false")}h.success("内容已复制到剪贴板(已附AI生成标识)")}catch{h.error("复制失败,请手动选中正文复制")}}function Kt(){if(!$.value){h.error("内容还未生成");return}const s=B.value||"生成结果",e=`${ht}
5
6${s}
7
8${st()}`,i=URL.createObjectURL(new Blob([e],{type:"text/plain;charset=utf-8"})),f=document.createElement("a");f.href=i,f.download=`${s.replace(/[\\/:*?"<>|]/g,"_").slice(0,60)}.txt`,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(i),h.success("已导出 TXT(首行含AI生成标识)")}const Ke=c(!1);async function Ft(){if(!K.value){h.error("内容还未生成");return}if(!Ke.value){Ke.value=!0;try{await L(`/content/content/${K.value}/`,{method:"PATCH",body:{title:B.value,content:$.value,summary:oe.value,category:re.value,keywords:q.value,cover_image:F.value||null}}),h.success("已保存到稿件库"),H.push("/content-list")}catch(s){h.error(s?.message||"保存失败")}finally{Ke.value=!1}}}const Ne=c(!1),Wt=w(()=>K.value?{id:K.value,title:B.value||o.keyword||"",keyword:o.keyword||void 0}:null),{ensureLexicon:Qt,detect:Xt,highlight:Jt,markEditor:Yt,clearEditorMarks:Zt}=It(),en=w(()=>{try{return Jt($.value)}catch{return $.value}});let Fe=null;function lt(){try{U.value&&Yt(S.value)}catch{}}function ot(){Fe&&clearTimeout(Fe),Fe=setTimeout(lt,300)}be([U,$],()=>{try{U.value?gt(lt):Zt()}catch{}});const Ae=c(!1),tn=c(null);let it=!1;const at=w(()=>{try{const s=($.value||"").replace(/<[^>]+>/g,"");return Xt(B.value+`
9`+s).filter(e=>e.severity==="hard").length}catch{return 0}}),ue=c(null);function nn(s){ue.value={title:B.value,content:$.value},B.value=s.title,$.value=s.content,S.value&&U.value&&(S.value.innerHTML=s.content)}function sn(){ue.value&&(B.value=ue.value.title,$.value=ue.value.content,S.value&&U.value&&(S.value.innerHTML=ue.value.content),ue.value=null,h.success("已撤销优化"))}async function ln(){if(!K.value){h.error('请先点击"保存"将稿件入库后再发布');return}if(at.value>0&&!it){Ae.value=!0;return}await rt()}function on(){it=!0,Ae.value=!1,rt()}async function rt(){if(K.value){try{await L(`/content/content/${K.value}/`,{method:"PATCH",body:{title:B.value,content:$.value,summary:oe.value,category:re.value,keywords:q.value,cover_image:F.value||null}})}catch{}Ne.value=!0}}function an(){gn("/publish-history")}return cn(async()=>{L("/account_info/balance/",{method:"GET"}).then(i=>{m.user&&typeof i?.balance=="number"&&(m.user.balance=i.balance)}).catch(()=>{}),Qt().catch(()=>{}),await Promise.all([ve.ensureLoaded().catch(()=>{}),Z.fetchAll().catch(()=>{}),y()]),yn().then(i=>{x.value=i}).catch(()=>{});const s=pe.query;if(typeof s.keyword=="string"&&s.keyword&&(o.keyword=s.keyword),typeof s.platform=="string"&&s.platform&&C.value.some(i=>i.id===s.platform)&&(o.platform=s.platform),s.brand){const i=String(s.brand),f=Number(i),l=I.value.find(E=>E.id===f||E.name===i);l&&(o.brandId=l.id)}if(!o.brandId){const i=I.value.find(f=>f.status==="active")||I.value[0];i&&(o.brandId=i.id)}const e=Number(s.edit);if(e>0)try{const i=await L(`/content/content/${e}/`,{method:"GET"});B.value=i.title||"";const f=i.content||"";$.value=/<[a-z][\s\S]*>/i.test(f)?f:Ge(f),le.value=i.recall_meta?.zh_translation||"",K.value=i.id;const l=Array.isArray(i.keywords)?i.keywords.filter(E=>typeof E=="string"):[];l[0]&&(o.keyword=l[0]),q.value=l,oe.value=i.summary||"",re.value=i.category||"",F.value=i.cover_image||"",D.value="editor",U.value=!0}catch(i){h.error(i?.message||"加载稿件失败")}}),pn(()=>{De()}),kn({title:"AI 内容创作 — 超算GEO",description:"基于 GEO 思路自动生成 AI 平台易被引用的内容。",noindex:!0}),(s,e)=>{const i=mn,f=Rn;return a(),r("div",On,[t("div",Hn,[we(i,{to:"/"},{default:he(()=>[...e[36]||(e[36]=[d("首页",-1)])]),_:1}),e[37]||(e[37]=Qe('<span class="breadcrumb-sep" data-v-dc4c4ee6><i class="ri-arrow-right-s-line" data-v-dc4c4ee6></i></span><span data-v-dc4c4ee6>创作</span><span class="breadcrumb-sep" data-v-dc4c4ee6><i class="ri-arrow-right-s-line" data-v-dc4c4ee6></i></span><span class="breadcrumb-current" data-v-dc4c4ee6>AI 内容创作</span>',4))]),t("header",Nn,[e[39]||(e[39]=t("div",{class:"page-head-main"},[t("h1",{class:"page-head-title"},"AI 内容创作"),t("p",{class:"page-head-sub"},"基于品牌知识库与 AI 体检报告,生成面向搜索平台优化的长文内容。")],-1)),t("div",Un,[we(i,{to:"/content-list",class:"btn-v2 btn-v2-secondary btn-v2-sm"},{default:he(()=>[...e[38]||(e[38]=[t("i",{class:"ri-file-list-3-line"},null,-1),d("稿件库 ",-1)])]),_:1})])]),t("section",Bn,[t("div",Pn,[t("div",jn,[t("button",{class:A(["tab",{active:n(D)==="compose"}]),onClick:e[0]||(e[0]=l=>D.value="compose")},[...e[40]||(e[40]=[t("i",{class:"ri-settings-3-line"},null,-1),d("设置 ",-1)])],2),t("button",{class:A(["tab",{active:n(D)==="editor"}]),onClick:e[1]||(e[1]=l=>D.value="editor")},[e[41]||(e[41]=t("i",{class:"ri-file-text-line"},null,-1)),e[42]||(e[42]=d("预览 / 编辑 ",-1)),n($)?(a(),r("span",qn,u(n($).length)+" 字",1)):b("",!0)],2)]),t("div",Gn,[n(ke)?(a(),r("span",{key:0,class:A(["status-chip",n(At)])},[e[43]||(e[43]=t("span",{class:"status-chip-dot"},null,-1)),d(" "+u(n(ke).text),1)],2)):b("",!0)])]),G(t("div",Vn,[t("div",Dn,[t("div",{class:A(["compose-section sec-keyword",{"has-error":n(Je)}])},[t("div",Kn,[e[47]||(e[47]=t("span",{class:"section-badge section-badge-sky"},[t("i",{class:"ri-search-2-line"})],-1)),t("div",Fn,[t("h3",Wn,[e[45]||(e[45]=d(" 关键词 ",-1)),n(Je)?(a(),r("span",Qn,[...e[44]||(e[44]=[t("i",{class:"ri-error-warning-fill"},null,-1),d("必填",-1)])])):b("",!0)]),e[46]||(e[46]=t("span",{class:"compose-section-hint"},"要在 AI 搜索中优化的目标词",-1))])]),t("div",Xn,[G(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>
9n(o).keyword=l),placeholder:"例如:AI 搜索优化、企业品牌营销...",onKeydown:Xe(O(_t,["prevent"]),["enter"])},null,40,Jn),[[Ue,n(o).keyword,void 0,{trim:!0}]]),n(o).keyword?(a(),r("i",Yn)):b("",!0),n(o).keyword?(a(),r("i",{key:1,class:"ri-close-circle-fill compose-clear",onClick:e[3]||(e[3]=l=>{n(o).keyword="",g.value=""})})):b("",!0)]),n(T).length>0&&!n(o).keyword?(a(),r("div",Zn,[e[48]||(e[48]=t("span",{class:"compose-suggestions-label"},"最近检测",-1)),(a(!0),r(V,null,W(n(N),l=>(a(),r("div",{key:l,class:"chip",onClick:E=>{n(o).keyword=l,g.value=l}},u(l),9,es))),128)),n(T).length>je&&!n(p)?(a(),r("div",{key:0,class:"chip chip-muted",onClick:e[4]||(e[4]=l=>p.value=!0)}," +"+u(n(T).length-je)+" 更多 ",1)):b("",!0),n(p)&&n(T).length>je?(a(),r("div",{key:1,class:"chip chip-muted",onClick:e[5]||(e[5]=l=>p.value=!1)}," 收起 ")):b("",!0)])):b("",!0)],2),e[72]||(e[72]=t("div",{class:"compose-divider"},null,-1)),t("div",{class:A(["compose-section sec-brand",{"has-error":n(Ye)}])},[t("div",ts,[e[52]||(e[52]=t("span",{class:"section-badge section-badge-mint"},[t("i",{class:"ri-building-4-line"})],-1)),t("div",ns,[t("h3",ss,[e[50]||(e[50]=d(" 品牌 ",-1)),n(Ye)?(a(),r("span",ls,[...e[49]||(e[49]=[t("i",{class:"ri-error-warning-fill"},null,-1),d("必填",-1)])])):b("",!0)]),e[51]||(e[51]=t("span",{class:"compose-section-hint"},"内容将基于该品牌的知识库生成",-1))])]),n(k)&&n(I).length===0?(a(),r("div",os,"加载品牌中…")):n(I).length===0?(a(),r("div",is,[e[54]||(e[54]=d(" 还没有品牌。",-1)),we(i,{to:"/brand"},{default:he(()=>[...e[53]||(e[53]=[d("前往创建",-1)])]),_:1})])):(a(),r("div",as,[(a(!0),r(V,null,W(n(I),l=>(a(),r("button",{key:l.id,class:A(["brand-chip",{active:n(o).brandId===l.id}]),onClick:E=>n(o).brandId=l.id,type:"button"},[t("span",ds,u((l.name||"?")[0]),1),t("span",null,u(l.name),1),n(o).brandId===l.id?(a(),r("i",us)):b("",!0)],10,rs))),128))]))],2),e[73]||(e[73]=t("div",{class:"compose-divider"},null,-1)),t("div",cs,[e[62]||(e[62]=Qe('<div class="compose-section-head" data-v-dc4c4ee6><span class="section-badge section-badge-violet" data-v-dc4c4ee6><i class="ri-equalizer-line" data-v-dc4c4ee6></i></span><div class="compose-section-title-wrap" data-v-dc4c4ee6><h3 class="compose-section-title" data-v-dc4c4ee6>规格</h3><span class="compose-section-hint" data-v-dc4c4ee6>决定 AI 生成的风格与篇幅</span></div></div>',1)),t("div",ps,[t("div",vs,[e[56]||(e[56]=t("span",{class:"spec-field-label"},"内容类型",-1)),G(t("select",{"onUpdate:modelValue":e[6]||(e[6]=l=>n(o).type=l),class:"composer-select"},[...e[55]||(e[55]=[t("option",null,"品牌介绍文章",-1),t("option",null,"产品对比评测",-1),t("option",null,"使用场景案例",-1),t("option",null,"知识科普文章",-1),t("option",null,"FAQ问答",-1)])],512),[[_e,n(o).type]])]),t("div",fs,[e[58]||(e[58]=t("span",{class:"spec-field-label"},"目标平台",-1)),G(t("select",{"onUpdate:modelValue":e[7]||(e[7]=l=>n(o).platform=l),class:"composer-select"},[e[57]||(e[57]=t("option",{value:""},"通用(适配所有平台)",-1)),(a(!0),r(V,null,W(n(C),l=>(a(),r("option",{key:l.id,value:l.id},u(l.name)+" 优化",9,ms))),128))],512),[[_e,n(o).platform]])]),t("div",gs,[e[60]||(e[60]=t("span",{class:"spec-field-label"},"文章长度",-1)),G(t("select",{"onUpdate:modelValue":e[8]||(e[8]=l=>n(o).length=l),class:"composer-select"},[...e[59]||(e[59]=[t("option",{value:"short"},"短文",-1),t("option",{value:"medium"},"中篇",-1),t("option",{value:"long"},"长文",-1)])],512),[[_e,n(o).length]])]),n(P).length>1?(a(),r("div",ys,[e[61]||(e[61]=t("span",{class:"spec-field-label"},"文章语言",-1)),G(t("select",{"onUpdate:modelValue":e[9]||(e[9]=l=>n(o).language=l),class:"composer-select"},[(a(!0),r(V,null,W(n(P),l=>(a(),r("option",{key:l.code,value:l.code},u(l.name),9,bs))),128))],512),[[_e,n(o).language]])])):b("",!0)])]),e[74]||(e[74]=t("div",{class:"compose-divider"},null,-1)),t("div",ws,[t("div",{class:A(["disclosure",{open:n(Se)}]),onClick:e[10]||(e[10]=l=>Se.value=!n(Se)),style:{padding:"4px 0"}},[...e[63]||(e[63]=[t("span",{class:"section-badge section-badge-amber",style:{"margin-right":"2px"}},[t("i",{class:"ri-magic-line"})],-1),t("span",null,"特殊要求",-1),t("span",{class:"compose-section-hint",style:{"margin-left":"10px"}},"选填 · 风格、避讳词、结构",-1),t("i",{class:"ri-arrow-right-s-line",style:{"margin-left":"auto"}},null,-1)])],2),n(Se)?(a(),r("div",hs,[G(t("textarea",{"onUpdate:modelValue":e[11]||(e[11]=l=>n(o).specialRequirements=l),class:"composer-textarea",placeholder:"对内容有独特要求?
9在此说明,例如:行文风格、需要回避的词汇、特定结构要求等...",maxlength:"10000",rows:"4"},null,512),[[Ue,n(o).specialRequirements]]),t("div",ks,[n(j).length>0?(a(),r("span",xs,[e[64]||(e[64]=t("i",{class:"ri-error-warning-line"},null,-1)),e[65]||(e[65]=d(" 检测到敏感词: ",-1)),(a(!0),r(V,null,W(n(j),l=>(a(),r("span",{key:l,class:"sensitive-tag-v2"},u(l),1))),128))])):b("",!0),t("span",{style:ft({color:n(o).specialRequirements.length>9e3?"var(--danger)":void 0,marginLeft:"auto"})},u(n(o).specialRequirements.length)+" / 10000",5)])])):b("",!0)]),n(o).brandId&&!n(ee)||n(o).keyword&&n(o).brandId&&!n(ae)||n(o).language!=="zh"&&n(z)?(a(),r("div",Cs,[n(o).brandId&&!n(ee)?(a(),r("div",$s,[e[67]||(e[67]=t("i",{class:"ri-alert-line"},null,-1)),t("span",null,[d("品牌「"+u(n(v))+"」尚未创建知识库。",1),we(i,{to:"/knowledge-base"},{default:he(()=>[...e[66]||(e[66]=[d("前往创建",-1)])]),_:1})])])):b("",!0),n(o).language!=="zh"&&n(z)?(a(),r("div",Is,[e[68]||(e[68]=t("i",{class:"ri-information-line"},null,-1)),t("span",null,u(n(z)),1)])):b("",!0),n(o).keyword&&n(o).brandId&&!n(ae)?(a(),r("div",Ts,[e[71]||(e[71]=t("i",{class:"ri-information-line"},null,-1)),t("span",null,[d("未找到「"+u(n(o).keyword)+"」在"+u(n(_))+"的检测报告。",1),we(i,{to:"/check-new"},{default:he(()=>[...e[69]||(e[69]=[d("先去检测",-1)])]),_:1}),e[70]||(e[70]=d("可提升内容精准度。",-1))])])):b("",!0)])):b("",!0)]),t("div",As,[t("div",_s,[n(ke)?.tip?(a(),r("span",Ss,u(n(ke).tip),1)):b("",!0)]),t("div",Es,[t("span",Ms,[e[75]||(e[75]=d("余额 ",-1)),t("strong",null,"¥"+u(n(M)),1)]),t("button",{class:"btn-v2 btn-v2-primary btn-v2-lg",disabled:n(ne),onClick:Ze},[e[76]||(e[76]=t("i",{class:"ri-magic-line"},null,-1)),d(" "+u(n(ne)?"生成中…":"开始生成"),1)],8,zs)])])],512),[[vt,n(D)==="compose"]]),G(t("div",Ls,[!n($)&&!n(ne)?(a(),r("div",Rs,[e[78]||(e[78]=t("i",{class:"ri-pen-nib-line"},null,-1)),e[79]||(e[79]=t("div",{class:"editor-empty-text"},"还没有生成内容",-1)),e[80]||(e[80]=t("div",{class:"editor-empty-hint"},'切换到"设置"标签填写参数,点击"开始生成"。',-1)),t("button",{class:"btn-v2 btn-v2-secondary btn-v2-sm",style:{"margin-top":"8px"},onClick:e[12]||(e[12]=l=>D.value="compose")},[...e[77]||(e[77]=[t("i",{class:"ri-arrow-left-line"},null,-1),d("前往设置 ",-1)])])])):n(ne)?(a(),r("div",Os,[e[81]||(e[81]=t("div",{class:"editor-generating-spin"},null,-1)),e[82]||(e[82]=t("div",{class:"editor-generating-text"},"AI 正在创作中…",-1)),t("div",Hs,u(n(ze)),1),t("div",Ns,[(a(),r(V,null,W($e,(l,E)=>t("div",{key:l,class:A(["editor-step",{done:E<n(se),active:E===n(se)}])},[t("i",{class:A(E<n(se)?"ri-check-line":E===n(se)?"ri-loader-4-line spin":"ri-circle-line")},null,2),t("span",null,u(l),1)],2)),64))]),t("div",Us,"已用时 "+u(n(me))+" 秒(中文稿通常 1-3 分钟,外文稿通常 2-4 分钟)",1)])):(a(),r(V,{key:2},[t("div",Bs,[t("h2",Ps,[d(u(n(B)||"生成结果")+" ",1),e[83]||(e[83]=t("span",{class:"ai-gen-badge",title:"本文由人工智能生成,对外发布时请依规进行显著标识"},[t("i",{class:"ri-sparkling-2-line"}),d("AI生成 ")],-1))]),t("div",js,[t("button",{class:"btn-v2 btn-v2-ghost btn-v2-sm",onClick:e[13]||(e[13]=l=>U.value=!n(U))},[t("i",{class:A(n(U)?"ri-eye-line":"ri-edit-line")},null,2),d(u(n(U)?"预览":"编辑"),1)]),n(le)?(a(),r("button",{key:0,class:A(["btn-v2 btn-v2-ghost btn-v2-sm",{"is-active":n(ge)}]),title:"外文稿的中文翻译,仅供核对内容,不会发布",onClick:e[14]||(e[14]=l=>ge.value=!n(ge))},[e[84]||(e[84]=t("i",{class:"ri-translate-2"},null,-1)),d(u(n(ge)?"隐藏中文对照":"中文对照"),1)],2)):b("",!0),t("button",{class:"btn-v2 btn-v2-ghost btn-v2-sm",onClick:Dt},[...e[85]||(e[85]=[t("i",{class:"ri-file-copy-line"},null,-1),d("复制 ",-1)])]),t("button",{class:"btn-v2 btn-v2-ghost btn-v2-sm",onClick:Kt},[...e[86]||(e[86]=[t("i",{class:"ri-download-2-line"},null,-1),d("导出 ",-1)])]),t("button",{class:"btn-v2 btn-v2-secondary btn-v2-sm",onClick:Ft},[...e[87]||(e[87]=[t("i",{class:"ri-save-line"},null,-1),d("保存 ",-1)])]),t("button",{class:"btn-v2 btn-v2-primary btn-v2-sm",onClick:ln},[...e[88]||(e[88]=[t("i",{class:"ri-send-plane-line"},null,-1),d("发布 ",-1)])])])]),t("div",{class:A({"zh-compare":n(ge)&&n(le)})},[t("div",qs,[n(U)?(a(),r("div",Gs,[t("div",Vs,[t("button",{class:"icon-btn",title:"加粗",onMousedown:e[15]||(e[15]=O(l=>J("bold"),["prevent"]))},[...e[89]||(e[89]=[t("i",{class:"ri-bold"},null,-1)])],32),t("button",{class:"icon-btn",title:"斜体",onMousedown:e[16]||(e[16]=O(l=>J("italic"),["prevent"]))},[...e[90]||(e[90]=[t("i",{class:"ri-italic"},null,-1)])],32),t("button",{class:"icon-btn",title:"二级标题",onMousedown:e[17]||(e[17]=O(l=>J("formatBlock","h2"),["prevent"]))},[...e[91]||(e[91]=[t("i",{class:"ri-h-2"},null,-1)])],32),t("button",{class:"icon-btn",title:"三级标题",onMousedown:e[18]||(e[18]=O(l=>J("formatBlock","h3"),["prevent"]))},[...e[92]||(e[92]=[t("i",{class:"ri-h-3"},null,-1)])],32),t("button",{class:"icon-btn",title:"正文",onMousedown:e[19]||(e[19]=O(l=>J("formatBlock","p"),["prevent"]))},[...e[93]||(e[93]=[t("i",{class:"ri-paragraph"},null,-1)])],32),t("button",{class:"icon-btn",title:"项目列表",onMousedown:e[20]||(e[20]=O(l=>J("insertUnorderedList"),["prevent"]))},[...e[94]||(e[94]=[t("i",{class:"ri-list-unordered"},null,-1)])],32),t("button",{class:"icon-btn",title:"有序列表",onMousedown:e[21]||(e[21]=O(l=>J("insertOrderedList"),["prevent"]))},[...e[95]||(e[95]=[t("i",{class:"ri-list-ordered"},null,-1)])],32),t("button",{class:"icon-btn",title:"链接",onMousedown:O(Rt,["prevent"])},[...e[96]||(e[96]=[t("i",{class:"ri-link"},null,-1)])],32),t("button",{class:"icon-btn",disabled:n(Ce),title:n(Ce)?"图片上传中…":"图片",onMousedown:O(Ht,["prevent"])},[t("i",{class:A(n(Ce)?"ri-loader-4-line dl-spin":"ri-image-line")},null,2)],40,Ds),t("button",{class:"icon-btn",title:"清除格式",onMousedown:e[22]||(e[22]=O(l=>J("removeFormat"),["prevent"]))},[...e[97]||(e[97]=[t("i",{class:"ri-format-clear"},null,-1)])],32),t("span",Ks,u(n(Lt))+" 字",1)]),t("input",{ref_key:"editorImageInputRef",ref:tt,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",style:{display:"none"},onChange:Nt}
9,null,544),t("div",{ref_key:"editorRef",ref:S,class:"editor-rich",contenteditable:"true",onInput:Le,onBlur:e[23]||(e[23]=l=>{Oe(),Le()}),onKeyup:Oe,onMouseup:Oe},null,544)])):(a(),r("div",{key:1,class:"editor-rich",innerHTML:n(en)},null,8,Fs))]),n(ge)&&n(le)?(a(),r("aside",Ws,[e[98]||(e[98]=t("div",{class:"zh-compare-head"},[t("i",{class:"ri-translate-2"}),d("中文对照 "),t("span",{class:"zh-compare-note"},"仅供核对内容,不会发布;为生成时的版本,编辑外文正文后不会自动更新")],-1)),t("div",{class:"editor-rich zh-compare-body",innerHTML:n(zt)},null,8,Qs)])):b("",!0)],2),t("section",Xs,[e[107]||(e[107]=t("div",{class:"article-meta-head"},[t("h3",{class:"article-meta-title"},[t("i",{class:"ri-file-info-line"}),d("文章信息")]),t("span",{class:"article-meta-hint"},"自媒体平台发布会根据这些信息做校验(如封面、标签、摘要)")],-1)),t("div",Js,[t("div",Ys,[e[102]||(e[102]=t("label",{class:"meta-label"},[d("封面图"),t("span",{class:"meta-hint"},"(微信公众号/百家号必填)")],-1)),t("div",{class:A(["cover-box",{filled:!!n(F)}])},[t("input",{ref_key:"coverInputRef",ref:Ve,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",style:{display:"none"},onChange:jt},null,544),n(F)?(a(),r("div",{key:0,class:"cover-preview",onClick:e[24]||(e[24]=l=>n(Ve)?.click())},[t("img",{src:n(F)},null,8,Zs),e[99]||(e[99]=t("div",{class:"cover-mask"},[t("i",{class:"ri-edit-line"}),t("span",null,"更换封面")],-1))])):(a(),r("div",{key:1,class:"cover-placeholder",onClick:e[25]||(e[25]=l=>n(Ve)?.click())},[n(Ie)?(a(),r("i",el)):(a(),r("i",tl)),t("span",null,u(n(Ie)?"上传中…":"点击上传"),1),e[100]||(e[100]=t("em",null,"建议 900 × 500,< 2MB",-1))]))],2),n(F)&&!n(Ie)?(a(),r("button",{key:0,class:"meta-link-btn",onClick:e[26]||(e[26]=l=>F.value="")},[...e[101]||(e[101]=[t("i",{class:"ri-delete-bin-line"},null,-1),d("移除封面 ",-1)])])):b("",!0)]),t("div",nl,[e[104]||(e[104]=t("label",{class:"meta-label"},[d("文章分类"),t("span",{class:"meta-hint"},"(掘金 / 51CTO 必填)")],-1)),G(t("select",{"onUpdate:modelValue":e[27]||(e[27]=l=>Be(re)?re.value=l:null),class:"form-select meta-input"},[e[103]||(e[103]=t("option",{value:""},"请选择分类",-1)),(a(),r(V,null,W(Ut,l=>t("option",{key:l.value,value:l.value},u(l.label),9,sl)),64))],512),[[_e,n(re)]])]),t("div",ll,[e[105]||(e[105]=t("label",{class:"meta-label"},[d("标签关键词"),t("span",{class:"meta-hint"},"(CSDN / 掘金 / 51CTO 必填)")],-1)),t("div",ol,[(a(!0),r(V,null,W(n(q),(l,E)=>(a(),r("span",{key:`${l}-${E}`,class:"tag-chip"},[d(u(l),1),t("i",{class:"ri-close-line",onClick:Y=>Bt(E)},null,8,il)]))),128)),G(t("input",{"onUpdate:modelValue":e[28]||(e[28]=l=>Be(de)?de.value=l:null),type:"text",class:"tag-inline-input",placeholder:n(q).length?"":"输入后回车添加",onKeydown:[Xe(O(nt,["prevent"]),["enter"]),Xe(Pt,["backspace"])],onBlur:nt},null,40,al),[[Ue,n(de)]])])]),t("div",rl,[e[106]||(e[106]=t("label",{class:"meta-label"},[d("文章摘要"),t("span",{class:"meta-hint"},"(掘金必填,其他平台可选)")],-1)),G(t("textarea",{"onUpdate:modelValue":e[29]||(e[29]=l=>Be(oe)?oe.value=l:null),class:"form-input meta-textarea",rows:"3",placeholder:"摘要将显示在列表页,有助于吸引读者",maxlength:"500"},null,512),[[Ue,n(oe)]]),t("div",dl,u((n(oe)||"").length)+" / 500",1)])])]),n($)?(a(),mt(f,{key:0,title:n(B),"content-html":n($),"brand-name":n(v),"target-query":n(o).keyword,"can-undo":!!n(ue),onApply:nn,onUndo:sn},null,8,["title","content-html","brand-name","target-query","can-undo"])):b("",!0)],64))],512),[[vt,n(D)==="editor"]])]),t("div",{class:A(["modal-overlay",{open:n(Ae)}]),role:"dialog","aria-modal":"true",onClick:e[31]||(e[31]=O(l=>Ae.value=!1,["self"]))},[t("div",ul,[e[108]||(e[108]=t("div",{style:{"font-size":"16px","font-weight":"600","margin-bottom":"8px"}},[t("i",{class:"ri-shield-check-line",style:{color:"#4F46E5"}}),d(" 发布前提示")],-1)),t("div",cl," 检测到 "+u(n(at))+" 处表述可优化(详见下方合规助手)。可直接发布,也可先优化再发。 ",1),t("div",pl,[t("button",{class:"btn-v2 btn-v2-ghost btn-v2-sm",onClick:e[30]||(e[30]=l=>Ae.value=!1)},"去优化"),t("button",{ref_key:"adlawConfirmBtn",ref:tn,class:"btn-v2 btn-v2-primary btn-v2-sm",onClick:on}
9,"直接发布",512)])])],2),t("div",{class:A(["modal-overlay",{open:n(Q)}]),role:"dialog","aria-modal":"true",onClick:e[34]||(e[34]=O(l=>Q.value=!1,["self"]))},[t("div",vl,[e[113]||(e[113]=t("div",{class:"data-warn-icon"},[t("i",{class:"ri-error-warning-line",style:{"font-size":"36px",color:"var(--amber)"}})],-1)),e[114]||(e[114]=t("div",{style:{"font-size":"18px","font-weight":"600","margin-bottom":"8px"}},"数据准备不足",-1)),t("div",fl,[e[109]||(e[109]=d("品牌 ",-1)),t("strong",ml,u(n(v)),1),e[110]||(e[110]=d(" 尚未完成以下配置:",-1))]),t("div",gl,[n(ae)?b("",!0):(a(),r("div",yl,[...e[111]||(e[111]=[t("i",{class:"ri-close-circle-line",style:{color:"var(--red)","font-size":"15px","flex-shrink":"0"}},null,-1),t("span",null,[d("未找到 AI 体检报告 "),t("em",{style:{color:"var(--muted)"}},"(竞品突破点、AI检索词的来源)")],-1)])])),n(ee)?b("",!0):(a(),r("div",bl,[...e[112]||(e[112]=[t("i",{class:"ri-close-circle-line",style:{color:"var(--red)","font-size":"15px","flex-shrink":"0"}},null,-1),t("span",null,[d("未创建品牌知识库 "),t("em",{style:{color:"var(--muted)"}},"(官方数据与案例背书)")],-1)])]))]),e[115]||(e[115]=t("div",{style:{background:"var(--amber-bg)","border-radius":"var(--r-sm)",padding:"10px 14px","font-size":"12px",color:"#92400e","text-align":"left",margin:"16px 0"}}," 缺少以上数据时,AI 只能以基础模式生成文章,内容差异化和竞品针对性会大幅降低。建议先完成体检和知识库配置。 ",-1)),t("div",wl,[t("button",{class:"btn btn-ghost",style:{flex:"1"},onClick:e[32]||(e[32]=l=>Q.value=!1)},"取消,先去配置"),t("button",{class:"btn btn-primary",style:{flex:"1"},onClick:e[33]||(e[33]=l=>{Q.value=!1,et()})},"了解,仍然继续")])])],2),t("div",{class:A(["modal-overlay",{open:n(fe)}]),role:"dialog","aria-modal":"true",onClick:O(Me,["self"])},[t("div",hl,[t("button",{class:"modal-close","aria-label":"关闭",onClick:Me},[...e[116]||(e[116]=[t("span",{class:"icon"},[t("i",{class:"ri-close-line"})],-1)])]),e[125]||(e[125]=Qe('<div style="text-align:center;margin-bottom:18px;" data-v-dc4c4ee6><div style="width:56px;height:56px;border-radius:50%;background:#ecfdf5;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;" data-v-dc4c4ee6><i class="ri-money-cny-circle-line" style="font-size:30px;color:#10b981;" data-v-dc4c4ee6></i></div><div style="font-size:17px;font-weight:600;" data-v-dc4c4ee6>内容生成预扣费确认</div><div style="font-size:12px;color:var(--muted);margin-top:4px;" data-v-dc4c4ee6>本次生成将从账户余额扣除相应费用</div></div>',1)),n(Ee)?(a(),r("div",kl,[...e[117]||(e[117]=[t("i",{class:"ri-loader-4-line dl-spin",style:{"font-size":"22px"}},null,-1),t("div",{style:{"margin-top":"8px"}},"获取价格中…",-1)])])):(a(),r("div",xl,[t("div",Cl,[t("div",$l,[e[118]||(e[118]=t("span",{style:{color:"var(--muted)"}},"文章类型",-1)),t("span",Il,u(n(o).type),1)]),t("div",Tl,[e[119]||(e[119]=t("span",{style:{color:"var(--muted)"}},"字数档位",-1)),t("span",Al,u(n(St)),1)]),t("div",_l,[e[120]||(e[120]=t("span",{style:{color:"var(--muted)"}},"生成模式",-1)),t("span",Sl,u(n(ke)?.text||"标准模式"),1)])]),t("div",El,[e[121]||(e[121]=t("span",{style:{"font-size":"13px",color:"#065f46"}},"本次预计扣费",-1)),t("span",Ml,"¥ "+u(n(qe).toFixed(2)),1)]),t("div",zl,[e[122]||(e[122]=t("span",null,"当前账户余额",-1)),t("span",{style:ft({color:n(xe)?"#dc2626":"var(--text)",fontWeight:n(xe)?"600":"500"})},"¥ "+u(n(M)),5)]),n(xe)?(a(),r("div",Ll,[...e[123]||(e[123]=[t("i",{class:"ri-error-warning-line",style:{"font-size":"16px"}},null,-1),t("span",null,"余额不足,请先充值后再生成",-1)])])):b("",!0),t("div",Rl,[t("button",{class:"btn btn-ghost",style:{flex:"1"},onClick:Me},"取消"),n(xe)?(a(),mt(i,{key:0,to:"/recharge",class:"btn btn-primary",style:{flex:"1","text-align":"center","text-decoration":"none"},onClick:Me},{default:he(()=>[...e[124]||(e[124]=[d("去充值",-1)])]),_:1})):(a(),r("button",{key:1,class:"btn btn-primary",style:{flex:"1"},disabled:n(Ee),onClick:Mt},"支付并开始",8,Ol))])]))])],2),we(hn,{open:n(Ne),"onUpdate:open":e[35]||(e[35]=l=>Be(Ne)?Ne.value=l:null),article:n(Wt),onPublished:an},null,8,["open","article"])])}}}),Vl=$t(Hl,[["__scopeId","data-v-dc4c4ee6"]]);export{Vl as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.