index-8f76a191.js 9.4 KB

1
  1. var P=(T,p,x)=>new Promise((E,_)=>{var y=d=>{try{m(x.next(d))}catch(g){_(g)}},s=d=>{try{m(x.throw(d))}catch(g){_(g)}},m=d=>d.done?E(d.value):Promise.resolve(d.value).then(y,s);m((x=x.apply(T,p)).next())});import{d as te,S as X,h as F,V as G,a7 as ie,cZ as B,G as oe,r as a,o as b,c as I,u,A as h,w as e,b as t,e as r,m as i,F as J,bl as de,a6 as Z,f as ne,a8 as ce,cT as fe,aG as pe,cR as _e,aF as me,aJ as ve,a$ as ge,M as K,p as Q,t as A,N as W,bd as ye,$ as we}from"./index-7f9b3dc0.js";import{d as Y}from"./chartEditStore-a7c7155c.js";import{i as L}from"./icon-24c63d72.js";import{T as H,D}from"./index-2fd09ac2.js";import{u as le}from"./useTargetData.hook-24871542.js";import{M as be}from"./EditorWorker-cbabba82.js";import"./editorWorker-43a98755.js";import{g as xe}from"./plugin-7a76ddd3.js";import{F as ee}from"./fileTypeEnum-21359a08.js";const Ce={class:"go-ml-4"},Fe={class:"editor-data-show"},Se={class:"editor-data-show"},Te={class:"editor-data-show"},ke={class:"go-flex-items-center"},Re=te({__name:"index",setup(T){const{DocumentTextIcon:p}=L.ionicons5,{FilterIcon:x,FilterEditIcon:E}=L.carbon,{targetData:_,chartEditStore:y}=le();X(_.value.request),X(y.getRequestGlobalConfig);const s=F(!1),m=F(_.value.filter||"return data"),d=F(!1),g=F(""),q=()=>P(this,null,function*(){try{const v=yield de(Z(_.value.request),Z(y.getRequestGlobalConfig));if(v){g.value=v;return}window.$message.warning("没有拿到返回值,请检查接口!")}catch(v){console.error(v),window.$message.warning("数据异常,请检查参数!")}}),V=G(()=>{try{const v=new Function("data","res",m.value),o=ie(g.value),l=v(o==null?void 0:o.data,o);return d.value=!1,B(l)}catch(v){return d.value=!0,`过滤函数错误,日志:${v}`}}),j=()=>{s.value=!0},M=()=>{xe({message:"是否删除过滤器",onPositiveCallback:()=>{_.value.filter=void 0}})},U=()=>{s.value=!1},$=()=>{if(d.value){window.$message.error("过滤函数错误,无法进行保存");return}_.value.filter=m.value,U()};return oe(()=>s.value,v=>{v&&(q(),m.value=_.value.filter||"return data")}),(v,o)=>{const l=a("n-code"),n=a("n-icon"),f=a("n-button"),c=a("n-space"),C=a("n-card"),k=a("n-text"),R=a("n-tag"),N=a("n-divider"),z=a("n-scrollbar"),O=a("n-modal");return b(),I(J,null,[u(_).filter?(b(),h(C,{key:0},{footer:e(()=>[t(c,{justify:"end"},{default:e(()=>[t(f,{type:"primary",tertiary:"",size:"small",onClick:j},{icon:e(()=>[t(n,null,{default:e(()=>[t(u(E))]),_:1})]),default:e(()=>[o[2]||(o[2]=r(" 编辑 "))]),_:1}),t(f,{tertiary:"",size:"small",onClick:M},{default:e(()=>o[3]||(o[3]=[r(" 删除 ")])),_:1})]),_:1})]),default:e(()=>[o[4]||(o[4]=i("p",null,[i("span",{class:"func-keyword"},"function"),r("  filter(data, res)  {")],-1)),i("div",Ce,[t(l,{code:u(_).filter,language:"typescript"},null,8,["code"])]),o[5]||(o[5]=i("p",null,"}",-1))]),_:1})):(b(),h(f,{key:1,class:"go-ml-3",onClick:j},{icon:e(()=>[t(n,null,{default:e(()=>[t(u(x))]),_:1})]),default:e(()=>[o[6]||(o[6]=r(" 新增过滤器 "))]),_:1})),t(O,{class:"go-chart-data-monaco-editor",show:s.value,"onUpdate:show":o[1]||(o[1]=S=>s.value=S),"mask-closable":!1,closeOnEsc:!1},{default:e(()=>[t(C,{bordered:!1,role:"dialog",size:"small","aria-modal":"true",style:{width:"1000px",height:"600px"}},{header:e(()=>[t(c,null,{default:e(()=>[t(k,null,{default:e(()=>o[7]||(o[7]=[r("过滤器函数编辑器")])),_:1})]),_:1})]),"header-extra":e(()=>o[8]||(o[8]=[])),action:e(()=>[t(c,{justify:"space-between"},{default:e(()=>[i("div",ke,[t(R,{bordered:!1,type:"primary"},{icon:e(()=>[t(n,{component:u(p)},null,8,["component"])]),default:e(()=>[o[14]||(o[14]=r(" 规则 "))]),_:1}),t(k,{class:"go-ml-2",depth:"2"},{default:e(()=>o[15]||(o[15]=[r("过滤器默认处理接口返回值的「data」字段")])),_:1})]),t(c,null,{default:e(()=>[t(f,{size:"medium",onClick:U},{default:e(()=>o[16]||(o[16]=[r("取消")])),_:1}),t(f,{size:"medium",type:"primary",onClick:$},{default:e(()=>o[17]||(o[17]=[r("保存")])),_:1})]),_:1})]),_:1})]),default:e(()=>[t(c,{size:"small",vertical:""},{default:e(()=>[t(c,{justify:"space-between"},{default:e(()=>[i("div",null,[t(c,{vertical:""},{default:e(()=>[t(R,{type:"info"},{default:e(()=>o[9]||(o[9]=[i("span",{class:"func-keyword"},"function",-1),r("  filter(data, res)  { ")])),_:1}),t(u(be),{modelValue:m.value,"onUpdate:modelValue":o[0]||(o[0]=S=>m.value=S),width:"460px",height:"380px",language:"javascript"},null,8,["modelValue"]),t(R,{type:"info"},{default:e(()=>o[10]||(o[10]=[r("}")])),_:1})]),_:1})]),t(N,{vertical:"",style:{height:"480px"}}),t(z,{style:{"max-height":"480px"}},{default:e(()=>[t(c,{size:15,vertical:""},{default:e(()=>[i("div",Fe,[t(c,null,{default:e(()=>{var S;return[t(k,{depth:"3"},{default:e(()=>o[11]||(o[11]=[r("默认过滤数据(data):")])),_:1}),t(l,{code:u(B)((S=g.value)==null?void 0:S.data)||"暂无",language:"json","word-wrap":!0},null,8,["code"])]}),_:1})]),i("div",Se,[t(c,null,{default:e(()=>[t(k,{depth:"3"},{default:e(()=>o[12]||(o[12]=[r("接口返回数据(res):")])),_:1}),t(l,{code:u(B)(g.value)||"暂无",language:"json","word-wrap":!0},null,8,["code"])]),_:1})]),i("div",Te,[t(c,null,{default:e(()=>[t(k,{depth:"3"},{default:e(()=>o[13]||(o[13]=[r("过滤器结果:")])),_:1}),t(l,{code:V.value||"暂无",language:"json","word-wrap":!0},null,8,["code"])]),_:1})])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["show"])],64)}}});const Ee=ne(Re,[["__scopeId","data-v-eac7a30e"]]),he=T=>{const p=F();return{uploadFileListRef:p,beforeUpload:({file:y})=>{p.value=[];const s=y.file.type;return s!==ee.JSON&&s!==ee.TXT?(window.$message.warning("仅支持上传 【JSON】 格式文件,请重新上传!"),!1):!0},customRequest:y=>{const{file:s}=y;ce(()=>{s.file?fe(s.file).then(m=>{T.value.option.dataset=pe(m)}):window.$message.error("导入数据失败,请稍后重试或联系管理员!")})},download:()=>{try{window.$message.success("下载中,请耐心等待..."),_e(me(T.value.option.dataset),void 0,"json")}catch(y){window.$message.error("下载失败,数据错误!")}}}},qe=te({__name:"index",props:{show:{type:Boolean,required:!1},ajax:{type:Boolean,required:!0}},setup(T){const{targetData:p}=le(),x=["字段","映射","状态"],{HelpOutlineIcon:E}=L.ionicons5,{DocumentAddIcon:_,DocumentDownloadIcon:y}=L.carbon,s=F(),m=F(),d=F(),g=F(!1),{uploadFileListRef:q,customRequest:V,beforeUpload:j,download:M}=he(p),U=G(()=>p.value.request.requestDataType!==ve.STATIC),$=G(()=>p.value.chartConfig.chartFrame===Y.ECHARTS),v=l=>{let n=D.SUCCESS;for(let f=0;f<s.value.length;f++)if(s.value[f][l]===void 0)return n=D.FAILURE,n;return D.SUCCESS},o=()=>{try{return m.value.map((l,n)=>n===0?{field:"通用标识",mapping:l,result:D.NULL}:{field:`数据项-${n}`,mapping:l,result:v(l)})}catch(l){return[]}};return oe(()=>{var l,n;return(n=(l=p.value)==null?void 0:l.option)==null?void 0:n.dataset},l=>{var n,f;l&&((f=(n=p==null?void 0:p.value)==null?void 0:n.chartConfig)==null?void 0:f.chartFrame)===Y.ECHARTS?(s.value=l,$.value&&(m.value=l.dimensions,d.value=o())):l!=null?(d.value=null,s.value=l):(g.value=!0,s.value="此组件无数据源"),ge(l)&&(d.value=null)},{immediate:!0}),(l,n)=>{const f=a("n-badge"),c=a("n-text"),C=a("n-space"),k=a("n-table"),R=a("n-timeline-item"),N=a("n-icon"),z=a("n-button"),O=a("n-upload"),S=a("n-tooltip"),ae=a("n-code"),se=a("n-card"),re=a("n-timeline");return b(),h(re,{class:"go-chart-configurations-timeline"},{default:e(()=>[K(t(R,{type:"info",title:u(H).MAPPING},{default:e(()=>[t(k,{striped:""},{default:e(()=>[i("thead",null,[i("tr",null,[(b(),I(J,null,Q(x,w=>i("th",{key:w},A(w),1)),64))])]),i("tbody",null,[(b(!0),I(J,null,Q(d.value,(w,ue)=>(b(),I("tr",{key:ue},[i("td",null,A(w.field),1),i("td",null,A(w.mapping),1),i("td",null,[w.result===0?(b(),h(C,{key:0},{default:e(()=>[t(f,{dot:"",type:"success"}),t(c,null,{default:e(()=>n[1]||(n[1]=[r("无")])),_:1})]),_:1})):(b(),h(C,{key:1},{default:e(()=>[t(f,{dot:"",type:w.result===1?"success":"error"},null,8,["type"]),t(c,null,{default:e(()=>[r("匹配"+A(w.result===1?"成功":"失败"),1)]),_:2},1024)]),_:2},1024))])]))),128))])]),_:1})]),_:1},8,["title"]),[[W,$.value&&d.value]]),K(t(R,{color:"#97846c",title:u(H).FILTER},{default:e(()=>[t(C,{size:18,vertical:""},{default:e(()=>[t(c,{depth:"3"},{default:e(()=>n[2]||(n[2]=[r("过滤器默认处理接口返回值的「data」字段")])),_:1}),t(u(Ee))]),_:1})]),_:1},8,["title"]),[[W,U.value]]),t(R,{type:"success",title:u(H).CONTENT},{default:e(()=>[t(C,{vertical:""},{default:e(()=>[t(C,{class:"source-btn-box"},{default:e(()=>[t(O,{"file-list":u(q),"onUpdate:fileList":n[0]||(n[0]=w=>ye(q)?q.value=w:null),"show-file-list":!1,customRequest:u(V),onBeforeUpload:u(j)},{default:e(()=>[t(C,null,{default:e(()=>[T.ajax?we("",!0):(b(),h(z,{key:0,class:"sourceBtn-item",disabled:g.value},{icon:e(()=>[t(N,null,{default:e(()=>[t(u(_))]),_:1})]),default:e(()=>[n[3]||(n[3]=r(" 导入(json / txt) "))]),_:1},8,["disabled"]))]),_:1})]),_:1},8,["file-list","customRequest","onBeforeUpload"]),i("div",null,[t(z,{class:"sourceBtn-item",disabled:g.value,onClick:u(M)},{icon:e(()=>[t(N,null,{default:e(()=>[t(u(y))]),_:1})]),default:e(()=>[n[4]||(n[4]=r(" 下载 "))]),_:1},8,["disabled","onClick"]),t(S,{trigger:"hover"},{trigger:e(()=>[t(N,{class:"go-ml-1",size:"21",depth:3},{default:e(()=>[t(u(E))]),_:1})]),default:e(()=>[t(c,{depth:"3"},{default:e(()=>n[5]||(n[5]=[r("点击【下载】查看完整数据")])),_:1})]),_:1})])]),_:1}),t(se,{size:"small"},{default:e(()=>[t(ae,{code:u(B)(s.value),language:"json"},null,8,["code"])]),_:1})]),_:1})]),_:1},8,["title"])]),_:1})}}});const Ve=ne(qe,[["__scopeId","data-v-f6d90859"]]);export{Ve as C};