record-0d59df3d.js 13 KB

12345678910111213
  1. import{d as te}from"./db-3225034f.js";import{_ as oe,P as L,K as le,E as q,Q as ae,R as S,S as ne,T as se,M as ie,U as re,V as de,W as ue,X as me,Y as ce,r,j as pe,o as u,d as c,w as s,k,m as x,b as n,f as m,l as T,c as g,F as b,u as h,C as fe,a as he,t as D}from"./index-34ec9885.js";import{M as _e}from"./monaco-editor-4ba4293e.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 e=o.data.data;this.DIC.sql=e.records.map(i=>({label:i.name,value:i.id}))})},getTypeLabel(o){return Q.find(e=>e.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 e=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=e(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 t=i,a={},f=this.form.dataMethod;if(this.form.proxy&&(d.proxy=!0),["post","put"].includes(f)){if(a.data=i,this.form.dataQueryType=="form"){this.form.proxy&&(d.form=!0);let _=[];Object.keys(t).forEach(y=>{_.push(`${y}=${t[y]}`)}),a.data=_.join("&")}}else["get","delete"].includes(f)&&(a.params=i);this.$axios({method:this.form.dataMethod,url:this.form.url,headers:d,...a}).then(_=>{this.result=e(_.data)})}else if(this.isSql)ne(this.getSql(this.form)).then(i=>{this.result=e(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=(t={})=>{const a=JSON.parse(t.data);this.result=e(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},(t,a)=>{console.log("Subscribe to topics res",a,t)})}),this.mqClient.on("message",(t,a)=>{let f=d.topic;if(t===f.name){let _=JSON.parse(a);this.result=e(_)}})}},handleImport(o,e){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,e){this.result="",e=="edit"?re(this.form.id).then(i=>{const d=i.data.data;if(this.form=d,this.isSql){let t=JSON.parse(this.form.data);this.form.dbId=t.id,this.form.dbSql=q.decryptAES(t.sql)}this.handleRes(!1),o&&o()}):o&&o(),this.form.dataFormatter=this.form.dataFormatter||`(data)=>{
  2. return {
  3. data
  4. }
  5. }`,this.form.dataQuery=this.form.dataQuery||`()=>{
  6. return {
  7. }
  8. }`,this.form.dataHeader=this.form.dataHeader||`()=>{
  9. return {
  10. }
  11. }`},handleEdit(o,e){this.$refs.crud.rowEdit(o,e)},rowDel(o,e){if(this.validData(e)&&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,e,i,d){if(this.validData(e)&&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(t=>{d()})},rowSave(o,e,i){this.isSql&&(o.data=this.getSql(o),o.dbSql=q.encryptAES(o.dbSql)),me(o).then(()=>{this.$message.success("新增成功"),this.onLoad(),e()}).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 e=o.data.data;let i=e.records;i.forEach(d=>d._menu=!1),this.page.total=e.total,this.data=i})}}},be={class:"content__box content__nav"},ye=["src"],ve={class:"content__page"},Ve={class:"list-search"},Ce={class:"content__box"},qe=["onMouseenter","onMouseleave"],Se={class:"content__info"},ke={class:"content__logo"},xe={key:0,class:"content__menu"},Te={class:"content__right"},Ue={class:"content__start"},we=["onClick"],De=["onClick"],Le={class:"content__main"},Me={class:"content__name"},Oe={class:"content__status"};function je(o,e,i,d,t,a){const f=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"),P=r("el-radio-group"),j=r("el-tab-pane"),R=r("el-tabs"),E=r("json-viewer"),I=r("avue-crud"),N=r("el-icon-search"),v=r("el-icon"),F=r("el-pagination"),W=r("el-header"),H=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"),G=r("el-main"),Z=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:t.option,modelValue:t.form,"onUpdate:modelValue":e[14]||(e[14]=l=>t.form=l),style:{display:"none"},page:t.page,"onUpdate:page":e[15]||(e[15]=l=>t.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:t.data}),{"content-form":s(({})=>[a.isStatic?(u(),c(p,{key:0,label:"数据值","label-position":"top"},{default:s(()=>[n(f,{modelValue:t.form.data,"onUpdate:modelValue":e[0]||(e[0]=l=>t.form.data=l),language:"javascript",height:"100"},null,8,["modelValue"]),e[21]||(e[21]=m("br",null,null,-1)),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(()=>[...e[20]||(e[20]=[T("导入数据(Excel)",-1)])]),_:1})]),_:1},8,["on-change"])]),_:1})):a.isSql?(u(),g(b,{key:1},[n(p,{label:"数据源选择"},{default:s(()=>[n(M,{dic:t.DIC.sql,modelValue:t.form.dbId,"onUpdate:modelValue":e[1]||(e[1]=l=>t.form.dbId=l)},null,8,["dic","modelValue"])]),_:1}),n(p,{label:"SQL语句","label-position":"top"},{default:s(()=>[n(f,{modelValue:t.form.dbSql,"onUpdate:modelValue":e[2]||(e[2]=l=>t.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:t.form.dataMethod,"onUpdate:modelValue":e[3]||(e[3]=l=>t.form.dataMethod=l),dic:t.DIC.method},null,8,["modelValue","dic"])]),_:1})):h("",!0),a.isApi?(u(),c(p,{key:1,label:"地址"},{default:s(()=>[n(z,{modelValue:t.form.url,"onUpdate:modelValue":e[4]||(e[4]=l=>t.form.url=l),placeholder:"请输入地址"},null,8,["modelValue"])]),_:1})):h("",!0),a.isApi?(u(),c(p,{key:2,label:"开启跨域"},{default:s(()=>[n(A,{modelValue:t.form.proxy,"onUpdate:modelValue":e[5]||(e[5]=l=>t.form.proxy=l),onClick:a.handleRes},null,8,["modelValue","onClick"])]),_:1})):h("",!0)],64)):a.isWs?(u(),c(p,{key:3,label:"WS地址"},{default:s(()=>[n(U,{modelValue:t.form.wsUrl,"onUpdate:modelValue":e[6]||(e[6]=l=>t.form.wsUrl=l)},null,8,["modelValue"])]),_:1})):a.isMqtt?(u(),g(b,{key:4},[n(p,{label:"MQTT地址"},{default:s(()=>[n(U,{modelValue:t.form.mqttUrl,"onUpdate:modelValue":e[7]||(e[7]=l=>t.form.mqttUrl=l)},null,8,["modelValue"])]),_:1}),n(p,{label:"MQTT配置"},{default:s(()=>[n(f,{modelValue:t.form.mqttConfig,"onUpdate:modelValue":e[8]||(e[8]=l=>t.form.mqttConfig=l),height:"250"},null,8,["modelValue"])]),_:1})],64)):h("",!0),a.isWs||a.isApi?(u(),c(p,{key:5,label:"请求配置"},{default:s(()=>[n(R,{class:"menu__tabs",modelValue:t.tabs,"onUpdate:modelValue":e[12]||(e[12]=l=>t.tabs=l)},{default:s(()=>[n(j,{label:"请求参数(Body)",name:"0"},{default:s(()=>[t.tabs==0?(u(),g(b,{key:0},[["post","put"].includes(t.form.dataMethod)?(u(),c(P,{key:0,size:"small",modelValue:t.form.dataQueryType,"onUpdate:modelValue":e[9]||(e[9]=l=>t.form.dataQueryType=l)},{default:s(()=>[n(O,{label:"json"},{default:s(()=>[...e[22]||(e[22]=[T("JSON数据",-1)])]),_:1}),n(O,{label:"form"},{default:s(()=>[...e[23]||(e[23]=[T("FORM表单",-1)])]),_:1})]),_:1},8,["modelValue"])):h("",!0),n(f,{modelValue:t.form.dataQuery,"onUpdate:modelValue":e[10]||(e[10]=l=>t.form.dataQuery=l),language:"javascript",height:"100"},null,8,["modelValue"])],64)):h("",!0)]),_:1}),a.isApi?(u(),c(j,{key:0,label:"请求头(Headers)",name:"1"},{default:s(()=>[t.tabs==1?(u(),c(f,{key:0,modelValue:t.form.dataHeader,"onUpdate:modelValue":e[11]||(e[11]=l=>t.form.dataHeader=l),language:"javascript",height:"100"},null,8,["modelValue"])):h("",!0)]),_:1})):h("",!0)]),_:1},8,["modelValue"])]),_:1})):h("",!0),n(p,{label:"过滤器"},{default:s(()=>[n(f,{modelValue:t.form.dataFormatter,"onUpdate:modelValue":e[13]||(e[13]=l=>t.form.dataFormatter=l),height:"100"},null,8,["modelValue"])]),_:1}),n(p,{label:"响应数据"},{default:s(()=>[k(n(E,x({value:t.result},o.$loadingParams,{copyable:"",theme:"avue-json-theme",boxed:""}),null,16,["value"]),[[V,t.boxLoading]])]),_:1})]),"menu-form":s(()=>[n(_,{onClick:a.handleRes,icon:"el-icon-upload",type:"primary"},{default:s(()=>[...e[24]||(e[24]=[T("刷新数据",-1)])]),_:1},8,["onClick"])]),_:1},16,["option","modelValue","page","onRowSave","onRowUpdate","onRowDel","onOnLoad","before-close","before-open","data"])),[[V,t.loading]]),n(W,{class:"content__header"},{default:s(()=>[m("div",be,[m("div",{class:"content__add",onClick:e[16]||(e[16]=l=>o.$refs.crud.rowAdd())},[m("img",{src:`${t.publicPath}img/db.png`,height:"40px",alt:""},null,8,ye),e[25]||(e[25]=m("div",null,[m("p",null,"创建数据集"),m("span",null,"多种查询方式 自由组合")],-1))]),m("div",ve,[m("div",Ve,[n(U,{modelValue:t.search.name,"onUpdate:modelValue":e[17]||(e[17]=l=>t.search.name=l),onKeyup:fe(a.onLoad,["enter"]),placeholder:"请输入名称"},{suffix:s(()=>[n(v,{onClick:a.onLoad,class:"el-input__icon"},{default:s(()=>[n(N)]),_:1},8,["onClick"])]),_:1},8,["modelValue","onKeyup"])]),t.page.total>0?(u(),c(F,{key:0,layout:"total, prev, pager, next,jumper",background:"",size:"small",onSizeChange:a.handleSizeChange,onCurrentChange:a.handleCurrentChange,"page-size":t.page.size,"current-page":t.page.page,"onUpdate:currentPage":e[18]||(e[18]=l=>t.page.page=l),total:t.page.total},null,8,["onSizeChange","onCurrentChange","page-size","current-page","total"])):h("",!0)])])]),_:1}),k((u(),c(G,x({class:"content"},o.$loadingParams),{default:s(()=>[m("div",Ce,[t.data.length>0?(u(!0),g(b,{key:0},he(t.data,(l,w)=>(u(),g("div",{class:"content__item",onMouseenter:C=>l._menu=!0,onMouseleave:C=>l._menu=!1,key:w},[m("div",Se,[m("div",ke,[m("p",null,D(a.getTypeLabel(l.dataType)),1)]),l._menu?(u(),g("div",xe,[m("div",Te,[n(B,{content:"测试"},{default:s(()=>[n(v,{onClick:C=>a.handleResult(l)},{default:s(()=>[n(H)]),_:1},8,["onClick"])]),_:2},1024)]),m("div",Ue,[m("div",{class:"content__btn",onClick:C=>a.handleEdit(l,w)},[n(v,null,{default:s(()=>[n(J)]),_:1})],8,we),m("div",{class:"content__btn",onClick:C=>a.rowDel(l,w)},[n(v,null,{default:s(()=>[n(K)]),_:1})],8,De)])])):h("",!0)]),m("div",Le,[m("span",Me,D(l.name),1),m("span",Oe,D(l.username),1)])],40,qe))),128)):(u(),c(Y,{key:1,class:"content__empty",description:"暂无数据"},{image:s(()=>[n(X,{"icon-class":"empty"})]),_:1}))])]),_:1},16)),[[V,t.loading]]),n(Z,{ref:"db"},null,512),n($,{title:t.form.name,class:"avue-dialog",modelValue:t.box,"onUpdate:modelValue":e[19]||(e[19]=l=>t.box=l),width:"50%"},{default:s(()=>[k(n(E,x({value:t.result,copyable:""},o.$loadingParams,{theme:"avue-json-theme",boxed:""}),null,16,["value"]),[[V,t.boxLoading]])]),_:1},8,["title","modelValue"])]),_:1})}const Ae=oe(ge,[["render",je]]);export{Ae as default};