14 lines
13 KiB
JavaScript
Raw Normal View History

2025-06-30 09:38:03 +08:00
import{d as te}from"./db-e07de7fa.js";import{_ as oe,R as L,M as le,H as q,S as ae,T as S,U as ne,V as se,O as ie,W as re,X as de,Y as ue,Z as me,$ as ce,r,j as pe,o as u,d as c,w as s,k,m as x,b as n,l as T,c as g,F as b,u as f,f as m,C as he,a as fe,t as D}from"./index-f87df9cc.js";import{M as _e}from"./monaco-editor-f9caa2e2.js";L.dataType.splice(4,1);const Q=L.dataType,ge={components:{MonacoEditor:_e,db:te},data(){return{boxLoading:!1,box:!1,search:{},loading:!1,tabs:0,box:!1,client:{},mqClient:{},DIC:{method:L.dataMethod,sql:[]},result:{},form:{},data:[],page:{pageSize:10,currentPage:1,total:0},option:{height:"auto",calcHeight:140,header:!1,labelWidth:130,index:!0,align:"center",headerAlign:"center",column:[{label:"名称",prop:"name",rules:[{required:!0,message:"请输入名称",trigger:"blur"}]},{label:"类型",prop:"dataType",type:"select",dicData:Q,rules:[{required:!0,message:"请选择类型",trigger:"blur"}]},{label:"",prop:"content",hide:!0,labelWidth:0,span:24}]},publicPath:"/DataV/"}},computed:{isStatic(){return this.form.dataType===0},isApi(){return this.form.dataType==1},isSql(){return this.form.dataType==2},isWs(){return this.form.dataType===3},isMqtt(){return this.form.dataType==6},isNode(){return this.form.dataType==7}},watch:{"form.dataType"(){this.result="",this.tabs="0"}},created(){this.init()},methods:{init(){le({current:1,size:100}).then(o=>{const t=o.data.data;this.DIC.sql=t.records.map(i=>({label:i.name,value:i.id}))})},getTypeLabel(o){return Q.find(t=>t.value==o).label},getSql(o){return JSON.stringify({id:o.dbId,sql:q.encryptAES(o.dbSql)})},handleClose(){this.mqClient.end&&this.mqClient.end(),this.mqClient.close&&this.mqClient.close(),this.client.close&&this.client.close()},handleResult(o){this.form=o,this.box=!0,this.beforeOpen(()=>{},"edit")},handleTest(){this.$refs.db.handleOpen(this.form.dbId)},handleRes(o=!0){this.boxLoading=!0;const t=i=>{this.boxLoading=!1;const d=S(this.form.dataFormatter);return o&&this.$message.success("数据刷新成功"),typeof d=="function"?d(i):i};if(this.isStatic){let i=ae(this.form.data);this.result=t(i)}else if(this.isApi){let i=S(this.form.dataQuery);i=typeof i=="function"&&i(this.form.url)||{};let d=S(this.form.dataHeader);d=typeof d=="function"&&d(this.form.url)||{};let e=i,a={},h=this.form.dataMethod;if(this.form.proxy&&(d.proxy=!0),["post","put"].includes(h)){if(a.data=i,this.form.dataQueryType=="form"){this.form.proxy&&(d.form=!0);let _=[];Object.keys(e).forEach(y=>{_.push(`${y}=${e[y]}`)}),a.data=_.join("&")}}else["get","delete"].includes(h)&&(a.params=i);this.$axios({method:this.form.dataMethod,url:this.form.url,headers:d,...a}).then(_=>{this.result=t(_.data)})}else if(this.isSql)ne(this.getSql(this.form)).then(i=>{this.result=t(i.data.data)});else if(this.isWs){this.handleClose();let i=this.form.dataQuery?S(this.form.dataQuery)():{},d=this.form.wsUrl+se(i);this.client=new WebSocket(d),this.client.onmessage=(e={})=>{const a=JSON.parse(e.data);this.result=t(a)}}else if(this.isMqtt){this.handleClose();let i=this.form.mqttUrl,d=JSON.parse(this.form.mqttConfig);d.clientId="mqttjs_"+new Date().getTime(),this.mqClient=ie.connect(i,d),this.mqClient.on("connect",()=>{this.mqClient.subscribe(d.topic.name,{qos:d.topic.qos||0},(e,a)=>{console.log("Subscribe to topics res",a,e)})}),this.mqClient.on("message",(e,a)=>{let h=d.topic;if(e===h.name){let _=JSON.parse(a);this.result=t(_)}})}},handleImport(o,t){this.$Export.xlsx(o.raw).then(i=>{this.form.data=i.results,this.$message.success("导入成功")})},validData(o){return[0,1,2].includes(o)},beforeClose(o){this.handleClose(),o()},beforeOpen(o,t){this.result="",t=="edit"?re(this.form.id).then(i=>{const d=i.data.data;if(this.form=d,this.isSql){let e=JSON.parse(this.form.data);this.form.dbId=e.id,this.form.dbSql=q.decryptAES(e.sql)}this.handleRes(!1),o&&o()}):o&&o(),this.form.dataFormatter=this.form.dataFormatter||`(data)=>{
return {
data
}
}`,this.form.dataQuery=this.form.dataQuery||`()=>{
return {
}
}`,this.form.dataHeader=this.form.dataHeader||`()=>{
return {
}
}`},handleEdit(o,t){this.$refs.crud.rowEdit(o,t)},rowDel(o,t){if(this.validData(t)&&this.$website.isDemo)return this.$message.error(this.$website.isDemoTip),!1;this.$confirm("此操作将永久删除, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{de(o.id).then(()=>{this.$message.success("删除成功"),this.onLoad()})}).catch(()=>{})},rowUpdate(o,t,i,d){if(this.validData(t)&&this.$website.isDemo)return i(),this.$message.error(this.$website.isDemoTip),!1;this.isSql&&(o.data=this.getSql(o),o.dbSql=q.encryptAES(o.dbSql)),ue(o).then(()=>{i(),this.$message.success("修改成功"),this.onLoad()}).catch(e=>{d()})},rowSave(o,t,i){this.isSql&&(o.data=this.getSql(o),o.dbSql=q.encryptAES(o.dbSql)),me(o).then(()=>{this.$message.success("新增成功"),this.onLoad(),t()}).catch(d=>{i()})},handleCurrentChange(o){this.page.currentPage=o,this.onLoad()},handleSizeChange(o){this.page.pageSize=o,this.onLoad()},onLoad(){this.loading=!0,ce({name:this.search.name,current:this.page.currentPage,size:this.page.pageSize}).then(o=>{this.loading=!1;const t=o.data.data;let i=t.records;i.forEach(d=>d._menu=!1),this.page.total=t.total,this.data=i})}}},be=m("br",null,null,-1),ye={class:"content__box content__nav"},ve=["src"],Ve=m("div",null,[m("p",null,"创建数据集"),m("span",null,"多种查询方式 自由组合")],-1),Ce={class:"content__page"},qe={class:"list-search"},Se={class:"content__box"},ke=["onMouseenter","onMouseleave"],xe={class:"content__info"},Te={class:"content__logo"},Ue={key:0,class:"content__menu"},we={class:"content__right"},De={class:"content__start"},Le=["onClick"],Me=["onClick"],Oe={class:"content__main"},je={class:"content__name"},Ee={class:"content__status"};function Qe(o,t,i,d,e,a){const h=r("monaco-editor"),_=r("el-button"),y=r("el-upload"),p=r("el-form-item"),M=r("avue-select"),z=r("avue-input"),A=r("avue-switch"),U=r("el-input"),O=r("el-radio"),R=r("el-radio-group"),j=r("el-tab-pane"),P=r("el-tabs"),E=r("json-viewer"),I=r("avue-crud"),N=r("el-icon-search"),v=r("el-icon"),F=r("el-pagination"),H=r("el-header"),W=r("el-icon-connection"),B=r("el-tooltip"),J=r("el-icon-edit"),K=r("el-icon-delete"),X=r("svg-icon"),Y=r("el-empty"),Z=r("el-main"),G=r("db"),$=r("el-dialog"),ee=r("el-container"),V=pe("loading");return u(),c(ee,{class:"list"},{default:s(()=>[k((u(),c(I,x({ref:"crud",option:e.option,modelValue:e.form,"onUpdate:modelValue":t[14]||(t[14]=l=>e.form=l),style:{display:"none"},page:e.page,"onUpdate:page":t[15]||(t[15]=l=>e.page=l),onRowSave:a.rowSave,onRowUpdate:a.rowUpdate,onRowDel:a.rowDel,onOnLoad:a.onLoad},o.$loadingParams,{"before-close":a.beforeClose,"before-open":a.beforeOpen,data:e.data}),{"content-form":s(({})=>[a.isStatic?(u(),c(p,{key:0,label:"数据值","label-position":"top"},{default:s(()=>[n(h,{modelValue:e.form.data,"onUpdate:modelValue":t[0]||(t[0]=l=>e.form.data=l),language:"javascript",height:"100"},null,8,["modelValue"]),be,n(y,{"show-file-list":!1,"auto-upload":!1,style:{display:"inline-block"},accept:".xls,.xlsx","on-change":a.handleImport},{default:s(()=>[n(_,{icon:"el-icon-upload",type:"success"},{default:s(()=>[T("导入数据(Excel)")]),_:1})]),_:1},8,["on-change"])]),_:1})):a.isSql?(u(),g(b,{key:1},[n(p,{label:"数据源选择"},{default:s(()=>[n(M,{dic:e.DIC.sql,modelValue:e.form.dbId,"onUpdate:modelValue":t[1]||(t[1]=l=>e.form.dbId=l)},null,8,["dic","modelValue"])]),_:1}),n(p,{label:"SQL语句","label-position":"top"},{default:s(()=>[n(h,{modelValue:e.form.dbSql,"onUpdate:modelValue":t[2]||(t[2]=l=>e.form.dbSql=l),language:"sql",height:"100"},null,8,["modelValue"])]),_:1})],64)):a.isApi||a.isNode?(u(),g(b,{key:2},[a.isApi?(u(),c(p,{key:0,label:"请求方式"},{default:s(()=>[n(M,{modelValue:e.form.dataMethod,"onUpdate:modelValue":t[3]||(t[3]=l=>e.form.dataMethod=l),dic:e.DIC.method},null,8,["modelValue","dic"])]),_:1})):f("",!0),a.isApi?(u(),c(p,{key:1,label:"地址"},{default:s(()=>[n(z,{modelValue:e.form.url,"onUpdate:modelValue":t[4]||(t[4]=l=>e.form.url=l),placeholder:"请输入地址"},null,8,["modelValue"])]),_:1})):f("",!0),a.i