2025-06-30 09:38:03 +08:00

26 lines
12 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as z,aF as U,aG as I,aH as P,a4 as oe,r as s,o as l,d as u,w as d,f as a,b as r,c as p,t as O,u as _,m as E,D as C,v as ae,ab as se,ac as ie,j as le,C as re,a as T,F as j,k as ce,l as y,E as he,G as de}from"./index-f87df9cc.js";import{M as B}from"./monaco-editor-f9caa2e2.js";const ue={inject:["contain"],components:{AvueEchartCommon:U,AvueEchartVue:I,AvueEchartHtml:P,MonacoEditor:B},watch:{"form.content"(t){this.handleOption()},modelValue:{handler(t){this.form=t},deep:!0},form:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},props:{modelValue:{}},data(){return{common:oe,error:"",vueOption:"",box:!1,reload:!1,options:{height:600,language:"javascript"},form:{}}},methods:{errorChange(t){this.error=t},handleOpen(){this.form=this.modelValue,this.box=!0,this.$nextTick(()=>{this.handleOption()})},handleClose(){this.$emit("update:modelValue",this.form),this.box=!1},handleOption(){this.reload=!1,this.vueOption=this.deepClone(this.form),this.$nextTick(()=>{this.reload=!0})}}},pe={class:"code-edit"},_e={class:"left"},me={key:0,class:"right"},ge={key:0,class:"tip"};function ve(t,n,c,h,e,i){const w=s("monaco-editor"),m=s("avue-echart-vue"),x=s("avue-echart-common"),D=s("avue-echart-html"),S=s("el-dialog");return l(),u(S,{title:"代码编辑",fullscreen:"","modal-append-to-body":"",modelValue:e.box,"onUpdate:modelValue":n[1]||(n[1]=f=>e.box=f),"append-to-body":"","close-on-click-modal":!1,width:"100%"},{default:d(()=>[a("div",pe,[a("div",_e,[r(w,{modelValue:e.form.content,"onUpdate:modelValue":n[0]||(n[0]=f=>e.form.content=f),language:e.options.language,height:e.options.height,options:e.options},null,8,["modelValue","language","height","options"])]),e.reload?(l(),p("div",me,[e.error?(l(),p("div",ge,O(e.error),1)):_("",!0),e.form.type==0?(l(),u(m,E({key:1},i.contain&&i.contain.activeObj,{option:e.vueOption,onErrorChange:i.errorChange,width:"100%",height:"100%"}),null,16,["option","onErrorChange"])):e.form.type==1?(l(),u(x,E({key:2},i.contain&&i.contain.activeObj,{"echart-formatter-str":e.vueOption.content,onErrorChange:i.errorChange,width:"100%"}),null,16,["echart-formatter-str","onErrorChange"])):e.form.type==2?(l(),u(D,E({key:3},i.contain&&i.contain.activeObj,{option:e.vueOption,onErrorChange:i.errorChange,width:"100%"}),null,16,["option","onErrorChange"])):_("",!0)])):_("",!0)])]),_:1},8,["modelValue"])}const fe=z(ue,[["render",ve],["__scopeId","data-v-b4a49101"]]),k=ae+"/component",be=t=>C({url:k+"/list",method:"get",params:t}),L=t=>C({url:k+"/detail",method:"get",params:{id:t}}),ye=t=>C({url:k+"/save",method:"post",data:t}),Ce=t=>C({url:k+"/update",method:"post",data:t}),ke=t=>C({url:k+"/remove",method:"post",params:{ids:t}});const V=[{label:"vue组件",value:0,content:`<template>
<div>
</div>
</template>
<script>
export default{
data(){
return {}
},
created(){
},
methods:{
}
}
<\/script>
<style>
</style>`},{label:"echart组件",value:1,content:`function (data,params){
const myChart = this.myChart;
return option;
}`},{label:"html组件",value:2,content:"<div style=''>html</div>"}],we={components:{codeEdit:fe,AvueEchartCommon:U,AvueEchartVue:I,AvueEchartHtml:P,MonacoEditor:B},props:{menu:{type:Boolean,default:!0},activeName:""},data(){return{search:{},error:"",loading:!1,reload:!1,active:0,dicData:V,options:{height:300,language:"javascript"},content:"",index:-1,isEdit:!1,form:{},vueOption:{},data:[],type:"",page:{size:50,page:1,total:0},dialog:!1,option:{labelWidth:120,column:[{label:"组件名称",prop:"name",row:!0,rules:[{required:!0,message:"请输入组件名称",trigger:"blur"}]},{label:"组件类型",prop:"type",type:"select",dicData:V,rules:[{required:!0,message:"请选择组件类型",trigger:"blur"}]},{label:"组件数据",prop:"content",span:24},{label:"组件预览",prop:"view",span:24}]},publicPath:"/DataV/"}},created(){this.menu||(this.active=this.activeName),this.getList()},watch:{"form.content"(t){this.handleOption()},"form.type"(t){if(this.isEdit){this.isEdit=!1;return}let n=V.find(c=>c.value==t)||{};this.form.content=n.content}},methods:{errorChange(t){this.error=t},handleTabClick(t){this.active=t.props.name,this.page.page=1,this.$nextTick(()=>{this.getList()})},getTypeLabel(t){return V.find(n=>n.value==t).label},handleRow(t,n){this.$emit("change",t)},validData(t){return[0,1,2,3,4].includes(t)},rowDel(t,n){if(this.validData(n)&&this.$website.isDemo)return this.$message.error(this.$website.isDemoTip),!1;this.$confirm("此操作将永久删除, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{ke(t.id).then(()=>{this.$message.success("删除成功"),this.getList()})})},handleOption(){this.reload=!1,this.vueOption=this.deepClone(this.form),this.$nextTick(()=>{this.reload=!0})},getImg(){return new Promise(t=>{html2canvas(document.querySelector(".view"),{useCORS:!0,backgroundColor:null,logging:!1,allowTaint:!0}).then(n=>{let c=n.toDataURL("image/jpeg",.1);c.length<10&&t("");var h=se(c,new Date().getTime()+".jpg"),e=new FormData;e.append("file",h),ie(e,"screenShot").then(i=>{const m=i.data.data.link;t(m)})})})},handleAdd(){this.form={name:"",type:"",content:""},this.type="add",this.isEdit=!0,this.handleOption(),this.dialog=!0},handleEdit(t,n){this.index=n,this.type="edit",this.isEdit=!0,L(t.id).then(c=>{const h=c.data.data;this.form=h,this.handleOption(),this.dialog=!0})},handleSubmit(t,n){this.type=="add"?this.rowSave(this.from,n):this.type=="edit"&&this.rowUpdate(this.from,this.index,n)},rowUpdate(t,n,c,h){if(this.validData(n)&&this.$website.isDemo)return c(),this.$message.error(this.$website.isDemoTip),!1;this.getImg().then(e=>(this.form.img=e,Ce(this.form))).then(()=>{c(),this.dialog=!1,this.$message.success("修改成功"),this.getList()}).catch(e=>{h()})},rowSave(t,n,c){this.getImg().then(h=>(this.form.img=h,ye(this.form))).then(()=>{n(),this.dialog=!1,this.$message.success("新增成功"),this.getList()}).catch(h=>{c()})},handleView(t,n){this.type="edit",this.isEdit=!0,L(t.id).then(c=>{const h=c.data.data;this.form=h,this.vueOption=this.deepClone({content:h.content}),this.$refs.code.handleOpen()})},handleCurrentChange(t){this.page.page=t,this.getList()},handleSizeChange(t){this.page.size=t,this.getList()},getList(){this.loading=!0,this.data=[],be({name:this.search.name,current:this.page.page,size:this.page.size,type:this.active}).then(t=>{this.loading=!1;const n=t.data.data;this.page.total=n.total,this.data=n.records,this.data.forEach((c,h)=>{this.data[h].type=this.data[h].type||0,this.data[h]._menu=!1})})}}},v=t=>(he("data-v-03b9aae9"),t=t(),de(),t),Ve={class:"content__box content__nav"},Oe=["src"],Ee=v(()=>a("div",null,[a("p",null,"创建组件"),a("span",null,"丰富组件,按需引入项目")],-1)),xe={class:"content__page"},De={class:"list-search"},Se={class:"content__box"},je=["onMouseenter","onMouseleave"],Te={class:"content__info"},Le=["src"],ze={key:0,class:"content__menu"},Ue={class:"content__right"},Ie={class:"content__start"},Pe=["onClick"],Be=["onClick"],Me=["onClick"],Ae={class:"content__main"},Ne={class:"content__name"},Fe={class:"content__status"},Re=v(()=>a("br",null,null,-1)),qe={key:0},Ke=v(()=>a("span",null,[a("a",{href:"https://echarts.apache.org/examples/zh/index.html",target:"_blank"},"官方组件库")],-1)),Ge=v(()=>a("span",null,[a("a",{href:"http://chart.majh.top",target:"_blank"},"三方组件库1")],-1)),He=v(()=>a("span",null,[a("a",{href:"http://echarts.zhangmuchen.top",target:"_blank"},"三方组件库2")],-1)),We=v(()=>a("span",null,[a("a",{href:"https://madeapie.com",target:"_blank"},"三方组件库3")],-1)),Je=v(()=>a("span",null,[a("a",{href:"http://ppchart.com",target:"_blank"},"三方组件库4")],-1)),Qe={key:0,class:"view"},Xe={key:0,class:"components__tip"};function Ye(t,n,c,h,e,i){const w=s("el-icon-search"),m=s("el-icon"),x=s("el-input"),D=s("el-pagination"),S=s("el-tab-pane"),f=s("el-tabs"),M=s("el-header"),A=s("el-icon-view"),N=s("el-tooltip"),F=s("el-icon-edit"),R=s("el-icon-delete"),q=s("el-icon-check"),K=s("svg-icon"),G=s("el-empty"),H=s("el-main"),W=s("monaco-editor"),J=s("el-button"),Q=s("avue-echart-vue"),X=s("avue-echart-common"),Y=s("avue-echart-html"),Z=s("avue-form"),$=s("el-dialog"),ee=s("code-edit"),te=s("el-container"),ne=le("loading");return l(),u(te,{class:"list"},{default:d(()=>[r(M,{class:"content__header"},{default:d(()=>[a("div",Ve,[c.menu?(l(),p("div",{key:0,class:"content__add",onClick:n[0]||(n[0]=(...o)=>i.handleAdd&&i.handleAdd(...o))},[a("img",{src:`${e.publicPath}img/components.png`,height:"40px",alt:""},null,8,Oe),Ee])):_("",!0),a("div",xe,[a("div",De,[r(x,{modelValue:e.search.name,"onUpdate:modelValue":n[1]||(n[1]=o=>e.search.name=o),onKeyup:re(i.getList,["enter"]),placeholder:"请输入名称"},{suffix:d(()=>[r(m,{onClick:i.getList,class:"el-input__icon"},{default:d(()=>[r(w)]),_:1},8,["onClick"])]),_:1},8,["modelValue","onKeyup"])]),e.page.total>0?(l(),u(D,{key:0,layout:"total, prev, pager, next,jumper",background:"",size:"small",onSizeChange:i.handleSizeChange,onCurrentChange:i.handleCurrentChange,"page-size":e.page.size,"current-page":e.page.page,"onUpdate:currentPage":n[2]||(n[2]=o=>e.page.page=o),total:e.page.total},null,8,["onSizeChange","onCurrentChange","page-size","current-page","total"])):_("",!0)])]),c.menu?(l(),u(f,{key:0,class:"list-tabs",modelValue:e.active,"onUpdate:modelValue":n[3]||(n[3]=o=>e.active=o),onTabClick:i.handleTabClick},{default:d(()=>[(l(!0),p(j,null,T(e.dicData,(o,g)=>(l(),u(S,{key:g,label:o.label,name:o.value},null,8,["label","name"]))),128))]),_:1},8,["modelValue","onTabClick"])):_("",!0)]),_:1}),ce((l(),u(H,E({class:"content"},t.$loadingParams),{default:d(()=>[a("div",Se,[e.data.length>0?(l(!0),p(j,{key:0},T(e.data,(o,g)=>(l(),p("div",{class:"content__item",onMouseenter:b=>o._menu=!0,onMouseleave:b=>o._menu=!1,key:g},[a("div",Te,[a("img",{src:t.computedImgUrl(o.img)||`${e.publicPath}img/components-default.png`,alt:""},null,8,Le),o._menu?(l(),p("div",ze,[a("div",Ue,[r(N,{content:"预览"},{default:d(()=>[r(m,{onClick:b=>i.handleView(o,g)},{default:d(()=>[r(A)]),_:2},1032,["onClick"])]),_:2},1024)]),a("div",Ie,[c.menu?(l(),p(j,{key:0},[a("div",{class:"content__btn",onClick:b=>i.handleEdit(o,g)},[r(m,null,{default:d(()=>[r(F)]),_:1})],8,Pe),a("div",{class:"content__btn",onClick:b=>i.rowDel(o,g)},[r(m,null,{default:d(()=>[r(R)]),_:1})],8,Be)],64)):(l(),p("div",{key:1,class:"content__btn",onClick:b=>i.handleRow(o,g)},[r(m,null,{default:d(()=>[r(q)]),_:1})],8,Me))])])):_("",!0)]),a("div",Ae,[a("span",Ne,O(o.name),1),a("span",Fe,O(i.getTypeLabel(o.type)),1)])],40,je))),128)):(l(),u(G,{key:1,class:"content__empty",description:"暂无数据"},{image:d(()=>[r(K,{"icon-class":"empty"})]),_:1}))])]),_:1},16)),[[ne,e.loading]]),r($,{title:"编辑组件",width:"70%","destroy-on-close":"","append-to-body":"","close-on-click-modal":!1,modelValue:e.dialog,"onUpdate:modelValue":n[7]||(n[7]=o=>e.dialog=o)},{default:d(()=>[r(Z,{option:e.option,modelValue:e.form,"onUpdate:modelValue":n[6]||(n[6]=o=>e.form=o),onSubmit:i.handleSubmit},{content:d(()=>[r(W,{modelValue:e.form.content,"onUpdate:modelValue":n[4]||(n[4]=o=>e.form.content=o),language:e.options.language,height:e.options.height,options:e.options},null,8,["modelValue","language","height","options"]),Re,e.form.type==1?(l(),p("div",qe,[Ke,y("   "),Ge,y("   "),He,y("   "),We,y("   "),Je])):_("",!0),r(J,{icon:"el-icon-edit",type:"primary",onClick:n[5]||(n[5]=o=>t.$refs.code.handleOpen())},{default:d(()=>[y("放大编辑器")]),_:1})]),view:d(()=>[e.reload?(l(),p("div",Qe,[e.error?(l(),p("div",Xe,O(e.error),1)):_("",!0),e.form.type==0?(l(),u(Q,{key:1,option:e.vueOption,onErrorChange:i.errorChange,width:"100%",height:"100%"},null,8,["option","onErrorChange"])):e.form.type==1?(l(),u(X,{key:2,"echart-formatter-str":e.vueOption.content,onErrorChange:i.errorChange,width:"100%"},null,8,["echart-formatter-str","onErrorChange"])):e.form.type==2?(l(),u(Y,{key:3,option:e.vueOption,onErrorChange:i.errorChange,width:"100%",height:"100%"},null,8,["option","onErrorChange"])):_("",!0)])):_("",!0)]),_:1},8,["option","modelValue","onSubmit"])]),_:1},8,["modelValue"]),r(ee,{ref:"code",modelValue:e.form,"onUpdate:modelValue":n[8]||(n[8]=o=>e.form=o)},null,8,["modelValue"])]),_:1})}const Ze=z(we,[["render",Ye],["__scopeId","data-v-03b9aae9"]]),tt=Object.freeze(Object.defineProperty({__proto__:null,default:Ze},Symbol.toStringTag,{value:"Module"}));export{Ze as a,tt as b,fe as c,L as g};