2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[926],{6299:function(e,a,t){t.d(a,{ew:function(){return d},wu:function(){return s},r6:function(){return i},ns:function(){return n},OE:function(){return u},Zu:function(){return p}});var l=t(3872);const r="/api/v1.0/database_types",o="/api/v1.0/simple_database_types",d=e=>l.Z["delete"](r+"/"+e),s=e=>l.Z.post(r,e),i=e=>l.Z.patch(r,e),n=()=>l.Z.get(o),u=e=>l.Z.get(r,{params:e}),p=e=>l.Z.post(r+"/driver_class_name",e)},1926:function(e,a,t){t.r(a),t.d(a,{default:function(){return y}});var l=t(6252),r=t(3577);const o=(0,l.Uk)("+"),d=["src"],s=(0,l.Uk)("编辑"),i=(0,l.Uk)("删除"),n=(0,l.Uk)("自动获取"),u=(0,l._)("span",null,"内置变量:",-1),p=(0,l.Uk)(" 结果示例:"),m=(0,l.Uk)("保存"),c=(0,l.Uk)("取消");function b(e,a,t,b,g,h){const w=(0,l.up)("el-button"),f=(0,l.up)("el-tooltip"),y=(0,l.up)("el-input"),W=(0,l.up)("el-space"),_=(0,l.up)("el-header"),D=(0,l.up)("el-table-column"),F=(0,l.up)("el-link"),T=(0,l.up)("el-tag"),j=(0,l.up)("el-table"),C=(0,l.up)("el-form-item"),v=(0,l.up)("el-col"),U=(0,l.up)("el-row"),P=(0,l.up)("el-form"),V=(0,l.up)("el-dialog"),k=(0,l.up)("el-main"),z=(0,l.up)("el-pagination"),S=(0,l.up)("el-footer"),E=(0,l.up)("el-container"),N=(0,l.Q2)("loading");return(0,l.wg)(),(0,l.j4)(E,null,{default:(0,l.w5)((()=>[(0,l.Wm)(_,null,{default:(0,l.w5)((()=>[(0,l.Wm)(W,null,{default:(0,l.w5)((()=>[(0,l.Wm)(f,{content:"创建"},{default:(0,l.w5)((()=>[(0,l.Wm)(w,{type:"primary",style:{"min-width":"100px"},onClick:a[0]||(a[0]=e=>h.toEditPage())},{default:(0,l.w5)((()=>[o])),_:1})])),_:1}),(0,l.Wm)(y,{onChange:h.onQuery,modelValue:g.pageFilter.databaseTypeContains,"onUpdate:modelValue":a[1]||(a[1]=e=>g.pageFilter.databaseTypeContains=e),placeholder:"数据库类型名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])])),_:1})])),_:1}),(0,l.Wm)(k,null,{default:(0,l.w5)((()=>[(0,l.Wm)(j,{data:g.pageData.data,border:"",stripe:""},{default:(0,l.w5)((()=>[(0,l.Wm)(D,{prop:"id",label:"ID",width:"50"}),(0,l.Wm)(D,{prop:"databaseType",label:"数据库类型",resizable:""},{default:(0,l.w5)((e=>[(0,l.Uk)((0,r.zw)(e.row.databaseType),1)])),_:1}),(0,l.Wm)(D,{prop:"icon",label:"图标"},{default:(0,l.w5)((e=>[(0,l._)("img",{src:e.row.icon,style:{"max-width":"25px","max-height":"25px"}},null,8,d)])),_:1}),(0,l.Wm)(D,{prop:"description",label:"描述",resizable:""}),(0,l.Wm)(D,{prop:"jdbcDriverFileUrl",label:"驱动下载地址"},{default:(0,l.w5)((e=>[(0,l.Wm)(F,{underline:!1},{default:(0,l.w5)((()=>[(0,l.Uk)((0,r.zw)(e.row.jdbcDriverFileUrl),1)])),_:2},1024)])),_:1}),(0,l.Wm)(D,{prop:"jdbcDriverClassName",label:"驱动类名",resizable:""}),(0,l.Wm)(D,{label:"协议头"},{default:(0,l.w5)((e=>[(0,l.Wm)(T,{size:"large"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,r.zw)(e.row.jdbcProtocol),1)])),_:2},1024)])),_:1}),(0,l.Wm)(D,{prop:"projectCount",label:"引用项目数",width:"100"}),(0,l.Wm)(D,{prop:"urlPattern",label:"URL 表达式",resizable:""},{default:(0,l.w5)((e=>[(0,l.Wm)(f,{content:h.tableUrlSample(e.row)},{default:(0,l.w5)((()=>[(0,l.Wm)(F,{underline:!1,type:"success"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,r.zw)(e.row.urlPattern),1)])),_:2},1024)])),_:2},1032,["content"])])),_:1}),(0,l.Wm)(D,{prop:"updateAt",label:"更新时间"}),(0,l.Wm)(D,{prop:"createAt",label:"创建时间"}),(0,l.Wm)(D,{label:"操作",resizable:"",fixed:"right"},{default:(0,l.w5)((e=>[(0,l.Wm)(W,{alignment:"left",direction:"vertical"},{default:(0,l.w5)((()=>[(0,l.Wm)(w,{type:"primary",size:"small",icon:"Edit",onClick:a=>h.toEditPage(e.row)},{default:(0,l.w5)((()=>[s])),_:2},1032,["onClick"]),(0,l.Wm)(w,{type:"danger",size:"small",icon:"Delete",onClick:a=>h.onDelete(e.row)},{default:(0,l.w5)((()=>[i])),_:2},1032,["onClick"])])),_:2},1024)])),_:1})])),_:1},8,["data"]),(0,l.Wm)(V,{modelValue:g.isShowEditDialog,"onUpdate:modelValue":a[12]||(a[12]=e=>g.isShowEditDialog=e),width:"38%",center:"","destroy-on-close":""},{default:(0,l.w5)((()=>[(0,l.Wm)(P,{model:g.databaseTypeForm,rules:g.formDataRule,ref:"formDataRef","label-position":"top"},{default:(0,l.w5)((()=>[(0,l.Wm)(U,{gutter:28},{default:(0,l.w5)((()=>[(0,l.Wm)(v,{span:10},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"数据库类型",prop:"databaseType"},{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.databaseType,"onUpdate:modelValue":a[2]||(a[2]=e=>g.databaseTypeForm.databaseType=e),placeholder:"请输入数据库类型名称"},null,8,["modelValue"])])),_:1})])),_:1}),(0,l.Wm)(v,{span:10},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"图标地址",prop:"icon"},{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.icon,"onUpdate:modelValue":a[3]||(a[3]=e=>g.databaseTypeForm.icon=e),placeholder:"图标地址"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(U,null,{default:(0,l.w5)((()=>[(0,l.Wm)(v,{span:20},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"描述",prop:"description"},{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.description,"onUpdate:modelValue":a[4]||(a[4]=e=>g.databaseTypeForm.description=e),type:"textarea"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(U,null,{default:(0,l.w5)((()=>[(0,l.Wm)(v,{span:20},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"JDBC 驱动下载地址",prop:"jdbcDriverFileUrl"},{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.jdbcDriverFileUrl,"onUpdate:modelValue":a[5]||(a[5]=e=>g.databaseTypeForm.jdbcDriverFileUrl=e),placeholder:"jdbc 驱动下载地址,如 https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(U,{gutter:28},{default:(0,l.w5)((()=>[(0,l.Wm)(v,{span:10},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"驱动类名",prop:"jdbcDriverClassName"},{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.jdbcDriverClassName,"onUpdate:modelValue":a[7]||(a[7]=e=>g.databaseTypeForm.jdbcDriverClassName=e),placeholder:"jdbc 驱动类名,如 com.mysql.jdbc.Driver"},{append:(0,l.w5)((()=>[(0,l.wy)(((0,l.wg)(),(0,l.j4)(F,{type:"primary",onClick:a[6]||(a[6]=e=>h.autoObtainDriverClassName())},{default:(0,l.w5)((()=>[n])),_:1})),[[N,g.loadingClassName]])])),_:1},8,["modelValue"])])),_:1})])),_:1}),(0,l.Wm)(v,{span:10},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"协议头",prop:"jdbcProtocol"},{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.jdbcProtocol,"onUpdate:modelValue":a[8]||(a[8]=e=>g.databaseTypeForm.jdbcProtocol=e),placeholder:"协议头,如 jdbc:mysql,jdbc:postgresql,jdbc:mariadb 等"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(U,null,{default:(0,l.w5)((()=>[(0,l.Wm)(v,{span:20},{default:(0,l.w5)((()=>[(0,l.Wm)(C,{label:"URL 生成表达式",prop:"urlPattern"},{default:(0,l.w5)((()=>[(0,l.Wm)(v,null,{default:(0,l.w5)((()=>[(0,l.Wm)(y,{modelValue:g.databaseTypeForm.urlPattern,"onUpdate:modelValue":a[9]||(a[9]=e=>g.databaseTypeForm.urlPattern=e),placeholder:"支持变量 {{jdbc.protocol}}, {{db.url}}, {{db.name}}"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(v,null,{default:(0,l.w5)((()=>[(0,l.Wm)(W,null,{default:(0,l.w5)((()=>[u,((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(g.constData.availableVariables,((e,a)=>((0,l.wg)(),(0,l.j4)(f,{key:a,content:e.description},{default:(0,l.w5)((()=>[(0,l.Wm)(T,null,{default:(0,l.w5)((()=>[(0,l.Uk)((0,r.zw)(e.name),1)])),_:2},1024)])),_:2},1032,["content"])))),128))])),_:1})])),_:1})])),_:1}),(0,l.Wm)(U,{style:{"margin-top":"20px"}},{default:(0,l.w5)((()=>[(0,l.Wm)(v,null,{default:(0,l.w5)((()=>[p,(0,l.Wm)(F,{type:"success"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,r.zw)(h.urlSample),1)])),_:1})])),_:1})])),_:1}),(0,l.Wm)(C,{style:{"margin-top":"33px"}},{default:(0,l.w5)((()=>[(0,l.Wm)(w,{type:"primary",onClick:a[10]||(a[10]=e=>h.onFormSave("formDataRef")),loading:g.loadingSave},{default:(0,l.w5)((()=>[m])),_:1},8,["loading"]),(0,l.Wm)(w,{onClick:a[11]||(a[11]=e=>g.isShowEditDialog=!1)},{default:(0,l.w5)((()=>[c])),_:1})])),_:1})])),_:1},8,["model","rules"])])),_:1},8,["modelValue"])])),_:1}),(0,l.Wm)(S,null,{default:(0,l.w5)((()=>[(0,l.Wm)(z,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:g.pageData.number,"page-size":g.pageData.size,"page-count":g.pageData.totalPages,onCurrentChange:h.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})}var g=t(6299),h={data(){return{databaseTypes:[],pageData:{data:[],page:0,number:1,size:15,totalElements:0,totalPages:1},pageFilter:{page:0,size:10,databaseTypeContains:null},databaseTypeForm:{id:null,databaseType:null,icon:null,description:null,jdbcDriverFileUrl:null,jdbcDriverClassName:null,jdbcProtocol:null,urlPattern:""},formDataRule:{databaseType:[{required:!0,message:"请输入数据库类型名称",trigger:"blur"}],description:[{required:!0,message:"请输入描述内容",trigger:"blur"}],jdbcDriverFileUrl:[{required:!0,message:"请输入合法的驱动下载地址",trigger:"blur"}],jdbcDriverClassName:[{required:!0,message:"请输入合法的驱动类名",trigger:"blur"}],jdbcProtocol:[{required:!0,message:"请输入合法的 JDBC 协议头",trigger:"blur"}],urlPattern:[{required:!0,message:"请输入合法的 URL 模式",trigger:"blur"}]},isShowEditDialog:!1,constData:{urlPattern:"{{jdbc.protocol}}://{{db.url}}/{{db.name}}",availableVariables:[{name:"{{jdbc.protocol}}",description:"协议头,如 jdbc:mysql"},{name:"{{db.name}}",description:"数据库名称,如 public"},{name:"{{db.url}}",description:"数据库地址,如 127.0.0.1:3306"},{name:"{{db.schema}}",description:"schema 名称,如 user"}]},loadingClassName:!1,loadingSave:!1}},created(){this.fetchDatabaseTypes()},computed:{urlSample(){const e="127.0.0.1:3306",a="databasir",t="public",l=this.databaseTypeForm.jdbcProtocol?this.databaseTypeForm.jdbcProtocol:"jdbc:mysql";return this.databaseTypeForm.urlPattern.replace("{{jdbc.protocol}}",l).replace("{{db.name}}",a).replace("{{db.schema}}",t).replace("{{db.url}}",e)}},methods:{async fetchDatabaseTypes(){const e=await(0,g.OE)(this.pageFilter);this.pageData.data=e.data.content,this.pageData.number=e.data.number+1,this.pageData.size=e.data.size,this.pageData.totalPages=e.data.totalPages,this.pageData.totalElements=e.data.totalElements},onDelete(e){this.$confirm("确认删除该数据库类型吗?这将导致数据同步失败","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,g.ew)(e.id).then((e=>{e.errCode||(this.$message.success("删除成功"),this.onPageChange(1,!0))}))}))},onFormSave(){this.$refs.formDataRef.validate((e=>{e?this.databaseTypeForm.id?this.onUpdate(this.databaseTypeForm):this.onCreate(this.databaseTypeForm):this.$message.error("请填写表单必填项")}))},onUpdate(){this.loadingSave=!0,(0,g.r6)(this.databaseTypeForm).then((e=>{e.errCode||(this.$message.success("更新成功"),this.isShowEditDialog=!1,this.fetchDatabaseTypes())})).finally((()=>this.loadingSave=!1))},onCreate(){this.loadingSave=!0,(0,g.wu)(this.databaseTypeForm).then((e=>{e.errCode||(this.$message.success("创建成功"),this.isShowEditDialog=!1,this.onPageChange(1,!0))})).finally((()=>this.loadingSave=!1))},onQuery(){this.fetchDatabaseTypes()},onPageChange(e,a){(e&&e-1!=this.pageFilter.page||a)&&(this.pageFilter.page=e-1,this.fetchDatabaseTypes())},toEditPage(e){e&&e.id?this.databaseTypeForm=JSON.parse(JSON.stringify(e)):(this.databaseTypeForm={},this.databaseTypeForm.urlPattern=this.constData.urlPattern),this.isShowEditDialog=!0},tableUrlSample(e){const a="127.0.0.1:3306",t="databasir";return e.urlPattern.replace("{{jdbc.protocol}}",e.jdbcProtocol).replace("{{db.name}}",t).replace("{{db.url}}",a)},autoObtainDriverClassName(){if(!this.databaseTypeForm.jdbcDriverFileUrl)return void this.$message.warning("请求填写 JDBC 驱动下载地址");this.loadingClassName=!0;const e={jdbcDriverFileUrl:this.databaseTypeForm.jdbcDriverFileUrl};(0,g.Zu)(e).then((e=>{e.errCode||(this.databaseTypeForm.jdbcDriverClassName=e.data,this.$message.success("获取成功"))})).finally((()=>{this.loadingClassName=!1}))}}},w=t(3744);const f=(0,w.Z)(h,[["render",b]]);var y=f}}]);
|
||
//# sourceMappingURL=926.cc58f475.js.map
|