UNPKG

goldpankit

Version:

GoldPanKit是一款极速研发套件,可在套件中快速构建各类技术框架和项目。开源作者可发布自己的项目,并为其设定金额,实现开源项目的盈利。

2 lines (1 loc) 29.8 kB
import{_ as k,o as n,c,F as V,f as F,G as T,t as y,r as a,g as p,w as b,a as m,i as C,b as g,m as K,a5 as j,A as q,B as $,e as x,p as O,k as U,a0 as B,a6 as D}from"./index-8f73103e.js";import{s as P}from"./database-3f2a6015.js";import{Q as z}from"./QueryModelView-fef9c5b3.js";const X={name:"InstallCheckbox",props:{modelValue:{type:Array},type:{default:"checkbox"},options:{}},data(){return{}},computed:{optionValues(){return this.options.map(l=>l.value)}},watch:{modelValue:{immediate:!0,handler(){this.filterValues(this.modelValue)}},optionValues(){this.filterValues(this.modelValue)}},methods:{handleSelect(l){let t=this.modelValue.findIndex(u=>u===l.value),e=[];t===-1?e=this.modelValue.concat([l.value]):e=this.modelValue.filter((u,o)=>o!==t),this.filterValues(e)},filterValues(l){const t=[];for(const e of l)this.options.find(o=>o.value===e)!=null&&t.push(e);t!==this.modelValue&&(t!=null&&this.modelValue!=null&&t.join(",")===this.modelValue.join(",")||(this.$emit("update:modelValue",t),this.$emit("change",t)))}}},Y={key:0,class:"installer-checkbox"},Z=["onClick"],ee={key:1};function le(l,t,e,u,o,s){return e.options.length>0?(n(),c("ul",Y,[(n(!0),c(V,null,F(e.options,r=>(n(),c("li",{key:r.value,class:T({selected:e.modelValue==null?!1:e.modelValue.findIndex(v=>v===r.value)!==-1}),onClick:v=>s.handleSelect(r)},y(r.label),11,Z))),128))])):(n(),c("p",ee,"Please add options first."))}const Q=k(X,[["render",le],["__scopeId","data-v-e2e976b6"]]);const te={name:"InstallInput",props:{type:{default:"text"},rows:{default:3}}};function ne(l,t,e,u,o,s){const r=a("el-input");return n(),p(r,{type:e.type,rows:e.rows,class:"install-input"},null,8,["type","rows"])}const N=k(te,[["render",ne],["__scopeId","data-v-35abcc78"]]);const ae={name:"InstallRadio",props:{modelValue:{},options:{}},data(){return{optionSettingData:{visible:!1}}},methods:{handleSelect(l){this.$emit("update:modelValue",l),this.$emit("change",l)}}},oe={key:0,class:"installer-radio"},ie=["onClick"],se={key:1};function ue(l,t,e,u,o,s){return e.options.length>0?(n(),c("ul",oe,[(n(!0),c(V,null,F(e.options,r=>(n(),c("li",{key:r.value,class:T({selected:e.modelValue===r.value}),onClick:v=>s.handleSelect(r.value)},y(r.label),11,ie))),128))])):(n(),c("p",se,"Please add options first."))}const W=k(ae,[["render",ue],["__scopeId","data-v-f13c727d"]]);const de={name:"MySqlFieldSelect",props:{modelValue:{},table:{required:!0},multiple:{default:!0}},methods:{handleInput(l){this.$emit("update:modelValue",l.map(t=>this.table.fields.find(e=>e.name===t)).filter(t=>t!=null))}}},re={class:"option-content"},ce={class:"text-info-1"};function me(l,t,e,u,o,s){const r=a("el-option"),v=a("el-select");return n(),p(v,{class:"mysql-field-select","popper-class":"mysql-field-select__popper",multiple:e.multiple,"model-value":e.modelValue==null?[]:e.modelValue.map(f=>f.name),"onUpdate:modelValue":s.handleInput},{default:b(()=>[(n(!0),c(V,null,F(e.table.fields,f=>(n(),p(r,{value:f.name,label:f.name},{default:b(()=>[m("p",re,[m("span",null,y(f.name),1),m("span",ce,y(f.comment),1)])]),_:2},1032,["value","label"]))),256))]),_:1},8,["multiple","model-value","onUpdate:modelValue"])}const _e=k(de,[["render",me],["__scopeId","data-v-3550a1ac"]]);const he={name:"OptionValueInput",props:{modelValue:{},optionSetting:{required:!0}},methods:{emitChange(l){this.$emit("update:model-value",l),this.$emit("input",l)}}},pe={class:"option-value-input"};function ve(l,t,e,u,o,s){const r=a("el-input"),v=a("el-input-number");return n(),c("div",pe,[e.optionSetting.inputType==="input"?(n(),p(r,{key:0,"model-value":e.modelValue,"onUpdate:modelValue":s.emitChange},null,8,["model-value","onUpdate:modelValue"])):e.optionSetting.inputType==="number_input"?(n(),p(v,{key:1,"model-value":e.modelValue,controls:!1,"onUpdate:modelValue":s.emitChange},null,8,["model-value","onUpdate:modelValue"])):e.optionSetting.inputType==="textarea"?(n(),p(r,{key:2,type:"textarea",rows:1,"model-value":e.modelValue,"onUpdate:modelValue":s.emitChange},null,8,["model-value","onUpdate:modelValue"])):C("",!0)])}const be=k(he,[["render",ve],["__scopeId","data-v-c1e053d5"]]);const fe={name:"InstallSelect",components:{OptionValueInput:be},props:{modelValue:{},options:{},type:{default:"radio"}},data(){return{optionSettingData:{visible:!1}}},computed:{validOptions(){return this.options.filter(l=>l.value.trim()!==""&&l.label.trim()!=="")},currentOption(){return this.validOptions.find(l=>l.value===this.modelValue.value)},optionValues(){return this.validOptions.map(l=>l.value)},currenOptionSettings(){return this.currentOption==null?[]:this.currentOption.settings.map(l=>l.defaultValue)}},watch:{optionValues(){this.handleSelect(this.modelValue.value)},currenOptionSettings(){this.fillSettingValue()},modelValue:{immediate:!0,handler(){this.fillSettingValueFromModelValue()}}},methods:{handleSelect(l){const t=this.validOptions.find(u=>u.value===l);let e={value:null,settings:{}};if(t!=null){const u={};for(const o of t.settings)u[o.name]=o.defaultValue;e={value:l,settings:u}}this.$emit("update:modelValue",e),this.$emit("change",e),this.fillSettingValue()},fillSettingValue(){this.$nextTick(()=>{if(this.currentOption!=null)for(const l of this.currentOption.settings)l.value=l.defaultValue})},fillSettingValueFromModelValue(){for(const l in this.modelValue.settings){const t=this.options.find(u=>u.value===this.modelValue.value);if(t==null)continue;const e=t.settings.find(u=>u.name===l);e!=null&&(e.value=this.modelValue.settings[l])}}}},ge={key:0,class:"installer-select"},ye={key:1};function Ve(l,t,e,u,o,s){const r=a("el-option"),v=a("el-select"),f=a("el-button"),S=a("OptionValueInput"),I=a("el-form-item"),i=a("el-form"),d=a("el-dialog");return e.options.length>0?(n(),c("div",ge,[g(v,{"model-value":e.modelValue.value,clearable:"",onChange:s.handleSelect},{default:b(()=>[(n(!0),c(V,null,F(s.validOptions,h=>(n(),p(r,{key:h.value,value:h.value,label:h.label},null,8,["value","label"]))),128))]),_:1},8,["model-value","onChange"]),s.currentOption!=null&&s.currentOption.settings.length>0?(n(),p(f,{key:0,type:"primary",icon:"Setting",class:"button-icon",onClick:t[0]||(t[0]=h=>o.optionSettingData.visible=!0)})):C("",!0),s.currentOption!=null?(n(),p(d,{key:1,modelValue:o.optionSettingData.visible,"onUpdate:modelValue":t[2]||(t[2]=h=>o.optionSettingData.visible=h),title:`${s.currentOption.label}${l.$t("service.settingsForSelectType")}`,"append-to-body":!0},{default:b(()=>[g(i,null,{default:b(()=>[(n(!0),c(V,null,F(s.currentOption.settings,h=>(n(),p(I,{key:h.name,label:h.label,required:h.required},{default:b(()=>[g(S,{modelValue:e.modelValue.settings[h.name],"onUpdate:modelValue":w=>e.modelValue.settings[h.name]=w,"option-setting":h,onInput:t[1]||(t[1]=w=>l.$emit("change"))},null,8,["modelValue","onUpdate:modelValue","option-setting"])]),_:2},1032,["label","required"]))),128))]),_:1})]),_:1},8,["modelValue","title"])):C("",!0)])):(n(),c("p",ye,"Please add options first."))}const E=k(fe,[["render",Ve],["__scopeId","data-v-1c9b90a3"]]);const Se={name:"InstallNumberInput",props:{type:{default:"text"}}};function ke(l,t,e,u,o,s){const r=a("el-input-number");return n(),p(r,{class:"install-number-input",controls:!1})}const R=k(Se,[["render",ke],["__scopeId","data-v-6340b22c"]]),Ie={name:"Switch"};function Ce(l,t,e,u,o,s){const r=a("el-switch");return n(),p(r)}const A=k(Ie,[["render",Ce]]);const Fe={name:"TableFieldVariableInput",components:{InstallSwitch:A,InstallNumberInput:R,InstallSelect:E,InstallCheckbox:Q,InstallRadio:W,InstallInput:N},props:{modelValue:{},variable:{required:!0}}};function we(l,t,e,u,o,s){const r=a("InstallInput"),v=a("InstallNumberInput"),f=a("InstallSelect"),S=a("InstallCheckbox"),I=a("InstallRadio"),i=a("InstallSwitch");return e.variable.inputType==="input"?(n(),p(r,{key:0,"model-value":e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=d=>l.$emit("update:modelValue",d)),onInput:t[1]||(t[1]=d=>l.$emit("change",d))},null,8,["model-value"])):e.variable.inputType==="number_input"?(n(),p(v,{key:1,"model-value":e.modelValue,"onUpdate:modelValue":t[2]||(t[2]=d=>l.$emit("update:modelValue",d)),onInput:t[3]||(t[3]=d=>l.$emit("change",d))},null,8,["model-value"])):e.variable.inputType==="textarea"?(n(),p(r,{key:2,type:"textarea",rows:1,"model-value":e.modelValue,"onUpdate:modelValue":t[4]||(t[4]=d=>l.$emit("update:modelValue",d)),onInput:t[5]||(t[5]=d=>l.$emit("change",d))},null,8,["model-value"])):e.variable.inputType==="select"?(n(),p(f,{key:3,options:e.variable.options,"model-value":e.modelValue,"onUpdate:modelValue":t[6]||(t[6]=d=>l.$emit("update:modelValue",d)),onChange:t[7]||(t[7]=d=>l.$emit("change",d))},null,8,["options","model-value"])):e.variable.inputType==="checkbox"?(n(),p(S,{key:4,options:e.variable.options,"model-value":e.modelValue,"onUpdate:modelValue":t[8]||(t[8]=d=>l.$emit("update:modelValue",d)),onChange:t[9]||(t[9]=d=>l.$emit("change",d))},null,8,["options","model-value"])):e.variable.inputType==="radio"?(n(),p(I,{key:5,options:e.variable.options,"model-value":e.modelValue,"onUpdate:modelValue":t[10]||(t[10]=d=>l.$emit("update:modelValue",d)),onChange:t[11]||(t[11]=d=>l.$emit("change",d))},null,8,["options","model-value"])):e.variable.inputType==="switch"?(n(),p(i,{key:6,"model-value":e.modelValue,"onUpdate:modelValue":t[12]||(t[12]=d=>l.$emit("update:modelValue",d)),onChange:t[13]||(t[13]=d=>l.$emit("change",d))},null,8,["model-value"])):C("",!0)}const H=k(Fe,[["render",we],["__scopeId","data-v-f253c4c5"]]);const xe={name:"VariableRemarkIcon",props:{variable:{required:!0}}};function Te(l,t,e,u,o,s){const r=a("QuestionFilled"),v=a("el-icon"),f=a("el-popover");return e.variable.remark!=null&&e.variable.remark.trim()!==""?(n(),p(f,{key:0,"popper-class":"global-popover",title:"参数说明",placement:"top",width:"255px"},{reference:b(()=>[g(v,null,{default:b(()=>[g(r)]),_:1})]),default:b(()=>[m("p",null,y(e.variable.remark),1)]),_:1})):C("",!0)}const J=k(xe,[["render",Te],["__scopeId","data-v-9fef24ee"]]);function M(l){return l==null||l===""||l.trim&&l.trim()===""||JSON.stringify(l)==="[]"||JSON.stringify(l)==="{}"}function L(l){return l==="input"||l==="textarea"||l==="radio"?"":l==="select"?{value:null,settings:[]}:l==="checkbox"?[]:l==="table"||l==="database"||l==="query_model"?null:""}const Me={name:"FieldSetting",components:{VariableRemarkIcon:J,TableFieldVariableInput:H,MySqlFieldSelect:_e},props:{table:{required:!0},group:{required:!0},valueKey:{default:"value"}},computed:{tableFields(){return this.table.fields.map(l=>l.name)}},watch:{tableFields(){this.handleSelect(this.group[this.valueKey])}},methods:{handleSelect(l){l=l.filter(e=>this.table.fields.find(u=>u.name===e.name)!=null);const t=JSON.parse(JSON.stringify(l));for(const e of t){e.origin==null&&(e.origin=JSON.parse(JSON.stringify(e)));for(const u of this.group.children)e[u.name]=M(e[u.name])?u.defaultValue:e[u.name],M(e[u.name])&&(e[u.name]=L(u.inputType))}this.group[this.valueKey]=t,this.emitChange()},emitChange(){this.$emit("change")},getColumnMinWidth(l){return l.inputType==="select"?"150px":"120px"}},created(){this.handleSelect(this.group[this.valueKey])}},Ke={class:"column-header-wrap"},Oe={key:0,class:"required"};function Ue(l,t,e,u,o,s){const r=a("MySqlFieldSelect"),v=a("el-table-column"),f=a("VariableRemarkIcon"),S=a("TableFieldVariableInput"),I=a("el-table");return n(),c(V,null,[m("h5",null,y(e.group.label),1),g(r,{"onUpdate:modelValue":s.handleSelect,"model-value":e.group[e.valueKey],table:e.table,placeholder:"选择表字段"},null,8,["onUpdate:modelValue","model-value","table"]),g(I,{size:"small",data:e.group[e.valueKey]},{default:b(()=>[g(v,{label:"字段名",width:"100px",prop:"name",fixed:""}),(n(!0),c(V,null,F(e.group.children,i=>(n(),p(v,{key:i.name,label:i.label,"min-width":s.getColumnMinWidth(i)},{header:b(()=>[m("div",Ke,[i.required?(n(),c("em",Oe,"*")):C("",!0),m("label",null,y(i.label),1),g(f,{variable:i},null,8,["variable"])])]),default:b(({row:d})=>[g(S,{variable:i,modelValue:d[i.name],"onUpdate:modelValue":h=>d[i.name]=h,onChange:s.emitChange},null,8,["variable","modelValue","onUpdate:modelValue","onChange"])]),_:2},1032,["label","min-width"]))),128))]),_:1},8,["data"])],64)}const qe=k(Me,[["render",Ue],["__scopeId","data-v-0cf18ab6"]]);const $e={name:"ErrorWindow",data(){return{visible:!1,title:"错误",message:""}},methods:{open({title:l,message:t}){this.title=l,this.message=t,this.visible=!0}}},De={class:"error-message"};function Qe(l,t,e,u,o,s){const r=a("el-dialog");return n(),p(r,{title:o.title,modelValue:o.visible,"onUpdate:modelValue":t[0]||(t[0]=v=>o.visible=v),class:"error-window",width:"550px","append-to-body":""},{default:b(()=>[m("pre",De,y(o.message),1)]),_:1},8,["title","modelValue"])}const Ne=k($e,[["render",Qe]]);const We={name:"TableSelect",components:{ErrorWindow:Ne,FieldSetting:qe},props:{modelValue:{},valueKey:{default:"value"},variable:{required:!0}},data(){return{loading:{tables:!1},selected:null,tables:[]}},computed:{...K(["databases","globalLoading","currentProject","currentDatabase"]),fieldVariableGroup(){return this.variable.children||[]}},watch:{currentDatabase:{immediate:!0,handler(){this.fetchTables()}},"globalLoading.databases"(l){l||this.fetchTables(this.modelValue)}},methods:{handleChange(l){this.selected=this.tables.find(t=>t.name===l),this.fieldVariableGroup.forEach(t=>{t[this.valueKey]=[]}),this.$emit("update:modelValue",l),this.$emit("change",l)},fetchTables(){if(this.globalLoading.databases)return;const l=this.databases.find(t=>t.id===this.currentDatabase);if(l==null){this.tables=[],this.handleChange(null);return}this.loading.tables=!0,j({host:l.host,port:l.port,user:l.username,password:l.password,database:l.schema}).then(t=>{this.tables=t,this.modelValue!=null&&(this.selected=this.tables.find(e=>e.name===this.modelValue),this.selected==null&&this.handleChange(null))}).catch(t=>{this.tables=[],this.handleChange(null),this.$refs.errorWindow.open({title:"获取表失败",message:t.message})}).finally(()=>{this.loading.tables=!1})}}},Ee={class:"table-select"},Re={class:"table-select__wrap"},Ae={class:"option-content"},He={class:"text-info-1"},Je={key:0,class:"field-settings"};function Le(l,t,e,u,o,s){const r=a("el-option"),v=a("el-select"),f=a("el-button"),S=a("FieldSetting"),I=a("ErrorWindow");return n(),c("div",Ee,[m("div",Re,[g(v,{"popper-class":"table-select__popper","model-value":e.modelValue,clearable:"",loading:o.loading.tables,"loading-text":"正在获取数据库表,请稍后...",onChange:s.handleChange},{default:b(()=>[(n(!0),c(V,null,F(o.tables,i=>(n(),p(r,{key:i.name,value:i.name,label:i.name},{default:b(()=>[m("p",Ae,[m("span",null,y(i.name),1),m("span",He,y(i.comment),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["model-value","loading","onChange"]),g(f,{class:"button-icon",type:"primary",icon:"Refresh",onClick:s.fetchTables},null,8,["onClick"])]),o.selected!=null&&s.fieldVariableGroup.length>0?(n(),c("ul",Je,[(n(!0),c(V,null,F(s.fieldVariableGroup,i=>(n(),c("li",{key:i.label},[g(S,{"value-key":e.valueKey,table:o.selected,group:i,onChange:t[0]||(t[0]=d=>l.$emit("change"))},null,8,["value-key","table","group"])]))),128))])):C("",!0),g(I,{ref:"errorWindow"},null,512)])}const Ge=k(We,[["render",Le],["__scopeId","data-v-3ec96403"]]);const je={name:"QueryModelFieldSelect",props:{modelValue:{},model:{required:!0},multiple:{default:!0}},data(){return{focused:!1,tables:[],selectedFields:[],currentHoverTable:null,currentHoverField:null,leaveFieldTimeout:null}},watch:{model:{immediate:!0,handler(){this.__handleTables()}},modelValue:{immediate:!0,handler(){this.selectedFields.splice(0,this.selectedFields.length),this.selectedFields.push.apply(this.selectedFields,this.__getSelectedFieldsObjects(this.modelValue))}}},methods:{focus(){this.focused=!0},handleFieldSorted(){this.$emit("update:modelValue",this.selectedFields.map(l=>`${l.table.id}.${l.name}`)),this.$emit("fields:change",this.selectedFields)},handleCheckAllChange(l,t){let e=[];t&&(e=l.fields.map(o=>`${l.id}.${o.name}`));let u=this.modelValue;u=u.filter(o=>!o.startsWith(`${l.id}.`)),u=u.concat(e),this.handleInput(l,u)},handleInput(l,t){const e=t.filter(o=>o.startsWith(`${l.id}.`));l.checkedAll=e.length===l.fields.length;let u=this.__getSelectedFieldsObjects(t);this.selectedFields.splice(0,this.selectedFields.length),this.selectedFields.push.apply(this.selectedFields,u),this.$emit("update:modelValue",t),this.$emit("fields:change",this.selectedFields)},handleFieldEnter(l){this.leaveFieldTimeout!=null&&clearTimeout(this.leaveFieldTimeout),this.currentHoverField=l},handleFieldLeave(){this.leaveFieldTimeout=setTimeout(()=>{this.currentHoverField=null},500)},handleTableEnter(l){this.currentHoverTable=l},handleTableLeave(){this.currentHoverTable=null},close(){this.focused=!1,this.handleTableLeave(),this.handleFieldLeave()},__handleTables(){this.tables=[];for(const l of this.model.tables){const t=l.fields.filter(e=>e.visible);t.length>0&&this.tables.push({id:l.id,type:l.type,name:l.name,alias:l.alias,fields:t,checkedAll:!1})}},__getSelectedFieldsObjects(l){return l.map(t=>{const e=t.split(".")[0],u=t.split(".")[1],o=this.model.tables.find(f=>f.id===e),s=o.fields.find(f=>f.name===u);if(s==null)return null;const r=JSON.parse(JSON.stringify(o)),v=JSON.parse(JSON.stringify(s));return delete r.fields,v.table=r,v}).filter(t=>t!=null)}}},G=l=>(O("data-v-738452e6"),l=l(),U(),l),Be={class:"model-field-select"},Pe={key:0,class:"placeholder"},ze=["onMouseenter"],Xe=G(()=>m("em",null,"AS",-1)),Ye={key:0},Ze={class:"field-select__tables"},el=["onMouseenter"],ll={class:"table__header"},tl={class:"table__fields-wrap"},nl={class:"table-fields"},al=G(()=>m("em",null,"AS",-1)),ol={key:0,class:"text-info-1"};function il(l,t,e,u,o,s){const r=a("el-checkbox"),v=a("el-checkbox-group"),f=a("el-scrollbar"),S=a("el-popover"),I=q("sortable");return n(),c("div",Be,[g(S,{trigger:"click","popper-class":"model-field-select-popper","hide-after":0,persistent:!1,onHide:s.close},{reference:b(()=>[$((n(),c("ul",{class:T(["selected-preview",{"is-focus":o.focused}]),onClick:t[1]||(t[1]=(...i)=>s.focus&&s.focus(...i))},[o.selectedFields.length===0?(n(),c("li",Pe,"请选择")):(n(!0),c(V,{key:1},F(o.selectedFields,i=>(n(),c("li",{key:i.name,class:T({"field-light":o.currentHoverTable!=null&&i.table.id===o.currentHoverTable.id}),onMouseenter:d=>s.handleFieldEnter(i),onMouseleave:t[0]||(t[0]=(...d)=>s.handleFieldLeave&&s.handleFieldLeave(...d))},[m("p",null,[x(y(i.table.alias)+"."+y(i.name)+" ",1),i.alias!==i.name?(n(),c(V,{key:0},[Xe,x(),m("b",null,y(i.alias),1)],64)):C("",!0)]),i.comment!=null&&i.comment!==""?(n(),c("p",Ye,y(i.comment),1)):C("",!0)],42,ze))),128))],2)),[[I,{data:o.selectedFields,onChange:s.handleFieldSorted},"config"]])]),default:b(()=>[m("div",Ze,[(n(!0),c(V,null,F(o.tables,i=>(n(),c("div",{key:i.alias,class:T(["field-select__table",{"table-main":i.type==="MAIN","table-light":o.currentHoverField!=null&&i.id===o.currentHoverField.table.id}]),onMouseenter:d=>s.handleTableEnter(i),onMouseleave:t[2]||(t[2]=(...d)=>s.handleTableLeave&&s.handleTableLeave(...d))},[m("div",ll,[g(r,{modelValue:i.checkedAll,"onUpdate:modelValue":d=>i.checkedAll=d,onChange:d=>s.handleCheckAllChange(i,d)},{default:b(()=>[m("h4",null,y(i.name)+" AS "+y(i.alias),1)]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),m("div",tl,[g(f,null,{default:b(()=>[m("div",nl,[g(v,{"model-value":e.modelValue,onChange:d=>s.handleInput(i,d)},{default:b(()=>[(n(!0),c(V,null,F(i.fields,d=>(n(),p(r,{label:`${i.id}.${d.name}`,key:d.name},{default:b(()=>[m("p",null,[x(y(d.name)+" ",1),d.alias!==d.name?(n(),c(V,{key:0},[al,x(),m("b",null,y(d.alias),1)],64)):C("",!0)]),d.comment!==""?(n(),c("p",ol,y(d.comment),1)):C("",!0)]),_:2},1032,["label"]))),128))]),_:2},1032,["model-value","onChange"])])]),_:2},1024)])],42,el))),128))])]),_:1},8,["onHide"])])}const sl=k(je,[["render",il],["__scopeId","data-v-738452e6"]]);const ul={name:"QueryModelFieldSetting",components:{VariableRemarkIcon:J,SortableButton:B,QueryModelFieldSelect:sl,TableFieldVariableInput:H},props:{valueKey:{default:"value"},model:{required:!0},group:{required:!0}},data(){return{selectedFields:[]}},watch:{model(){this.initSelectedFields()}},methods:{handleSort(){this.initSelectedFields(),this.emitChange()},initSelectedFields(){this.selectedFields=[];const l=this.group[this.valueKey];l!=null&&l.length>0&&(this.selectedFields=l.map(t=>`${t.table.id}.${t.name}`))},handleSelect(l){const t=[];for(const e of l){e.origin==null&&(e.origin=JSON.parse(JSON.stringify(e)));for(const u of this.group.children)e[u.name]=M(e[u.name])?u.defaultValue:e[u.name],M(e[u.name])&&(e[u.name]=L(u.inputType));t.push(e)}this.group[this.valueKey].splice(0,this.group[this.valueKey].length),this.group[this.valueKey].push.apply(this.group[this.valueKey],t),this.emitChange()},emitChange(){this.$emit("change")},getColumnMinWidth(l){return l.inputType==="select"?"150px":"120px"}},created(){this.initSelectedFields()}},dl=l=>(O("data-v-f9e87003"),l=l(),U(),l),rl=dl(()=>m("em",null,"AS",-1)),cl={key:0,class:"required"};function ml(l,t,e,u,o,s){const r=a("QueryModelFieldSelect"),v=a("SortableButton"),f=a("el-table-column"),S=a("VariableRemarkIcon"),I=a("TableFieldVariableInput"),i=a("el-table"),d=q("sortable");return n(),c(V,null,[m("h5",null,y(e.group.label),1),g(r,{modelValue:o.selectedFields,"onUpdate:modelValue":t[0]||(t[0]=h=>o.selectedFields=h),model:e.model,placeholder:"Select fields","onFields:change":s.handleSelect},null,8,["modelValue","model","onFields:change"]),e.group.children.length>0?$((n(),p(i,{key:0,size:"small",data:e.group[e.valueKey],"row-key":h=>`${h.table.id}.${h.name}@${h.alias}`},{default:b(()=>[g(f,{width:"25px",fixed:""},{default:b(()=>[g(v)]),_:1}),g(f,{label:"字段名",width:"150px",prop:"name",fixed:""},{default:b(({row:h})=>[m("p",null,[x(y(h.table.alias)+"."+y(h.name)+" ",1),h.alias!==h.name?(n(),c(V,{key:0},[rl,x(),m("b",null,y(h.alias),1)],64)):C("",!0)]),m("p",null,y(h.comment),1)]),_:1}),(n(!0),c(V,null,F(e.group.children,h=>(n(),p(f,{key:h.name,label:h.label,"min-width":s.getColumnMinWidth(h)},{header:b(()=>[h.required?(n(),c("em",cl,"*")):C("",!0),m("label",null,y(h.label),1),g(S,{variable:h},null,8,["variable"])]),default:b(({row:w})=>[g(I,{variable:h,modelValue:w[h.name],"onUpdate:modelValue":_=>w[h.name]=_,onChange:s.emitChange},null,8,["variable","modelValue","onUpdate:modelValue","onChange"])]),_:2},1032,["label","min-width"]))),128))]),_:1},8,["data","row-key"])),[[d,{data:e.group[e.valueKey],onChange:s.handleSort},"config"]]):C("",!0)],64)}const _l=k(ul,[["render",ml],["__scopeId","data-v-f9e87003"]]);const hl={name:"QueryModelWindow",components:{DataSourceSelect:D,QueryModelView:z},data(){return{visible:!1}},computed:{...K(["currentDatabase"])},methods:{open(){this.visible=!0},close(){this.visible=!1,this.$emit("close")}}},pl=m("h2",null,"查询模型设计",-1),vl={class:"header__opera"};function bl(l,t,e,u,o,s){const r=a("DataSourceSelect"),v=a("Close"),f=a("el-icon"),S=a("QueryModelView"),I=a("el-dialog");return n(),p(I,{class:"query-model-window",modelValue:o.visible,"onUpdate:modelValue":t[0]||(t[0]=i=>o.visible=i),fullscreen:"","append-to-body":"","show-close":!1},{header:b(()=>[pl,m("div",vl,[g(r,{"model-value":l.currentDatabase},null,8,["model-value"]),g(f,{onClick:s.close},{default:b(()=>[g(v)]),_:1},8,["onClick"])])]),default:b(()=>[g(S)]),_:1},8,["modelValue"])}const fl=k(hl,[["render",bl]]),gl="/images/database/icon-design.svg";const yl={name:"QueryModelSelect",components:{QueryModelWindow:fl,QueryModelFieldSetting:_l},props:{modelValue:{},valueKey:{default:"value"},variable:{required:!0}},data(){return{databases:[],models:[],selected:null}},computed:{...K(["currentProject","currentDatabase"]),fieldVariableGroup(){return this.variable.children||[]}},watch:{currentDatabase(){this.fetchModels()}},methods:{handleChange(l){this.selected=this.models.find(t=>t.id===l),this.fieldVariableGroup.forEach(t=>{t[this.valueKey]=[]}),this.$emit("update:modelValue",l),this.emitChange()},emitChange(){this.$emit("change")},fetchDatabases(){P().then(l=>{this.databases=l,this.fetchModels()}).catch(l=>{this.$tip.apiFailed(l)})},fetchModels(){const l=this.databases.find(t=>t.id===this.currentDatabase);if(l==null){this.models=[],this.handleChange(null);return}this.models=l.models,this.modelValue!=null&&(this.selected=this.models.find(t=>t.id===this.modelValue),this.selected==null&&this.handleChange(null))}},created(){this.fetchDatabases()}},Vl=l=>(O("data-v-1097737f"),l=l(),U(),l),Sl={class:"query-model-select"},kl={class:"option-content"},Il={class:"text-info-1"},Cl=Vl(()=>m("img",{src:gl,alt:"查询模型"},null,-1)),Fl={key:0,class:"field-settings"};function wl(l,t,e,u,o,s){const r=a("el-option"),v=a("el-select"),f=a("el-button"),S=a("QueryModelWindow"),I=a("QueryModelFieldSetting");return n(),c(V,null,[m("div",Sl,[g(v,{"popper-class":"model-select__popper","model-value":e.modelValue,clearable:"",onChange:s.handleChange},{default:b(()=>[(n(!0),c(V,null,F(o.models,i=>(n(),p(r,{key:i.id,value:i.id,label:i.name},{default:b(()=>[m("p",kl,[m("span",null,y(i.name),1),m("span",Il,y(i.comment),1)])]),_:2},1032,["value","label"]))),128))]),_:1},8,["model-value","onChange"]),g(f,{class:"button-icon",type:"primary",onClick:t[0]||(t[0]=i=>l.$refs.queryModelWindow.open())},{default:b(()=>[Cl]),_:1}),g(S,{ref:"queryModelWindow",onClose:s.fetchDatabases},null,8,["onClose"])]),o.selected!=null&&s.fieldVariableGroup.length>0?(n(),c("ul",Fl,[(n(!0),c(V,null,F(s.fieldVariableGroup,i=>(n(),c("li",{key:i.label},[g(I,{"value-key":e.valueKey,model:o.selected,group:i,onChange:s.emitChange},null,8,["value-key","model","group","onChange"])]))),128))])):C("",!0)],64)}const xl=k(yl,[["render",wl],["__scopeId","data-v-1097737f"]]);const Tl={name:"VariableInput",components:{InstallNumberInput:R,InstallSelect:E,DataSourceSelect:D,QueryModelSelect:xl,TableSelect:Ge,InstallCheckbox:Q,InstallRadio:W,InstallInput:N,InstallSwitch:A},props:{variable:{required:!0},valueKey:{default:"value"}},computed:{inputType(){return this.variable.inputType}}},Ml={class:"variable-input"};function Kl(l,t,e,u,o,s){const r=a("InstallInput"),v=a("InstallNumberInput"),f=a("InstallSelect"),S=a("InstallCheckbox"),I=a("InstallRadio"),i=a("InstallSwitch"),d=a("DataSourceSelect"),h=a("TableSelect"),w=a("QueryModelSelect");return n(),c("div",Ml,[e.variable.inputType==="input"?(n(),p(r,{key:0,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[0]||(t[0]=_=>e.variable[e.valueKey]=_),onInput:t[1]||(t[1]=_=>l.$emit("change",_))},null,8,["modelValue"])):e.variable.inputType==="number_input"?(n(),p(v,{key:1,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[2]||(t[2]=_=>e.variable[e.valueKey]=_),onInput:t[3]||(t[3]=_=>l.$emit("change",_))},null,8,["modelValue"])):e.variable.inputType==="textarea"?(n(),p(r,{key:2,type:"textarea",modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[4]||(t[4]=_=>e.variable[e.valueKey]=_),onInput:t[5]||(t[5]=_=>l.$emit("change",_))},null,8,["modelValue"])):e.variable.inputType==="select"?(n(),p(f,{key:3,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[6]||(t[6]=_=>e.variable[e.valueKey]=_),options:e.variable.options,onChange:t[7]||(t[7]=_=>l.$emit("change",_))},null,8,["modelValue","options"])):e.variable.inputType==="checkbox"?(n(),p(S,{key:4,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[8]||(t[8]=_=>e.variable[e.valueKey]=_),options:e.variable.options,onChange:t[9]||(t[9]=_=>l.$emit("change",_))},null,8,["modelValue","options"])):e.variable.inputType==="radio"?(n(),p(I,{key:5,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[10]||(t[10]=_=>e.variable[e.valueKey]=_),options:e.variable.options,onChange:t[11]||(t[11]=_=>l.$emit("change",_))},null,8,["modelValue","options"])):e.variable.inputType==="switch"?(n(),p(i,{key:6,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[12]||(t[12]=_=>e.variable[e.valueKey]=_),onInput:t[13]||(t[13]=_=>l.$emit("change",_))},null,8,["modelValue"])):e.variable.inputType==="datasource"?(n(),p(d,{key:7,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[14]||(t[14]=_=>e.variable[e.valueKey]=_),"with-prefix":!1,"with-block":!0,onChange:t[15]||(t[15]=_=>l.$emit("change",_))},null,8,["modelValue"])):e.variable.inputType==="table"?(n(),p(h,{key:8,variable:e.variable,"value-key":e.valueKey,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[16]||(t[16]=_=>e.variable[e.valueKey]=_),onChange:t[17]||(t[17]=_=>l.$emit("change",_))},null,8,["variable","value-key","modelValue"])):e.variable.inputType==="query_model"?(n(),p(w,{key:9,variable:e.variable,"value-key":e.valueKey,modelValue:e.variable[e.valueKey],"onUpdate:modelValue":t[18]||(t[18]=_=>e.variable[e.valueKey]=_),onChange:t[19]||(t[19]=_=>l.$emit("change",_))},null,8,["variable","value-key","modelValue"])):C("",!0)])}const Rl=k(Tl,[["render",Kl],["__scopeId","data-v-ea68e2f3"]]);const Ol={name:"ServiceCodeErrorWindow",data(){return{visible:!1,error:null}},methods:{open(l){this.error=l,this.visible=!0}}},Ul={class:"window-header-wrap"},ql={class:"title"},$l={class:"tip"},Dl={class:"window-content-wrap"};function Ql(l,t,e,u,o,s){const r=a("CircleCloseFilled"),v=a("el-icon"),f=a("el-dialog");return n(),p(f,{modelValue:o.visible,"onUpdate:modelValue":t[0]||(t[0]=S=>o.visible=S),width:"1000px",class:"service-code-error-window","show-close":!1},{header:b(()=>[m("div",Ul,[m("div",ql,[g(v,null,{default:b(()=>[g(r)]),_:1}),m("h5",null,y(l.$t("service.serviceCodeErrorTitle")),1)]),m("p",$l,y(l.$t("service.serviceCodeErrorTip")),1)])]),default:b(()=>[m("div",Dl,[m("p",null,"at "+y(o.error.position),1),m("pre",null,y(o.error.message),1)])]),_:1},8,["modelValue"])}const Al=k(Ol,[["render",Ql]]);export{qe as F,W as I,_e as M,be as O,Al as S,J as V,Rl as a,N as b,Q as c,L as g,M as i};