previewDrawer-CHwWQaes.js 3.5 KB

1
  1. var b=(d,a,e)=>new Promise((o,t)=>{var n=c=>{try{s(e.next(c))}catch(g){t(g)}},r=c=>{try{s(e.throw(c))}catch(g){t(g)}},s=c=>c.done?o(c.value):Promise.resolve(c.value).then(n,r);s((e=e.apply(d,a)).next())});import{a as x,B as F}from"./index-DYp2Qjp4.js";import"./index-Brpm-Jnb.js";import{c as A}from"./genApi-DB0Y7f2j.js";import{aS as D,u as S,_ as B}from"./entry/index-CRWhxBeP.js";import{ac as C,ag as R}from"./antd-BfqWtMX3.js";import{f as u,w as E,d as k,a6 as j,Z as p,_ as T,$ as w,k as _,u as l,a4 as h,a5 as v,F as K,a7 as L,a9 as N}from"./vue-DM5HGU8Z.js";import"./useWindowSizeFn-CEueHQop.js";function P(d){const a=u(""),e=u(!1),o=u(!1);return E(a,t=>{D(t)&&(o.value=!0,e.value=$(t))},{immediate:!1,flush:"sync"}),{clipboardRef:a,isSuccessRef:e,copiedRef:o}}function $(d,{target:a=document.body}={}){const e=document.createElement("textarea"),o=document.activeElement;e.value=d,e.setAttribute("readonly",""),e.style.contain="strict",e.style.position="absolute",e.style.left="-9999px",e.style.fontSize="12pt";const t=document.getSelection();let n;t&&t.rangeCount>0&&(n=t.getRangeAt(0)),a.append(e),e.select(),e.selectionStart=0,e.selectionEnd=d.length;let r=!1;try{r=document.execCommand("copy")}catch(s){throw new Error(s)}return e.remove(),n&&t&&(t.removeAllRanges(),t.addRange(n)),o&&o.focus(),r}const I={class:"hljs-container"},M=["codetype"],q=k({name:"Highlight",__name:"index",props:{language:{type:String,default:()=>{}},code:{type:String,default:()=>"无"}},setup(d){const a=d,{createMessage:e}=S(),{clipboardRef:o,copiedRef:t}=P(),n=r=>{const s=l(a.code);if(!s){e.warning("复制失败!");return}o.value=s,l(t)&&e.success("复制成功!")};return(r,s)=>{const c=j("highlightjs");return p(),T("div",I,[w("div",{class:"hljs-container_copy",onClick:n},"复制"),w("div",{class:"hljs-container_cnt",codetype:a.language},[_(c,{language:a.language,autodetect:!a.language,code:a.code},null,8,["language","autodetect","code"])],8,M)])}}}),H=B(q,[["__scopeId","data-v-f48a1f87"]]),U={class:"gen-preview-content"},V=k({__name:"previewDrawer",setup(d){const{createMessage:a}=S(),e={title:"预览",width:"60%"},o=u(),t=u(),n=u(!0),r=u([]),[s,{changeLoading:c}]=x(y=>b(this,null,function*(){try{const i=yield A({id:y.record.id});r.value=[{codeTypeKey:"frontend",codeTypeTitle:"前端代码",codeTypeList:i.genBasicCodeFrontendResultList},{codeTypeKey:"backend",codeTypeTitle:"后端代码",codeTypeList:i.genBasicCodeBackendResultList},{codeTypeKey:"sqlend",codeTypeTitle:"SQL文件",codeTypeList:i.genBasicCodeSqlResultList}]}catch(i){a.error("预览失败:请检查问题或反馈")}finally{n.value=!1,c(n.value)}})),g=y=>{t.value=r.value.find(i=>i.codeTypeKey===y).codeTypeList[0].codeFileName};return(y,i)=>(p(),h(l(F),N(y.$attrs,{onRegister:l(s),title:e.title,width:e.width,loading:n.value}),{default:v(()=>[_(l(C),{activeKey:o.value,"onUpdate:activeKey":i[1]||(i[1]=f=>o.value=f),onChange:g},{default:v(()=>[(p(!0),T(K,null,L(r.value,f=>(p(),h(l(R),{key:f.codeTypeKey,tab:f.codeTypeTitle,"force-render":""},{default:v(()=>[_(l(C),{activeKey:t.value,"onUpdate:activeKey":i[0]||(i[0]=m=>t.value=m),"tab-position":"left","hide-add":"",type:"card"},{default:v(()=>[(p(!0),T(K,null,L(f.codeTypeList,m=>(p(),h(l(R),{key:m.codeFileName,tab:m.codeFileName},{default:v(()=>[w("div",U,[_(l(H),{code:m.codeFileContent},null,8,["code"])])]),_:2},1032,["tab"]))),128))]),_:2},1032,["activeKey"])]),_:2},1032,["tab"]))),128))]),_:1},8,["activeKey"])]),_:1},16,["onRegister","title","width","loading"]))}}),Y=B(V,[["__scopeId","data-v-a46c9d39"]]);export{Y as default};