数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
7.0 KiB

import{d as A,r as h,G as K,o as k,f as H,w as u,l as r,m as s,a2 as W,c as D,a3 as x,j as $,t as M,k as S,a4 as j,L as N,N as U,C as G,u as P,I as X,b as Z,a5 as Q,h as _,D as Y,z as ee,F as te,x as ae,X as w,B as se,a6 as oe,E as le,S as b,q as O,Z as ne,$ as ie}from"./index-3679850f.js";import{_ as re,a as ce}from"./vueFile.vue_vue_type_script_setup_true_lang-604207ac.js";const de=["onClick"],ue={key:0,class:"drag-control"},pe={class:"item-control"},me=["onClick"],ge=["onClick"],fe=r("div",{class:"drag-move icon-move"},null,-1),_e={class:"tooltip"},ve=A({__name:"echarts",props:{data:{},type:{default:2}},emits:["controlBtnClick"],setup(R,{expose:T,emit:C}){const v=R,c=h(),m=h({list:[],config:{}});K(()=>v.data,o=>{o&&(m.value=o)},{immediate:!0});const g=o=>{if(v.type!==1)return;const f=o.newIndex,l=new Date().getTime().toString(),p=m.value.list[f];p&&(delete p.label,delete p.icon,Object.assign(p,{name:p.type+l}),V(p))},V=o=>{console.log("groupClick",o),c.value=o.name,C("controlBtnClick",o)},e=(o,f,l)=>{if(v.type!==2){if(o==="clone"){const p=l.type+new Date().getTime().toString(),a=JSON.parse(JSON.stringify(l));m.value.list.splice(f,0,Object.assign(a,{name:p}))}else o==="del"&&m.value.list.splice(f,1);C("controlBtnClick","")}};return T({getData:()=>m.value,setDataList:o=>{m.value=o},setData:o=>{console.log(o)}}),(o,f)=>(k(),H(N(U),j({itemKey:"id",list:m.value.list,name:"fade",class:"drag"},{group:"form",ghostClass:"ghost",animation:200,handle:".drag-move"},{onAdd:g}),{item:u(({element:l,index:p})=>[r("div",{class:S(["group",{["group-"+l.type]:!0,[l.class]:l.class,active:c.value===l.name}]),onClick:x(a=>V(l),["stop"])},[s(W,{option:l.option,width:l.width,height:l.height},null,8,["option","width","height"]),o.type===1?(k(),D("div",ue,[r("div",pe,[r("i",{class:"icon-clone",onClick:x(a=>e("clone",p,l),["stop"]),title:"克隆"},null,8,me),r("i",{class:"icon-del",onClick:x(a=>e("del",p,l),["stop"])},null,8,ge)]),fe])):$("",!0),r("div",_e,M(l.name),1)],10,de)]),_:1},16,["list"]))}}),he={class:"design-container design-chart"},ye={class:"components-list"},be=r("div",{class:"title"},"图表类型",-1),ke=["title"],Ce={class:"main-body"},Ve={class:"main-form design-form"},we={class:"sidebar-tools"},De=["innerHTML"],Te={key:0,id:"editJson"},xe={class:"dialog-footer"},Re=A({__name:"index",setup(R){const T=G(),C=P(),v=h(),c=h({}),m=h([{icon:"line",label:"折线图",type:"line",option:{xAxis:{type:"category",data:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},yAxis:{type:"value"},series:[{data:[150,230,224,218,135,147,260],type:"line"}]}},{icon:"bar",label:"柱状图",type:"bar",option:{xAxis:{type:"category",data:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},yAxis:{type:"value"},series:[{data:[120,200,150,80,70,110,130],type:"bar"}]}},{icon:"pie",label:"饼图",type:"pie",option:{series:[{name:"Access From",type:"pie",radius:"50%",data:[{value:1048,name:"Search Engine"},{value:735,name:"Direct"},{value:580,name:"Email"},{value:484,name:"Union Ads"},{value:300,name:"Video Ads"}]}]}}]),g=h(),V=a=>JSON.parse(JSON.stringify(a)),e=X({editor:{},loading:!1,id:C.query.id,direction:"rtl",dialogTitle:"",visible:!1,dialogType:"",name:""}),B=a=>{c.value=a},E=a=>{const t=g.value.getData();switch(a){case"del":g.value.setDataList([]),c.value="";break;case"json":L(t,{type:"export"});break;case"vue":v.value.openEcharts(t);break;case"save":f(t);break}},L=(a,t={})=>{var d,y;e.direction=t.direction||"rtl",e.visible=!0,e.dialogTitle=t.title,e.dialogType=t.type,a||(a=g.value.getData());let i=w(a,!0);switch(t.type){case"beforeRequest":(d=a.config)!=null&&d.beforeRequest?i=w(a.config.beforeRequest,!0):i=ie;break;case"afterResponse":(y=a.config)!=null&&y.afterResponse?i=w(a.config.afterResponse,!0):i=ne;break}se(()=>{e.editor=oe(i)})},o=()=>{try{const a=le(e.editor.getValue());switch(e.dialogType){case"export":g.value.setDataList(a);break;case"beforeRequest":case"afterResponse":const t=g.value.getData();t.config[e.dialogType]=a;break}e.visible=!1}catch(a){b.error(a.message)}},f=a=>{if(!e.name){b.error("请输入图表保存的名称");return}e.loading=!0;const t={data:w(a),id:e.id,name:e.name};O("saveEcharts",t).then(i=>{var d;console.log(i),b({message:((d=i.data)==null?void 0:d.message)||"保存成功!",type:"success"}),T.push({path:"/echarts/list"}),e.loading=!1}).catch(i=>{var d;b.error(((d=i.data)==null?void 0:d.message)||"保存异常"),e.loading=!1})},l=a=>{a()},p=()=>{e.id&&(e.loading=!0,O("echartsList",{id:e.id}).then(a=>{e.loading=!1;const t=a.data;e.name=t.name,g.value.setDataList(t.list)}).catch(a=>{var t;b.error(((t=a.data)==null?void 0:t.message)||"操作异常"),e.loading=!1}))};return Z(()=>{p()}),Q(()=>{Object.keys(e.editor).length!==0&&(e.editor.destroy(),e.editor.container.remove())}),(a,t)=>{const i=_("el-input"),d=_("el-form-item"),y=_("el-tab-pane"),q=_("el-tabs"),F=_("el-form"),z=_("el-button"),J=_("el-drawer"),I=Y("loading");return ee((k(),D("div",he,[r("div",ye,[be,s(N(U),{itemKey:"key",tag:"ul",modelValue:m.value,"onUpdate:modelValue":t[0]||(t[0]=n=>m.value=n),group:{name:"form",pull:"clone",put:!1},"ghost-class":"ghost",sort:!1,clone:V},{item:u(({element:n})=>[r("li",{class:S([n.type])},[r("i",{class:S(`icon-${n.icon}`)},null,2),r("span",{title:n.label},M(n.label),9,ke)],2)]),_:1},8,["modelValue"])]),r("div",Ce,[s(re,{onClick:E,type:"2"}),r("div",Ve,[s(ve,{type:1,onControlBtnClick:B,ref_key:"echartsEl",ref:g},null,512)])]),r("div",we,[s(F,{size:"small"},{default:u(()=>[s(q,{modelValue:"first"},{default:u(()=>[s(y,{label:"图表属性",name:"first"},{default:u(()=>[Object.keys(c.value).length?(k(),D(te,{key:0},[s(d,{label:"自定义Class"},{default:u(()=>[s(i,{placeholder:"自定义Class",modelValue:c.value.class,"onUpdate:modelValue":t[1]||(t[1]=n=>c.value.class=n)},null,8,["modelValue"])]),_:1}),s(d,{label:"字段标识"},{default:u(()=>[s(i,{placeholder:"字段标识",modelValue:c.value.name,"onUpdate:modelValue":t[2]||(t[2]=n=>c.value.name=n)},null,8,["modelValue"])]),_:1}),s(d,{label:"图表宽度"},{default:u(()=>[s(i,{placeholder:"图表宽度,数字类型",modelValue:c.value.width,"onUpdate:modelValue":t[3]||(t[3]=n=>c.value.width=n),modelModifiers:{number:!0}},null,8,["modelValue"])]),_:1}),s(d,{label:"图表高度"},{default:u(()=>[s(i,{placeholder:"图表高度,数字类型",modelValue:c.value.height,"onUpdate:modelValue":t[4]||(t[4]=n=>c.value.height=n),modelModifiers:{number:!0}},null,8,["modelValue"])]),_:1})],64)):$("",!0)]),_:1}),s(y,{label:"图表配置",name:"two"},{default:u(()=>[s(d,{label:"保存名称"},{default:u(()=>[s(i,{placeholder:"保存名称",modelValue:e.name,"onUpdate:modelValue":t[5]||(t[5]=n=>e.name=n)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),s(J,{modelValue:e.visible,"onUpdate:modelValue":t[6]||(t[6]=n=>e.visible=n),size:"60%",direction:e.direction,class:"ace-dialog","append-to-body":!0,"before-close":l},{header:u(()=>[r("div",{innerHTML:e.dialogTitle},null,8,De)]),default:u(()=>[e.visible?(k(),D("div",Te)):$("",!0),r("div",xe,[s(z,{type:"primary",size:"small",onClick:o},{default:u(()=>[ae(" 确定 ")]),_:1})])]),_:1},8,["modelValue","direction"]),s(ce,{ref_key:"vueFileEl",ref:v},null,512)])),[[I,e.loading]])}}});export{Re as default};