6 lines
8.0 KiB
Java
6 lines
8.0 KiB
Java
var le=Object.defineProperty;var j=Object.getOwnPropertySymbols;var oe=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var K=(f,s,a)=>s in f?le(f,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):f[s]=a,q=(f,s)=>{for(var a in s||(s={}))oe.call(s,a)&&K(f,a,s[a]);if(j)for(var a of j(s))ie.call(s,a)&&K(f,a,s[a]);return f};var E=(f,s,a)=>new Promise((D,n)=>{var h=o=>{try{_(a.next(o))}catch(l){n(l)}},y=o=>{try{_(a.throw(o))}catch(l){n(l)}},_=o=>o.done?D(o.value):Promise.resolve(o.value).then(h,y);_((a=a.apply(f,s)).next())});import{d as re,o as ue,ah as R,ar as O,as as c,au as x,k as m,aC as w,ag as S,av as I,f as v,aF as g,G as C,F as ce,aD as ve,u as M,e as de,n as z}from"./vue-vendor-C7Zq48Yl.js";import pe from"./AiWriterLeft-BaDdcHy2.js";import{u as fe,bP as me,f as A,d as ge}from"./index-BI6CMai0.js";import{bk as he,aw as ye,aA as ke,bs as _e,bt as we,bq as be,M as Te}from"./antd-vue-vendor-BPnV8VqP.js";import{M as Ce,m as Ee,a as xe,H as B}from"./style-B73oiFPg.js";import Me from"./JMarkdownEditor-BlFCbKPW.js";import"./vxe-table-vendor-B88kchpX.js";import"./index-BTq_UON2.js";import"./index-Du0A3ksf.js";import"./BasicModal-0sAdFEk_.js";import"./ModalHeader-keHdAHWH.js";import"./useTimeout-DDl4l82I.js";import"./index-DeEq83Ov.js";import"./useWindowSizeFn-PRZSD86C.js";import"./index-pxs5MULf.js";import"./index-BgYCgfME.js";import"./index-f8O7TghW.js";import"./useIntersectionObserver-BMxdTqP3.js";const Se={class:"writer-wrap"},De={class:"sidebar"},Ne={class:"preview-header"},Re={class:"preview-header-left"},Oe={class:"preview-title-text"},Ae={class:"preview-actions"},Fe=["innerHTML"],He={key:1,class:"markdown-editor-container"},k="CURRENT",Le=re({__name:"AiWriter",setup(f){const{createMessage:s}=fe(),a=v(""),D=v(null),n=v(!1),h=v(!1),y=v(!1),_=v(!1),o=v(),l=v([]),F=v(""),d=v(k),N=v(null),H=v(!1),L=new Ce({html:!0,linkify:!0,highlight(t,e){if(!!(e&&B.getLanguage(e))){const p=e!=null?e:"";return $(B.highlight(t,{language:p}).value,p)}return $(B.highlightAuto(t).value,"")}});L.use(Ee,{attrs:{target:"_blank",rel:"noopener"}}),L.use(xe,{blockClass:"katexmath-block rounded-md p-[10px]",errorColor:" #cc0000"});const Y=de(()=>{let t=a.value||F.value;return n.value&&(t+=' <span class="typing-dot"></span><span class="typing-dot" style="animation-delay: 0.2s"></span><span class="typing-dot" style="animation-delay: 0.4s"></span>'),L.render(t)});function Q(){n.value||(h.value=!h.value)}function X(){if(!a.value){s.warning("暂无内容可复制");return}me(a.value)?s.success("复制成功"):s.error("复制失败")}function V(){const t=D.value;t&&(t.scrollTop=t.scrollHeight)}function U(t,e=""){return E(this,null,function*(){h.value=!1,t.responseMode="streaming",a.value="",n.value=!0,d.value=k,e||(o.value=t);try{const p=(yield A.post({url:"/airag/chat/genAiWriter",params:q({},t),timeout:3e5,adapter:"fetch",responseType:"stream"},{isTransformResponse:!1}).catch(r=>{s.warn(r.message?r.message:"请求出错,请稍后重试!")})).getReader(),b=new TextDecoder("UTF-8");let u="";for(;;){const{done:r,value:se}=yield p.read();if(r)break;let ne=b.decode(se,{stream:!0});u+=ne;const P=u.split(`
|
||
|
||
`);u=P.pop()||"";for(const T of P)if(T.startsWith("data:")){const W=T.replace("data:","").trim();if(!W)continue;if(!W.endsWith("}")){u=u+T;continue}u="",G(W)}else{if(!T)continue;if(!T.endsWith("}")){u=u+T;continue}u="",G(T)}}}catch(i){a.value+=`
|
||
|
||
[生成出错]`}finally{n.value=!1}})}function G(t){try{let e=JSON.parse(t);if(e.event=="NODE_FINISHED"){H.value=!0;return}e.event=="MESSAGE"&&(F.value="",H.value?(a.value=e.data.message,H.value=!1):a.value+=e.data.message,n.value=!0,y.value=!0,z(V)),e.event=="MESSAGE_END"&&(n.value=!1,d.value===k&&(N.value=a.value),z(V)),e.event=="ERROR"&&(a.value=e.data.message?e.data.message:"生成失败,请稍后重试!",n.value=!1,y.value=!1,z(V)),e.event==="NODE_STARTED"&&(!e.data||e.data.type!=="end")&&(e.data.type==="llm"||e.data.type==="reply")&&(F.value="正在构建响应内容"),e.event=="FLOW_FINISHED"&&(e.data&&!e.data.success&&(a.value=e.data.message?e.data.message:"生成失败,请稍后重试!"),n.value=!1,y.value=!1)}catch(e){}}function $(t,e){return`<pre class="code-block-wrapper"><div class="code-block-header"><span class="code-block-header__lang">${e}</span><span class="code-block-header__copy">复制代码</span></div><code class="hljs code-block-body ${e}">${t}</code></pre>`}function Z(){return E(this,null,function*(){if(!a.value){s.warning("暂无内容可润色");return}if(n.value||y.value)return;y.value=!0;const t={prompt:a.value,originalContent:"",length:o.value.length,format:o.value.format,tone:o.value.tone,language:o.value.language,activeMode:"polish"};try{yield U(t,"polish")}finally{y.value=!1}})}function ee(){return E(this,null,function*(){if(!a.value){s.warning("暂无内容可保存");return}if(!_.value)try{_.value=!0,yield A.post({url:"/airag/app/save/article/write",params:{content:a.value}}),d.value===k&&(N.value=a.value),J()}catch(t){s.error("保存失败,请稍后重试")}finally{_.value=!1}})}function J(){l.value=[],A.get({url:"/airag/app/list/article/write"},{isTransformResponse:!1}).then(t=>{t.success&&(l.value=t.result)})}function ae(){return E(this,null,function*(){if(d.value===k)return;const t=l.value.find(i=>i.version===d.value);t&&Te.confirm({title:"删除版本",content:"是否确认删除该版本?",okText:"确定",cancelText:"取消",onOk(){return E(this,null,function*(){var i;try{yield A.delete({url:"/airag/app/delete/article/write",params:{version:t.version}},{joinParamsToUrl:!0}),l.value=l.value.filter(p=>p.version!==t.version),d.value=k,a.value=(i=N.value)!=null?i:""}catch(p){s.error("删除失败,请稍后重试")}})}})})}function te(t){var i;if(t===k){d.value=t,a.value=(i=N.value)!=null?i:"";return}const e=l.value.find(p=>p.version===t);e&&(d.value=t,a.value=e.content)}return ue(()=>{J()}),(t,e)=>{const i=R("a-select-option"),p=R("a-select"),b=R("a-button"),u=R("a-tooltip");return c(),O("div",Se,[x("div",De,[m(pe,{onGenerate:U})]),x("div",{class:"preview",ref_key:"previewRef",ref:D},[x("div",Ne,[x("div",Re,[x("span",Oe,I(h.value?"编辑":"预览"),1),l.value&&l.value.length?(c(),w(p,{key:0,value:d.value,"onUpdate:value":e[0]||(e[0]=r=>d.value=r),size:"small",class:"version-select",onChange:te},{default:g(()=>[m(i,{value:k},{default:g(()=>[...e[3]||(e[3]=[C("当前内容",-1)])]),_:1}),(c(!0),O(ce,null,ve(l.value,r=>(c(),w(i,{key:r.version,value:r.version},{default:g(()=>[C(I(r.version),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])):S("",!0),l.value&&l.value.length&&d.value!==k?(c(),w(b,{key:1,type:"link",size:"small",class:"preview-action-btn version-delete-btn",onClick:ae},{default:g(()=>[m(M(he)),e[4]||(e[4]=C(" 删除 ",-1))]),_:1})):S("",!0)]),x("div",Ae,[n.value?S("",!0):(c(),w(b,{key:0,type:"link",size:"small",class:"preview-action-btn custom-save-btn",onClick:Q},{default:g(()=>[h.value?(c(),w(M(ke),{key:1})):(c(),w(M(ye),{key:0})),C(" "+I(h.value?"完成":"编辑"),1)]),_:1})),n.value?S("",!0):(c(),w(b,{key:1,type:"link",size:"small",class:"preview-action-btn custom-save-btn",loading:y.value,onClick:Z},{default:g(()=>[m(M(_e),{class:"preview-actions-icon",style:{position:"relative",top:"1px"}}),e[5]||(e[5]=C(" 润色 ",-1))]),_:1},8,["loading"])),m(u,{title:"保存草稿"},{default:g(()=>[n.value?S("",!0):(c(),w(b,{key:0,type:"link",size:"small",class:"preview-action-btn custom-save-btn",loading:_.value,onClick:ee},{default:g(()=>[m(M(we),{class:"preview-actions-icon"}),e[6]||(e[6]=C(" 保存 ",-1))]),_:1},8,["loading"]))]),_:1}),m(u,{title:"复制内容"},{default:g(()=>[m(b,{type:"link",size:"small",class:"preview-action-btn custom-save-btn",onClick:X},{default:g(()=>[m(M(be),{class:"preview-actions-icon"}),e[7]||(e[7]=C(" 复制 ",-1))]),_:1})]),_:1})])]),h.value?(c(),O("div",He,[m(Me,{value:a.value,"onUpdate:value":e[2]||(e[2]=r=>a.value=r),height:"100vh",preview:{mode:"view",action:[]}},null,8,["value"])])):(c(),O("div",{key:0,innerHTML:Y.value,class:"markdown-container",onClick:e[1]||(e[1]=r=>!n.value)},null,8,Fe))],512)])}}}),ta=ge(Le,[["__scopeId","data-v-dab18462"]]);export{ta as default};
|