index-0661c272.js 9.2 KB

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