From 890414deb151c51007f180eaa2b14582399a82dc Mon Sep 17 00:00:00 2001 From: vran Date: Mon, 21 Mar 2022 22:39:13 +0800 Subject: [PATCH] feature: support use ssl in smtp config (#58) * feat: support config use ssl * feat: update frontend resources --- .../{355.b144be0e.css => 596.b144be0e.css} | 0 api/src/main/resources/static/index.html | 2 +- .../static/js/243-legacy.92016c20.js | 2 + .../static/js/243-legacy.92016c20.js.map | 1 + .../main/resources/static/js/243.e2c9f564.js | 2 + .../resources/static/js/243.e2c9f564.js.map | 1 + .../static/js/596-legacy.6bd184a8.js | 2 - .../static/js/596-legacy.6bd184a8.js.map | 1 - ...acy.ae661cca.js => 596-legacy.b305a8fd.js} | 4 +- ...1cca.js.map => 596-legacy.b305a8fd.js.map} | 2 +- .../main/resources/static/js/596.a8ef0977.js | 2 - .../resources/static/js/596.a8ef0977.js.map | 1 - .../js/{355.259a00ae.js => 596.b510e94b.js} | 4 +- ...55.259a00ae.js.map => 596.b510e94b.js.map} | 2 +- ...acy.40dd2314.js => app-legacy.89421156.js} | 4 +- ...2314.js.map => app-legacy.89421156.js.map} | 2 +- .../js/{app.4f290695.js => app.ccfb747d.js} | 4 +- ...pp.4f290695.js.map => app.ccfb747d.js.map} | 2 +- .../system/data/SystemEmailResponse.java | 2 + .../system/data/SystemEmailUpdateRequest.java | 3 + .../domain/system/service/SystemService.java | 1 + .../core/infrastructure/mail/MailSender.java | 6 +- dao/build.gradle | 4 +- .../com/databasir/dao/tables/SysMail.java | 13 ++- .../dao/tables/pojos/SysMailPojo.java | 19 +++++ .../dao/tables/records/SysMailRecord.java | 82 ++++++++++++++----- .../main/resources/db/migration/V1__init.sql | 1 + 27 files changed, 121 insertions(+), 48 deletions(-) rename api/src/main/resources/static/css/{355.b144be0e.css => 596.b144be0e.css} (100%) create mode 100644 api/src/main/resources/static/js/243-legacy.92016c20.js create mode 100644 api/src/main/resources/static/js/243-legacy.92016c20.js.map create mode 100644 api/src/main/resources/static/js/243.e2c9f564.js create mode 100644 api/src/main/resources/static/js/243.e2c9f564.js.map delete mode 100644 api/src/main/resources/static/js/596-legacy.6bd184a8.js delete mode 100644 api/src/main/resources/static/js/596-legacy.6bd184a8.js.map rename api/src/main/resources/static/js/{355-legacy.ae661cca.js => 596-legacy.b305a8fd.js} (99%) rename api/src/main/resources/static/js/{355-legacy.ae661cca.js.map => 596-legacy.b305a8fd.js.map} (99%) delete mode 100644 api/src/main/resources/static/js/596.a8ef0977.js delete mode 100644 api/src/main/resources/static/js/596.a8ef0977.js.map rename api/src/main/resources/static/js/{355.259a00ae.js => 596.b510e94b.js} (99%) rename api/src/main/resources/static/js/{355.259a00ae.js.map => 596.b510e94b.js.map} (99%) rename api/src/main/resources/static/js/{app-legacy.40dd2314.js => app-legacy.89421156.js} (96%) rename api/src/main/resources/static/js/{app-legacy.40dd2314.js.map => app-legacy.89421156.js.map} (99%) rename api/src/main/resources/static/js/{app.4f290695.js => app.ccfb747d.js} (96%) rename api/src/main/resources/static/js/{app.4f290695.js.map => app.ccfb747d.js.map} (99%) diff --git a/api/src/main/resources/static/css/355.b144be0e.css b/api/src/main/resources/static/css/596.b144be0e.css similarity index 100% rename from api/src/main/resources/static/css/355.b144be0e.css rename to api/src/main/resources/static/css/596.b144be0e.css diff --git a/api/src/main/resources/static/index.html b/api/src/main/resources/static/index.html index e72ef70..4cb17bf 100644 --- a/api/src/main/resources/static/index.html +++ b/api/src/main/resources/static/index.html @@ -1 +1 @@ -databasir
\ No newline at end of file +databasir
\ No newline at end of file diff --git a/api/src/main/resources/static/js/243-legacy.92016c20.js b/api/src/main/resources/static/js/243-legacy.92016c20.js new file mode 100644 index 0000000..e185fd5 --- /dev/null +++ b/api/src/main/resources/static/js/243-legacy.92016c20.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[243],{1243:function(e,t,n){n.r(t),n.d(t,{default:function(){return W}});var r=n(6252),u=(0,r.Uk)(" 系统邮箱设置 "),o=(0,r.Uk)(" : "),l=(0,r.Uk)("保存"),a=(0,r.Uk)("重置");function s(e,t,n,s,i,m){var f=(0,r.up)("box"),d=(0,r.up)("el-icon"),p=(0,r.up)("el-divider"),c=(0,r.up)("el-input"),w=(0,r.up)("el-form-item"),h=(0,r.up)("el-col"),g=(0,r.up)("el-switch"),W=(0,r.up)("el-button"),V=(0,r.up)("el-form"),S=(0,r.up)("el-card"),_=(0,r.up)("el-main"),b=(0,r.up)("el-container");return(0,r.wg)(),(0,r.j4)(b,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(_,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(S,{shadow:"hover",style:{"max-width":"600px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(d,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(f)]})),_:1}),u]})),_:1}),(0,r.Wm)(V,{model:i.form,"label-position":"top",rules:i.formRule,ref:"formRef",style:{"max-width":"900px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(w,{label:"邮箱账号",prop:"username"},{default:(0,r.w5)((function(){return[(0,r.Wm)(c,{modelValue:i.form.username,"onUpdate:modelValue":t[0]||(t[0]=function(e){return i.form.username=e}),placeholder:"请输入邮箱账号"},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(w,{label:"邮箱密码",prop:"password"},{default:(0,r.w5)((function(){return[(0,r.Wm)(c,{modelValue:i.form.password,"onUpdate:modelValue":t[1]||(t[1]=function(e){return i.form.password=e}),type:"password",placeholder:"请输入密码","show-password":""},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(w,{label:"SMTP",prop:"smtpHost"},{default:(0,r.w5)((function(){return[(0,r.Wm)(h,{span:12},{default:(0,r.w5)((function(){return[(0,r.Wm)(c,{modelValue:i.form.smtpHost,"onUpdate:modelValue":t[2]||(t[2]=function(e){return i.form.smtpHost=e}),placeholder:"SMTP Host"},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(h,{span:1,style:{"text-align":"center"}},{default:(0,r.w5)((function(){return[o]})),_:1}),(0,r.Wm)(h,{span:6},{default:(0,r.w5)((function(){return[(0,r.Wm)(c,{modelValue:i.form.smtpPort,"onUpdate:modelValue":t[3]||(t[3]=function(e){return i.form.smtpPort=e}),placeholder:"SMTP Port"},null,8,["modelValue"])]})),_:1})]})),_:1}),(0,r.Wm)(w,{label:"启用 SSL",prop:"useSSL"},{default:(0,r.w5)((function(){return[(0,r.Wm)(g,{modelValue:i.form.useSSL,"onUpdate:modelValue":t[4]||(t[4]=function(e){return i.form.useSSL=e})},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(w,{style:{"margin-top":"38px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(W,{type:"primary",onClick:t[5]||(t[5]=function(e){return m.onSubmit("formRef")})},{default:(0,r.w5)((function(){return[l]})),_:1}),(0,r.Wm)(W,{type:"danger",onClick:t[6]||(t[6]=function(e){return m.onReset()})},{default:(0,r.w5)((function(){return[a]})),_:1})]})),_:1})]})),_:1},8,["model","rules"])]})),_:1})]})),_:1})]})),_:1})}var i=n(8534),m=(n(5666),n(3872)),f="/api/v1.0/settings",d=function(){return m.Z.get(f+"/sys_email")},p=function(e){return m.Z.post(f+"/sys_email",e)},c=function(){return m.Z["delete"](f+"/sys_email")},w={data:function(){return{form:{smtpHost:null,smtpPort:null,username:null,password:null,useSSL:!1},formRule:{username:[this.requiredInputValidRule("请输入邮箱账号"),{type:"email",message:"邮箱格式不正确",trigger:"blur"}],password:[this.requiredInputValidRule("请输入邮箱密码")],smtpHost:[this.requiredInputValidRule("请输入 SMTP 地址")],smtpPort:[this.requiredInputValidRule("请输入 SMTP 端口"),{min:1,max:65535,message:"端口有效值为 1~65535",trigger:"blur"}]}}},mounted:function(){this.fetchSysMail()},methods:{requiredInputValidRule:function(e){return{required:!0,message:e,trigger:"blur"}},fetchSysMail:function(){var e=this;return(0,i.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,d().then((function(e){return e.data}));case 2:n=t.sent,n&&(e.form=n);case 4:case"end":return t.stop()}}),t)})))()},onSubmit:function(){var e=this;this.$refs.formRef.validate((function(t){return t?(p(e.form).then((function(t){t.errCode||e.$message.success("更新成功")})),!0):(e.$message.error("请完善表单相关信息!"),!1)}))},onReset:function(){var e=this;this.$confirm("确认重置系统邮件吗?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){c().then((function(t){t.errCode||(e.form={},e.$message.success("重置成功"))}))}))}}},h=n(3744);const g=(0,h.Z)(w,[["render",s]]);var W=g}}]); +//# sourceMappingURL=243-legacy.92016c20.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/243-legacy.92016c20.js.map b/api/src/main/resources/static/js/243-legacy.92016c20.js.map new file mode 100644 index 0000000..26a33de --- /dev/null +++ b/api/src/main/resources/static/js/243-legacy.92016c20.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/243-legacy.92016c20.js","mappings":"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","sources":["webpack://databasir/./src/views/SysEmailEdit.vue","webpack://databasir/./src/api/System.js","webpack://databasir/./src/views/SysEmailEdit.vue?6c44"],"sourcesContent":["\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/settings'\r\n\r\nexport const getEmailSetting = () => {\r\n return axios.get(base+\"/sys_email\")\r\n}\r\n\r\nexport const updateEmailSetting = (request) => {\r\n return axios.post(base+\"/sys_email\", request);\r\n}\r\n\r\nexport const deleteEmailSetting = () => {\r\n return axios.delete(base+\"/sys_email\");\r\n}","import { render } from \"./SysEmailEdit.vue?vue&type=template&id=c6807e48\"\nimport script from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\nexport * from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_el_container","_createVNode","_component_el_main","_component_el_card","shadow","style","_component_el_divider","_component_el_icon","_component_box","_component_el_form","model","$data","rules","ref","_component_el_form_item","label","prop","_component_el_input","username","$event","placeholder","password","type","_component_el_col","span","smtpHost","smtpPort","_component_el_switch","useSSL","_component_el_button","onClick","$options","base","getEmailSetting","axios","updateEmailSetting","request","deleteEmailSetting","data","form","formRule","this","requiredInputValidRule","message","trigger","min","max","mounted","fetchSysMail","methods","required","then","resp","onSubmit","$refs","formRef","validate","valid","errCode","$message","success","error","onReset","$confirm","confirmButtonText","cancelButtonText","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/243.e2c9f564.js b/api/src/main/resources/static/js/243.e2c9f564.js new file mode 100644 index 0000000..3564d8f --- /dev/null +++ b/api/src/main/resources/static/js/243.e2c9f564.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[243],{1243:function(e,l,t){t.r(l),t.d(l,{default:function(){return W}});var a=t(6252);const s=(0,a.Uk)(" 系统邮箱设置 "),r=(0,a.Uk)(" : "),u=(0,a.Uk)("保存"),o=(0,a.Uk)("重置");function m(e,l,t,m,n,d){const p=(0,a.up)("box"),i=(0,a.up)("el-icon"),f=(0,a.up)("el-divider"),c=(0,a.up)("el-input"),h=(0,a.up)("el-form-item"),w=(0,a.up)("el-col"),W=(0,a.up)("el-switch"),V=(0,a.up)("el-button"),g=(0,a.up)("el-form"),S=(0,a.up)("el-card"),_=(0,a.up)("el-main"),b=(0,a.up)("el-container");return(0,a.wg)(),(0,a.j4)(b,null,{default:(0,a.w5)((()=>[(0,a.Wm)(_,null,{default:(0,a.w5)((()=>[(0,a.Wm)(S,{shadow:"hover",style:{"max-width":"600px"}},{default:(0,a.w5)((()=>[(0,a.Wm)(f,null,{default:(0,a.w5)((()=>[(0,a.Wm)(i,null,{default:(0,a.w5)((()=>[(0,a.Wm)(p)])),_:1}),s])),_:1}),(0,a.Wm)(g,{model:n.form,"label-position":"top",rules:n.formRule,ref:"formRef",style:{"max-width":"900px"}},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:"邮箱账号",prop:"username"},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.username,"onUpdate:modelValue":l[0]||(l[0]=e=>n.form.username=e),placeholder:"请输入邮箱账号"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"邮箱密码",prop:"password"},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.password,"onUpdate:modelValue":l[1]||(l[1]=e=>n.form.password=e),type:"password",placeholder:"请输入密码","show-password":""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"SMTP",prop:"smtpHost"},{default:(0,a.w5)((()=>[(0,a.Wm)(w,{span:12},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.smtpHost,"onUpdate:modelValue":l[2]||(l[2]=e=>n.form.smtpHost=e),placeholder:"SMTP Host"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(w,{span:1,style:{"text-align":"center"}},{default:(0,a.w5)((()=>[r])),_:1}),(0,a.Wm)(w,{span:6},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.smtpPort,"onUpdate:modelValue":l[3]||(l[3]=e=>n.form.smtpPort=e),placeholder:"SMTP Port"},null,8,["modelValue"])])),_:1})])),_:1}),(0,a.Wm)(h,{label:"启用 SSL",prop:"useSSL"},{default:(0,a.w5)((()=>[(0,a.Wm)(W,{modelValue:n.form.useSSL,"onUpdate:modelValue":l[4]||(l[4]=e=>n.form.useSSL=e)},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{style:{"margin-top":"38px"}},{default:(0,a.w5)((()=>[(0,a.Wm)(V,{type:"primary",onClick:l[5]||(l[5]=e=>d.onSubmit("formRef"))},{default:(0,a.w5)((()=>[u])),_:1}),(0,a.Wm)(V,{type:"danger",onClick:l[6]||(l[6]=e=>d.onReset())},{default:(0,a.w5)((()=>[o])),_:1})])),_:1})])),_:1},8,["model","rules"])])),_:1})])),_:1})])),_:1})}var n=t(3872);const d="/api/v1.0/settings",p=()=>n.Z.get(d+"/sys_email"),i=e=>n.Z.post(d+"/sys_email",e),f=()=>n.Z["delete"](d+"/sys_email");var c={data(){return{form:{smtpHost:null,smtpPort:null,username:null,password:null,useSSL:!1},formRule:{username:[this.requiredInputValidRule("请输入邮箱账号"),{type:"email",message:"邮箱格式不正确",trigger:"blur"}],password:[this.requiredInputValidRule("请输入邮箱密码")],smtpHost:[this.requiredInputValidRule("请输入 SMTP 地址")],smtpPort:[this.requiredInputValidRule("请输入 SMTP 端口"),{min:1,max:65535,message:"端口有效值为 1~65535",trigger:"blur"}]}}},mounted(){this.fetchSysMail()},methods:{requiredInputValidRule(e){return{required:!0,message:e,trigger:"blur"}},async fetchSysMail(){const e=await p().then((e=>e.data));e&&(this.form=e)},onSubmit(){this.$refs.formRef.validate((e=>e?(i(this.form).then((e=>{e.errCode||this.$message.success("更新成功")})),!0):(this.$message.error("请完善表单相关信息!"),!1)))},onReset(){this.$confirm("确认重置系统邮件吗?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{f().then((e=>{e.errCode||(this.form={},this.$message.success("重置成功"))}))}))}}},h=t(3744);const w=(0,h.Z)(c,[["render",m]]);var W=w}}]); +//# sourceMappingURL=243.e2c9f564.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/243.e2c9f564.js.map b/api/src/main/resources/static/js/243.e2c9f564.js.map new file mode 100644 index 0000000..2930452 --- /dev/null +++ b/api/src/main/resources/static/js/243.e2c9f564.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/243.e2c9f564.js","mappings":"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","sources":["webpack://databasir/./src/views/SysEmailEdit.vue","webpack://databasir/./src/api/System.js","webpack://databasir/./src/views/SysEmailEdit.vue?6c44"],"sourcesContent":["\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/settings'\r\n\r\nexport const getEmailSetting = () => {\r\n return axios.get(base+\"/sys_email\")\r\n}\r\n\r\nexport const updateEmailSetting = (request) => {\r\n return axios.post(base+\"/sys_email\", request);\r\n}\r\n\r\nexport const deleteEmailSetting = () => {\r\n return axios.delete(base+\"/sys_email\");\r\n}","import { render } from \"./SysEmailEdit.vue?vue&type=template&id=c6807e48\"\nimport script from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\nexport * from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_el_container","_createVNode","_component_el_main","_component_el_card","shadow","style","_component_el_divider","_component_el_icon","_component_box","_component_el_form","model","$data","rules","ref","_component_el_form_item","label","prop","_component_el_input","username","$event","placeholder","password","type","_component_el_col","span","smtpHost","smtpPort","_component_el_switch","useSSL","_component_el_button","onClick","$options","base","getEmailSetting","axios","updateEmailSetting","request","deleteEmailSetting","data","form","formRule","this","requiredInputValidRule","message","trigger","min","max","mounted","fetchSysMail","methods","required","async","then","resp","onSubmit","$refs","formRef","validate","valid","errCode","$message","success","error","onReset","$confirm","confirmButtonText","cancelButtonText","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/596-legacy.6bd184a8.js b/api/src/main/resources/static/js/596-legacy.6bd184a8.js deleted file mode 100644 index 93a02ef..0000000 --- a/api/src/main/resources/static/js/596-legacy.6bd184a8.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[596],{2631:function(e,t,n){n.r(t),n.d(t,{default:function(){return W}});var r=n(6252),u=(0,r.Uk)(" 系统邮箱设置 "),o=(0,r.Uk)(" : "),l=(0,r.Uk)("保存"),a=(0,r.Uk)("重置");function s(e,t,n,s,i,m){var f=(0,r.up)("box"),d=(0,r.up)("el-icon"),c=(0,r.up)("el-divider"),p=(0,r.up)("el-input"),w=(0,r.up)("el-form-item"),h=(0,r.up)("el-col"),g=(0,r.up)("el-button"),W=(0,r.up)("el-form"),_=(0,r.up)("el-card"),V=(0,r.up)("el-main"),b=(0,r.up)("el-container");return(0,r.wg)(),(0,r.j4)(b,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(V,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(_,{shadow:"hover",style:{"max-width":"600px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(c,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(d,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(f)]})),_:1}),u]})),_:1}),(0,r.Wm)(W,{model:i.form,"label-position":"top",rules:i.formRule,ref:"formRef",style:{"max-width":"900px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(w,{label:"邮箱账号",prop:"username"},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,{modelValue:i.form.username,"onUpdate:modelValue":t[0]||(t[0]=function(e){return i.form.username=e}),placeholder:"请输入邮箱账号"},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(w,{label:"邮箱密码",prop:"password"},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,{modelValue:i.form.password,"onUpdate:modelValue":t[1]||(t[1]=function(e){return i.form.password=e}),type:"password",placeholder:"请输入密码","show-password":""},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(w,{label:"SMTP",prop:"smtpHost"},{default:(0,r.w5)((function(){return[(0,r.Wm)(h,{span:12},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,{modelValue:i.form.smtpHost,"onUpdate:modelValue":t[2]||(t[2]=function(e){return i.form.smtpHost=e}),placeholder:"SMTP Host"},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(h,{span:1,style:{"text-align":"center"}},{default:(0,r.w5)((function(){return[o]})),_:1}),(0,r.Wm)(h,{span:6},{default:(0,r.w5)((function(){return[(0,r.Wm)(p,{modelValue:i.form.smtpPort,"onUpdate:modelValue":t[3]||(t[3]=function(e){return i.form.smtpPort=e}),placeholder:"SMTP Port"},null,8,["modelValue"])]})),_:1})]})),_:1}),(0,r.Wm)(w,{style:{"margin-top":"38px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(g,{type:"primary",onClick:t[4]||(t[4]=function(e){return m.onSubmit("formRef")})},{default:(0,r.w5)((function(){return[l]})),_:1}),(0,r.Wm)(g,{type:"danger",onClick:t[5]||(t[5]=function(e){return m.onReset()})},{default:(0,r.w5)((function(){return[a]})),_:1})]})),_:1})]})),_:1},8,["model","rules"])]})),_:1})]})),_:1})]})),_:1})}var i=n(8534),m=(n(5666),n(3872)),f="/api/v1.0/settings",d=function(){return m.Z.get(f+"/sys_email")},c=function(e){return m.Z.post(f+"/sys_email",e)},p=function(){return m.Z["delete"](f+"/sys_email")},w={data:function(){return{form:{smtpHost:null,smtpPort:null,username:null,password:null},formRule:{username:[this.requiredInputValidRule("请输入邮箱账号"),{type:"email",message:"邮箱格式不正确",trigger:"blur"}],password:[this.requiredInputValidRule("请输入邮箱密码")],smtpHost:[this.requiredInputValidRule("请输入 SMTP 地址")],smtpPort:[this.requiredInputValidRule("请输入 SMTP 端口"),{min:1,max:65535,message:"端口有效值为 1~65535",trigger:"blur"}]}}},mounted:function(){this.fetchSysMail()},methods:{requiredInputValidRule:function(e){return{required:!0,message:e,trigger:"blur"}},fetchSysMail:function(){var e=this;return(0,i.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,d().then((function(e){return e.data}));case 2:n=t.sent,n&&(e.form=n);case 4:case"end":return t.stop()}}),t)})))()},onSubmit:function(){var e=this;this.$refs.formRef.validate((function(t){return t?(c(e.form).then((function(t){t.errCode||e.$message.success("更新成功")})),!0):(e.$message.error("请完善表单相关信息!"),!1)}))},onReset:function(){var e=this;this.$confirm("确认重置系统邮件吗?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){p().then((function(t){t.errCode||(e.form={},e.$message.success("重置成功"))}))}))}}},h=n(3744);const g=(0,h.Z)(w,[["render",s]]);var W=g}}]); -//# sourceMappingURL=596-legacy.6bd184a8.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/596-legacy.6bd184a8.js.map b/api/src/main/resources/static/js/596-legacy.6bd184a8.js.map deleted file mode 100644 index 26d1893..0000000 --- a/api/src/main/resources/static/js/596-legacy.6bd184a8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/596-legacy.6bd184a8.js","mappings":"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","sources":["webpack://databasir/./src/views/SysEmailEdit.vue","webpack://databasir/./src/api/System.js","webpack://databasir/./src/views/SysEmailEdit.vue?6c44"],"sourcesContent":["\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/settings'\r\n\r\nexport const getEmailSetting = () => {\r\n return axios.get(base+\"/sys_email\")\r\n}\r\n\r\nexport const updateEmailSetting = (request) => {\r\n return axios.post(base+\"/sys_email\", request);\r\n}\r\n\r\nexport const deleteEmailSetting = () => {\r\n return axios.delete(base+\"/sys_email\");\r\n}","import { render } from \"./SysEmailEdit.vue?vue&type=template&id=2f0419d5\"\nimport script from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\nexport * from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_el_container","_createVNode","_component_el_main","_component_el_card","shadow","style","_component_el_divider","_component_el_icon","_component_box","_component_el_form","model","$data","rules","ref","_component_el_form_item","label","prop","_component_el_input","username","$event","placeholder","password","type","_component_el_col","span","smtpHost","smtpPort","_component_el_button","onClick","$options","base","getEmailSetting","axios","updateEmailSetting","request","deleteEmailSetting","data","form","formRule","this","requiredInputValidRule","message","trigger","min","max","mounted","fetchSysMail","methods","required","then","resp","onSubmit","$refs","formRef","validate","valid","errCode","$message","success","error","onReset","$confirm","confirmButtonText","cancelButtonText","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/355-legacy.ae661cca.js b/api/src/main/resources/static/js/596-legacy.b305a8fd.js similarity index 99% rename from api/src/main/resources/static/js/355-legacy.ae661cca.js rename to api/src/main/resources/static/js/596-legacy.b305a8fd.js index 5b18623..c3d856b 100644 --- a/api/src/main/resources/static/js/355-legacy.ae661cca.js +++ b/api/src/main/resources/static/js/596-legacy.b305a8fd.js @@ -1,2 +1,2 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[355],{7042:function(e,t,n){var r=n(2109),u=n(7854),o=n(3157),a=n(4411),i=n(111),l=n(1400),c=n(6244),s=n(5656),p=n(6135),f=n(5112),d=n(1194),g=n(206),m=d("slice"),w=f("species"),h=u.Array,W=Math.max;r({target:"Array",proto:!0,forced:!m},{slice:function(e,t){var n,r,u,f=s(this),d=c(f),m=l(e,d),_=l(void 0===t?d:t,d);if(o(f)&&(n=f.constructor,a(n)&&(n===h||o(n.prototype))?n=void 0:i(n)&&(n=n[w],null===n&&(n=void 0)),n===h||void 0===n))return g(f,m,_);for(r=new(void 0===n?h:n)(W(_-m,0)),u=0;m<_;m++,u++)m in f&&p(r,u,f[m]);return r.length=u,r}})},7596:function(e,t,n){n.r(t),n.d(t,{default:function(){return O}});n(8309),n(2526),n(1817),n(7042);var r=n(6252),u=n(9963),o=n(3577),a=["onClick"],i={style:{color:"#909399","font-size":"13px"}},l={style:{color:"#909399"}},c={key:1},s=(0,r.Uk)(" 更多 "),p=(0,r.Uk)("查看文档"),f=(0,r.Uk)("取消关注"),d=(0,r.Uk)("删除项目"),g=(0,r._)("h2",null,"组长管理",-1),m=(0,r.Uk)("保存"),w=(0,r.Uk)("取消"),h=(0,r.Uk)("删除分组"),W=(0,r.Uk)("确认删除分组");function _(e,t,n,_,v,D){var P=(0,r.up)("el-button"),y=(0,r.up)("el-tooltip"),k=(0,r.up)("el-col"),b=(0,r.up)("el-input"),C=(0,r.up)("el-row"),j=(0,r.up)("el-empty"),G=(0,r.up)("el-link"),O=(0,r.up)("el-divider"),E=(0,r.up)("user"),U=(0,r.up)("el-icon"),z=(0,r.up)("el-tag"),R=(0,r.up)("arrow-down"),N=(0,r.up)("el-dropdown-item"),S=(0,r.up)("el-dropdown-menu"),T=(0,r.up)("el-dropdown"),V=(0,r.up)("el-space"),F=(0,r.up)("folder"),I=(0,r.up)("el-card"),x=(0,r.up)("el-main"),$=(0,r.up)("el-pagination"),Q=(0,r.up)("el-footer"),q=(0,r.up)("el-container"),A=(0,r.up)("el-tab-pane"),L=(0,r.up)("el-table-column"),Y=(0,r.up)("database-icon"),M=(0,r.up)("el-table"),H=(0,r.up)("el-tabs"),B=(0,r.up)("el-form-item"),K=(0,r.up)("el-autocomplete"),Z=(0,r.up)("el-form"),J=(0,r.up)("warning-filled"),X=(0,r.up)("el-collapse-item"),ee=(0,r.up)("el-collapse"),te=(0,r.up)("el-dialog"),ne=(0,r.Q2)("require-roles");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r.Wm)(H,{modelValue:D.activeTab,"onUpdate:modelValue":t[3]||(t[3]=function(e){return D.activeTab=e}),onTabClick:D.onTabClick},{default:(0,r.w5)((function(){return[(0,r.Wm)(A,{label:"项目分组",name:"groupListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(x,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{gutter:12},{default:(0,r.w5)((function(){return[(0,r.wy)(((0,r.wg)(),(0,r.j4)(k,{span:3},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:"创建一个分组",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"primary",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=function(e){return D.toCreatePage()})})]})),_:1})]})),_:1})),[[ne,["SYS_OWNER"]]]),(0,r.Wm)(k,{span:8},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{onChange:D.onQuery,modelValue:v.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=function(e){return v.groupPageQuery.groupNameContains=e}),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])]})),_:1})]})),_:1}),0==v.groupPageData.data.length?((0,r.wg)(),(0,r.j4)(C,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(k,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(j,{description:"请先创建分组"})]})),_:1})]})),_:1})):((0,r.wg)(!0),(0,r.iD)(r.HY,{key:1},(0,r.Ko)(D.partitionArray(4,v.groupPageData.data),(function(e,n){return(0,r.wg)(),(0,r.j4)(C,{gutter:20,key:n},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e,(function(e){return(0,r.wg)(),(0,r.j4)(k,{span:6,key:e.id},{default:(0,r.w5)((function(){return[(0,r.Wm)(I,{shadow:"hover",onMouseenter:function(t){return v.mouseEnterGroupId=e.id},onMouseleave:t[2]||(t[2]=function(e){return v.mouseEnterGroupId=null})},{default:(0,r.w5)((function(){return[(0,r.Wm)(O,{"content-position":"right"},{default:(0,r.w5)((function(){return[(0,r.wy)((0,r.Wm)(G,{underline:!1,onClick:function(t){return D.toEditPage(e.id,e.name)},icon:"Edit",style:{"margin-right":"8px"}},null,8,["onClick"]),[[u.F8,e.id==v.mouseEnterGroupId],[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]]),(0,r.Wm)(G,{underline:!1},{default:(0,r.w5)((function(){return[(0,r._)("span",{onClick:function(t){return D.toGroupDashboard(e.id,e.name)}},[(0,r._)("h4",null,(0,o.zw)(e.name),1)],8,a)]})),_:2},1024)]})),_:2},1024),(0,r.Wm)(V,{direction:"vertical",alignment:"stretch",size:16},{default:(0,r.w5)((function(){return[(0,r._)("span",i,(0,o.zw)(e.description),1),(0,r.Wm)(V,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:"组长"},{default:(0,r.w5)((function(){return[(0,r.Wm)(U,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(E)]})),_:1})]})),_:1}),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(0,2),(function(e,t){return(0,r.wg)(),(0,r.j4)(z,{key:t,type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e),1)]})),_:2},1024)})),128)),e.groupOwnerNames.length>2?((0,r.wg)(),(0,r.j4)(T,{key:0},{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(S,null,{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(3),(function(e,t){return(0,r.wg)(),(0,r.j4)(N,{key:t},{default:(0,r.w5)((function(){return[(0,r.Wm)(z,{type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e),1)]})),_:2},1024)]})),_:2},1024)})),128))]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r.Wm)(U,{class:"el-icon--right"},{default:(0,r.w5)((function(){return[(0,r.Wm)(R)]})),_:1})]})),_:2},1024)):(0,r.kq)("",!0)]})),_:2},1024),(0,r.Wm)(V,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:"项目数"},{default:(0,r.w5)((function(){return[(0,r.Wm)(U,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(F)]})),_:1})]})),_:1}),(0,r._)("span",l,(0,o.zw)(e.projectCount),1)]})),_:2},1024)]})),_:2},1024)]})),_:2},1032,["onMouseenter"])]})),_:2},1024)})),128))]})),_:2},1024)})),128))]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:v.groupPageData.number,"page-size":v.groupPageData.size,"page-count":v.groupPageData.totalPages,onCurrentChange:D.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1}),(0,r.Wm)(A,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(x,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(M,{data:v.favoriteProjectPageData.data,stripe:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(L,{prop:"projectId",label:"项目 ID"}),(0,r.Wm)(L,{prop:"projectName",label:"项目名称"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(G,{onClick:function(t){return D.toDocumentPage(e.row)}},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,o.zw)(e.row.projectName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"projectDescription",label:"项目描述"}),(0,r.Wm)(L,{label:"定时同步",align:"center"},{default:(0,r.w5)((function(e){return[e.row.isAutoSync?((0,r.wg)(),(0,r.j4)(z,{key:0},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.row.autoSyncCron),1)]})),_:2},1024)):((0,r.wg)(),(0,r.iD)("span",c," 无 "))]})),_:1}),(0,r.Wm)(L,{label:"数据库类型"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(Y,{databaseType:e.row.databaseType},null,8,["databaseType"])]})),_:1}),(0,r.Wm)(L,{prop:"databaseName",label:"数据库名称"}),(0,r.Wm)(L,{prop:"groupName",label:"所属分组"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(G,{onClick:function(t){return D.toGroupDashboard(e.row.groupId,e.row.groupName)},icon:"List"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.row.groupName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"createAt",label:"关注时间"}),(0,r.Wm)(L,{label:"操作"},{default:(0,r.w5)((function(t){return[(0,r.Wm)(T,null,{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(S,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"primary",size:"small",onClick:(0,u.iM)((function(e){return D.toDocumentPage(t.row)}),["stop"]),icon:"View"},{default:(0,r.w5)((function(){return[p]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"warning",size:"small",onClick:(0,u.iM)((function(e){return D.onRemoveFavorite(t.row.projectId)}),["stop"]),icon:"StarFilled"},{default:(0,r.w5)((function(){return[f]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.wy)(((0,r.wg)(),(0,r.j4)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"danger",size:"small",onClick:(0,u.iM)((function(e){return D.onProjectDelete(t.row.projectId)}),["stop"]),icon:"Remove"},{default:(0,r.w5)((function(){return[d]})),_:2},1032,["onClick"])]})),_:2},1024)),[[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r._)("span",null,[s,(0,r.Wm)(U,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(R)]})),_:1})])]})),_:2},1024)]})),_:1})]})),_:1},8,["data"])]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:v.favoriteProjectPageData.number,"page-size":v.favoriteProjectPageData.size,"page-count":v.favoriteProjectPageData.totalPages,onCurrentChange:D.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1})]})),_:1},8,["modelValue","onTabClick"]),(0,r.Wm)(te,{modelValue:v.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=function(e){return v.isShowEditGroupDialog=e}),width:"38%",center:"","destroy-on-close":""},{default:(0,r.w5)((function(){return[(0,r.Wm)(Z,{model:v.groupData,rules:v.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(B,{label:"名称",prop:"name"},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{modelValue:v.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=function(e){return v.groupData.name=e})},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(B,{label:"描述",prop:"description"},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{modelValue:v.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=function(e){return v.groupData.description=e}),type:"textarea"},null,8,["modelValue"])]})),_:1}),g,(0,r.Wm)(B,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(K,{modelValue:v.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=function(e){return v.userQueryData.nicknameOrUsernameOrEmailContains=e}),"fetch-suggestions":D.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:D.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])]})),_:1}),(0,r.Wm)(B,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(V,{wrap:""},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(v.groupData.groupOwners,(function(e,t){return(0,r.wg)(),(0,r.j4)(z,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:function(e){return D.onGroupOwnerRemove(t)}},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:e.email,placement:"top"},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,o.zw)(e.nickname),1)]})),_:2},1032,["content"])]})),_:2},1032,["onClose"])})),128))]})),_:1})]})),_:1}),(0,r.Wm)(B,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"primary",onClick:t[7]||(t[7]=function(e){return D.onGroupSave("groupFormRef")})},{default:(0,r.w5)((function(){return[m]})),_:1}),(0,r.Wm)(P,{onClick:t[8]||(t[8]=function(e){return v.isShowEditGroupDialog=!1})},{default:(0,r.w5)((function(){return[w]})),_:1})]})),_:1})]})),_:1},8,["model","rules"]),v.groupData.id?((0,r.wg)(),(0,r.j4)(ee,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(X,{name:"1"},{title:(0,r.w5)((function(){return[(0,r.Wm)(U,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(J)]})),_:1}),h]})),default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=function(e){return D.onGroupDelete(v.groupData.id)})},{default:(0,r.w5)((function(){return[W]})),_:1})]})),_:1})]})),_:1})]})),_:1})):(0,r.kq)("",!0)]})),_:1},8,["modelValue"])],64)}var v=n(8534),D=(n(1249),n(561),n(1539),n(5666),n(8337)),P=n(3110),y=n(9080),k=n(9324),b=n(1836),C={data:function(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")],description:[this.requiredInputValidRule("请输入有效邮箱")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},groupPageQuery:{page:0,size:15,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created:function(){this.fetchGroupsFunction(),this.fetchUserFavorites()},computed:{activeTab:{get:function(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set:function(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit:function(e){return b.E.hasAnyRoles([e])},fetchUserFavorites:function(){var e=this;return(0,v.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,y.V$)(e.favoriteProjectPageQuery);case 2:n=t.sent,e.favoriteProjectPageData.data=n.data.content,e.favoriteProjectPageData.number=n.data.number+1,e.favoriteProjectPageData.size=n.data.size,e.favoriteProjectPageData.totalPages=n.data.totalPages,e.favoriteProjectPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},fetchGroupsFunction:function(){var e=this;return(0,v.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,D.Wq)(e.groupPageQuery);case 2:n=t.sent,e.groupPageData.data=n.data.content,e.groupPageData.number=n.data.number+1,e.groupPageData.size=n.data.size,e.groupPageData.totalPages=n.data.totalPages,e.groupPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},requiredInputValidRule:function(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners:function(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},partitionArray:function(e,t){for(var n=[],r=0,u=0;u2?((0,r.wg)(),(0,r.j4)(T,{key:0},{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(S,null,{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(3),(function(e,t){return(0,r.wg)(),(0,r.j4)(N,{key:t},{default:(0,r.w5)((function(){return[(0,r.Wm)(z,{type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e),1)]})),_:2},1024)]})),_:2},1024)})),128))]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r.Wm)(U,{class:"el-icon--right"},{default:(0,r.w5)((function(){return[(0,r.Wm)(R)]})),_:1})]})),_:2},1024)):(0,r.kq)("",!0)]})),_:2},1024),(0,r.Wm)(V,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:"项目数"},{default:(0,r.w5)((function(){return[(0,r.Wm)(U,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(F)]})),_:1})]})),_:1}),(0,r._)("span",l,(0,o.zw)(e.projectCount),1)]})),_:2},1024)]})),_:2},1024)]})),_:2},1032,["onMouseenter"])]})),_:2},1024)})),128))]})),_:2},1024)})),128))]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:v.groupPageData.number,"page-size":v.groupPageData.size,"page-count":v.groupPageData.totalPages,onCurrentChange:D.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1}),(0,r.Wm)(A,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(x,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(M,{data:v.favoriteProjectPageData.data,stripe:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(L,{prop:"projectId",label:"项目 ID"}),(0,r.Wm)(L,{prop:"projectName",label:"项目名称"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(G,{onClick:function(t){return D.toDocumentPage(e.row)}},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,o.zw)(e.row.projectName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"projectDescription",label:"项目描述"}),(0,r.Wm)(L,{label:"定时同步",align:"center"},{default:(0,r.w5)((function(e){return[e.row.isAutoSync?((0,r.wg)(),(0,r.j4)(z,{key:0},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.row.autoSyncCron),1)]})),_:2},1024)):((0,r.wg)(),(0,r.iD)("span",c," 无 "))]})),_:1}),(0,r.Wm)(L,{label:"数据库类型"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(Y,{databaseType:e.row.databaseType},null,8,["databaseType"])]})),_:1}),(0,r.Wm)(L,{prop:"databaseName",label:"数据库名称"}),(0,r.Wm)(L,{prop:"groupName",label:"所属分组"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(G,{onClick:function(t){return D.toGroupDashboard(e.row.groupId,e.row.groupName)},icon:"List"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(e.row.groupName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"createAt",label:"关注时间"}),(0,r.Wm)(L,{label:"操作"},{default:(0,r.w5)((function(t){return[(0,r.Wm)(T,null,{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(S,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"primary",size:"small",onClick:(0,u.iM)((function(e){return D.toDocumentPage(t.row)}),["stop"]),icon:"View"},{default:(0,r.w5)((function(){return[p]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"warning",size:"small",onClick:(0,u.iM)((function(e){return D.onRemoveFavorite(t.row.projectId)}),["stop"]),icon:"StarFilled"},{default:(0,r.w5)((function(){return[f]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.wy)(((0,r.wg)(),(0,r.j4)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"danger",size:"small",onClick:(0,u.iM)((function(e){return D.onProjectDelete(t.row.projectId)}),["stop"]),icon:"Remove"},{default:(0,r.w5)((function(){return[d]})),_:2},1032,["onClick"])]})),_:2},1024)),[[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r._)("span",null,[s,(0,r.Wm)(U,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(R)]})),_:1})])]})),_:2},1024)]})),_:1})]})),_:1},8,["data"])]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:v.favoriteProjectPageData.number,"page-size":v.favoriteProjectPageData.size,"page-count":v.favoriteProjectPageData.totalPages,onCurrentChange:D.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1})]})),_:1},8,["modelValue","onTabClick"]),(0,r.Wm)(te,{modelValue:v.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=function(e){return v.isShowEditGroupDialog=e}),width:"38%",center:"","destroy-on-close":""},{default:(0,r.w5)((function(){return[(0,r.Wm)(Z,{model:v.groupData,rules:v.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(B,{label:"名称",prop:"name"},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{modelValue:v.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=function(e){return v.groupData.name=e})},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(B,{label:"描述",prop:"description"},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{modelValue:v.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=function(e){return v.groupData.description=e}),type:"textarea"},null,8,["modelValue"])]})),_:1}),g,(0,r.Wm)(B,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(K,{modelValue:v.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=function(e){return v.userQueryData.nicknameOrUsernameOrEmailContains=e}),"fetch-suggestions":D.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:D.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])]})),_:1}),(0,r.Wm)(B,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(V,{wrap:""},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(v.groupData.groupOwners,(function(e,t){return(0,r.wg)(),(0,r.j4)(z,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:function(e){return D.onGroupOwnerRemove(t)}},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:e.email,placement:"top"},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,o.zw)(e.nickname),1)]})),_:2},1032,["content"])]})),_:2},1032,["onClose"])})),128))]})),_:1})]})),_:1}),(0,r.Wm)(B,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{type:"primary",onClick:t[7]||(t[7]=function(e){return D.onGroupSave("groupFormRef")})},{default:(0,r.w5)((function(){return[m]})),_:1}),(0,r.Wm)(P,{onClick:t[8]||(t[8]=function(e){return v.isShowEditGroupDialog=!1})},{default:(0,r.w5)((function(){return[w]})),_:1})]})),_:1})]})),_:1},8,["model","rules"]),v.groupData.id?((0,r.wg)(),(0,r.j4)(ee,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(X,{name:"1"},{title:(0,r.w5)((function(){return[(0,r.Wm)(U,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(J)]})),_:1}),h]})),default:(0,r.w5)((function(){return[(0,r.Wm)(y,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(P,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=function(e){return D.onGroupDelete(v.groupData.id)})},{default:(0,r.w5)((function(){return[W]})),_:1})]})),_:1})]})),_:1})]})),_:1})):(0,r.kq)("",!0)]})),_:1},8,["modelValue"])],64)}var v=n(8534),D=(n(1249),n(561),n(1539),n(5666),n(8337)),P=n(3110),y=n(9080),k=n(9324),b=n(1836),C={data:function(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")],description:[this.requiredInputValidRule("请输入有效邮箱")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},groupPageQuery:{page:0,size:15,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created:function(){this.fetchGroupsFunction(),this.fetchUserFavorites()},computed:{activeTab:{get:function(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set:function(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit:function(e){return b.E.hasAnyRoles([e])},fetchUserFavorites:function(){var e=this;return(0,v.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,y.V$)(e.favoriteProjectPageQuery);case 2:n=t.sent,e.favoriteProjectPageData.data=n.data.content,e.favoriteProjectPageData.number=n.data.number+1,e.favoriteProjectPageData.size=n.data.size,e.favoriteProjectPageData.totalPages=n.data.totalPages,e.favoriteProjectPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},fetchGroupsFunction:function(){var e=this;return(0,v.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,D.Wq)(e.groupPageQuery);case 2:n=t.sent,e.groupPageData.data=n.data.content,e.groupPageData.number=n.data.number+1,e.groupPageData.size=n.data.size,e.groupPageData.totalPages=n.data.totalPages,e.groupPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},requiredInputValidRule:function(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners:function(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},partitionArray:function(e,t){for(var n=[],r=0,u=0;u\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 保存\r\n 取消\r\n \r\n \r\n \r\n \r\n \r\n \r\n 确认删除分组\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=4dcee336\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=4dcee336&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["$","global","isArray","isConstructor","isObject","toAbsoluteIndex","lengthOfArrayLike","toIndexedObject","createProperty","wellKnownSymbol","arrayMethodHasSpeciesSupport","un$Slice","HAS_SPECIES_SUPPORT","SPECIES","Array","max","Math","target","proto","forced","slice","start","end","Constructor","result","n","O","this","length","k","fin","undefined","constructor","prototype","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","span","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","partition","index","group","id","_component_el_card","shadow","onMouseenter","onMouseleave","_component_el_divider","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","owner","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","class","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_4","_component_database_icon","databaseType","groupId","groupName","projectId","_ctx","_component_el_dialog","width","center","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_9","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","fetchUserFavorites","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","role","listFavorites","jsonData","listGroups","message","required","trigger","requiredGroupOwners","partitionArray","arr","output","idx","i","onPageChange","onQuery","queryUsersAsync","query","callback","listUsers","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","deleteGroup","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","request","Object","assign","groupOwnerUserIds","r","createOrUpdateGroup","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","getGroup","toGroupDashboard","$router","path","toGroupMemberListPage","toDocumentPage","favoriteProject","onFavoriteProjectPageChange","onRemoveFavorite","removeFavorite","onProjectDelete","deleteProjectById","tab","props","__exports__","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/596-legacy.b305a8fd.js","mappings":"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","sources":["webpack://databasir/./node_modules/core-js/modules/es.array.slice.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=4dcee336\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=4dcee336&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["$","global","isArray","isConstructor","isObject","toAbsoluteIndex","lengthOfArrayLike","toIndexedObject","createProperty","wellKnownSymbol","arrayMethodHasSpeciesSupport","un$Slice","HAS_SPECIES_SUPPORT","SPECIES","Array","max","Math","target","proto","forced","slice","start","end","Constructor","result","n","O","this","length","k","fin","undefined","constructor","prototype","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","span","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","partition","index","group","id","_component_el_card","shadow","onMouseenter","onMouseleave","_component_el_divider","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","owner","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","class","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_4","_component_database_icon","databaseType","groupId","groupName","projectId","_ctx","_component_el_dialog","width","center","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_9","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","fetchUserFavorites","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","role","listFavorites","jsonData","listGroups","message","required","trigger","requiredGroupOwners","partitionArray","arr","output","idx","i","onPageChange","onQuery","queryUsersAsync","query","callback","listUsers","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","deleteGroup","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","request","Object","assign","groupOwnerUserIds","r","createOrUpdateGroup","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","getGroup","toGroupDashboard","$router","path","toGroupMemberListPage","toDocumentPage","favoriteProject","onFavoriteProjectPageChange","onRemoveFavorite","removeFavorite","onProjectDelete","deleteProjectById","tab","props","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/596.a8ef0977.js b/api/src/main/resources/static/js/596.a8ef0977.js deleted file mode 100644 index edfda5d..0000000 --- a/api/src/main/resources/static/js/596.a8ef0977.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[596],{2631:function(e,l,t){t.r(l),t.d(l,{default:function(){return g}});var a=t(6252);const r=(0,a.Uk)(" 系统邮箱设置 "),s=(0,a.Uk)(" : "),o=(0,a.Uk)("保存"),u=(0,a.Uk)("重置");function m(e,l,t,m,n,d){const p=(0,a.up)("box"),i=(0,a.up)("el-icon"),f=(0,a.up)("el-divider"),c=(0,a.up)("el-input"),h=(0,a.up)("el-form-item"),w=(0,a.up)("el-col"),g=(0,a.up)("el-button"),W=(0,a.up)("el-form"),_=(0,a.up)("el-card"),V=(0,a.up)("el-main"),y=(0,a.up)("el-container");return(0,a.wg)(),(0,a.j4)(y,null,{default:(0,a.w5)((()=>[(0,a.Wm)(V,null,{default:(0,a.w5)((()=>[(0,a.Wm)(_,{shadow:"hover",style:{"max-width":"600px"}},{default:(0,a.w5)((()=>[(0,a.Wm)(f,null,{default:(0,a.w5)((()=>[(0,a.Wm)(i,null,{default:(0,a.w5)((()=>[(0,a.Wm)(p)])),_:1}),r])),_:1}),(0,a.Wm)(W,{model:n.form,"label-position":"top",rules:n.formRule,ref:"formRef",style:{"max-width":"900px"}},{default:(0,a.w5)((()=>[(0,a.Wm)(h,{label:"邮箱账号",prop:"username"},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.username,"onUpdate:modelValue":l[0]||(l[0]=e=>n.form.username=e),placeholder:"请输入邮箱账号"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"邮箱密码",prop:"password"},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.password,"onUpdate:modelValue":l[1]||(l[1]=e=>n.form.password=e),type:"password",placeholder:"请输入密码","show-password":""},null,8,["modelValue"])])),_:1}),(0,a.Wm)(h,{label:"SMTP",prop:"smtpHost"},{default:(0,a.w5)((()=>[(0,a.Wm)(w,{span:12},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.smtpHost,"onUpdate:modelValue":l[2]||(l[2]=e=>n.form.smtpHost=e),placeholder:"SMTP Host"},null,8,["modelValue"])])),_:1}),(0,a.Wm)(w,{span:1,style:{"text-align":"center"}},{default:(0,a.w5)((()=>[s])),_:1}),(0,a.Wm)(w,{span:6},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{modelValue:n.form.smtpPort,"onUpdate:modelValue":l[3]||(l[3]=e=>n.form.smtpPort=e),placeholder:"SMTP Port"},null,8,["modelValue"])])),_:1})])),_:1}),(0,a.Wm)(h,{style:{"margin-top":"38px"}},{default:(0,a.w5)((()=>[(0,a.Wm)(g,{type:"primary",onClick:l[4]||(l[4]=e=>d.onSubmit("formRef"))},{default:(0,a.w5)((()=>[o])),_:1}),(0,a.Wm)(g,{type:"danger",onClick:l[5]||(l[5]=e=>d.onReset())},{default:(0,a.w5)((()=>[u])),_:1})])),_:1})])),_:1},8,["model","rules"])])),_:1})])),_:1})])),_:1})}var n=t(3872);const d="/api/v1.0/settings",p=()=>n.Z.get(d+"/sys_email"),i=e=>n.Z.post(d+"/sys_email",e),f=()=>n.Z["delete"](d+"/sys_email");var c={data(){return{form:{smtpHost:null,smtpPort:null,username:null,password:null},formRule:{username:[this.requiredInputValidRule("请输入邮箱账号"),{type:"email",message:"邮箱格式不正确",trigger:"blur"}],password:[this.requiredInputValidRule("请输入邮箱密码")],smtpHost:[this.requiredInputValidRule("请输入 SMTP 地址")],smtpPort:[this.requiredInputValidRule("请输入 SMTP 端口"),{min:1,max:65535,message:"端口有效值为 1~65535",trigger:"blur"}]}}},mounted(){this.fetchSysMail()},methods:{requiredInputValidRule(e){return{required:!0,message:e,trigger:"blur"}},async fetchSysMail(){const e=await p().then((e=>e.data));e&&(this.form=e)},onSubmit(){this.$refs.formRef.validate((e=>e?(i(this.form).then((e=>{e.errCode||this.$message.success("更新成功")})),!0):(this.$message.error("请完善表单相关信息!"),!1)))},onReset(){this.$confirm("确认重置系统邮件吗?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{f().then((e=>{e.errCode||(this.form={},this.$message.success("重置成功"))}))}))}}},h=t(3744);const w=(0,h.Z)(c,[["render",m]]);var g=w}}]); -//# sourceMappingURL=596.a8ef0977.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/596.a8ef0977.js.map b/api/src/main/resources/static/js/596.a8ef0977.js.map deleted file mode 100644 index 62c388c..0000000 --- a/api/src/main/resources/static/js/596.a8ef0977.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/596.a8ef0977.js","mappings":"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","sources":["webpack://databasir/./src/views/SysEmailEdit.vue","webpack://databasir/./src/api/System.js","webpack://databasir/./src/views/SysEmailEdit.vue?6c44"],"sourcesContent":["\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/settings'\r\n\r\nexport const getEmailSetting = () => {\r\n return axios.get(base+\"/sys_email\")\r\n}\r\n\r\nexport const updateEmailSetting = (request) => {\r\n return axios.post(base+\"/sys_email\", request);\r\n}\r\n\r\nexport const deleteEmailSetting = () => {\r\n return axios.delete(base+\"/sys_email\");\r\n}","import { render } from \"./SysEmailEdit.vue?vue&type=template&id=2f0419d5\"\nimport script from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\nexport * from \"./SysEmailEdit.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_createBlock","_component_el_container","_createVNode","_component_el_main","_component_el_card","shadow","style","_component_el_divider","_component_el_icon","_component_box","_component_el_form","model","$data","rules","ref","_component_el_form_item","label","prop","_component_el_input","username","$event","placeholder","password","type","_component_el_col","span","smtpHost","smtpPort","_component_el_button","onClick","$options","base","getEmailSetting","axios","updateEmailSetting","request","deleteEmailSetting","data","form","formRule","this","requiredInputValidRule","message","trigger","min","max","mounted","fetchSysMail","methods","required","async","then","resp","onSubmit","$refs","formRef","validate","valid","errCode","$message","success","error","onReset","$confirm","confirmButtonText","cancelButtonText","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/355.259a00ae.js b/api/src/main/resources/static/js/596.b510e94b.js similarity index 99% rename from api/src/main/resources/static/js/355.259a00ae.js rename to api/src/main/resources/static/js/596.b510e94b.js index abee1ff..7bf9504 100644 --- a/api/src/main/resources/static/js/355.259a00ae.js +++ b/api/src/main/resources/static/js/596.b510e94b.js @@ -1,2 +1,2 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[355],{8337:function(e,t,a){a.d(t,{Wq:function(){return n},ex:function(){return u},vB:function(){return l},iE:function(){return p},yF:function(){return c},E2:function(){return d},_j:function(){return g},q9:function(){return m}});var o=a(3872);const r="/api/v1.0/groups",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id&&null!=e.id?s(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.patch(r,e),p=e=>o.Z["delete"](r+"/"+e),c=(e,t)=>o.Z.get(r+"/"+e+"/members",{params:t}),d=(e,t)=>o.Z.post(r+"/"+e+"/members",t),g=(e,t)=>o.Z["delete"](r+"/"+e+"/members/"+t),m=(e,t,a)=>{const n={role:a};return o.Z.patch(r+"/"+e+"/members/"+t,n)}},9324:function(e,t,a){a.d(t,{hW:function(){return n},Rp:function(){return u},Iu:function(){return l},M7:function(){return s},jI:function(){return d}});var o=a(3872);const r="/api/v1.0/projects",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id?c(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.post(r+"/test_connection",e),p="/api/v1.0/groups",c=e=>o.Z.patch(p+"/"+e.groupId+"/projects",e),d=(e,t)=>o.Z["delete"](p+"/"+e+"/projects/"+t)},3110:function(e,t,a){a.d(t,{yw:function(){return n},Dx:function(){return u},B9:function(){return l},__:function(){return i},r4:function(){return s},oD:function(){return p},_:function(){return c},Uz:function(){return d},gQ:function(){return g},Gz:function(){return m}});var o=a(3872);const r="/api/v1.0/users",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.post(r+"/"+e+"/enable"),l=e=>o.Z.post(r+"/"+e+"/disable"),i=e=>o.Z.get(r+"/"+e),s=e=>o.Z.post(r,e),p=e=>o.Z.post(r+"/"+e+"/renew_password"),c=e=>o.Z.post(r+"/"+e+"/sys_owners"),d=e=>o.Z["delete"](r+"/"+e+"/sys_owners"),g=(e,t)=>o.Z.post(r+"/"+e+"/password",t),m=(e,t)=>o.Z.post(r+"/"+e+"/nickname",t)},9080:function(e,t,a){a.d(t,{V$:function(){return n},Ni:function(){return u},a3:function(){return l}});var o=a(3872);const r="/api/v1.0/user_projects/favorites",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z["delete"](r+"/"+e),l=e=>o.Z.post(r+"/"+e)},7596:function(e,t,a){a.r(t),a.d(t,{default:function(){return G}});var o=a(6252),r=a(9963),n=a(3577);const u=["onClick"],l={style:{color:"#909399","font-size":"13px"}},i={style:{color:"#909399"}},s={key:1},p=(0,o.Uk)(" 更多 "),c=(0,o.Uk)("查看文档"),d=(0,o.Uk)("取消关注"),g=(0,o.Uk)("删除项目"),m=(0,o._)("h2",null,"组长管理",-1),w=(0,o.Uk)("保存"),f=(0,o.Uk)("取消"),h=(0,o.Uk)("删除分组"),_=(0,o.Uk)("确认删除分组");function W(e,t,a,W,D,y){const P=(0,o.up)("el-button"),b=(0,o.up)("el-tooltip"),k=(0,o.up)("el-col"),v=(0,o.up)("el-input"),C=(0,o.up)("el-row"),j=(0,o.up)("el-empty"),G=(0,o.up)("el-link"),O=(0,o.up)("el-divider"),E=(0,o.up)("user"),z=(0,o.up)("el-icon"),U=(0,o.up)("el-tag"),Z=(0,o.up)("arrow-down"),N=(0,o.up)("el-dropdown-item"),V=(0,o.up)("el-dropdown-menu"),I=(0,o.up)("el-dropdown"),S=(0,o.up)("el-space"),T=(0,o.up)("folder"),R=(0,o.up)("el-card"),F=(0,o.up)("el-main"),$=(0,o.up)("el-pagination"),Q=(0,o.up)("el-footer"),q=(0,o.up)("el-container"),x=(0,o.up)("el-tab-pane"),A=(0,o.up)("el-table-column"),L=(0,o.up)("database-icon"),Y=(0,o.up)("el-table"),M=(0,o.up)("el-tabs"),B=(0,o.up)("el-form-item"),H=(0,o.up)("el-autocomplete"),K=(0,o.up)("el-form"),J=(0,o.up)("warning-filled"),X=(0,o.up)("el-collapse-item"),ee=(0,o.up)("el-collapse"),te=(0,o.up)("el-dialog"),ae=(0,o.Q2)("require-roles");return(0,o.wg)(),(0,o.iD)(o.HY,null,[(0,o.Wm)(M,{modelValue:y.activeTab,"onUpdate:modelValue":t[3]||(t[3]=e=>y.activeTab=e),onTabClick:y.onTabClick},{default:(0,o.w5)((()=>[(0,o.Wm)(x,{label:"项目分组",name:"groupListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(C,{gutter:12},{default:(0,o.w5)((()=>[(0,o.wy)(((0,o.wg)(),(0,o.j4)(k,{span:3},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"创建一个分组",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"primary",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=e=>y.toCreatePage())})])),_:1})])),_:1})),[[ae,["SYS_OWNER"]]]),(0,o.Wm)(k,{span:8},{default:(0,o.w5)((()=>[(0,o.Wm)(v,{onChange:y.onQuery,modelValue:D.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=e=>D.groupPageQuery.groupNameContains=e),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])])),_:1})])),_:1}),0==D.groupPageData.data.length?((0,o.wg)(),(0,o.j4)(C,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(k,null,{default:(0,o.w5)((()=>[(0,o.Wm)(j,{description:"请先创建分组"})])),_:1})])),_:1})):((0,o.wg)(!0),(0,o.iD)(o.HY,{key:1},(0,o.Ko)(y.partitionArray(4,D.groupPageData.data),((e,a)=>((0,o.wg)(),(0,o.j4)(C,{gutter:20,key:a},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e,(e=>((0,o.wg)(),(0,o.j4)(k,{span:6,key:e.id},{default:(0,o.w5)((()=>[(0,o.Wm)(R,{shadow:"hover",onMouseenter:t=>D.mouseEnterGroupId=e.id,onMouseleave:t[2]||(t[2]=e=>D.mouseEnterGroupId=null)},{default:(0,o.w5)((()=>[(0,o.Wm)(O,{"content-position":"right"},{default:(0,o.w5)((()=>[(0,o.wy)((0,o.Wm)(G,{underline:!1,onClick:t=>y.toEditPage(e.id,e.name),icon:"Edit",style:{"margin-right":"8px"}},null,8,["onClick"]),[[r.F8,e.id==D.mouseEnterGroupId],[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]]),(0,o.Wm)(G,{underline:!1},{default:(0,o.w5)((()=>[(0,o._)("span",{onClick:t=>y.toGroupDashboard(e.id,e.name)},[(0,o._)("h4",null,(0,n.zw)(e.name),1)],8,u)])),_:2},1024)])),_:2},1024),(0,o.Wm)(S,{direction:"vertical",alignment:"stretch",size:16},{default:(0,o.w5)((()=>[(0,o._)("span",l,(0,n.zw)(e.description),1),(0,o.Wm)(S,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"组长"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(E)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(0,2),((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:t,type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e),1)])),_:2},1024)))),128)),e.groupOwnerNames.length>2?((0,o.wg)(),(0,o.j4)(I,{key:0},{dropdown:(0,o.w5)((()=>[(0,o.Wm)(V,null,{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(3),((e,t)=>((0,o.wg)(),(0,o.j4)(N,{key:t},{default:(0,o.w5)((()=>[(0,o.Wm)(U,{type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e),1)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o.Wm)(z,{class:"el-icon--right"},{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1024),(0,o.Wm)(S,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"项目数"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(T)])),_:1})])),_:1}),(0,o._)("span",i,(0,n.zw)(e.projectCount),1)])),_:2},1024)])),_:2},1024)])),_:2},1032,["onMouseenter"])])),_:2},1024)))),128))])),_:2},1024)))),128))])),_:1}),(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.groupPageData.number,"page-size":D.groupPageData.size,"page-count":D.groupPageData.totalPages,onCurrentChange:y.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1}),(0,o.Wm)(x,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(Y,{data:D.favoriteProjectPageData.data,stripe:""},{default:(0,o.w5)((()=>[(0,o.Wm)(A,{prop:"projectId",label:"项目 ID"}),(0,o.Wm)(A,{prop:"projectName",label:"项目名称"},{default:(0,o.w5)((e=>[(0,o.Wm)(G,{onClick:t=>y.toDocumentPage(e.row)},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,n.zw)(e.row.projectName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"projectDescription",label:"项目描述"}),(0,o.Wm)(A,{label:"定时同步",align:"center"},{default:(0,o.w5)((e=>[e.row.isAutoSync?((0,o.wg)(),(0,o.j4)(U,{key:0},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e.row.autoSyncCron),1)])),_:2},1024)):((0,o.wg)(),(0,o.iD)("span",s," 无 "))])),_:1}),(0,o.Wm)(A,{label:"数据库类型"},{default:(0,o.w5)((e=>[(0,o.Wm)(L,{databaseType:e.row.databaseType},null,8,["databaseType"])])),_:1}),(0,o.Wm)(A,{prop:"databaseName",label:"数据库名称"}),(0,o.Wm)(A,{prop:"groupName",label:"所属分组"},{default:(0,o.w5)((e=>[(0,o.Wm)(G,{onClick:t=>y.toGroupDashboard(e.row.groupId,e.row.groupName),icon:"List"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e.row.groupName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"createAt",label:"关注时间"}),(0,o.Wm)(A,{label:"操作"},{default:(0,o.w5)((t=>[(0,o.Wm)(I,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(V,null,{default:(0,o.w5)((()=>[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"primary",size:"small",onClick:(0,r.iM)((e=>y.toDocumentPage(t.row)),["stop"]),icon:"View"},{default:(0,o.w5)((()=>[c])),_:2},1032,["onClick"])])),_:2},1024),(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"warning",size:"small",onClick:(0,r.iM)((e=>y.onRemoveFavorite(t.row.projectId)),["stop"]),icon:"StarFilled"},{default:(0,o.w5)((()=>[d])),_:2},1032,["onClick"])])),_:2},1024),(0,o.wy)(((0,o.wg)(),(0,o.j4)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"danger",size:"small",onClick:(0,r.iM)((e=>y.onProjectDelete(t.row.projectId)),["stop"]),icon:"Remove"},{default:(0,o.w5)((()=>[g])),_:2},1032,["onClick"])])),_:2},1024)),[[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o._)("span",null,[p,(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])])),_:2},1024)])),_:1})])),_:1},8,["data"])])),_:1}),(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.favoriteProjectPageData.number,"page-size":D.favoriteProjectPageData.size,"page-count":D.favoriteProjectPageData.totalPages,onCurrentChange:y.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue","onTabClick"]),(0,o.Wm)(te,{modelValue:D.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=e=>D.isShowEditGroupDialog=e),width:"38%",center:"","destroy-on-close":""},{default:(0,o.w5)((()=>[(0,o.Wm)(K,{model:D.groupData,rules:D.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(B,{label:"名称",prop:"name"},{default:(0,o.w5)((()=>[(0,o.Wm)(v,{modelValue:D.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=e=>D.groupData.name=e)},null,8,["modelValue"])])),_:1}),(0,o.Wm)(B,{label:"描述",prop:"description"},{default:(0,o.w5)((()=>[(0,o.Wm)(v,{modelValue:D.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=e=>D.groupData.description=e),type:"textarea"},null,8,["modelValue"])])),_:1}),m,(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(H,{modelValue:D.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=e=>D.userQueryData.nicknameOrUsernameOrEmailContains=e),"fetch-suggestions":y.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:y.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(S,{wrap:""},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(D.groupData.groupOwners,((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:e=>y.onGroupOwnerRemove(t)},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:e.email,placement:"top"},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,n.zw)(e.nickname),1)])),_:2},1032,["content"])])),_:2},1032,["onClose"])))),128))])),_:1})])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"primary",onClick:t[7]||(t[7]=e=>y.onGroupSave("groupFormRef"))},{default:(0,o.w5)((()=>[w])),_:1}),(0,o.Wm)(P,{onClick:t[8]||(t[8]=e=>D.isShowEditGroupDialog=!1)},{default:(0,o.w5)((()=>[f])),_:1})])),_:1})])),_:1},8,["model","rules"]),D.groupData.id?((0,o.wg)(),(0,o.j4)(ee,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(X,{name:"1"},{title:(0,o.w5)((()=>[(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(J)])),_:1}),h])),default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(P,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=e=>y.onGroupDelete(D.groupData.id))},{default:(0,o.w5)((()=>[_])),_:1})])),_:1})])),_:1})])),_:1})):(0,o.kq)("",!0)])),_:1},8,["modelValue"])],64)}var D=a(8337),y=a(3110),P=a(9080),b=a(9324),k=a(1836),v={data(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")],description:[this.requiredInputValidRule("请输入有效邮箱")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},groupPageQuery:{page:0,size:15,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created(){this.fetchGroupsFunction(),this.fetchUserFavorites()},computed:{activeTab:{get(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit(e){return k.E.hasAnyRoles([e])},async fetchUserFavorites(){const e=await(0,P.V$)(this.favoriteProjectPageQuery);this.favoriteProjectPageData.data=e.data.content,this.favoriteProjectPageData.number=e.data.number+1,this.favoriteProjectPageData.size=e.data.size,this.favoriteProjectPageData.totalPages=e.data.totalPages,this.favoriteProjectPageData.totalElements=e.data.totalElements},async fetchGroupsFunction(){const e=await(0,D.Wq)(this.groupPageQuery);this.groupPageData.data=e.data.content,this.groupPageData.number=e.data.number+1,this.groupPageData.size=e.data.size,this.groupPageData.totalPages=e.data.totalPages,this.groupPageData.totalElements=e.data.totalElements},requiredInputValidRule(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},partitionArray(e,t){for(var a=[],o=0,r=0;re.data.content)),o=a.map((e=>({value:e.nickname,nickname:e.nickname,email:e.email,id:e.id})));t(o)},onGroupDelete(e){this.$confirm("确认删除该分组?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,D.iE)(e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.isShowEditGroupDialog=!1,this.fetchGroupsFunction())}))}))},onGroupSave(){this.requiredGroupOwners()?this.$refs.groupFormRef.validate((e=>{if(e){const e=Object.assign({},this.groupData);e.groupOwnerUserIds=this.groupData.groupOwners.map((e=>e.id)),(0,D.vB)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.isShowEditGroupDialog=!1,this.groupData={groupOwners:[]},this.fetchGroupsFunction())}))}else this.$message.error("请填写表单必填项")})):this.$message.warning("组长人数至少需要 1 人,最多为 20 人")},onGroupOwnerRemove(e){this.groupData.groupOwners.splice(e,1)},onGroupOwnerSelect(e){this.groupData.groupOwners.some((t=>t.id==e.id))||this.groupData.groupOwners.push(e),this.userQueryData.nicknameOrUsernameOrEmailContains=null},toCreatePage(){this.isShowEditGroupDialog=!0,this.groupData={groupOwners:[]}},toEditPage(e){(0,D.ex)(e).then((e=>{e.errCode||(this.isShowEditGroupDialog=!0,this.groupData=e.data)}))},toGroupDashboard(e,t){this.$router.push({path:"/groups/"+e,query:{groupName:t}})},toGroupMemberListPage(){},toDocumentPage(e){const t=e.groupId,a=e.projectId;this.$router.push({path:"/groups/"+t+"/projects/"+a+"/documents",query:{projectName:e.projectName,groupName:e.groupName}})},onFavoriteProjectPageChange(e){e&&(this.favoriteProjectPageQuery.page=e-1,this.fetchUserFavorites())},onRemoveFavorite(e){(0,P.Ni)(e).then((e=>{e.errCode||(this.$message.success("成功取消"),this.fetchUserFavorites())}))},onProjectDelete(e){this.$confirm("确认删除该项目?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,b.jI)(this.groupId,e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.fetchUserFavorites())}))}))},onTabClick(e){this.$store.commit("switchGroupListActiveTab",e.props.name)}}},C=a(3744);const j=(0,C.Z)(v,[["render",W]]);var G=j}}]); -//# sourceMappingURL=355.259a00ae.js.map \ No newline at end of file +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[596],{8337:function(e,t,a){a.d(t,{Wq:function(){return n},ex:function(){return u},vB:function(){return l},iE:function(){return p},yF:function(){return c},E2:function(){return d},_j:function(){return g},q9:function(){return m}});var o=a(3872);const r="/api/v1.0/groups",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id&&null!=e.id?s(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.patch(r,e),p=e=>o.Z["delete"](r+"/"+e),c=(e,t)=>o.Z.get(r+"/"+e+"/members",{params:t}),d=(e,t)=>o.Z.post(r+"/"+e+"/members",t),g=(e,t)=>o.Z["delete"](r+"/"+e+"/members/"+t),m=(e,t,a)=>{const n={role:a};return o.Z.patch(r+"/"+e+"/members/"+t,n)}},9324:function(e,t,a){a.d(t,{hW:function(){return n},Rp:function(){return u},Iu:function(){return l},M7:function(){return s},jI:function(){return d}});var o=a(3872);const r="/api/v1.0/projects",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id?c(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.post(r+"/test_connection",e),p="/api/v1.0/groups",c=e=>o.Z.patch(p+"/"+e.groupId+"/projects",e),d=(e,t)=>o.Z["delete"](p+"/"+e+"/projects/"+t)},3110:function(e,t,a){a.d(t,{yw:function(){return n},Dx:function(){return u},B9:function(){return l},__:function(){return i},r4:function(){return s},oD:function(){return p},_:function(){return c},Uz:function(){return d},gQ:function(){return g},Gz:function(){return m}});var o=a(3872);const r="/api/v1.0/users",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.post(r+"/"+e+"/enable"),l=e=>o.Z.post(r+"/"+e+"/disable"),i=e=>o.Z.get(r+"/"+e),s=e=>o.Z.post(r,e),p=e=>o.Z.post(r+"/"+e+"/renew_password"),c=e=>o.Z.post(r+"/"+e+"/sys_owners"),d=e=>o.Z["delete"](r+"/"+e+"/sys_owners"),g=(e,t)=>o.Z.post(r+"/"+e+"/password",t),m=(e,t)=>o.Z.post(r+"/"+e+"/nickname",t)},9080:function(e,t,a){a.d(t,{V$:function(){return n},Ni:function(){return u},a3:function(){return l}});var o=a(3872);const r="/api/v1.0/user_projects/favorites",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z["delete"](r+"/"+e),l=e=>o.Z.post(r+"/"+e)},7596:function(e,t,a){a.r(t),a.d(t,{default:function(){return G}});var o=a(6252),r=a(9963),n=a(3577);const u=["onClick"],l={style:{color:"#909399","font-size":"13px"}},i={style:{color:"#909399"}},s={key:1},p=(0,o.Uk)(" 更多 "),c=(0,o.Uk)("查看文档"),d=(0,o.Uk)("取消关注"),g=(0,o.Uk)("删除项目"),m=(0,o._)("h2",null,"组长管理",-1),w=(0,o.Uk)("保存"),f=(0,o.Uk)("取消"),h=(0,o.Uk)("删除分组"),_=(0,o.Uk)("确认删除分组");function W(e,t,a,W,D,y){const P=(0,o.up)("el-button"),b=(0,o.up)("el-tooltip"),k=(0,o.up)("el-col"),v=(0,o.up)("el-input"),C=(0,o.up)("el-row"),j=(0,o.up)("el-empty"),G=(0,o.up)("el-link"),O=(0,o.up)("el-divider"),E=(0,o.up)("user"),z=(0,o.up)("el-icon"),U=(0,o.up)("el-tag"),Z=(0,o.up)("arrow-down"),N=(0,o.up)("el-dropdown-item"),V=(0,o.up)("el-dropdown-menu"),I=(0,o.up)("el-dropdown"),S=(0,o.up)("el-space"),T=(0,o.up)("folder"),R=(0,o.up)("el-card"),F=(0,o.up)("el-main"),$=(0,o.up)("el-pagination"),Q=(0,o.up)("el-footer"),q=(0,o.up)("el-container"),x=(0,o.up)("el-tab-pane"),A=(0,o.up)("el-table-column"),L=(0,o.up)("database-icon"),Y=(0,o.up)("el-table"),M=(0,o.up)("el-tabs"),B=(0,o.up)("el-form-item"),H=(0,o.up)("el-autocomplete"),K=(0,o.up)("el-form"),J=(0,o.up)("warning-filled"),X=(0,o.up)("el-collapse-item"),ee=(0,o.up)("el-collapse"),te=(0,o.up)("el-dialog"),ae=(0,o.Q2)("require-roles");return(0,o.wg)(),(0,o.iD)(o.HY,null,[(0,o.Wm)(M,{modelValue:y.activeTab,"onUpdate:modelValue":t[3]||(t[3]=e=>y.activeTab=e),onTabClick:y.onTabClick},{default:(0,o.w5)((()=>[(0,o.Wm)(x,{label:"项目分组",name:"groupListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(C,{gutter:12},{default:(0,o.w5)((()=>[(0,o.wy)(((0,o.wg)(),(0,o.j4)(k,{span:3},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"创建一个分组",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"primary",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=e=>y.toCreatePage())})])),_:1})])),_:1})),[[ae,["SYS_OWNER"]]]),(0,o.Wm)(k,{span:8},{default:(0,o.w5)((()=>[(0,o.Wm)(v,{onChange:y.onQuery,modelValue:D.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=e=>D.groupPageQuery.groupNameContains=e),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])])),_:1})])),_:1}),0==D.groupPageData.data.length?((0,o.wg)(),(0,o.j4)(C,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(k,null,{default:(0,o.w5)((()=>[(0,o.Wm)(j,{description:"请先创建分组"})])),_:1})])),_:1})):((0,o.wg)(!0),(0,o.iD)(o.HY,{key:1},(0,o.Ko)(y.partitionArray(4,D.groupPageData.data),((e,a)=>((0,o.wg)(),(0,o.j4)(C,{gutter:20,key:a},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e,(e=>((0,o.wg)(),(0,o.j4)(k,{span:6,key:e.id},{default:(0,o.w5)((()=>[(0,o.Wm)(R,{shadow:"hover",onMouseenter:t=>D.mouseEnterGroupId=e.id,onMouseleave:t[2]||(t[2]=e=>D.mouseEnterGroupId=null)},{default:(0,o.w5)((()=>[(0,o.Wm)(O,{"content-position":"right"},{default:(0,o.w5)((()=>[(0,o.wy)((0,o.Wm)(G,{underline:!1,onClick:t=>y.toEditPage(e.id,e.name),icon:"Edit",style:{"margin-right":"8px"}},null,8,["onClick"]),[[r.F8,e.id==D.mouseEnterGroupId],[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]]),(0,o.Wm)(G,{underline:!1},{default:(0,o.w5)((()=>[(0,o._)("span",{onClick:t=>y.toGroupDashboard(e.id,e.name)},[(0,o._)("h4",null,(0,n.zw)(e.name),1)],8,u)])),_:2},1024)])),_:2},1024),(0,o.Wm)(S,{direction:"vertical",alignment:"stretch",size:16},{default:(0,o.w5)((()=>[(0,o._)("span",l,(0,n.zw)(e.description),1),(0,o.Wm)(S,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"组长"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(E)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(0,2),((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:t,type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e),1)])),_:2},1024)))),128)),e.groupOwnerNames.length>2?((0,o.wg)(),(0,o.j4)(I,{key:0},{dropdown:(0,o.w5)((()=>[(0,o.Wm)(V,null,{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(3),((e,t)=>((0,o.wg)(),(0,o.j4)(N,{key:t},{default:(0,o.w5)((()=>[(0,o.Wm)(U,{type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e),1)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o.Wm)(z,{class:"el-icon--right"},{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1024),(0,o.Wm)(S,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"项目数"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(T)])),_:1})])),_:1}),(0,o._)("span",i,(0,n.zw)(e.projectCount),1)])),_:2},1024)])),_:2},1024)])),_:2},1032,["onMouseenter"])])),_:2},1024)))),128))])),_:2},1024)))),128))])),_:1}),(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.groupPageData.number,"page-size":D.groupPageData.size,"page-count":D.groupPageData.totalPages,onCurrentChange:y.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1}),(0,o.Wm)(x,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(Y,{data:D.favoriteProjectPageData.data,stripe:""},{default:(0,o.w5)((()=>[(0,o.Wm)(A,{prop:"projectId",label:"项目 ID"}),(0,o.Wm)(A,{prop:"projectName",label:"项目名称"},{default:(0,o.w5)((e=>[(0,o.Wm)(G,{onClick:t=>y.toDocumentPage(e.row)},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,n.zw)(e.row.projectName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"projectDescription",label:"项目描述"}),(0,o.Wm)(A,{label:"定时同步",align:"center"},{default:(0,o.w5)((e=>[e.row.isAutoSync?((0,o.wg)(),(0,o.j4)(U,{key:0},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e.row.autoSyncCron),1)])),_:2},1024)):((0,o.wg)(),(0,o.iD)("span",s," 无 "))])),_:1}),(0,o.Wm)(A,{label:"数据库类型"},{default:(0,o.w5)((e=>[(0,o.Wm)(L,{databaseType:e.row.databaseType},null,8,["databaseType"])])),_:1}),(0,o.Wm)(A,{prop:"databaseName",label:"数据库名称"}),(0,o.Wm)(A,{prop:"groupName",label:"所属分组"},{default:(0,o.w5)((e=>[(0,o.Wm)(G,{onClick:t=>y.toGroupDashboard(e.row.groupId,e.row.groupName),icon:"List"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,n.zw)(e.row.groupName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"createAt",label:"关注时间"}),(0,o.Wm)(A,{label:"操作"},{default:(0,o.w5)((t=>[(0,o.Wm)(I,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(V,null,{default:(0,o.w5)((()=>[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"primary",size:"small",onClick:(0,r.iM)((e=>y.toDocumentPage(t.row)),["stop"]),icon:"View"},{default:(0,o.w5)((()=>[c])),_:2},1032,["onClick"])])),_:2},1024),(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"warning",size:"small",onClick:(0,r.iM)((e=>y.onRemoveFavorite(t.row.projectId)),["stop"]),icon:"StarFilled"},{default:(0,o.w5)((()=>[d])),_:2},1032,["onClick"])])),_:2},1024),(0,o.wy)(((0,o.wg)(),(0,o.j4)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"danger",size:"small",onClick:(0,r.iM)((e=>y.onProjectDelete(t.row.projectId)),["stop"]),icon:"Remove"},{default:(0,o.w5)((()=>[g])),_:2},1032,["onClick"])])),_:2},1024)),[[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o._)("span",null,[p,(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])])),_:2},1024)])),_:1})])),_:1},8,["data"])])),_:1}),(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.favoriteProjectPageData.number,"page-size":D.favoriteProjectPageData.size,"page-count":D.favoriteProjectPageData.totalPages,onCurrentChange:y.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue","onTabClick"]),(0,o.Wm)(te,{modelValue:D.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=e=>D.isShowEditGroupDialog=e),width:"38%",center:"","destroy-on-close":""},{default:(0,o.w5)((()=>[(0,o.Wm)(K,{model:D.groupData,rules:D.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(B,{label:"名称",prop:"name"},{default:(0,o.w5)((()=>[(0,o.Wm)(v,{modelValue:D.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=e=>D.groupData.name=e)},null,8,["modelValue"])])),_:1}),(0,o.Wm)(B,{label:"描述",prop:"description"},{default:(0,o.w5)((()=>[(0,o.Wm)(v,{modelValue:D.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=e=>D.groupData.description=e),type:"textarea"},null,8,["modelValue"])])),_:1}),m,(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(H,{modelValue:D.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=e=>D.userQueryData.nicknameOrUsernameOrEmailContains=e),"fetch-suggestions":y.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:y.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(S,{wrap:""},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(D.groupData.groupOwners,((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:e=>y.onGroupOwnerRemove(t)},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:e.email,placement:"top"},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,n.zw)(e.nickname),1)])),_:2},1032,["content"])])),_:2},1032,["onClose"])))),128))])),_:1})])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(P,{type:"primary",onClick:t[7]||(t[7]=e=>y.onGroupSave("groupFormRef"))},{default:(0,o.w5)((()=>[w])),_:1}),(0,o.Wm)(P,{onClick:t[8]||(t[8]=e=>D.isShowEditGroupDialog=!1)},{default:(0,o.w5)((()=>[f])),_:1})])),_:1})])),_:1},8,["model","rules"]),D.groupData.id?((0,o.wg)(),(0,o.j4)(ee,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(X,{name:"1"},{title:(0,o.w5)((()=>[(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(J)])),_:1}),h])),default:(0,o.w5)((()=>[(0,o.Wm)(b,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(P,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=e=>y.onGroupDelete(D.groupData.id))},{default:(0,o.w5)((()=>[_])),_:1})])),_:1})])),_:1})])),_:1})):(0,o.kq)("",!0)])),_:1},8,["modelValue"])],64)}var D=a(8337),y=a(3110),P=a(9080),b=a(9324),k=a(1836),v={data(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")],description:[this.requiredInputValidRule("请输入有效邮箱")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},groupPageQuery:{page:0,size:15,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:1},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created(){this.fetchGroupsFunction(),this.fetchUserFavorites()},computed:{activeTab:{get(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit(e){return k.E.hasAnyRoles([e])},async fetchUserFavorites(){const e=await(0,P.V$)(this.favoriteProjectPageQuery);this.favoriteProjectPageData.data=e.data.content,this.favoriteProjectPageData.number=e.data.number+1,this.favoriteProjectPageData.size=e.data.size,this.favoriteProjectPageData.totalPages=e.data.totalPages,this.favoriteProjectPageData.totalElements=e.data.totalElements},async fetchGroupsFunction(){const e=await(0,D.Wq)(this.groupPageQuery);this.groupPageData.data=e.data.content,this.groupPageData.number=e.data.number+1,this.groupPageData.size=e.data.size,this.groupPageData.totalPages=e.data.totalPages,this.groupPageData.totalElements=e.data.totalElements},requiredInputValidRule(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},partitionArray(e,t){for(var a=[],o=0,r=0;re.data.content)),o=a.map((e=>({value:e.nickname,nickname:e.nickname,email:e.email,id:e.id})));t(o)},onGroupDelete(e){this.$confirm("确认删除该分组?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,D.iE)(e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.isShowEditGroupDialog=!1,this.fetchGroupsFunction())}))}))},onGroupSave(){this.requiredGroupOwners()?this.$refs.groupFormRef.validate((e=>{if(e){const e=Object.assign({},this.groupData);e.groupOwnerUserIds=this.groupData.groupOwners.map((e=>e.id)),(0,D.vB)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.isShowEditGroupDialog=!1,this.groupData={groupOwners:[]},this.fetchGroupsFunction())}))}else this.$message.error("请填写表单必填项")})):this.$message.warning("组长人数至少需要 1 人,最多为 20 人")},onGroupOwnerRemove(e){this.groupData.groupOwners.splice(e,1)},onGroupOwnerSelect(e){this.groupData.groupOwners.some((t=>t.id==e.id))||this.groupData.groupOwners.push(e),this.userQueryData.nicknameOrUsernameOrEmailContains=null},toCreatePage(){this.isShowEditGroupDialog=!0,this.groupData={groupOwners:[]}},toEditPage(e){(0,D.ex)(e).then((e=>{e.errCode||(this.isShowEditGroupDialog=!0,this.groupData=e.data)}))},toGroupDashboard(e,t){this.$router.push({path:"/groups/"+e,query:{groupName:t}})},toGroupMemberListPage(){},toDocumentPage(e){const t=e.groupId,a=e.projectId;this.$router.push({path:"/groups/"+t+"/projects/"+a+"/documents",query:{projectName:e.projectName,groupName:e.groupName}})},onFavoriteProjectPageChange(e){e&&(this.favoriteProjectPageQuery.page=e-1,this.fetchUserFavorites())},onRemoveFavorite(e){(0,P.Ni)(e).then((e=>{e.errCode||(this.$message.success("成功取消"),this.fetchUserFavorites())}))},onProjectDelete(e){this.$confirm("确认删除该项目?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,b.jI)(this.groupId,e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.fetchUserFavorites())}))}))},onTabClick(e){this.$store.commit("switchGroupListActiveTab",e.props.name)}}},C=a(3744);const j=(0,C.Z)(v,[["render",W]]);var G=j}}]); +//# sourceMappingURL=596.b510e94b.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/355.259a00ae.js.map b/api/src/main/resources/static/js/596.b510e94b.js.map similarity index 99% rename from api/src/main/resources/static/js/355.259a00ae.js.map rename to api/src/main/resources/static/js/596.b510e94b.js.map index cf6b8c5..11f797a 100644 --- a/api/src/main/resources/static/js/355.259a00ae.js.map +++ b/api/src/main/resources/static/js/596.b510e94b.js.map @@ -1 +1 @@ -{"version":3,"file":"js/355.259a00ae.js","mappings":"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","sources":["webpack://databasir/./src/api/Group.js","webpack://databasir/./src/api/Project.js","webpack://databasir/./src/api/User.js","webpack://databasir/./src/api/UserProject.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/groups'\r\n\r\nexport const listGroups = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const getGroup= (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateGroup = (body) => {\r\n if (body.id && body.id != null) {\r\n return updateGroup(body)\r\n } else {\r\n return createGroup(body)\r\n }\r\n}\r\n\r\nexport const createGroup = (body) => {\r\n return axios.post(base, body)\r\n}\r\n\r\nexport const updateGroup = (body) => {\r\n return axios.patch(base, body)\r\n}\r\n\r\nexport const deleteGroup = (id) => {\r\n return axios.delete(base + '/' + id)\r\n}\r\n\r\nexport const listGroupMembers = (groupId, pageQuery) => {\r\n return axios.get(base + '/' + groupId + '/members', {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const addGroupMember = (groupId, body) => {\r\n return axios.post(base + '/' + groupId + '/members', body)\r\n}\r\n\r\nexport const removeGroupMember = (groupId, userId) => {\r\n return axios.delete(base +'/'+groupId+'/members/'+userId)\r\n}\r\n\r\nexport const updateGroupMemberRole = (groupId, userId, role) => {\r\n const body = {\r\n role: role\r\n }\r\n return axios.patch(base +'/'+groupId+'/members/'+userId, body)\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/projects'\r\n\r\nexport const listProjects = (parameters) => {\r\n return axios.get(base, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const getProjectById = (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateProject = (request) => {\r\n if (request.id) {\r\n return updateProject(request)\r\n } else {\r\n return createProject(request)\r\n }\r\n}\r\n\r\nexport const createProject = (request) => {\r\n return axios.post(base, request);\r\n}\r\n\r\nexport const testConnection = (request) => {\r\n return axios.post(base + '/test_connection', request)\r\n}\r\n\r\n\r\nconst groupProjectBase = '/api/v1.0/groups'\r\n\r\n\r\nexport const updateProject = (request) => {\r\n return axios.patch(groupProjectBase +'/'+request.groupId+'/projects', request);\r\n}\r\n\r\nexport const deleteProjectById = (groupId, id) => {\r\n return axios.delete(groupProjectBase + '/' +groupId +'/projects/' + id);\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/user_projects/favorites'\r\n\r\nexport const listFavorites = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const removeFavorite = (projectId) => {\r\n return axios.delete(base + \"/\" + projectId)\r\n}\r\n\r\nexport const addFavorite = (projectId) => {\r\n return axios.post(base +'/' + projectId)\r\n}","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=4dcee336\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=4dcee336&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["base","listGroups","pageQuery","axios","params","getGroup","id","createOrUpdateGroup","body","updateGroup","createGroup","deleteGroup","listGroupMembers","groupId","addGroupMember","removeGroupMember","userId","updateGroupMemberRole","role","listProjects","parameters","getProjectById","createOrUpdateProject","request","updateProject","createProject","testConnection","groupProjectBase","deleteProjectById","listUsers","enableUser","disableUser","getByUserId","createUser","renewPassword","addSysOwnerTo","removeSysOwnerFrom","updatePassword","updateNickname","listFavorites","removeFavorite","projectId","addFavorite","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","span","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","length","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","partition","index","group","_component_el_card","shadow","onMouseenter","onMouseleave","_component_el_divider","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","slice","owner","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","class","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_4","_component_database_icon","databaseType","groupName","_ctx","_component_el_dialog","width","center","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_9","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","this","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","fetchUserFavorites","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","async","jsonData","message","required","trigger","requiredGroupOwners","partitionArray","arr","output","idx","i","onPageChange","onQuery","query","callback","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","Object","assign","groupOwnerUserIds","r","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","toGroupDashboard","$router","path","toGroupMemberListPage","toDocumentPage","favoriteProject","onFavoriteProjectPageChange","onRemoveFavorite","onProjectDelete","tab","props","__exports__","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/596.b510e94b.js","mappings":"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","sources":["webpack://databasir/./src/api/Group.js","webpack://databasir/./src/api/Project.js","webpack://databasir/./src/api/User.js","webpack://databasir/./src/api/UserProject.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/groups'\r\n\r\nexport const listGroups = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const getGroup= (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateGroup = (body) => {\r\n if (body.id && body.id != null) {\r\n return updateGroup(body)\r\n } else {\r\n return createGroup(body)\r\n }\r\n}\r\n\r\nexport const createGroup = (body) => {\r\n return axios.post(base, body)\r\n}\r\n\r\nexport const updateGroup = (body) => {\r\n return axios.patch(base, body)\r\n}\r\n\r\nexport const deleteGroup = (id) => {\r\n return axios.delete(base + '/' + id)\r\n}\r\n\r\nexport const listGroupMembers = (groupId, pageQuery) => {\r\n return axios.get(base + '/' + groupId + '/members', {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const addGroupMember = (groupId, body) => {\r\n return axios.post(base + '/' + groupId + '/members', body)\r\n}\r\n\r\nexport const removeGroupMember = (groupId, userId) => {\r\n return axios.delete(base +'/'+groupId+'/members/'+userId)\r\n}\r\n\r\nexport const updateGroupMemberRole = (groupId, userId, role) => {\r\n const body = {\r\n role: role\r\n }\r\n return axios.patch(base +'/'+groupId+'/members/'+userId, body)\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/projects'\r\n\r\nexport const listProjects = (parameters) => {\r\n return axios.get(base, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const getProjectById = (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateProject = (request) => {\r\n if (request.id) {\r\n return updateProject(request)\r\n } else {\r\n return createProject(request)\r\n }\r\n}\r\n\r\nexport const createProject = (request) => {\r\n return axios.post(base, request);\r\n}\r\n\r\nexport const testConnection = (request) => {\r\n return axios.post(base + '/test_connection', request)\r\n}\r\n\r\n\r\nconst groupProjectBase = '/api/v1.0/groups'\r\n\r\n\r\nexport const updateProject = (request) => {\r\n return axios.patch(groupProjectBase +'/'+request.groupId+'/projects', request);\r\n}\r\n\r\nexport const deleteProjectById = (groupId, id) => {\r\n return axios.delete(groupProjectBase + '/' +groupId +'/projects/' + id);\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/user_projects/favorites'\r\n\r\nexport const listFavorites = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const removeFavorite = (projectId) => {\r\n return axios.delete(base + \"/\" + projectId)\r\n}\r\n\r\nexport const addFavorite = (projectId) => {\r\n return axios.post(base +'/' + projectId)\r\n}","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=4dcee336\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=4dcee336&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["base","listGroups","pageQuery","axios","params","getGroup","id","createOrUpdateGroup","body","updateGroup","createGroup","deleteGroup","listGroupMembers","groupId","addGroupMember","removeGroupMember","userId","updateGroupMemberRole","role","listProjects","parameters","getProjectById","createOrUpdateProject","request","updateProject","createProject","testConnection","groupProjectBase","deleteProjectById","listUsers","enableUser","disableUser","getByUserId","createUser","renewPassword","addSysOwnerTo","removeSysOwnerFrom","updatePassword","updateNickname","listFavorites","removeFavorite","projectId","addFavorite","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","span","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","length","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","partition","index","group","_component_el_card","shadow","onMouseenter","onMouseleave","_component_el_divider","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","slice","owner","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","class","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_4","_component_database_icon","databaseType","groupName","_ctx","_component_el_dialog","width","center","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_9","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","this","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","fetchUserFavorites","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","async","jsonData","message","required","trigger","requiredGroupOwners","partitionArray","arr","output","idx","i","onPageChange","onQuery","query","callback","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","Object","assign","groupOwnerUserIds","r","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","toGroupDashboard","$router","path","toGroupMemberListPage","toDocumentPage","favoriteProject","onFavoriteProjectPageChange","onRemoveFavorite","onProjectDelete","tab","props","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/app-legacy.40dd2314.js b/api/src/main/resources/static/js/app-legacy.89421156.js similarity index 96% rename from api/src/main/resources/static/js/app-legacy.40dd2314.js rename to api/src/main/resources/static/js/app-legacy.89421156.js index 5d72577..81d8d83 100644 --- a/api/src/main/resources/static/js/app-legacy.40dd2314.js +++ b/api/src/main/resources/static/js/app-legacy.89421156.js @@ -1,2 +1,2 @@ -(function(){"use strict";var e={3710:function(e,n,t){t(6992),t(8674),t(9601),t(7727),t(1539),t(4747),t(7941);var r=t(9963),o=t(2610),u=t(137),a=(t(4415),t(8711)),i=t(4239),c=t(6252);function s(e,n){var t=(0,c.up)("router-view");return(0,c.wg)(),(0,c.j4)(t)}var l=t(3744);const d={},f=(0,l.Z)(d,[["render",s]]);var m=f,p=t(1836),h=t(3577),g=["src"],v=["src"];function b(e,n,r,o,u,a){var i=(0,c.up)("el-tooltip");return"mysql"==r.databaseType.toLowerCase()?((0,c.wg)(),(0,c.j4)(i,{key:0,content:r.databaseType,placement:"left"},{default:(0,c.w5)((function(){return[(0,c._)("img",{src:t(2357),style:{"max-width":"33px","max-height":"33px"}},null,8,g)]})),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,c.wg)(),(0,c.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,c.w5)((function(){return[(0,c._)("img",{src:t(3609),style:{"max-width":"33px","max-height":"33px"}},null,8,v)]})),_:1},8,["content"])):((0,c.wg)(),(0,c.iD)(c.HY,{key:2},[(0,c.Uk)((0,h.zw)(r.databaseType),1)],64))}var w={props:{databaseType:String}};const y=(0,l.Z)(w,[["render",b]]);var k=y,_=(0,r.ri)(m);Object.keys(u).forEach((function(e){_.component(e,u[e])})),_.component("database-icon",k),_.directive("require-roles",{mounted:function(e,n){var t=n.value;p.E.hasAnyRoles(t)||e.parentNode&&e.parentNode.removeChild(e)}}),_.directive("select-more",{updated:function(e,n){var t=e.querySelector(".select-trigger"),r=t.getAttribute("aria-describedby"),o=document.getElementById(r),u=o.querySelector(".el-scrollbar .el-select-dropdown__wrap");u.addEventListener("scroll",(function(){var e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&n.value()}))}}),_.use(i.Z),_.use(o.Z),_.use(a.Z),_.mount("#app")},8711:function(e,n,t){t.d(n,{Z:function(){return H}});t(1539),t(8783),t(3948);var r=t(2119),o=t(6252);function u(e,n,t,r,u,a){var i=(0,o.up)("AppNav"),c=(0,o.up)("el-aside"),s=(0,o.up)("Breadcrumb"),l=(0,o.up)("Avatar"),d=(0,o.up)("el-header"),f=(0,o.up)("router-view"),m=(0,o.up)("el-main"),p=(0,o.up)("el-container");return(0,o.wg)(),(0,o.j4)(p,{class:"databasir"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(i,{class:"databasir-nav"})]})),_:1}),(0,o.Wm)(d,{class:"databasir-main-header"},{default:(0,o.w5)((function(){return[(0,o.Wm)(s),(0,o.Wm)(l)]})),_:1}),(0,o.Wm)(m,{class:"databasir-main"},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(m,{class:"databasir-main-content"},{default:(0,o.w5)((function(){return[(0,o.Wm)(f)]})),_:1})]})),_:1})]})),_:1})]})),_:1})}var a=t(3577),i=(0,o._)("span",null,"Databasir",-1);function c(e,n,t,r,u,c){var s=(0,o.up)("home-filled"),l=(0,o.up)("el-icon"),d=(0,o.up)("el-menu-item"),f=(0,o.up)("el-sub-menu"),m=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(m,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{index:"/"},{title:(0,o.w5)((function(){return[i]})),default:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(s)]})),_:1})]})),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(r.routes,(function(e,n){return(0,o.wg)(),(0,o.iD)(o.HY,{key:n},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((function(e){return!e.hidden}))?((0,o.wg)(),(0,o.j4)(f,{key:0,index:e.path},{title:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))]})),_:2},1024),(0,o._)("span",null,(0,a.zw)(e.meta.nav),1)]})),default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.children,(function(t,r){return(0,o.wg)(),(0,o.iD)(o.HY,{key:n+"-"+r},[t.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0,index:e.path+"/"+t.path},{title:(0,o.w5)((function(){return[(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)]})),default:(0,o.w5)((function(){return[t.icon?((0,o.wg)(),(0,o.j4)(l,{key:0},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))]})),_:2},1024)):(0,o.kq)("",!0)]})),_:2},1032,["index"]))],64)})),128))]})),_:2},1032,["index"])):r.isShowMenu(e)?((0,o.wg)(),(0,o.j4)(d,{key:1,index:e.path},{title:(0,o.w5)((function(){return[(0,o._)("span",null,(0,a.zw)(e.meta.nav),1)]})),default:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))]})),_:2},1024)]})),_:2},1032,["index"])):(0,o.kq)("",!0)],64)})),128))]})),_:1},8,["collapse"])}var s=t(2262),l=t(1836),d=t(4239),f={setup:function(){var e=(0,s.Fl)((function(){return d.Z.state.menu.isCollapse})),n=(0,r.tv)(),t=n.options.routes,o=function(e){if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){var n=l.E.hasAnyRoles(e.meta.requireAnyRoles);if(!n)return!1}return!0},u=function(){d.Z.commit("expandMenu")};return{isCollapse:e,isShowMenu:o,expandMenu:u,routes:t}}},m=t(3744);const p=(0,m.Z)(f,[["render",c]]);var h=p;t(8309);function g(e,n,t,r,u,i){var c=(0,o.up)("fold"),s=(0,o.up)("el-icon"),l=(0,o.up)("el-link"),d=(0,o.up)("el-breadcrumb-item"),f=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(f,{separator:"/"},{default:(0,o.w5)((function(){return[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{onClick:n[0]||(n[0]=function(e){return i.onFoldMenu()}),underline:!1},{default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(c)]})),_:1})]})),_:1})]})),_:1})),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.breadcrumbs,(function(e,n){return(0,o.wg)(),(0,o.j4)(d,{key:n,to:e.to},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.name),1)]})),_:2},1032,["to"])})),128))]})),_:1})}var v={computed:{breadcrumbs:function(){return"function"===typeof this.$route.meta.breadcrumb?this.$route.meta.breadcrumb(this.$route,this.$store.state):[]},menuIsCollapse:function(){return this.$store.state.menu.isCollapse}},methods:{onFoldMenu:function(){this.$store.commit("foldMenu")}}};const b=(0,m.Z)(v,[["render",g]]);var w=b,y=(0,o.Uk)("个人中心"),k=(0,o.Uk)("注销登陆");function _(e,n,t,r,u,i){var c=(0,o.up)("el-avatar"),s=(0,o.up)("el-dropdown-item"),l=(0,o.up)("el-dropdown-menu"),d=(0,o.up)("el-dropdown");return(0,o.wg)(),(0,o.j4)(d,null,{dropdown:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(i.userNickname),1)]})),_:1}),(0,o.Wm)(s,{icon:"user",divided:"",onClick:n[0]||(n[0]=function(e){return i.toProfilePage()})},{default:(0,o.w5)((function(){return[y]})),_:1}),(0,o.Wm)(s,{icon:"back",onClick:n[1]||(n[1]=function(e){return i.onLogout()})},{default:(0,o.w5)((function(){return[k]})),_:1})]})),_:1})]})),default:(0,o.w5)((function(){return[(0,o.Wm)(c,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])]})),_:1})}var j={computed:{userNickname:function(){return this.$store.state.user.nickname},avatarUrl:function(){return this.$store.state.user.avatar}},methods:{onLogout:function(){l.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage:function(){this.$router.push({path:"/profile"})}}};const S=(0,m.Z)(j,[["render",_]]);var T=S,A={components:{AppNav:h,Breadcrumb:w,Avatar:T}};const L=(0,m.Z)(A,[["render",u]]);var N=L;function q(){return{name:"首页",to:{path:"/"}}}function E(){return{name:"项目中心",to:{name:"groupListPage"}}}function P(e){var n="项目组";return e.query.groupName&&(n=e.query.groupName),{name:n,to:{path:"/groups/"+e.params.groupId}}}function x(e){var n="项目文档";e.query.projectName&&(n=e.query.projectName);var t=e.params.projectId,r=e.params.groupId;return{name:n,to:{path:"/groups/"+r+"/projects/"+t+"/documents",query:{projectName:n}}}}function C(){return{name:"用户列表",to:{path:"/users"}}}function I(){return{name:"个人中心",to:{path:"/profile"}}}function O(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function D(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function M(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}var U={index:function(){return[q()]},groupList:function(){return[q(),E()]},groupDashboard:function(e,n){return[q(),E(),P(e,n)]},groupProjectDocument:function(e,n){return[q(),E(),P(e,n),x(e)]},userProfile:function(){return[q(),I()]},userList:function(){return[q(),C()]},sysEmailEdit:function(){return[q(),O()]},sysLog:function(){return[q(),D()]},sysOauth2:function(){return[q(),W()]},sysDatabaseType:function(){return[q(),M()]}},Z=U,R=[{path:"/login",component:function(){return Promise.all([t.e(269),t.e(139)]).then(t.bind(t,1139))},hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:function(){return Promise.all([t.e(269),t.e(865)]).then(t.bind(t,8865))},hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:N,children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(355)]).then(t.bind(t,7596))},meta:{breadcrumb:Z.groupList}}]},{path:"/groups",icon:"Collection",component:N,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(355)]).then(t.bind(t,7596))},meta:{breadcrumb:Z.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(459)]).then(t.bind(t,9459))},meta:{breadcrumb:Z.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(321)]).then(t.bind(t,6321))},meta:{breadcrumb:Z.groupProjectDocument}}]},{path:"/users",icon:"List",component:N,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(130)]).then(t.bind(t,8130))},meta:{breadcrumb:Z.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:Z.userProfile},children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(469)]).then(t.bind(t,6469))}}]},{path:"/settings",icon:"Setting",component:N,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:function(){return Promise.all([t.e(269),t.e(596)]).then(t.bind(t,2631))},meta:{nav:"邮箱设置",breadcrumb:Z.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return Promise.all([t.e(269),t.e(99)]).then(t.bind(t,2099))},meta:{nav:"操作日志",breadcrumb:Z.sysLog}},{path:"sysOauth2",icon:"Connection",component:function(){return Promise.all([t.e(269),t.e(754)]).then(t.bind(t,7754))},meta:{nav:"登陆设置",breadcrumb:Z.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:function(){return Promise.all([t.e(269),t.e(117)]).then(t.bind(t,1781))},meta:{nav:"数据库类型",breadcrumb:Z.sysDatabaseType}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:Z.sysKeyEdit}}]}],$=(0,r.p7)({history:(0,r.PO)(),routes:R});$.beforeEach((function(e,n,t){0==e.meta.requireAuth?"/login"==e.path&&l.r.hasAccessToken()?t(n):t():l.r.hasAccessToken()?t():t({path:"/login"})})),$.beforeEach((function(e,n,t){!e.query.groupName&&n.query.groupName&&(e.query.groupName=n.query.groupName),!e.query.projectName&&n.query.projectName&&(e.query.projectName=n.query.projectName),t()}));var H=$},4239:function(e,n,t){var r=t(8637),o=t(1836),u=(0,r.MT)({state:function(){var e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},n=o.E.loadUserLoginData();return n&&(e.user.nickname=n.nickname,e.user.usernmae=n.usernmae,e.user.email=n.email,e.user.avatar=n.avatar),e},mutations:{userUpdate:function(e,n){n.nickname&&(e.user.nickname=n.nickname),n.usernmae&&(e.user.usernmae=n.usernmae),n.email&&(e.user.email=n.email),n.avatar&&(e.user.avatar=n.avatar)},foldMenu:function(e){e.menu.isCollapse=!0},expandMenu:function(e){e.menu.isCollapse=!1},switchGroupListActiveTab:function(e,n){n&&(e.groupListActiveTab=n)}}});n["Z"]=u},1836:function(e,n,t){t.d(n,{r:function(){return a},E:function(){return i}});t(8862),t(1539),t(1249);var r="accessToken",o="accessTokenExpireAt",u="userLoginData",a={hasAccessToken:function(){var e=this.loadAccessToken();return e},hasValidAccessToken:function(){var e=this.loadAccessToken(),n=window.localStorage.getItem(o);return e&&n?n>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken:function(e,n){window.localStorage.setItem(r,e),window.localStorage.setItem(o,n)},loadAccessToken:function(){var e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData:function(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(u,JSON.stringify(e))},removeUserLoginData:function(){window.localStorage.removeItem(u),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData:function(){if(!window.localStorage.getItem(u))return null;var e=window.localStorage.getItem(u);return JSON.parse(e)},hasAnyRoles:function(e){var n=window.localStorage.getItem(u);if(null==n)return!1;var t=JSON.parse(n);return t.roles.map((function(e){return e.groupId?e.role+"?groupId="+e.groupId:e.role})).some((function(n){return e.some((function(e){return e==n}))}))},getRefreshToken:function(){var e=window.localStorage.getItem(u);if(null==e)return null;var n=JSON.parse(e);return n.refreshToken}}},2357:function(e,n,t){e.exports=t.p+"img/MySQL.c8f47618.svg"},3609:function(e,n,t){e.exports=t.p+"img/PostgreSQL.6e3d3a5e.svg"}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var u=n[r]={id:r,loaded:!1,exports:{}};return e[r].call(u.exports,u,u.exports,t),u.loaded=!0,u.exports}t.m=e,function(){var e=[];t.O=function(n,r,o,u){if(!r){var a=1/0;for(l=0;l=u)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(i=!1,u0&&e[l-1][2]>u;l--)e[l]=e[l-1];e[l]=[r,o,u]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))}}(),function(){t.u=function(e){return"js/"+e+"-legacy."+{99:"0cf27260",117:"5a8a817f",130:"bed95c34",139:"b3ab46a9",269:"ec81b414",321:"9c40372e",355:"ae661cca",459:"e006098f",469:"15ca5259",596:"6bd184a8",754:"8ce78db0",865:"95ef57b0",924:"3ccd761f"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",321:"d892cf8e",355:"b144be0e",459:"82a2f213",865:"7df1e56e"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="databasir:";t.l=function(r,o,u,a){if(e[r])e[r].push(o);else{var i,c;if(void 0!==u)for(var s=document.getElementsByTagName("script"),l=0;l0&&e.children.some((function(e){return!e.hidden}))?((0,o.wg)(),(0,o.j4)(f,{key:0,index:e.path},{title:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))]})),_:2},1024),(0,o._)("span",null,(0,a.zw)(e.meta.nav),1)]})),default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.children,(function(t,r){return(0,o.wg)(),(0,o.iD)(o.HY,{key:n+"-"+r},[t.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0,index:e.path+"/"+t.path},{title:(0,o.w5)((function(){return[(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)]})),default:(0,o.w5)((function(){return[t.icon?((0,o.wg)(),(0,o.j4)(l,{key:0},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))]})),_:2},1024)):(0,o.kq)("",!0)]})),_:2},1032,["index"]))],64)})),128))]})),_:2},1032,["index"])):r.isShowMenu(e)?((0,o.wg)(),(0,o.j4)(d,{key:1,index:e.path},{title:(0,o.w5)((function(){return[(0,o._)("span",null,(0,a.zw)(e.meta.nav),1)]})),default:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))]})),_:2},1024)]})),_:2},1032,["index"])):(0,o.kq)("",!0)],64)})),128))]})),_:1},8,["collapse"])}var s=t(2262),l=t(1836),d=t(4239),f={setup:function(){var e=(0,s.Fl)((function(){return d.Z.state.menu.isCollapse})),n=(0,r.tv)(),t=n.options.routes,o=function(e){if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){var n=l.E.hasAnyRoles(e.meta.requireAnyRoles);if(!n)return!1}return!0},u=function(){d.Z.commit("expandMenu")};return{isCollapse:e,isShowMenu:o,expandMenu:u,routes:t}}},m=t(3744);const p=(0,m.Z)(f,[["render",c]]);var h=p;t(8309);function g(e,n,t,r,u,i){var c=(0,o.up)("fold"),s=(0,o.up)("el-icon"),l=(0,o.up)("el-link"),d=(0,o.up)("el-breadcrumb-item"),f=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(f,{separator:"/"},{default:(0,o.w5)((function(){return[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{onClick:n[0]||(n[0]=function(e){return i.onFoldMenu()}),underline:!1},{default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(c)]})),_:1})]})),_:1})]})),_:1})),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.breadcrumbs,(function(e,n){return(0,o.wg)(),(0,o.j4)(d,{key:n,to:e.to},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.name),1)]})),_:2},1032,["to"])})),128))]})),_:1})}var v={computed:{breadcrumbs:function(){return"function"===typeof this.$route.meta.breadcrumb?this.$route.meta.breadcrumb(this.$route,this.$store.state):[]},menuIsCollapse:function(){return this.$store.state.menu.isCollapse}},methods:{onFoldMenu:function(){this.$store.commit("foldMenu")}}};const b=(0,m.Z)(v,[["render",g]]);var w=b,y=(0,o.Uk)("个人中心"),k=(0,o.Uk)("注销登陆");function _(e,n,t,r,u,i){var c=(0,o.up)("el-avatar"),s=(0,o.up)("el-dropdown-item"),l=(0,o.up)("el-dropdown-menu"),d=(0,o.up)("el-dropdown");return(0,o.wg)(),(0,o.j4)(d,null,{dropdown:(0,o.w5)((function(){return[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(i.userNickname),1)]})),_:1}),(0,o.Wm)(s,{icon:"user",divided:"",onClick:n[0]||(n[0]=function(e){return i.toProfilePage()})},{default:(0,o.w5)((function(){return[y]})),_:1}),(0,o.Wm)(s,{icon:"back",onClick:n[1]||(n[1]=function(e){return i.onLogout()})},{default:(0,o.w5)((function(){return[k]})),_:1})]})),_:1})]})),default:(0,o.w5)((function(){return[(0,o.Wm)(c,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])]})),_:1})}var j={computed:{userNickname:function(){return this.$store.state.user.nickname},avatarUrl:function(){return this.$store.state.user.avatar}},methods:{onLogout:function(){l.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage:function(){this.$router.push({path:"/profile"})}}};const S=(0,m.Z)(j,[["render",_]]);var T=S,A={components:{AppNav:h,Breadcrumb:w,Avatar:T}};const L=(0,m.Z)(A,[["render",u]]);var N=L;function q(){return{name:"首页",to:{path:"/"}}}function E(){return{name:"项目中心",to:{name:"groupListPage"}}}function P(e){var n="项目组";return e.query.groupName&&(n=e.query.groupName),{name:n,to:{path:"/groups/"+e.params.groupId}}}function x(e){var n="项目文档";e.query.projectName&&(n=e.query.projectName);var t=e.params.projectId,r=e.params.groupId;return{name:n,to:{path:"/groups/"+r+"/projects/"+t+"/documents",query:{projectName:n}}}}function C(){return{name:"用户列表",to:{path:"/users"}}}function I(){return{name:"个人中心",to:{path:"/profile"}}}function O(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function D(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function M(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}var U={index:function(){return[q()]},groupList:function(){return[q(),E()]},groupDashboard:function(e,n){return[q(),E(),P(e,n)]},groupProjectDocument:function(e,n){return[q(),E(),P(e,n),x(e)]},userProfile:function(){return[q(),I()]},userList:function(){return[q(),C()]},sysEmailEdit:function(){return[q(),O()]},sysLog:function(){return[q(),D()]},sysOauth2:function(){return[q(),W()]},sysDatabaseType:function(){return[q(),M()]}},Z=U,R=[{path:"/login",component:function(){return Promise.all([t.e(269),t.e(139)]).then(t.bind(t,1139))},hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:function(){return Promise.all([t.e(269),t.e(865)]).then(t.bind(t,8865))},hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:N,children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(596)]).then(t.bind(t,7596))},meta:{breadcrumb:Z.groupList}}]},{path:"/groups",icon:"Collection",component:N,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(596)]).then(t.bind(t,7596))},meta:{breadcrumb:Z.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(459)]).then(t.bind(t,9459))},meta:{breadcrumb:Z.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(321)]).then(t.bind(t,6321))},meta:{breadcrumb:Z.groupProjectDocument}}]},{path:"/users",icon:"List",component:N,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(130)]).then(t.bind(t,8130))},meta:{breadcrumb:Z.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:Z.userProfile},children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(469)]).then(t.bind(t,6469))}}]},{path:"/settings",icon:"Setting",component:N,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:function(){return Promise.all([t.e(269),t.e(243)]).then(t.bind(t,1243))},meta:{nav:"邮箱设置",breadcrumb:Z.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return Promise.all([t.e(269),t.e(99)]).then(t.bind(t,2099))},meta:{nav:"操作日志",breadcrumb:Z.sysLog}},{path:"sysOauth2",icon:"Connection",component:function(){return Promise.all([t.e(269),t.e(754)]).then(t.bind(t,7754))},meta:{nav:"登陆设置",breadcrumb:Z.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:function(){return Promise.all([t.e(269),t.e(117)]).then(t.bind(t,1781))},meta:{nav:"数据库类型",breadcrumb:Z.sysDatabaseType}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:Z.sysKeyEdit}}]}],$=(0,r.p7)({history:(0,r.PO)(),routes:R});$.beforeEach((function(e,n,t){0==e.meta.requireAuth?"/login"==e.path&&l.r.hasAccessToken()?t(n):t():l.r.hasAccessToken()?t():t({path:"/login"})})),$.beforeEach((function(e,n,t){!e.query.groupName&&n.query.groupName&&(e.query.groupName=n.query.groupName),!e.query.projectName&&n.query.projectName&&(e.query.projectName=n.query.projectName),t()}));var H=$},4239:function(e,n,t){var r=t(8637),o=t(1836),u=(0,r.MT)({state:function(){var e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},n=o.E.loadUserLoginData();return n&&(e.user.nickname=n.nickname,e.user.usernmae=n.usernmae,e.user.email=n.email,e.user.avatar=n.avatar),e},mutations:{userUpdate:function(e,n){n.nickname&&(e.user.nickname=n.nickname),n.usernmae&&(e.user.usernmae=n.usernmae),n.email&&(e.user.email=n.email),n.avatar&&(e.user.avatar=n.avatar)},foldMenu:function(e){e.menu.isCollapse=!0},expandMenu:function(e){e.menu.isCollapse=!1},switchGroupListActiveTab:function(e,n){n&&(e.groupListActiveTab=n)}}});n["Z"]=u},1836:function(e,n,t){t.d(n,{r:function(){return a},E:function(){return i}});t(8862),t(1539),t(1249);var r="accessToken",o="accessTokenExpireAt",u="userLoginData",a={hasAccessToken:function(){var e=this.loadAccessToken();return e},hasValidAccessToken:function(){var e=this.loadAccessToken(),n=window.localStorage.getItem(o);return e&&n?n>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken:function(e,n){window.localStorage.setItem(r,e),window.localStorage.setItem(o,n)},loadAccessToken:function(){var e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData:function(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(u,JSON.stringify(e))},removeUserLoginData:function(){window.localStorage.removeItem(u),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData:function(){if(!window.localStorage.getItem(u))return null;var e=window.localStorage.getItem(u);return JSON.parse(e)},hasAnyRoles:function(e){var n=window.localStorage.getItem(u);if(null==n)return!1;var t=JSON.parse(n);return t.roles.map((function(e){return e.groupId?e.role+"?groupId="+e.groupId:e.role})).some((function(n){return e.some((function(e){return e==n}))}))},getRefreshToken:function(){var e=window.localStorage.getItem(u);if(null==e)return null;var n=JSON.parse(e);return n.refreshToken}}},2357:function(e,n,t){e.exports=t.p+"img/MySQL.c8f47618.svg"},3609:function(e,n,t){e.exports=t.p+"img/PostgreSQL.6e3d3a5e.svg"}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var u=n[r]={id:r,loaded:!1,exports:{}};return e[r].call(u.exports,u,u.exports,t),u.loaded=!0,u.exports}t.m=e,function(){var e=[];t.O=function(n,r,o,u){if(!r){var a=1/0;for(l=0;l=u)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(i=!1,u0&&e[l-1][2]>u;l--)e[l]=e[l-1];e[l]=[r,o,u]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))}}(),function(){t.u=function(e){return"js/"+e+"-legacy."+{99:"0cf27260",117:"5a8a817f",130:"bed95c34",139:"b3ab46a9",243:"92016c20",269:"ec81b414",321:"9c40372e",459:"e006098f",469:"15ca5259",596:"b305a8fd",754:"8ce78db0",865:"95ef57b0",924:"3ccd761f"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",321:"d892cf8e",459:"82a2f213",596:"b144be0e",865:"7df1e56e"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="databasir:";t.l=function(r,o,u,a){if(e[r])e[r].push(o);else{var i,c;if(void 0!==u)for(var s=document.getElementsByTagName("script"),l=0;l\r\n \r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=2b08e877\"\nconst script = {}\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./DatabaseIcon.vue?vue&type=template&id=154abc1d\"\nimport script from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\nexport * from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ElementPlus from 'element-plus'\r\nimport * as Icons from '@element-plus/icons'\r\nimport 'element-plus/dist/index.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport { user } from './utils/auth'\r\nimport DatabaseIcon from './components/DatabaseIcon.vue'\r\n\r\n// element icon\r\nconst app = createApp(App)\r\nObject.keys(Icons).forEach(key => {\r\n app.component(key, Icons[key])\r\n})\r\napp.component('database-icon', DatabaseIcon)\r\n\r\n// permission directive\r\napp.directive('require-roles', {\r\n mounted(el, binding) {\r\n const roles = binding.value\r\n if (!user.hasAnyRoles(roles)) {\r\n el.parentNode && el.parentNode.removeChild(el)\r\n }\r\n },\r\n})\r\n\r\n// custom select directive\r\napp.directive(\"select-more\", {\r\n updated(el, binding) {\r\n const child = el.querySelector('.select-trigger');\r\n const id = child.getAttribute('aria-describedby');\r\n const poper = document.getElementById(id);\r\n const selector = poper.querySelector('.el-scrollbar .el-select-dropdown__wrap');\r\n selector.addEventListener('scroll', function () {\r\n const condition = this.scrollHeight - this.scrollTop - 1 <= this.clientHeight;\r\n if (condition) {\r\n binding.value();\r\n }\r\n });\r\n },\r\n});\r\n\r\napp.use(store)\r\napp.use(ElementPlus)\r\napp.use(router)\r\napp.mount('#app')\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./AppNav.vue?vue&type=template&id=2cfaad82\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js\"\n\nimport \"./AppNav.vue?vue&type=style&index=0&id=2cfaad82&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./Breadcrumb.vue?vue&type=template&id=055586aa\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./Avatar.vue?vue&type=template&id=34a219c2\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Layout.vue?vue&type=template&id=6923c0fa\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\n\nimport \"./Layout.vue?vue&type=style&index=0&id=6923c0fa&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","function index() {\r\n return {\r\n name:'首页',\r\n to: {\r\n path: '/'\r\n }\r\n }\r\n}\r\n\r\nfunction groupList() {\r\n return {\r\n name:'项目中心',\r\n to: {\r\n name: 'groupListPage'\r\n } \r\n }\r\n}\r\n\r\nfunction groupDashboard(route) {\r\n var groupName = '项目组'\r\n if (route.query.groupName) {\r\n groupName = route.query.groupName\r\n }\r\n return {\r\n name: groupName,\r\n to: {\r\n path: '/groups/'+route.params.groupId\r\n } \r\n }\r\n}\r\n\r\nfunction groupProjectDocument(route) {\r\n var name = '项目文档'\r\n if (route.query.projectName) {\r\n name = route.query.projectName\r\n }\r\n var projectId = route.params.projectId\r\n var groupId = route.params.groupId\r\n return {\r\n name: name,\r\n to: {\r\n path: '/groups/' + groupId + '/projects/' + projectId + '/documents',\r\n query: {\r\n projectName: name\r\n }\r\n } \r\n }\r\n}\r\n\r\nfunction userList() {\r\n return {\r\n name:'用户列表',\r\n to: {\r\n path: '/users'\r\n } \r\n }\r\n}\r\n\r\n\r\nfunction userProfile() {\r\n return {\r\n name:'个人中心',\r\n to: {\r\n path: '/profile'\r\n } \r\n }\r\n}\r\n\r\nfunction sysEmailEdit() {\r\n return {\r\n name:'邮箱设置',\r\n to: {\r\n path: '/settings/sysEmail'\r\n } \r\n }\r\n}\r\n\r\nfunction sysLog() {\r\n return {\r\n name:'操作日志',\r\n to: {\r\n path: '/settings/sysLog'\r\n } \r\n }\r\n}\r\n\r\nfunction sysOauth2() {\r\n return {\r\n name:'登录设置',\r\n to: {\r\n path: '/settings/sysOauth2'\r\n } \r\n }\r\n}\r\n\r\nfunction sysDatabaseType() {\r\n return {\r\n name:'数据库类型',\r\n to: {\r\n path: '/settings/sysDatabaseType'\r\n } \r\n }\r\n}\r\n\r\n\r\nconst breadcurmbMap = {\r\n index: () => [index() ],\r\n groupList: () => [index(), groupList()],\r\n groupDashboard: (route, state) => [index(), groupList(), groupDashboard(route, state)],\r\n groupProjectDocument: (route, state) => [index(), groupList(), groupDashboard(route, state), groupProjectDocument(route)],\r\n userProfile: () => [index(), userProfile()],\r\n userList: () => [index(), userList()],\r\n sysEmailEdit: () => [index(), sysEmailEdit()],\r\n sysLog: () => [index(), sysLog()],\r\n sysOauth2: () => [index(), sysOauth2()],\r\n sysDatabaseType: () => [index(), sysDatabaseType()],\r\n\r\n}\r\n\r\nexport default breadcurmbMap","import { createRouter, createWebHistory } from 'vue-router';\r\nimport Layout from \"../layouts/Layout.vue\"\r\nimport breadcurmbMap from './breadcurmb'\r\nimport { token } from '../utils/auth';\r\n\r\nconst routes = [\r\n {\r\n path: '/login',\r\n component: () => import('@/views/Login.vue'),\r\n hidden: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/login/oauth2/:id',\r\n component: () => import('@/views/OAuth2Login.vue'),\r\n hidden: true,\r\n props: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/',\r\n hidden: true,\r\n component: Layout,\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/groups',\r\n icon: 'Collection',\r\n component: Layout,\r\n meta: {\r\n nav: '项目中心',\r\n },\r\n children: [\r\n {\r\n path: '',\r\n name: 'groupListPage',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n },\r\n {\r\n path: ':groupId',\r\n hidden: true,\r\n component: () => import('@/views/GroupDashboard.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupDashboard\r\n }\r\n },\r\n {\r\n path: ':groupId/projects/:projectId/documents',\r\n hidden: true,\r\n component: () => import('@/views/Document.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupProjectDocument\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/users',\r\n icon: 'List',\r\n component: Layout,\r\n meta: {\r\n nav:'用户中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.userList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/profile',\r\n icon: 'User',\r\n component: Layout,\r\n meta: {\r\n nav: '个人中心',\r\n breadcrumb: breadcurmbMap.userProfile\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserProfile.vue')\r\n }\r\n ]\r\n },\r\n {\r\n path: '/settings',\r\n icon: 'Setting',\r\n component: Layout,\r\n meta: {\r\n nav:'系统中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: 'sysEmail',\r\n icon: 'Notification',\r\n component: () => import('@/views/SysEmailEdit.vue'),\r\n meta: {\r\n nav: '邮箱设置',\r\n breadcrumb: breadcurmbMap.sysEmailEdit\r\n }\r\n },\r\n {\r\n path: 'sysLog',\r\n icon: 'Document',\r\n component: () => import('@/views/SysLog.vue'),\r\n meta: {\r\n nav: '操作日志',\r\n breadcrumb: breadcurmbMap.sysLog\r\n }\r\n },\r\n {\r\n path: 'sysOauth2',\r\n icon: 'Connection',\r\n component: () => import('@/views/SysOauth2.vue'),\r\n meta: {\r\n nav: '登陆设置',\r\n breadcrumb: breadcurmbMap.sysOauth2\r\n }\r\n },\r\n {\r\n path: 'sysDatabaseType',\r\n icon: 'office-building',\r\n component: () => import('@/views/SysDatabaseType.vue'),\r\n meta: {\r\n nav: '数据库类型',\r\n breadcrumb: breadcurmbMap.sysDatabaseType\r\n }\r\n },\r\n // TODO\r\n {\r\n path: 'sysKey',\r\n icon: 'Key',\r\n hidden: 'true',\r\n component: Layout,\r\n meta: {\r\n nav: '系统秘钥',\r\n breadcrumb: breadcurmbMap.sysKeyEdit\r\n }\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes\r\n});\r\n\r\n// 权限路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.meta.requireAuth == false) {\r\n if (to.path == '/login' && token.hasAccessToken()) {\r\n next(from)\r\n } else {\r\n next()\r\n }\r\n } else {\r\n if(token.hasAccessToken()) {\r\n next()\r\n } else {\r\n next({ path: '/login' })\r\n }\r\n }\r\n})\r\n\r\n// groupName 参数路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (!to.query.groupName && from.query.groupName) {\r\n to.query.groupName = from.query.groupName\r\n } \r\n if (!to.query.projectName && from.query.projectName) {\r\n to.query.projectName = from.query.projectName\r\n } \r\n next();\r\n})\r\n\r\nexport default router;","import { createStore } from 'vuex'\r\nimport { user } from '../utils/auth'\r\n\r\nconst store = createStore({\r\n state() {\r\n const data = {\r\n user: {\r\n nickname: null,\r\n usernmae: null,\r\n email: null,\r\n avatar: null,\r\n },\r\n groupListActiveTab: null,\r\n menu: {\r\n isCollapse: true,\r\n }\r\n }\r\n const loginData = user.loadUserLoginData()\r\n if (loginData) {\r\n data.user.nickname = loginData.nickname\r\n data.user.usernmae = loginData.usernmae\r\n data.user.email = loginData.email\r\n data.user.avatar = loginData.avatar\r\n }\r\n return data;\r\n },\r\n mutations: {\r\n userUpdate(state, param) {\r\n if (param.nickname) {\r\n state.user.nickname = param.nickname\r\n }\r\n if (param.usernmae) {\r\n state.user.usernmae = param.usernmae\r\n }\r\n if (param.email) {\r\n state.user.email = param.email\r\n }\r\n if (param.avatar) {\r\n state.user.avatar = param.avatar\r\n }\r\n },\r\n foldMenu(state) {\r\n state.menu.isCollapse = true\r\n },\r\n expandMenu(state) {\r\n state.menu.isCollapse = false\r\n },\r\n switchGroupListActiveTab(state, groupListActiveTab) {\r\n if (groupListActiveTab) {\r\n state.groupListActiveTab = groupListActiveTab\r\n }\r\n }\r\n }\r\n})\r\n\r\nexport default store","const accessTokenKey = 'accessToken'\r\nconst accessTokenExpireAtKey = 'accessTokenExpireAt'\r\nconst userLoginDataKey = 'userLoginData'\r\n\r\nexport const token = {\r\n\r\n hasAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n return accessToken\r\n },\r\n\r\n hasValidAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n const expireAt = window.localStorage.getItem(accessTokenExpireAtKey)\r\n if (!accessToken || !expireAt) {\r\n console.log('warn: not found accessToken and expireAt key')\r\n return false\r\n }\r\n // 10s gap\r\n return expireAt > new Date().getTime() -(1000 * 10)\r\n },\r\n\r\n saveAccessToken(token, tokenExpireAt) {\r\n window.localStorage.setItem(accessTokenKey, token)\r\n window.localStorage.setItem(accessTokenExpireAtKey, tokenExpireAt)\r\n },\r\n\r\n loadAccessToken() {\r\n let token = window.localStorage.getItem(accessTokenKey)\r\n if (token) {\r\n return token\r\n }\r\n return null\r\n }\r\n}\r\n\r\nexport const user = {\r\n\r\n saveUserLoginData(userLoginData) {\r\n window.localStorage.setItem(accessTokenKey, userLoginData.accessToken)\r\n window.localStorage.setItem(accessTokenExpireAtKey, userLoginData.accessTokenExpireAt)\r\n window.localStorage.setItem(userLoginDataKey, JSON.stringify(userLoginData))\r\n },\r\n\r\n removeUserLoginData() {\r\n window.localStorage.removeItem(userLoginDataKey)\r\n window.localStorage.removeItem(accessTokenKey)\r\n window.localStorage.removeItem(accessTokenExpireAtKey)\r\n },\r\n\r\n loadUserLoginData() {\r\n if (!window.localStorage.getItem(userLoginDataKey)) {\r\n return null;\r\n } \r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n return JSON.parse(data)\r\n },\r\n\r\n hasAnyRoles(roles) {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return false\r\n }\r\n const user = JSON.parse(data)\r\n return user\r\n .roles\r\n .map(role => {\r\n if (role.groupId) {\r\n return role.role + '?groupId=' + role.groupId\r\n } else {\r\n return role.role\r\n }\r\n })\r\n .some(exists => roles.some(expected => expected == exists))\r\n },\r\n\r\n getRefreshToken() {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return null\r\n }\r\n const user = JSON.parse(data)\r\n return user.refreshToken\r\n }\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \"-legacy.\" + {\"99\":\"0cf27260\",\"117\":\"5a8a817f\",\"130\":\"bed95c34\",\"139\":\"b3ab46a9\",\"269\":\"ec81b414\",\"321\":\"9c40372e\",\"355\":\"ae661cca\",\"459\":\"e006098f\",\"469\":\"15ca5259\",\"596\":\"6bd184a8\",\"754\":\"8ce78db0\",\"865\":\"95ef57b0\",\"924\":\"3ccd761f\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"139\":\"a7dec339\",\"321\":\"d892cf8e\",\"355\":\"b144be0e\",\"459\":\"82a2f213\",\"865\":\"7df1e56e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"databasir:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"139\":1,\"321\":1,\"355\":1,\"459\":1,\"865\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdatabasir\"] = self[\"webpackChunkdatabasir\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3710); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","app","createApp","App","Object","keys","Icons","forEach","component","DatabaseIcon","directive","mounted","el","binding","roles","value","user","parentNode","removeChild","updated","child","querySelector","id","getAttribute","poper","document","getElementById","selector","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","use","store","ElementPlus","router","mount","_component_el_container","class","_createVNode","_component_el_aside","_component_AppNav","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_menu","collapse","$setup","mode","_component_el_menu_item","index","title","_hoisted_1","_component_el_icon","_component_home_filled","_renderList","menu","children","length","some","ele","hidden","_component_el_sub_menu","path","_resolveDynamicComponent","icon","_toDisplayString","meta","nav","childIndex","setup","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","_component_el_breadcrumb","separator","$options","_component_el_breadcrumb_item","_component_el_link","onClick","underline","_component_fold","item","to","name","breadcrumbs","$route","breadcrumb","$store","state","menuIsCollapse","methods","onFoldMenu","commit","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","divided","_component_el_avatar","size","userNickname","nickname","avatarUrl","avatar","onLogout","$router","push","toProfilePage","components","AppNav","Breadcrumb","Avatar","groupList","groupDashboard","route","groupName","query","params","groupId","groupProjectDocument","projectName","projectId","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","breadcurmbMap","requireAuth","Layout","createRouter","history","createWebHistory","beforeEach","from","next","token","createStore","data","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","window","localStorage","getItem","Date","getTime","console","log","saveAccessToken","tokenExpireAt","setItem","saveUserLoginData","userLoginData","accessTokenExpireAt","JSON","stringify","removeUserLoginData","removeItem","loadUserLoginData","parse","map","role","exists","expected","getRefreshToken","refreshToken","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app-legacy.89421156.js","mappings":"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","sources":["webpack://databasir/./src/App.vue","webpack://databasir/./src/App.vue?7ccd","webpack://databasir/./src/components/DatabaseIcon.vue","webpack://databasir/./src/components/DatabaseIcon.vue?d57f","webpack://databasir/./src/main.js","webpack://databasir/./src/layouts/Layout.vue","webpack://databasir/./src/components/AppNav.vue","webpack://databasir/./src/components/AppNav.vue?b6ff","webpack://databasir/./src/components/Breadcrumb.vue","webpack://databasir/./src/components/Breadcrumb.vue?ef20","webpack://databasir/./src/components/Avatar.vue","webpack://databasir/./src/components/Avatar.vue?e66a","webpack://databasir/./src/layouts/Layout.vue?7cb6","webpack://databasir/./src/router/breadcurmb.js","webpack://databasir/./src/router/index.js","webpack://databasir/./src/store/index.js","webpack://databasir/./src/utils/auth.js","webpack://databasir/webpack/bootstrap","webpack://databasir/webpack/runtime/chunk loaded","webpack://databasir/webpack/runtime/compat get default export","webpack://databasir/webpack/runtime/define property getters","webpack://databasir/webpack/runtime/ensure chunk","webpack://databasir/webpack/runtime/get javascript chunk filename","webpack://databasir/webpack/runtime/get mini-css chunk filename","webpack://databasir/webpack/runtime/global","webpack://databasir/webpack/runtime/hasOwnProperty shorthand","webpack://databasir/webpack/runtime/load script","webpack://databasir/webpack/runtime/make namespace object","webpack://databasir/webpack/runtime/node module decorator","webpack://databasir/webpack/runtime/publicPath","webpack://databasir/webpack/runtime/css loading","webpack://databasir/webpack/runtime/jsonp chunk loading","webpack://databasir/webpack/startup"],"sourcesContent":["\r\n","import { render } from \"./App.vue?vue&type=template&id=2b08e877\"\nconst script = {}\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./DatabaseIcon.vue?vue&type=template&id=154abc1d\"\nimport script from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\nexport * from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ElementPlus from 'element-plus'\r\nimport * as Icons from '@element-plus/icons'\r\nimport 'element-plus/dist/index.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport { user } from './utils/auth'\r\nimport DatabaseIcon from './components/DatabaseIcon.vue'\r\n\r\n// element icon\r\nconst app = createApp(App)\r\nObject.keys(Icons).forEach(key => {\r\n app.component(key, Icons[key])\r\n})\r\napp.component('database-icon', DatabaseIcon)\r\n\r\n// permission directive\r\napp.directive('require-roles', {\r\n mounted(el, binding) {\r\n const roles = binding.value\r\n if (!user.hasAnyRoles(roles)) {\r\n el.parentNode && el.parentNode.removeChild(el)\r\n }\r\n },\r\n})\r\n\r\n// custom select directive\r\napp.directive(\"select-more\", {\r\n updated(el, binding) {\r\n const child = el.querySelector('.select-trigger');\r\n const id = child.getAttribute('aria-describedby');\r\n const poper = document.getElementById(id);\r\n const selector = poper.querySelector('.el-scrollbar .el-select-dropdown__wrap');\r\n selector.addEventListener('scroll', function () {\r\n const condition = this.scrollHeight - this.scrollTop - 1 <= this.clientHeight;\r\n if (condition) {\r\n binding.value();\r\n }\r\n });\r\n },\r\n});\r\n\r\napp.use(store)\r\napp.use(ElementPlus)\r\napp.use(router)\r\napp.mount('#app')\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./AppNav.vue?vue&type=template&id=2cfaad82\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js\"\n\nimport \"./AppNav.vue?vue&type=style&index=0&id=2cfaad82&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./Breadcrumb.vue?vue&type=template&id=055586aa\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./Avatar.vue?vue&type=template&id=34a219c2\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Layout.vue?vue&type=template&id=6923c0fa\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\n\nimport \"./Layout.vue?vue&type=style&index=0&id=6923c0fa&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","function index() {\r\n return {\r\n name:'首页',\r\n to: {\r\n path: '/'\r\n }\r\n }\r\n}\r\n\r\nfunction groupList() {\r\n return {\r\n name:'项目中心',\r\n to: {\r\n name: 'groupListPage'\r\n } \r\n }\r\n}\r\n\r\nfunction groupDashboard(route) {\r\n var groupName = '项目组'\r\n if (route.query.groupName) {\r\n groupName = route.query.groupName\r\n }\r\n return {\r\n name: groupName,\r\n to: {\r\n path: '/groups/'+route.params.groupId\r\n } \r\n }\r\n}\r\n\r\nfunction groupProjectDocument(route) {\r\n var name = '项目文档'\r\n if (route.query.projectName) {\r\n name = route.query.projectName\r\n }\r\n var projectId = route.params.projectId\r\n var groupId = route.params.groupId\r\n return {\r\n name: name,\r\n to: {\r\n path: '/groups/' + groupId + '/projects/' + projectId + '/documents',\r\n query: {\r\n projectName: name\r\n }\r\n } \r\n }\r\n}\r\n\r\nfunction userList() {\r\n return {\r\n name:'用户列表',\r\n to: {\r\n path: '/users'\r\n } \r\n }\r\n}\r\n\r\n\r\nfunction userProfile() {\r\n return {\r\n name:'个人中心',\r\n to: {\r\n path: '/profile'\r\n } \r\n }\r\n}\r\n\r\nfunction sysEmailEdit() {\r\n return {\r\n name:'邮箱设置',\r\n to: {\r\n path: '/settings/sysEmail'\r\n } \r\n }\r\n}\r\n\r\nfunction sysLog() {\r\n return {\r\n name:'操作日志',\r\n to: {\r\n path: '/settings/sysLog'\r\n } \r\n }\r\n}\r\n\r\nfunction sysOauth2() {\r\n return {\r\n name:'登录设置',\r\n to: {\r\n path: '/settings/sysOauth2'\r\n } \r\n }\r\n}\r\n\r\nfunction sysDatabaseType() {\r\n return {\r\n name:'数据库类型',\r\n to: {\r\n path: '/settings/sysDatabaseType'\r\n } \r\n }\r\n}\r\n\r\n\r\nconst breadcurmbMap = {\r\n index: () => [index() ],\r\n groupList: () => [index(), groupList()],\r\n groupDashboard: (route, state) => [index(), groupList(), groupDashboard(route, state)],\r\n groupProjectDocument: (route, state) => [index(), groupList(), groupDashboard(route, state), groupProjectDocument(route)],\r\n userProfile: () => [index(), userProfile()],\r\n userList: () => [index(), userList()],\r\n sysEmailEdit: () => [index(), sysEmailEdit()],\r\n sysLog: () => [index(), sysLog()],\r\n sysOauth2: () => [index(), sysOauth2()],\r\n sysDatabaseType: () => [index(), sysDatabaseType()],\r\n\r\n}\r\n\r\nexport default breadcurmbMap","import { createRouter, createWebHistory } from 'vue-router';\r\nimport Layout from \"../layouts/Layout.vue\"\r\nimport breadcurmbMap from './breadcurmb'\r\nimport { token } from '../utils/auth';\r\n\r\nconst routes = [\r\n {\r\n path: '/login',\r\n component: () => import('@/views/Login.vue'),\r\n hidden: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/login/oauth2/:id',\r\n component: () => import('@/views/OAuth2Login.vue'),\r\n hidden: true,\r\n props: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/',\r\n hidden: true,\r\n component: Layout,\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/groups',\r\n icon: 'Collection',\r\n component: Layout,\r\n meta: {\r\n nav: '项目中心',\r\n },\r\n children: [\r\n {\r\n path: '',\r\n name: 'groupListPage',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n },\r\n {\r\n path: ':groupId',\r\n hidden: true,\r\n component: () => import('@/views/GroupDashboard.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupDashboard\r\n }\r\n },\r\n {\r\n path: ':groupId/projects/:projectId/documents',\r\n hidden: true,\r\n component: () => import('@/views/Document.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupProjectDocument\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/users',\r\n icon: 'List',\r\n component: Layout,\r\n meta: {\r\n nav:'用户中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.userList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/profile',\r\n icon: 'User',\r\n component: Layout,\r\n meta: {\r\n nav: '个人中心',\r\n breadcrumb: breadcurmbMap.userProfile\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserProfile.vue')\r\n }\r\n ]\r\n },\r\n {\r\n path: '/settings',\r\n icon: 'Setting',\r\n component: Layout,\r\n meta: {\r\n nav:'系统中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: 'sysEmail',\r\n icon: 'Notification',\r\n component: () => import('@/views/SysEmailEdit.vue'),\r\n meta: {\r\n nav: '邮箱设置',\r\n breadcrumb: breadcurmbMap.sysEmailEdit\r\n }\r\n },\r\n {\r\n path: 'sysLog',\r\n icon: 'Document',\r\n component: () => import('@/views/SysLog.vue'),\r\n meta: {\r\n nav: '操作日志',\r\n breadcrumb: breadcurmbMap.sysLog\r\n }\r\n },\r\n {\r\n path: 'sysOauth2',\r\n icon: 'Connection',\r\n component: () => import('@/views/SysOauth2.vue'),\r\n meta: {\r\n nav: '登陆设置',\r\n breadcrumb: breadcurmbMap.sysOauth2\r\n }\r\n },\r\n {\r\n path: 'sysDatabaseType',\r\n icon: 'office-building',\r\n component: () => import('@/views/SysDatabaseType.vue'),\r\n meta: {\r\n nav: '数据库类型',\r\n breadcrumb: breadcurmbMap.sysDatabaseType\r\n }\r\n },\r\n // TODO\r\n {\r\n path: 'sysKey',\r\n icon: 'Key',\r\n hidden: 'true',\r\n component: Layout,\r\n meta: {\r\n nav: '系统秘钥',\r\n breadcrumb: breadcurmbMap.sysKeyEdit\r\n }\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes\r\n});\r\n\r\n// 权限路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.meta.requireAuth == false) {\r\n if (to.path == '/login' && token.hasAccessToken()) {\r\n next(from)\r\n } else {\r\n next()\r\n }\r\n } else {\r\n if(token.hasAccessToken()) {\r\n next()\r\n } else {\r\n next({ path: '/login' })\r\n }\r\n }\r\n})\r\n\r\n// groupName 参数路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (!to.query.groupName && from.query.groupName) {\r\n to.query.groupName = from.query.groupName\r\n } \r\n if (!to.query.projectName && from.query.projectName) {\r\n to.query.projectName = from.query.projectName\r\n } \r\n next();\r\n})\r\n\r\nexport default router;","import { createStore } from 'vuex'\r\nimport { user } from '../utils/auth'\r\n\r\nconst store = createStore({\r\n state() {\r\n const data = {\r\n user: {\r\n nickname: null,\r\n usernmae: null,\r\n email: null,\r\n avatar: null,\r\n },\r\n groupListActiveTab: null,\r\n menu: {\r\n isCollapse: true,\r\n }\r\n }\r\n const loginData = user.loadUserLoginData()\r\n if (loginData) {\r\n data.user.nickname = loginData.nickname\r\n data.user.usernmae = loginData.usernmae\r\n data.user.email = loginData.email\r\n data.user.avatar = loginData.avatar\r\n }\r\n return data;\r\n },\r\n mutations: {\r\n userUpdate(state, param) {\r\n if (param.nickname) {\r\n state.user.nickname = param.nickname\r\n }\r\n if (param.usernmae) {\r\n state.user.usernmae = param.usernmae\r\n }\r\n if (param.email) {\r\n state.user.email = param.email\r\n }\r\n if (param.avatar) {\r\n state.user.avatar = param.avatar\r\n }\r\n },\r\n foldMenu(state) {\r\n state.menu.isCollapse = true\r\n },\r\n expandMenu(state) {\r\n state.menu.isCollapse = false\r\n },\r\n switchGroupListActiveTab(state, groupListActiveTab) {\r\n if (groupListActiveTab) {\r\n state.groupListActiveTab = groupListActiveTab\r\n }\r\n }\r\n }\r\n})\r\n\r\nexport default store","const accessTokenKey = 'accessToken'\r\nconst accessTokenExpireAtKey = 'accessTokenExpireAt'\r\nconst userLoginDataKey = 'userLoginData'\r\n\r\nexport const token = {\r\n\r\n hasAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n return accessToken\r\n },\r\n\r\n hasValidAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n const expireAt = window.localStorage.getItem(accessTokenExpireAtKey)\r\n if (!accessToken || !expireAt) {\r\n console.log('warn: not found accessToken and expireAt key')\r\n return false\r\n }\r\n // 10s gap\r\n return expireAt > new Date().getTime() -(1000 * 10)\r\n },\r\n\r\n saveAccessToken(token, tokenExpireAt) {\r\n window.localStorage.setItem(accessTokenKey, token)\r\n window.localStorage.setItem(accessTokenExpireAtKey, tokenExpireAt)\r\n },\r\n\r\n loadAccessToken() {\r\n let token = window.localStorage.getItem(accessTokenKey)\r\n if (token) {\r\n return token\r\n }\r\n return null\r\n }\r\n}\r\n\r\nexport const user = {\r\n\r\n saveUserLoginData(userLoginData) {\r\n window.localStorage.setItem(accessTokenKey, userLoginData.accessToken)\r\n window.localStorage.setItem(accessTokenExpireAtKey, userLoginData.accessTokenExpireAt)\r\n window.localStorage.setItem(userLoginDataKey, JSON.stringify(userLoginData))\r\n },\r\n\r\n removeUserLoginData() {\r\n window.localStorage.removeItem(userLoginDataKey)\r\n window.localStorage.removeItem(accessTokenKey)\r\n window.localStorage.removeItem(accessTokenExpireAtKey)\r\n },\r\n\r\n loadUserLoginData() {\r\n if (!window.localStorage.getItem(userLoginDataKey)) {\r\n return null;\r\n } \r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n return JSON.parse(data)\r\n },\r\n\r\n hasAnyRoles(roles) {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return false\r\n }\r\n const user = JSON.parse(data)\r\n return user\r\n .roles\r\n .map(role => {\r\n if (role.groupId) {\r\n return role.role + '?groupId=' + role.groupId\r\n } else {\r\n return role.role\r\n }\r\n })\r\n .some(exists => roles.some(expected => expected == exists))\r\n },\r\n\r\n getRefreshToken() {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return null\r\n }\r\n const user = JSON.parse(data)\r\n return user.refreshToken\r\n }\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \"-legacy.\" + {\"99\":\"0cf27260\",\"117\":\"5a8a817f\",\"130\":\"bed95c34\",\"139\":\"b3ab46a9\",\"243\":\"92016c20\",\"269\":\"ec81b414\",\"321\":\"9c40372e\",\"459\":\"e006098f\",\"469\":\"15ca5259\",\"596\":\"b305a8fd\",\"754\":\"8ce78db0\",\"865\":\"95ef57b0\",\"924\":\"3ccd761f\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"139\":\"a7dec339\",\"321\":\"d892cf8e\",\"459\":\"82a2f213\",\"596\":\"b144be0e\",\"865\":\"7df1e56e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"databasir:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"139\":1,\"321\":1,\"459\":1,\"596\":1,\"865\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdatabasir\"] = self[\"webpackChunkdatabasir\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3710); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","app","createApp","App","Object","keys","Icons","forEach","component","DatabaseIcon","directive","mounted","el","binding","roles","value","user","parentNode","removeChild","updated","child","querySelector","id","getAttribute","poper","document","getElementById","selector","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","use","store","ElementPlus","router","mount","_component_el_container","class","_createVNode","_component_el_aside","_component_AppNav","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_menu","collapse","$setup","mode","_component_el_menu_item","index","title","_hoisted_1","_component_el_icon","_component_home_filled","_renderList","menu","children","length","some","ele","hidden","_component_el_sub_menu","path","_resolveDynamicComponent","icon","_toDisplayString","meta","nav","childIndex","setup","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","_component_el_breadcrumb","separator","$options","_component_el_breadcrumb_item","_component_el_link","onClick","underline","_component_fold","item","to","name","breadcrumbs","$route","breadcrumb","$store","state","menuIsCollapse","methods","onFoldMenu","commit","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","divided","_component_el_avatar","size","userNickname","nickname","avatarUrl","avatar","onLogout","$router","push","toProfilePage","components","AppNav","Breadcrumb","Avatar","groupList","groupDashboard","route","groupName","query","params","groupId","groupProjectDocument","projectName","projectId","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","breadcurmbMap","requireAuth","Layout","createRouter","history","createWebHistory","beforeEach","from","next","token","createStore","data","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","window","localStorage","getItem","Date","getTime","console","log","saveAccessToken","tokenExpireAt","setItem","saveUserLoginData","userLoginData","accessTokenExpireAt","JSON","stringify","removeUserLoginData","removeItem","loadUserLoginData","parse","map","role","exists","expected","getRefreshToken","refreshToken","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/app.4f290695.js b/api/src/main/resources/static/js/app.ccfb747d.js similarity index 96% rename from api/src/main/resources/static/js/app.4f290695.js rename to api/src/main/resources/static/js/app.ccfb747d.js index bfde06a..f15345a 100644 --- a/api/src/main/resources/static/js/app.4f290695.js +++ b/api/src/main/resources/static/js/app.ccfb747d.js @@ -1,2 +1,2 @@ -(function(){"use strict";var e={3710:function(e,t,n){var r=n(9963),o=n(2610),a=n(137),u=(n(4415),n(3117)),i=n(4239),s=n(6252);function l(e,t){const n=(0,s.up)("router-view");return(0,s.wg)(),(0,s.j4)(n)}var c=n(3744);const d={},m=(0,c.Z)(d,[["render",l]]);var p=m,f=n(1836),h=n(3577);const g=["src"],b=["src"];function w(e,t,r,o,a,u){const i=(0,s.up)("el-tooltip");return"mysql"==r.databaseType.toLowerCase()?((0,s.wg)(),(0,s.j4)(i,{key:0,content:r.databaseType,placement:"left"},{default:(0,s.w5)((()=>[(0,s._)("img",{src:n(2357),style:{"max-width":"33px","max-height":"33px"}},null,8,g)])),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,s.wg)(),(0,s.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,s.w5)((()=>[(0,s._)("img",{src:n(3609),style:{"max-width":"33px","max-height":"33px"}},null,8,b)])),_:1},8,["content"])):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s.Uk)((0,h.zw)(r.databaseType),1)],64))}var v={props:{databaseType:String}};const y=(0,c.Z)(v,[["render",w]]);var k=y;const _=(0,r.ri)(p);Object.keys(a).forEach((e=>{_.component(e,a[e])})),_.component("database-icon",k),_.directive("require-roles",{mounted(e,t){const n=t.value;f.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),_.directive("select-more",{updated(e,t){const n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),o=document.getElementById(r),a=o.querySelector(".el-scrollbar .el-select-dropdown__wrap");a.addEventListener("scroll",(function(){const e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()}))}}),_.use(i.Z),_.use(o.Z),_.use(u.Z),_.mount("#app")},3117:function(e,t,n){n.d(t,{Z:function(){return H}});var r=n(2119),o=n(6252);function a(e,t,n,r,a,u){const i=(0,o.up)("AppNav"),s=(0,o.up)("el-aside"),l=(0,o.up)("Breadcrumb"),c=(0,o.up)("Avatar"),d=(0,o.up)("el-header"),m=(0,o.up)("router-view"),p=(0,o.up)("el-main"),f=(0,o.up)("el-container");return(0,o.wg)(),(0,o.j4)(f,{class:"databasir"},{default:(0,o.w5)((()=>[(0,o.Wm)(s,null,{default:(0,o.w5)((()=>[(0,o.Wm)(i,{class:"databasir-nav"})])),_:1}),(0,o.Wm)(d,{class:"databasir-main-header"},{default:(0,o.w5)((()=>[(0,o.Wm)(l),(0,o.Wm)(c)])),_:1}),(0,o.Wm)(p,{class:"databasir-main"},{default:(0,o.w5)((()=>[(0,o.Wm)(f,null,{default:(0,o.w5)((()=>[(0,o.Wm)(p,{class:"databasir-main-content"},{default:(0,o.w5)((()=>[(0,o.Wm)(m)])),_:1})])),_:1})])),_:1})])),_:1})}var u=n(3577);const i=(0,o._)("span",null,"Databasir",-1);function s(e,t,n,r,a,s){const l=(0,o.up)("home-filled"),c=(0,o.up)("el-icon"),d=(0,o.up)("el-menu-item"),m=(0,o.up)("el-sub-menu"),p=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(p,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((()=>[(0,o.Wm)(d,{index:"/"},{title:(0,o.w5)((()=>[i])),default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(l)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(r.routes,((e,t)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:t},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((e=>!e.hidden))?((0,o.wg)(),(0,o.j4)(m,{key:0,index:e.path},{title:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))])),_:2},1024),(0,o._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.children,((n,r)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:t+"-"+r},[n.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0,index:e.path+"/"+n.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,u.zw)(n.meta.nav),1)])),default:(0,o.w5)((()=>[n.icon?((0,o.wg)(),(0,o.j4)(c,{key:0},{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(n.icon)))])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1032,["index"]))],64)))),128))])),_:2},1032,["index"])):r.isShowMenu(e)?((0,o.wg)(),(0,o.j4)(d,{key:1,index:e.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))])),_:2},1024)])),_:2},1032,["index"])):(0,o.kq)("",!0)],64)))),128))])),_:1},8,["collapse"])}var l=n(2262),c=n(1836),d=n(4239),m={setup(){const e=(0,l.Fl)((()=>d.Z.state.menu.isCollapse)),t=(0,r.tv)(),n=t.options.routes,o=e=>{if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){const t=c.E.hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},a=()=>{d.Z.commit("expandMenu")};return{isCollapse:e,isShowMenu:o,expandMenu:a,routes:n}}},p=n(3744);const f=(0,p.Z)(m,[["render",s]]);var h=f;function g(e,t,n,r,a,i){const s=(0,o.up)("fold"),l=(0,o.up)("el-icon"),c=(0,o.up)("el-link"),d=(0,o.up)("el-breadcrumb-item"),m=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(m,{separator:"/"},{default:(0,o.w5)((()=>[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(c,{onClick:t[0]||(t[0]=e=>i.onFoldMenu()),underline:!1},{default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Wm)(s)])),_:1})])),_:1})])),_:1})),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.breadcrumbs,((e,t)=>((0,o.wg)(),(0,o.j4)(d,{key:t,to:e.to},{default:(0,o.w5)((()=>[(0,o.Uk)((0,u.zw)(e.name),1)])),_:2},1032,["to"])))),128))])),_:1})}var b={computed:{breadcrumbs:function(){return"function"===typeof this.$route.meta.breadcrumb?this.$route.meta.breadcrumb(this.$route,this.$store.state):[]},menuIsCollapse(){return this.$store.state.menu.isCollapse}},methods:{onFoldMenu(){this.$store.commit("foldMenu")}}};const w=(0,p.Z)(b,[["render",g]]);var v=w;const y=(0,o.Uk)("个人中心"),k=(0,o.Uk)("注销登陆");function _(e,t,n,r,a,i){const s=(0,o.up)("el-avatar"),l=(0,o.up)("el-dropdown-item"),c=(0,o.up)("el-dropdown-menu"),d=(0,o.up)("el-dropdown");return(0,o.wg)(),(0,o.j4)(d,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Uk)((0,u.zw)(i.userNickname),1)])),_:1}),(0,o.Wm)(l,{icon:"user",divided:"",onClick:t[0]||(t[0]=e=>i.toProfilePage())},{default:(0,o.w5)((()=>[y])),_:1}),(0,o.Wm)(l,{icon:"back",onClick:t[1]||(t[1]=e=>i.onLogout())},{default:(0,o.w5)((()=>[k])),_:1})])),_:1})])),default:(0,o.w5)((()=>[(0,o.Wm)(s,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])])),_:1})}var j={computed:{userNickname(){return this.$store.state.user.nickname},avatarUrl(){return this.$store.state.user.avatar}},methods:{onLogout(){c.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage(){this.$router.push({path:"/profile"})}}};const S=(0,p.Z)(j,[["render",_]]);var T=S,A={components:{AppNav:h,Breadcrumb:v,Avatar:T}};const L=(0,p.Z)(A,[["render",a]]);var N=L;function q(){return{name:"首页",to:{path:"/"}}}function E(){return{name:"项目中心",to:{name:"groupListPage"}}}function P(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function x(e){var t="项目文档";e.query.projectName&&(t=e.query.projectName);var n=e.params.projectId,r=e.params.groupId;return{name:t,to:{path:"/groups/"+r+"/projects/"+n+"/documents",query:{projectName:t}}}}function C(){return{name:"用户列表",to:{path:"/users"}}}function I(){return{name:"个人中心",to:{path:"/profile"}}}function O(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function D(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function M(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}const U={index:()=>[q()],groupList:()=>[q(),E()],groupDashboard:(e,t)=>[q(),E(),P(e,t)],groupProjectDocument:(e,t)=>[q(),E(),P(e,t),x(e)],userProfile:()=>[q(),I()],userList:()=>[q(),C()],sysEmailEdit:()=>[q(),O()],sysLog:()=>[q(),D()],sysOauth2:()=>[q(),W()],sysDatabaseType:()=>[q(),M()]};var Z=U;const R=[{path:"/login",component:()=>Promise.all([n.e(269),n.e(139)]).then(n.bind(n,1139)),hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:()=>Promise.all([n.e(269),n.e(865)]).then(n.bind(n,8865)),hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:N,children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(355)]).then(n.bind(n,7596)),meta:{breadcrumb:Z.groupList}}]},{path:"/groups",icon:"Collection",component:N,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:()=>Promise.all([n.e(269),n.e(355)]).then(n.bind(n,7596)),meta:{breadcrumb:Z.groupList}},{path:":groupId",hidden:!0,component:()=>Promise.all([n.e(269),n.e(459)]).then(n.bind(n,9459)),meta:{breadcrumb:Z.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:()=>Promise.all([n.e(269),n.e(321)]).then(n.bind(n,6321)),meta:{breadcrumb:Z.groupProjectDocument}}]},{path:"/users",icon:"List",component:N,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(130)]).then(n.bind(n,8130)),meta:{breadcrumb:Z.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:Z.userProfile},children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(469)]).then(n.bind(n,6469))}]},{path:"/settings",icon:"Setting",component:N,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:()=>Promise.all([n.e(269),n.e(596)]).then(n.bind(n,2631)),meta:{nav:"邮箱设置",breadcrumb:Z.sysEmailEdit}},{path:"sysLog",icon:"Document",component:()=>Promise.all([n.e(269),n.e(99)]).then(n.bind(n,2099)),meta:{nav:"操作日志",breadcrumb:Z.sysLog}},{path:"sysOauth2",icon:"Connection",component:()=>Promise.all([n.e(269),n.e(754)]).then(n.bind(n,7754)),meta:{nav:"登陆设置",breadcrumb:Z.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:()=>Promise.all([n.e(269),n.e(564)]).then(n.bind(n,2564)),meta:{nav:"数据库类型",breadcrumb:Z.sysDatabaseType}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:Z.sysKeyEdit}}]}],$=(0,r.p7)({history:(0,r.PO)(),routes:R});$.beforeEach(((e,t,n)=>{0==e.meta.requireAuth?"/login"==e.path&&c.r.hasAccessToken()?n(t):n():c.r.hasAccessToken()?n():n({path:"/login"})})),$.beforeEach(((e,t,n)=>{!e.query.groupName&&t.query.groupName&&(e.query.groupName=t.query.groupName),!e.query.projectName&&t.query.projectName&&(e.query.projectName=t.query.projectName),n()}));var H=$},4239:function(e,t,n){var r=n(8637),o=n(1836);const a=(0,r.MT)({state(){const e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=o.E.loadUserLoginData();return t&&(e.user.nickname=t.nickname,e.user.usernmae=t.usernmae,e.user.email=t.email,e.user.avatar=t.avatar),e},mutations:{userUpdate(e,t){t.nickname&&(e.user.nickname=t.nickname),t.usernmae&&(e.user.usernmae=t.usernmae),t.email&&(e.user.email=t.email),t.avatar&&(e.user.avatar=t.avatar)},foldMenu(e){e.menu.isCollapse=!0},expandMenu(e){e.menu.isCollapse=!1},switchGroupListActiveTab(e,t){t&&(e.groupListActiveTab=t)}}});t["Z"]=a},1836:function(e,t,n){n.d(t,{r:function(){return u},E:function(){return i}});const r="accessToken",o="accessTokenExpireAt",a="userLoginData",u={hasAccessToken(){const e=this.loadAccessToken();return e},hasValidAccessToken(){const e=this.loadAccessToken(),t=window.localStorage.getItem(o);return e&&t?t>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken(e,t){window.localStorage.setItem(r,e),window.localStorage.setItem(o,t)},loadAccessToken(){let e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(a,JSON.stringify(e))},removeUserLoginData(){window.localStorage.removeItem(a),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData(){if(!window.localStorage.getItem(a))return null;const e=window.localStorage.getItem(a);return JSON.parse(e)},hasAnyRoles(e){const t=window.localStorage.getItem(a);if(null==t)return!1;const n=JSON.parse(t);return n.roles.map((e=>e.groupId?e.role+"?groupId="+e.groupId:e.role)).some((t=>e.some((e=>e==t))))},getRefreshToken(){const e=window.localStorage.getItem(a);if(null==e)return null;const t=JSON.parse(e);return t.refreshToken}}},2357:function(e,t,n){e.exports=n.p+"img/MySQL.c8f47618.svg"},3609:function(e,t,n){e.exports=n.p+"img/PostgreSQL.6e3d3a5e.svg"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,a){if(!r){var u=1/0;for(c=0;c=a)&&Object.keys(n.O).every((function(e){return n.O[e](r[s])}))?r.splice(s--,1):(i=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,o,a]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{99:"810cec85",130:"539afb3f",139:"338f8cdc",269:"476aa030",321:"2b808026",355:"259a00ae",459:"03157dea",469:"88db1032",564:"d209a2a0",596:"a8ef0977",754:"d964c8b8",865:"8a397b0a"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",321:"d892cf8e",355:"b144be0e",459:"82a2f213",865:"7df1e56e"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="databasir:";n.l=function(r,o,a,u){if(e[r])e[r].push(o);else{var i,s;if(void 0!==a)for(var l=document.getElementsByTagName("script"),c=0;c[(0,s._)("img",{src:n(2357),style:{"max-width":"33px","max-height":"33px"}},null,8,g)])),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,s.wg)(),(0,s.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,s.w5)((()=>[(0,s._)("img",{src:n(3609),style:{"max-width":"33px","max-height":"33px"}},null,8,b)])),_:1},8,["content"])):((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s.Uk)((0,h.zw)(r.databaseType),1)],64))}var v={props:{databaseType:String}};const y=(0,c.Z)(v,[["render",w]]);var k=y;const _=(0,r.ri)(p);Object.keys(a).forEach((e=>{_.component(e,a[e])})),_.component("database-icon",k),_.directive("require-roles",{mounted(e,t){const n=t.value;f.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),_.directive("select-more",{updated(e,t){const n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),o=document.getElementById(r),a=o.querySelector(".el-scrollbar .el-select-dropdown__wrap");a.addEventListener("scroll",(function(){const e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()}))}}),_.use(i.Z),_.use(o.Z),_.use(u.Z),_.mount("#app")},3117:function(e,t,n){n.d(t,{Z:function(){return H}});var r=n(2119),o=n(6252);function a(e,t,n,r,a,u){const i=(0,o.up)("AppNav"),s=(0,o.up)("el-aside"),l=(0,o.up)("Breadcrumb"),c=(0,o.up)("Avatar"),d=(0,o.up)("el-header"),m=(0,o.up)("router-view"),p=(0,o.up)("el-main"),f=(0,o.up)("el-container");return(0,o.wg)(),(0,o.j4)(f,{class:"databasir"},{default:(0,o.w5)((()=>[(0,o.Wm)(s,null,{default:(0,o.w5)((()=>[(0,o.Wm)(i,{class:"databasir-nav"})])),_:1}),(0,o.Wm)(d,{class:"databasir-main-header"},{default:(0,o.w5)((()=>[(0,o.Wm)(l),(0,o.Wm)(c)])),_:1}),(0,o.Wm)(p,{class:"databasir-main"},{default:(0,o.w5)((()=>[(0,o.Wm)(f,null,{default:(0,o.w5)((()=>[(0,o.Wm)(p,{class:"databasir-main-content"},{default:(0,o.w5)((()=>[(0,o.Wm)(m)])),_:1})])),_:1})])),_:1})])),_:1})}var u=n(3577);const i=(0,o._)("span",null,"Databasir",-1);function s(e,t,n,r,a,s){const l=(0,o.up)("home-filled"),c=(0,o.up)("el-icon"),d=(0,o.up)("el-menu-item"),m=(0,o.up)("el-sub-menu"),p=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(p,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((()=>[(0,o.Wm)(d,{index:"/"},{title:(0,o.w5)((()=>[i])),default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(l)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(r.routes,((e,t)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:t},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((e=>!e.hidden))?((0,o.wg)(),(0,o.j4)(m,{key:0,index:e.path},{title:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))])),_:2},1024),(0,o._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.children,((n,r)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:t+"-"+r},[n.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0,index:e.path+"/"+n.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,u.zw)(n.meta.nav),1)])),default:(0,o.w5)((()=>[n.icon?((0,o.wg)(),(0,o.j4)(c,{key:0},{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(n.icon)))])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1032,["index"]))],64)))),128))])),_:2},1032,["index"])):r.isShowMenu(e)?((0,o.wg)(),(0,o.j4)(d,{key:1,index:e.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))])),_:2},1024)])),_:2},1032,["index"])):(0,o.kq)("",!0)],64)))),128))])),_:1},8,["collapse"])}var l=n(2262),c=n(1836),d=n(4239),m={setup(){const e=(0,l.Fl)((()=>d.Z.state.menu.isCollapse)),t=(0,r.tv)(),n=t.options.routes,o=e=>{if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){const t=c.E.hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},a=()=>{d.Z.commit("expandMenu")};return{isCollapse:e,isShowMenu:o,expandMenu:a,routes:n}}},p=n(3744);const f=(0,p.Z)(m,[["render",s]]);var h=f;function g(e,t,n,r,a,i){const s=(0,o.up)("fold"),l=(0,o.up)("el-icon"),c=(0,o.up)("el-link"),d=(0,o.up)("el-breadcrumb-item"),m=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(m,{separator:"/"},{default:(0,o.w5)((()=>[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(c,{onClick:t[0]||(t[0]=e=>i.onFoldMenu()),underline:!1},{default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Wm)(s)])),_:1})])),_:1})])),_:1})),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.breadcrumbs,((e,t)=>((0,o.wg)(),(0,o.j4)(d,{key:t,to:e.to},{default:(0,o.w5)((()=>[(0,o.Uk)((0,u.zw)(e.name),1)])),_:2},1032,["to"])))),128))])),_:1})}var b={computed:{breadcrumbs:function(){return"function"===typeof this.$route.meta.breadcrumb?this.$route.meta.breadcrumb(this.$route,this.$store.state):[]},menuIsCollapse(){return this.$store.state.menu.isCollapse}},methods:{onFoldMenu(){this.$store.commit("foldMenu")}}};const w=(0,p.Z)(b,[["render",g]]);var v=w;const y=(0,o.Uk)("个人中心"),k=(0,o.Uk)("注销登陆");function _(e,t,n,r,a,i){const s=(0,o.up)("el-avatar"),l=(0,o.up)("el-dropdown-item"),c=(0,o.up)("el-dropdown-menu"),d=(0,o.up)("el-dropdown");return(0,o.wg)(),(0,o.j4)(d,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Uk)((0,u.zw)(i.userNickname),1)])),_:1}),(0,o.Wm)(l,{icon:"user",divided:"",onClick:t[0]||(t[0]=e=>i.toProfilePage())},{default:(0,o.w5)((()=>[y])),_:1}),(0,o.Wm)(l,{icon:"back",onClick:t[1]||(t[1]=e=>i.onLogout())},{default:(0,o.w5)((()=>[k])),_:1})])),_:1})])),default:(0,o.w5)((()=>[(0,o.Wm)(s,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])])),_:1})}var j={computed:{userNickname(){return this.$store.state.user.nickname},avatarUrl(){return this.$store.state.user.avatar}},methods:{onLogout(){c.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage(){this.$router.push({path:"/profile"})}}};const S=(0,p.Z)(j,[["render",_]]);var T=S,A={components:{AppNav:h,Breadcrumb:v,Avatar:T}};const L=(0,p.Z)(A,[["render",a]]);var N=L;function q(){return{name:"首页",to:{path:"/"}}}function E(){return{name:"项目中心",to:{name:"groupListPage"}}}function P(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function x(e){var t="项目文档";e.query.projectName&&(t=e.query.projectName);var n=e.params.projectId,r=e.params.groupId;return{name:t,to:{path:"/groups/"+r+"/projects/"+n+"/documents",query:{projectName:t}}}}function C(){return{name:"用户列表",to:{path:"/users"}}}function I(){return{name:"个人中心",to:{path:"/profile"}}}function O(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function D(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function M(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}const U={index:()=>[q()],groupList:()=>[q(),E()],groupDashboard:(e,t)=>[q(),E(),P(e,t)],groupProjectDocument:(e,t)=>[q(),E(),P(e,t),x(e)],userProfile:()=>[q(),I()],userList:()=>[q(),C()],sysEmailEdit:()=>[q(),O()],sysLog:()=>[q(),D()],sysOauth2:()=>[q(),W()],sysDatabaseType:()=>[q(),M()]};var Z=U;const R=[{path:"/login",component:()=>Promise.all([n.e(269),n.e(139)]).then(n.bind(n,1139)),hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:()=>Promise.all([n.e(269),n.e(865)]).then(n.bind(n,8865)),hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:N,children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(596)]).then(n.bind(n,7596)),meta:{breadcrumb:Z.groupList}}]},{path:"/groups",icon:"Collection",component:N,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:()=>Promise.all([n.e(269),n.e(596)]).then(n.bind(n,7596)),meta:{breadcrumb:Z.groupList}},{path:":groupId",hidden:!0,component:()=>Promise.all([n.e(269),n.e(459)]).then(n.bind(n,9459)),meta:{breadcrumb:Z.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:()=>Promise.all([n.e(269),n.e(321)]).then(n.bind(n,6321)),meta:{breadcrumb:Z.groupProjectDocument}}]},{path:"/users",icon:"List",component:N,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(130)]).then(n.bind(n,8130)),meta:{breadcrumb:Z.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:Z.userProfile},children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(469)]).then(n.bind(n,6469))}]},{path:"/settings",icon:"Setting",component:N,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:()=>Promise.all([n.e(269),n.e(243)]).then(n.bind(n,1243)),meta:{nav:"邮箱设置",breadcrumb:Z.sysEmailEdit}},{path:"sysLog",icon:"Document",component:()=>Promise.all([n.e(269),n.e(99)]).then(n.bind(n,2099)),meta:{nav:"操作日志",breadcrumb:Z.sysLog}},{path:"sysOauth2",icon:"Connection",component:()=>Promise.all([n.e(269),n.e(754)]).then(n.bind(n,7754)),meta:{nav:"登陆设置",breadcrumb:Z.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:()=>Promise.all([n.e(269),n.e(564)]).then(n.bind(n,2564)),meta:{nav:"数据库类型",breadcrumb:Z.sysDatabaseType}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:Z.sysKeyEdit}}]}],$=(0,r.p7)({history:(0,r.PO)(),routes:R});$.beforeEach(((e,t,n)=>{0==e.meta.requireAuth?"/login"==e.path&&c.r.hasAccessToken()?n(t):n():c.r.hasAccessToken()?n():n({path:"/login"})})),$.beforeEach(((e,t,n)=>{!e.query.groupName&&t.query.groupName&&(e.query.groupName=t.query.groupName),!e.query.projectName&&t.query.projectName&&(e.query.projectName=t.query.projectName),n()}));var H=$},4239:function(e,t,n){var r=n(8637),o=n(1836);const a=(0,r.MT)({state(){const e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=o.E.loadUserLoginData();return t&&(e.user.nickname=t.nickname,e.user.usernmae=t.usernmae,e.user.email=t.email,e.user.avatar=t.avatar),e},mutations:{userUpdate(e,t){t.nickname&&(e.user.nickname=t.nickname),t.usernmae&&(e.user.usernmae=t.usernmae),t.email&&(e.user.email=t.email),t.avatar&&(e.user.avatar=t.avatar)},foldMenu(e){e.menu.isCollapse=!0},expandMenu(e){e.menu.isCollapse=!1},switchGroupListActiveTab(e,t){t&&(e.groupListActiveTab=t)}}});t["Z"]=a},1836:function(e,t,n){n.d(t,{r:function(){return u},E:function(){return i}});const r="accessToken",o="accessTokenExpireAt",a="userLoginData",u={hasAccessToken(){const e=this.loadAccessToken();return e},hasValidAccessToken(){const e=this.loadAccessToken(),t=window.localStorage.getItem(o);return e&&t?t>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken(e,t){window.localStorage.setItem(r,e),window.localStorage.setItem(o,t)},loadAccessToken(){let e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(a,JSON.stringify(e))},removeUserLoginData(){window.localStorage.removeItem(a),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData(){if(!window.localStorage.getItem(a))return null;const e=window.localStorage.getItem(a);return JSON.parse(e)},hasAnyRoles(e){const t=window.localStorage.getItem(a);if(null==t)return!1;const n=JSON.parse(t);return n.roles.map((e=>e.groupId?e.role+"?groupId="+e.groupId:e.role)).some((t=>e.some((e=>e==t))))},getRefreshToken(){const e=window.localStorage.getItem(a);if(null==e)return null;const t=JSON.parse(e);return t.refreshToken}}},2357:function(e,t,n){e.exports=n.p+"img/MySQL.c8f47618.svg"},3609:function(e,t,n){e.exports=n.p+"img/PostgreSQL.6e3d3a5e.svg"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,a){if(!r){var u=1/0;for(c=0;c=a)&&Object.keys(n.O).every((function(e){return n.O[e](r[s])}))?r.splice(s--,1):(i=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,o,a]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{99:"810cec85",130:"539afb3f",139:"338f8cdc",243:"e2c9f564",269:"476aa030",321:"2b808026",459:"03157dea",469:"88db1032",564:"d209a2a0",596:"b510e94b",754:"d964c8b8",865:"8a397b0a"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",321:"d892cf8e",459:"82a2f213",596:"b144be0e",865:"7df1e56e"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="databasir:";n.l=function(r,o,a,u){if(e[r])e[r].push(o);else{var i,s;if(void 0!==a)for(var l=document.getElementsByTagName("script"),c=0;c\r\n \r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=2b08e877\"\nconst script = {}\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./DatabaseIcon.vue?vue&type=template&id=154abc1d\"\nimport script from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\nexport * from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ElementPlus from 'element-plus'\r\nimport * as Icons from '@element-plus/icons'\r\nimport 'element-plus/dist/index.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport { user } from './utils/auth'\r\nimport DatabaseIcon from './components/DatabaseIcon.vue'\r\n\r\n// element icon\r\nconst app = createApp(App)\r\nObject.keys(Icons).forEach(key => {\r\n app.component(key, Icons[key])\r\n})\r\napp.component('database-icon', DatabaseIcon)\r\n\r\n// permission directive\r\napp.directive('require-roles', {\r\n mounted(el, binding) {\r\n const roles = binding.value\r\n if (!user.hasAnyRoles(roles)) {\r\n el.parentNode && el.parentNode.removeChild(el)\r\n }\r\n },\r\n})\r\n\r\n// custom select directive\r\napp.directive(\"select-more\", {\r\n updated(el, binding) {\r\n const child = el.querySelector('.select-trigger');\r\n const id = child.getAttribute('aria-describedby');\r\n const poper = document.getElementById(id);\r\n const selector = poper.querySelector('.el-scrollbar .el-select-dropdown__wrap');\r\n selector.addEventListener('scroll', function () {\r\n const condition = this.scrollHeight - this.scrollTop - 1 <= this.clientHeight;\r\n if (condition) {\r\n binding.value();\r\n }\r\n });\r\n },\r\n});\r\n\r\napp.use(store)\r\napp.use(ElementPlus)\r\napp.use(router)\r\napp.mount('#app')\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./AppNav.vue?vue&type=template&id=2cfaad82\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js\"\n\nimport \"./AppNav.vue?vue&type=style&index=0&id=2cfaad82&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./Breadcrumb.vue?vue&type=template&id=055586aa\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./Avatar.vue?vue&type=template&id=34a219c2\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Layout.vue?vue&type=template&id=6923c0fa\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\n\nimport \"./Layout.vue?vue&type=style&index=0&id=6923c0fa&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","function index() {\r\n return {\r\n name:'首页',\r\n to: {\r\n path: '/'\r\n }\r\n }\r\n}\r\n\r\nfunction groupList() {\r\n return {\r\n name:'项目中心',\r\n to: {\r\n name: 'groupListPage'\r\n } \r\n }\r\n}\r\n\r\nfunction groupDashboard(route) {\r\n var groupName = '项目组'\r\n if (route.query.groupName) {\r\n groupName = route.query.groupName\r\n }\r\n return {\r\n name: groupName,\r\n to: {\r\n path: '/groups/'+route.params.groupId\r\n } \r\n }\r\n}\r\n\r\nfunction groupProjectDocument(route) {\r\n var name = '项目文档'\r\n if (route.query.projectName) {\r\n name = route.query.projectName\r\n }\r\n var projectId = route.params.projectId\r\n var groupId = route.params.groupId\r\n return {\r\n name: name,\r\n to: {\r\n path: '/groups/' + groupId + '/projects/' + projectId + '/documents',\r\n query: {\r\n projectName: name\r\n }\r\n } \r\n }\r\n}\r\n\r\nfunction userList() {\r\n return {\r\n name:'用户列表',\r\n to: {\r\n path: '/users'\r\n } \r\n }\r\n}\r\n\r\n\r\nfunction userProfile() {\r\n return {\r\n name:'个人中心',\r\n to: {\r\n path: '/profile'\r\n } \r\n }\r\n}\r\n\r\nfunction sysEmailEdit() {\r\n return {\r\n name:'邮箱设置',\r\n to: {\r\n path: '/settings/sysEmail'\r\n } \r\n }\r\n}\r\n\r\nfunction sysLog() {\r\n return {\r\n name:'操作日志',\r\n to: {\r\n path: '/settings/sysLog'\r\n } \r\n }\r\n}\r\n\r\nfunction sysOauth2() {\r\n return {\r\n name:'登录设置',\r\n to: {\r\n path: '/settings/sysOauth2'\r\n } \r\n }\r\n}\r\n\r\nfunction sysDatabaseType() {\r\n return {\r\n name:'数据库类型',\r\n to: {\r\n path: '/settings/sysDatabaseType'\r\n } \r\n }\r\n}\r\n\r\n\r\nconst breadcurmbMap = {\r\n index: () => [index() ],\r\n groupList: () => [index(), groupList()],\r\n groupDashboard: (route, state) => [index(), groupList(), groupDashboard(route, state)],\r\n groupProjectDocument: (route, state) => [index(), groupList(), groupDashboard(route, state), groupProjectDocument(route)],\r\n userProfile: () => [index(), userProfile()],\r\n userList: () => [index(), userList()],\r\n sysEmailEdit: () => [index(), sysEmailEdit()],\r\n sysLog: () => [index(), sysLog()],\r\n sysOauth2: () => [index(), sysOauth2()],\r\n sysDatabaseType: () => [index(), sysDatabaseType()],\r\n\r\n}\r\n\r\nexport default breadcurmbMap","import { createRouter, createWebHistory } from 'vue-router';\r\nimport Layout from \"../layouts/Layout.vue\"\r\nimport breadcurmbMap from './breadcurmb'\r\nimport { token } from '../utils/auth';\r\n\r\nconst routes = [\r\n {\r\n path: '/login',\r\n component: () => import('@/views/Login.vue'),\r\n hidden: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/login/oauth2/:id',\r\n component: () => import('@/views/OAuth2Login.vue'),\r\n hidden: true,\r\n props: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/',\r\n hidden: true,\r\n component: Layout,\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/groups',\r\n icon: 'Collection',\r\n component: Layout,\r\n meta: {\r\n nav: '项目中心',\r\n },\r\n children: [\r\n {\r\n path: '',\r\n name: 'groupListPage',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n },\r\n {\r\n path: ':groupId',\r\n hidden: true,\r\n component: () => import('@/views/GroupDashboard.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupDashboard\r\n }\r\n },\r\n {\r\n path: ':groupId/projects/:projectId/documents',\r\n hidden: true,\r\n component: () => import('@/views/Document.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupProjectDocument\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/users',\r\n icon: 'List',\r\n component: Layout,\r\n meta: {\r\n nav:'用户中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.userList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/profile',\r\n icon: 'User',\r\n component: Layout,\r\n meta: {\r\n nav: '个人中心',\r\n breadcrumb: breadcurmbMap.userProfile\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserProfile.vue')\r\n }\r\n ]\r\n },\r\n {\r\n path: '/settings',\r\n icon: 'Setting',\r\n component: Layout,\r\n meta: {\r\n nav:'系统中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: 'sysEmail',\r\n icon: 'Notification',\r\n component: () => import('@/views/SysEmailEdit.vue'),\r\n meta: {\r\n nav: '邮箱设置',\r\n breadcrumb: breadcurmbMap.sysEmailEdit\r\n }\r\n },\r\n {\r\n path: 'sysLog',\r\n icon: 'Document',\r\n component: () => import('@/views/SysLog.vue'),\r\n meta: {\r\n nav: '操作日志',\r\n breadcrumb: breadcurmbMap.sysLog\r\n }\r\n },\r\n {\r\n path: 'sysOauth2',\r\n icon: 'Connection',\r\n component: () => import('@/views/SysOauth2.vue'),\r\n meta: {\r\n nav: '登陆设置',\r\n breadcrumb: breadcurmbMap.sysOauth2\r\n }\r\n },\r\n {\r\n path: 'sysDatabaseType',\r\n icon: 'office-building',\r\n component: () => import('@/views/SysDatabaseType.vue'),\r\n meta: {\r\n nav: '数据库类型',\r\n breadcrumb: breadcurmbMap.sysDatabaseType\r\n }\r\n },\r\n // TODO\r\n {\r\n path: 'sysKey',\r\n icon: 'Key',\r\n hidden: 'true',\r\n component: Layout,\r\n meta: {\r\n nav: '系统秘钥',\r\n breadcrumb: breadcurmbMap.sysKeyEdit\r\n }\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes\r\n});\r\n\r\n// 权限路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.meta.requireAuth == false) {\r\n if (to.path == '/login' && token.hasAccessToken()) {\r\n next(from)\r\n } else {\r\n next()\r\n }\r\n } else {\r\n if(token.hasAccessToken()) {\r\n next()\r\n } else {\r\n next({ path: '/login' })\r\n }\r\n }\r\n})\r\n\r\n// groupName 参数路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (!to.query.groupName && from.query.groupName) {\r\n to.query.groupName = from.query.groupName\r\n } \r\n if (!to.query.projectName && from.query.projectName) {\r\n to.query.projectName = from.query.projectName\r\n } \r\n next();\r\n})\r\n\r\nexport default router;","import { createStore } from 'vuex'\r\nimport { user } from '../utils/auth'\r\n\r\nconst store = createStore({\r\n state() {\r\n const data = {\r\n user: {\r\n nickname: null,\r\n usernmae: null,\r\n email: null,\r\n avatar: null,\r\n },\r\n groupListActiveTab: null,\r\n menu: {\r\n isCollapse: true,\r\n }\r\n }\r\n const loginData = user.loadUserLoginData()\r\n if (loginData) {\r\n data.user.nickname = loginData.nickname\r\n data.user.usernmae = loginData.usernmae\r\n data.user.email = loginData.email\r\n data.user.avatar = loginData.avatar\r\n }\r\n return data;\r\n },\r\n mutations: {\r\n userUpdate(state, param) {\r\n if (param.nickname) {\r\n state.user.nickname = param.nickname\r\n }\r\n if (param.usernmae) {\r\n state.user.usernmae = param.usernmae\r\n }\r\n if (param.email) {\r\n state.user.email = param.email\r\n }\r\n if (param.avatar) {\r\n state.user.avatar = param.avatar\r\n }\r\n },\r\n foldMenu(state) {\r\n state.menu.isCollapse = true\r\n },\r\n expandMenu(state) {\r\n state.menu.isCollapse = false\r\n },\r\n switchGroupListActiveTab(state, groupListActiveTab) {\r\n if (groupListActiveTab) {\r\n state.groupListActiveTab = groupListActiveTab\r\n }\r\n }\r\n }\r\n})\r\n\r\nexport default store","const accessTokenKey = 'accessToken'\r\nconst accessTokenExpireAtKey = 'accessTokenExpireAt'\r\nconst userLoginDataKey = 'userLoginData'\r\n\r\nexport const token = {\r\n\r\n hasAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n return accessToken\r\n },\r\n\r\n hasValidAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n const expireAt = window.localStorage.getItem(accessTokenExpireAtKey)\r\n if (!accessToken || !expireAt) {\r\n console.log('warn: not found accessToken and expireAt key')\r\n return false\r\n }\r\n // 10s gap\r\n return expireAt > new Date().getTime() -(1000 * 10)\r\n },\r\n\r\n saveAccessToken(token, tokenExpireAt) {\r\n window.localStorage.setItem(accessTokenKey, token)\r\n window.localStorage.setItem(accessTokenExpireAtKey, tokenExpireAt)\r\n },\r\n\r\n loadAccessToken() {\r\n let token = window.localStorage.getItem(accessTokenKey)\r\n if (token) {\r\n return token\r\n }\r\n return null\r\n }\r\n}\r\n\r\nexport const user = {\r\n\r\n saveUserLoginData(userLoginData) {\r\n window.localStorage.setItem(accessTokenKey, userLoginData.accessToken)\r\n window.localStorage.setItem(accessTokenExpireAtKey, userLoginData.accessTokenExpireAt)\r\n window.localStorage.setItem(userLoginDataKey, JSON.stringify(userLoginData))\r\n },\r\n\r\n removeUserLoginData() {\r\n window.localStorage.removeItem(userLoginDataKey)\r\n window.localStorage.removeItem(accessTokenKey)\r\n window.localStorage.removeItem(accessTokenExpireAtKey)\r\n },\r\n\r\n loadUserLoginData() {\r\n if (!window.localStorage.getItem(userLoginDataKey)) {\r\n return null;\r\n } \r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n return JSON.parse(data)\r\n },\r\n\r\n hasAnyRoles(roles) {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return false\r\n }\r\n const user = JSON.parse(data)\r\n return user\r\n .roles\r\n .map(role => {\r\n if (role.groupId) {\r\n return role.role + '?groupId=' + role.groupId\r\n } else {\r\n return role.role\r\n }\r\n })\r\n .some(exists => roles.some(expected => expected == exists))\r\n },\r\n\r\n getRefreshToken() {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return null\r\n }\r\n const user = JSON.parse(data)\r\n return user.refreshToken\r\n }\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"99\":\"810cec85\",\"130\":\"539afb3f\",\"139\":\"338f8cdc\",\"269\":\"476aa030\",\"321\":\"2b808026\",\"355\":\"259a00ae\",\"459\":\"03157dea\",\"469\":\"88db1032\",\"564\":\"d209a2a0\",\"596\":\"a8ef0977\",\"754\":\"d964c8b8\",\"865\":\"8a397b0a\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"139\":\"a7dec339\",\"321\":\"d892cf8e\",\"355\":\"b144be0e\",\"459\":\"82a2f213\",\"865\":\"7df1e56e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"databasir:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"139\":1,\"321\":1,\"355\":1,\"459\":1,\"865\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdatabasir\"] = self[\"webpackChunkdatabasir\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3710); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","app","createApp","App","Object","keys","Icons","forEach","component","DatabaseIcon","directive","mounted","el","binding","roles","value","user","parentNode","removeChild","updated","child","querySelector","id","getAttribute","poper","document","getElementById","selector","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","use","store","ElementPlus","router","mount","_component_el_container","class","_createVNode","_component_el_aside","_component_AppNav","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_menu","collapse","$setup","mode","_component_el_menu_item","index","title","_hoisted_1","_component_el_icon","_component_home_filled","_renderList","menu","children","length","some","ele","hidden","_component_el_sub_menu","path","_resolveDynamicComponent","icon","_toDisplayString","meta","nav","childIndex","setup","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","_component_el_breadcrumb","separator","$options","_component_el_breadcrumb_item","_component_el_link","onClick","underline","_component_fold","item","to","name","breadcrumbs","$route","breadcrumb","$store","state","menuIsCollapse","methods","onFoldMenu","commit","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","divided","_component_el_avatar","size","userNickname","nickname","avatarUrl","avatar","onLogout","$router","push","toProfilePage","components","AppNav","Breadcrumb","Avatar","groupList","groupDashboard","route","groupName","query","params","groupId","groupProjectDocument","projectName","projectId","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","breadcurmbMap","requireAuth","Layout","createRouter","history","createWebHistory","beforeEach","from","next","token","createStore","data","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","window","localStorage","getItem","Date","getTime","console","log","saveAccessToken","tokenExpireAt","setItem","saveUserLoginData","userLoginData","accessTokenExpireAt","JSON","stringify","removeUserLoginData","removeItem","loadUserLoginData","parse","map","role","exists","expected","getRefreshToken","refreshToken","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/app.ccfb747d.js","mappings":"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","sources":["webpack://databasir/./src/App.vue","webpack://databasir/./src/App.vue?7ccd","webpack://databasir/./src/components/DatabaseIcon.vue","webpack://databasir/./src/components/DatabaseIcon.vue?d57f","webpack://databasir/./src/main.js","webpack://databasir/./src/layouts/Layout.vue","webpack://databasir/./src/components/AppNav.vue","webpack://databasir/./src/components/AppNav.vue?b6ff","webpack://databasir/./src/components/Breadcrumb.vue","webpack://databasir/./src/components/Breadcrumb.vue?ef20","webpack://databasir/./src/components/Avatar.vue","webpack://databasir/./src/components/Avatar.vue?e66a","webpack://databasir/./src/layouts/Layout.vue?7cb6","webpack://databasir/./src/router/breadcurmb.js","webpack://databasir/./src/router/index.js","webpack://databasir/./src/store/index.js","webpack://databasir/./src/utils/auth.js","webpack://databasir/webpack/bootstrap","webpack://databasir/webpack/runtime/chunk loaded","webpack://databasir/webpack/runtime/compat get default export","webpack://databasir/webpack/runtime/define property getters","webpack://databasir/webpack/runtime/ensure chunk","webpack://databasir/webpack/runtime/get javascript chunk filename","webpack://databasir/webpack/runtime/get mini-css chunk filename","webpack://databasir/webpack/runtime/global","webpack://databasir/webpack/runtime/hasOwnProperty shorthand","webpack://databasir/webpack/runtime/load script","webpack://databasir/webpack/runtime/make namespace object","webpack://databasir/webpack/runtime/node module decorator","webpack://databasir/webpack/runtime/publicPath","webpack://databasir/webpack/runtime/css loading","webpack://databasir/webpack/runtime/jsonp chunk loading","webpack://databasir/webpack/startup"],"sourcesContent":["\r\n","import { render } from \"./App.vue?vue&type=template&id=2b08e877\"\nconst script = {}\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./DatabaseIcon.vue?vue&type=template&id=154abc1d\"\nimport script from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\nexport * from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ElementPlus from 'element-plus'\r\nimport * as Icons from '@element-plus/icons'\r\nimport 'element-plus/dist/index.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport { user } from './utils/auth'\r\nimport DatabaseIcon from './components/DatabaseIcon.vue'\r\n\r\n// element icon\r\nconst app = createApp(App)\r\nObject.keys(Icons).forEach(key => {\r\n app.component(key, Icons[key])\r\n})\r\napp.component('database-icon', DatabaseIcon)\r\n\r\n// permission directive\r\napp.directive('require-roles', {\r\n mounted(el, binding) {\r\n const roles = binding.value\r\n if (!user.hasAnyRoles(roles)) {\r\n el.parentNode && el.parentNode.removeChild(el)\r\n }\r\n },\r\n})\r\n\r\n// custom select directive\r\napp.directive(\"select-more\", {\r\n updated(el, binding) {\r\n const child = el.querySelector('.select-trigger');\r\n const id = child.getAttribute('aria-describedby');\r\n const poper = document.getElementById(id);\r\n const selector = poper.querySelector('.el-scrollbar .el-select-dropdown__wrap');\r\n selector.addEventListener('scroll', function () {\r\n const condition = this.scrollHeight - this.scrollTop - 1 <= this.clientHeight;\r\n if (condition) {\r\n binding.value();\r\n }\r\n });\r\n },\r\n});\r\n\r\napp.use(store)\r\napp.use(ElementPlus)\r\napp.use(router)\r\napp.mount('#app')\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./AppNav.vue?vue&type=template&id=2cfaad82\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js\"\n\nimport \"./AppNav.vue?vue&type=style&index=0&id=2cfaad82&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./Breadcrumb.vue?vue&type=template&id=055586aa\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./Avatar.vue?vue&type=template&id=34a219c2\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Layout.vue?vue&type=template&id=6923c0fa\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\n\nimport \"./Layout.vue?vue&type=style&index=0&id=6923c0fa&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","function index() {\r\n return {\r\n name:'首页',\r\n to: {\r\n path: '/'\r\n }\r\n }\r\n}\r\n\r\nfunction groupList() {\r\n return {\r\n name:'项目中心',\r\n to: {\r\n name: 'groupListPage'\r\n } \r\n }\r\n}\r\n\r\nfunction groupDashboard(route) {\r\n var groupName = '项目组'\r\n if (route.query.groupName) {\r\n groupName = route.query.groupName\r\n }\r\n return {\r\n name: groupName,\r\n to: {\r\n path: '/groups/'+route.params.groupId\r\n } \r\n }\r\n}\r\n\r\nfunction groupProjectDocument(route) {\r\n var name = '项目文档'\r\n if (route.query.projectName) {\r\n name = route.query.projectName\r\n }\r\n var projectId = route.params.projectId\r\n var groupId = route.params.groupId\r\n return {\r\n name: name,\r\n to: {\r\n path: '/groups/' + groupId + '/projects/' + projectId + '/documents',\r\n query: {\r\n projectName: name\r\n }\r\n } \r\n }\r\n}\r\n\r\nfunction userList() {\r\n return {\r\n name:'用户列表',\r\n to: {\r\n path: '/users'\r\n } \r\n }\r\n}\r\n\r\n\r\nfunction userProfile() {\r\n return {\r\n name:'个人中心',\r\n to: {\r\n path: '/profile'\r\n } \r\n }\r\n}\r\n\r\nfunction sysEmailEdit() {\r\n return {\r\n name:'邮箱设置',\r\n to: {\r\n path: '/settings/sysEmail'\r\n } \r\n }\r\n}\r\n\r\nfunction sysLog() {\r\n return {\r\n name:'操作日志',\r\n to: {\r\n path: '/settings/sysLog'\r\n } \r\n }\r\n}\r\n\r\nfunction sysOauth2() {\r\n return {\r\n name:'登录设置',\r\n to: {\r\n path: '/settings/sysOauth2'\r\n } \r\n }\r\n}\r\n\r\nfunction sysDatabaseType() {\r\n return {\r\n name:'数据库类型',\r\n to: {\r\n path: '/settings/sysDatabaseType'\r\n } \r\n }\r\n}\r\n\r\n\r\nconst breadcurmbMap = {\r\n index: () => [index() ],\r\n groupList: () => [index(), groupList()],\r\n groupDashboard: (route, state) => [index(), groupList(), groupDashboard(route, state)],\r\n groupProjectDocument: (route, state) => [index(), groupList(), groupDashboard(route, state), groupProjectDocument(route)],\r\n userProfile: () => [index(), userProfile()],\r\n userList: () => [index(), userList()],\r\n sysEmailEdit: () => [index(), sysEmailEdit()],\r\n sysLog: () => [index(), sysLog()],\r\n sysOauth2: () => [index(), sysOauth2()],\r\n sysDatabaseType: () => [index(), sysDatabaseType()],\r\n\r\n}\r\n\r\nexport default breadcurmbMap","import { createRouter, createWebHistory } from 'vue-router';\r\nimport Layout from \"../layouts/Layout.vue\"\r\nimport breadcurmbMap from './breadcurmb'\r\nimport { token } from '../utils/auth';\r\n\r\nconst routes = [\r\n {\r\n path: '/login',\r\n component: () => import('@/views/Login.vue'),\r\n hidden: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/login/oauth2/:id',\r\n component: () => import('@/views/OAuth2Login.vue'),\r\n hidden: true,\r\n props: true,\r\n meta: {\r\n requireAuth: false\r\n }\r\n },\r\n {\r\n path: '/',\r\n hidden: true,\r\n component: Layout,\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/groups',\r\n icon: 'Collection',\r\n component: Layout,\r\n meta: {\r\n nav: '项目中心',\r\n },\r\n children: [\r\n {\r\n path: '',\r\n name: 'groupListPage',\r\n hidden: true,\r\n component: () => import('@/views/GroupList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupList\r\n }\r\n },\r\n {\r\n path: ':groupId',\r\n hidden: true,\r\n component: () => import('@/views/GroupDashboard.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupDashboard\r\n }\r\n },\r\n {\r\n path: ':groupId/projects/:projectId/documents',\r\n hidden: true,\r\n component: () => import('@/views/Document.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.groupProjectDocument\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/users',\r\n icon: 'List',\r\n component: Layout,\r\n meta: {\r\n nav:'用户中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserList.vue'),\r\n meta: {\r\n breadcrumb: breadcurmbMap.userList\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: '/profile',\r\n icon: 'User',\r\n component: Layout,\r\n meta: {\r\n nav: '个人中心',\r\n breadcrumb: breadcurmbMap.userProfile\r\n },\r\n children: [\r\n {\r\n path: '',\r\n hidden: true,\r\n component: () => import('@/views/UserProfile.vue')\r\n }\r\n ]\r\n },\r\n {\r\n path: '/settings',\r\n icon: 'Setting',\r\n component: Layout,\r\n meta: {\r\n nav:'系统中心',\r\n requireAnyRoles: ['SYS_OWNER']\r\n },\r\n children: [\r\n {\r\n path: 'sysEmail',\r\n icon: 'Notification',\r\n component: () => import('@/views/SysEmailEdit.vue'),\r\n meta: {\r\n nav: '邮箱设置',\r\n breadcrumb: breadcurmbMap.sysEmailEdit\r\n }\r\n },\r\n {\r\n path: 'sysLog',\r\n icon: 'Document',\r\n component: () => import('@/views/SysLog.vue'),\r\n meta: {\r\n nav: '操作日志',\r\n breadcrumb: breadcurmbMap.sysLog\r\n }\r\n },\r\n {\r\n path: 'sysOauth2',\r\n icon: 'Connection',\r\n component: () => import('@/views/SysOauth2.vue'),\r\n meta: {\r\n nav: '登陆设置',\r\n breadcrumb: breadcurmbMap.sysOauth2\r\n }\r\n },\r\n {\r\n path: 'sysDatabaseType',\r\n icon: 'office-building',\r\n component: () => import('@/views/SysDatabaseType.vue'),\r\n meta: {\r\n nav: '数据库类型',\r\n breadcrumb: breadcurmbMap.sysDatabaseType\r\n }\r\n },\r\n // TODO\r\n {\r\n path: 'sysKey',\r\n icon: 'Key',\r\n hidden: 'true',\r\n component: Layout,\r\n meta: {\r\n nav: '系统秘钥',\r\n breadcrumb: breadcurmbMap.sysKeyEdit\r\n }\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(),\r\n routes\r\n});\r\n\r\n// 权限路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.meta.requireAuth == false) {\r\n if (to.path == '/login' && token.hasAccessToken()) {\r\n next(from)\r\n } else {\r\n next()\r\n }\r\n } else {\r\n if(token.hasAccessToken()) {\r\n next()\r\n } else {\r\n next({ path: '/login' })\r\n }\r\n }\r\n})\r\n\r\n// groupName 参数路由守卫\r\nrouter.beforeEach((to, from, next) => {\r\n if (!to.query.groupName && from.query.groupName) {\r\n to.query.groupName = from.query.groupName\r\n } \r\n if (!to.query.projectName && from.query.projectName) {\r\n to.query.projectName = from.query.projectName\r\n } \r\n next();\r\n})\r\n\r\nexport default router;","import { createStore } from 'vuex'\r\nimport { user } from '../utils/auth'\r\n\r\nconst store = createStore({\r\n state() {\r\n const data = {\r\n user: {\r\n nickname: null,\r\n usernmae: null,\r\n email: null,\r\n avatar: null,\r\n },\r\n groupListActiveTab: null,\r\n menu: {\r\n isCollapse: true,\r\n }\r\n }\r\n const loginData = user.loadUserLoginData()\r\n if (loginData) {\r\n data.user.nickname = loginData.nickname\r\n data.user.usernmae = loginData.usernmae\r\n data.user.email = loginData.email\r\n data.user.avatar = loginData.avatar\r\n }\r\n return data;\r\n },\r\n mutations: {\r\n userUpdate(state, param) {\r\n if (param.nickname) {\r\n state.user.nickname = param.nickname\r\n }\r\n if (param.usernmae) {\r\n state.user.usernmae = param.usernmae\r\n }\r\n if (param.email) {\r\n state.user.email = param.email\r\n }\r\n if (param.avatar) {\r\n state.user.avatar = param.avatar\r\n }\r\n },\r\n foldMenu(state) {\r\n state.menu.isCollapse = true\r\n },\r\n expandMenu(state) {\r\n state.menu.isCollapse = false\r\n },\r\n switchGroupListActiveTab(state, groupListActiveTab) {\r\n if (groupListActiveTab) {\r\n state.groupListActiveTab = groupListActiveTab\r\n }\r\n }\r\n }\r\n})\r\n\r\nexport default store","const accessTokenKey = 'accessToken'\r\nconst accessTokenExpireAtKey = 'accessTokenExpireAt'\r\nconst userLoginDataKey = 'userLoginData'\r\n\r\nexport const token = {\r\n\r\n hasAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n return accessToken\r\n },\r\n\r\n hasValidAccessToken() {\r\n const accessToken = this.loadAccessToken()\r\n const expireAt = window.localStorage.getItem(accessTokenExpireAtKey)\r\n if (!accessToken || !expireAt) {\r\n console.log('warn: not found accessToken and expireAt key')\r\n return false\r\n }\r\n // 10s gap\r\n return expireAt > new Date().getTime() -(1000 * 10)\r\n },\r\n\r\n saveAccessToken(token, tokenExpireAt) {\r\n window.localStorage.setItem(accessTokenKey, token)\r\n window.localStorage.setItem(accessTokenExpireAtKey, tokenExpireAt)\r\n },\r\n\r\n loadAccessToken() {\r\n let token = window.localStorage.getItem(accessTokenKey)\r\n if (token) {\r\n return token\r\n }\r\n return null\r\n }\r\n}\r\n\r\nexport const user = {\r\n\r\n saveUserLoginData(userLoginData) {\r\n window.localStorage.setItem(accessTokenKey, userLoginData.accessToken)\r\n window.localStorage.setItem(accessTokenExpireAtKey, userLoginData.accessTokenExpireAt)\r\n window.localStorage.setItem(userLoginDataKey, JSON.stringify(userLoginData))\r\n },\r\n\r\n removeUserLoginData() {\r\n window.localStorage.removeItem(userLoginDataKey)\r\n window.localStorage.removeItem(accessTokenKey)\r\n window.localStorage.removeItem(accessTokenExpireAtKey)\r\n },\r\n\r\n loadUserLoginData() {\r\n if (!window.localStorage.getItem(userLoginDataKey)) {\r\n return null;\r\n } \r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n return JSON.parse(data)\r\n },\r\n\r\n hasAnyRoles(roles) {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return false\r\n }\r\n const user = JSON.parse(data)\r\n return user\r\n .roles\r\n .map(role => {\r\n if (role.groupId) {\r\n return role.role + '?groupId=' + role.groupId\r\n } else {\r\n return role.role\r\n }\r\n })\r\n .some(exists => roles.some(expected => expected == exists))\r\n },\r\n\r\n getRefreshToken() {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n if (data == null) {\r\n return null\r\n }\r\n const user = JSON.parse(data)\r\n return user.refreshToken\r\n }\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"99\":\"810cec85\",\"130\":\"539afb3f\",\"139\":\"338f8cdc\",\"243\":\"e2c9f564\",\"269\":\"476aa030\",\"321\":\"2b808026\",\"459\":\"03157dea\",\"469\":\"88db1032\",\"564\":\"d209a2a0\",\"596\":\"b510e94b\",\"754\":\"d964c8b8\",\"865\":\"8a397b0a\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"139\":\"a7dec339\",\"321\":\"d892cf8e\",\"459\":\"82a2f213\",\"596\":\"b144be0e\",\"865\":\"7df1e56e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"databasir:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"139\":1,\"321\":1,\"459\":1,\"596\":1,\"865\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdatabasir\"] = self[\"webpackChunkdatabasir\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3710); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","app","createApp","App","Object","keys","Icons","forEach","component","DatabaseIcon","directive","mounted","el","binding","roles","value","user","parentNode","removeChild","updated","child","querySelector","id","getAttribute","poper","document","getElementById","selector","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","use","store","ElementPlus","router","mount","_component_el_container","class","_createVNode","_component_el_aside","_component_AppNav","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_menu","collapse","$setup","mode","_component_el_menu_item","index","title","_hoisted_1","_component_el_icon","_component_home_filled","_renderList","menu","children","length","some","ele","hidden","_component_el_sub_menu","path","_resolveDynamicComponent","icon","_toDisplayString","meta","nav","childIndex","setup","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","_component_el_breadcrumb","separator","$options","_component_el_breadcrumb_item","_component_el_link","onClick","underline","_component_fold","item","to","name","breadcrumbs","$route","breadcrumb","$store","state","menuIsCollapse","methods","onFoldMenu","commit","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","divided","_component_el_avatar","size","userNickname","nickname","avatarUrl","avatar","onLogout","$router","push","toProfilePage","components","AppNav","Breadcrumb","Avatar","groupList","groupDashboard","route","groupName","query","params","groupId","groupProjectDocument","projectName","projectId","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","breadcurmbMap","requireAuth","Layout","createRouter","history","createWebHistory","beforeEach","from","next","token","createStore","data","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","window","localStorage","getItem","Date","getTime","console","log","saveAccessToken","tokenExpireAt","setItem","saveUserLoginData","userLoginData","accessTokenExpireAt","JSON","stringify","removeUserLoginData","removeItem","loadUserLoginData","parse","map","role","exists","expected","getRefreshToken","refreshToken","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java index 7774564..4d56343 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java @@ -13,5 +13,7 @@ public class SystemEmailResponse { private Integer smtpPort; + private Boolean useSSL; + private LocalDateTime createAt; } diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java index 2d6a490..3094e16 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java @@ -21,4 +21,7 @@ public class SystemEmailUpdateRequest { @Max(65535L) private Integer smtpPort; + @NotNull + private Boolean useSSL; + } diff --git a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java index e59eb82..e24b584 100644 --- a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java +++ b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java @@ -79,6 +79,7 @@ public class SystemService { response.setSmtpPort(mail.getSmtpPort()); response.setUsername(mail.getUsername()); response.setCreateAt(mail.getCreateAt()); + response.setUseSSL(mail.getUseSsl()); return response; }); } diff --git a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java index 6ac829c..a3d835b 100644 --- a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java +++ b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java @@ -30,7 +30,11 @@ public class MailSender { } sender.setUsername(properties.getUsername()); sender.setPassword(properties.getPassword()); - sender.setProtocol("smtp"); + if (properties.getUseSsl()) { + sender.setProtocol("smtps"); + } else { + sender.setProtocol("smtp"); + } sender.setDefaultEncoding(StandardCharsets.UTF_8.name()); return sender; } diff --git a/dao/build.gradle b/dao/build.gradle index f9babf2..88721e3 100644 --- a/dao/build.gradle +++ b/dao/build.gradle @@ -52,7 +52,7 @@ jooq { forcedTypes { forcedType { name = 'BOOLEAN' - includeExpression = 'deleted|enabled|is.*' + includeExpression = 'deleted|enabled|is.*|use_ssl' includeTypes = '.*' } forcedType { @@ -62,7 +62,7 @@ jooq { } forcedType { userType = 'com.databasir.dao.enums.OAuthAppType' - converter = 'com.databasir.dao.converter.OAuthAppTypeConverter' + converter = 'com.databasir.dao.converter.OAuthAppTypeConverter' includeExpression = 'app_type' includeTypes = '.*' } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java index 39978db..1b60115 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMail.java @@ -15,7 +15,7 @@ import org.jooq.ForeignKey; import org.jooq.Identity; import org.jooq.Name; import org.jooq.Record; -import org.jooq.Row7; +import org.jooq.Row8; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -72,6 +72,11 @@ public class SysMail extends TableImpl { */ public final TableField SMTP_PORT = createField(DSL.name("smtp_port"), SQLDataType.INTEGER.nullable(false), this, ""); + /** + * The column databasir.sys_mail.use_ssl. + */ + public final TableField USE_SSL = createField(DSL.name("use_ssl"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.inline("0", SQLDataType.BOOLEAN)), this, ""); + /** * The column databasir.sys_mail.update_at. */ @@ -157,11 +162,11 @@ public class SysMail extends TableImpl { } // ------------------------------------------------------------------------- - // Row7 type methods + // Row8 type methods // ------------------------------------------------------------------------- @Override - public Row7 fieldsRow() { - return (Row7) super.fieldsRow(); + public Row8 fieldsRow() { + return (Row8) super.fieldsRow(); } } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java index 966ad6e..47ccedf 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMailPojo.java @@ -21,6 +21,7 @@ public class SysMailPojo implements Serializable { private String password; private String smtpHost; private Integer smtpPort; + private Boolean useSsl; private LocalDateTime updateAt; private LocalDateTime createAt; @@ -32,6 +33,7 @@ public class SysMailPojo implements Serializable { this.password = value.password; this.smtpHost = value.smtpHost; this.smtpPort = value.smtpPort; + this.useSsl = value.useSsl; this.updateAt = value.updateAt; this.createAt = value.createAt; } @@ -42,6 +44,7 @@ public class SysMailPojo implements Serializable { String password, String smtpHost, Integer smtpPort, + Boolean useSsl, LocalDateTime updateAt, LocalDateTime createAt ) { @@ -50,6 +53,7 @@ public class SysMailPojo implements Serializable { this.password = password; this.smtpHost = smtpHost; this.smtpPort = smtpPort; + this.useSsl = useSsl; this.updateAt = updateAt; this.createAt = createAt; } @@ -124,6 +128,20 @@ public class SysMailPojo implements Serializable { this.smtpPort = smtpPort; } + /** + * Getter for databasir.sys_mail.use_ssl. + */ + public Boolean getUseSsl() { + return this.useSsl; + } + + /** + * Setter for databasir.sys_mail.use_ssl. + */ + public void setUseSsl(Boolean useSsl) { + this.useSsl = useSsl; + } + /** * Getter for databasir.sys_mail.update_at. */ @@ -161,6 +179,7 @@ public class SysMailPojo implements Serializable { sb.append(", ").append(password); sb.append(", ").append(smtpHost); sb.append(", ").append(smtpPort); + sb.append(", ").append(useSsl); sb.append(", ").append(updateAt); sb.append(", ").append(createAt); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java index 1aff42f..0f15c23 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java @@ -11,8 +11,8 @@ import java.time.LocalDateTime; import org.jooq.Field; import org.jooq.Record1; -import org.jooq.Record7; -import org.jooq.Row7; +import org.jooq.Record8; +import org.jooq.Row8; import org.jooq.impl.UpdatableRecordImpl; @@ -20,7 +20,7 @@ import org.jooq.impl.UpdatableRecordImpl; * This class is generated by jOOQ. */ @SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class SysMailRecord extends UpdatableRecordImpl implements Record7 { +public class SysMailRecord extends UpdatableRecordImpl implements Record8 { private static final long serialVersionUID = 1L; @@ -94,32 +94,46 @@ public class SysMailRecord extends UpdatableRecordImpl implements return (Integer) get(4); } + /** + * Setter for databasir.sys_mail.use_ssl. + */ + public void setUseSsl(Boolean value) { + set(5, value); + } + + /** + * Getter for databasir.sys_mail.use_ssl. + */ + public Boolean getUseSsl() { + return (Boolean) get(5); + } + /** * Setter for databasir.sys_mail.update_at. */ public void setUpdateAt(LocalDateTime value) { - set(5, value); + set(6, value); } /** * Getter for databasir.sys_mail.update_at. */ public LocalDateTime getUpdateAt() { - return (LocalDateTime) get(5); + return (LocalDateTime) get(6); } /** * Setter for databasir.sys_mail.create_at. */ public void setCreateAt(LocalDateTime value) { - set(6, value); + set(7, value); } /** * Getter for databasir.sys_mail.create_at. */ public LocalDateTime getCreateAt() { - return (LocalDateTime) get(6); + return (LocalDateTime) get(7); } // ------------------------------------------------------------------------- @@ -132,17 +146,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } // ------------------------------------------------------------------------- - // Record7 type implementation + // Record8 type implementation // ------------------------------------------------------------------------- @Override - public Row7 fieldsRow() { - return (Row7) super.fieldsRow(); + public Row8 fieldsRow() { + return (Row8) super.fieldsRow(); } @Override - public Row7 valuesRow() { - return (Row7) super.valuesRow(); + public Row8 valuesRow() { + return (Row8) super.valuesRow(); } @Override @@ -171,12 +185,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public Field field6() { - return SysMail.SYS_MAIL.UPDATE_AT; + public Field field6() { + return SysMail.SYS_MAIL.USE_SSL; } @Override public Field field7() { + return SysMail.SYS_MAIL.UPDATE_AT; + } + + @Override + public Field field8() { return SysMail.SYS_MAIL.CREATE_AT; } @@ -206,12 +225,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public LocalDateTime component6() { - return getUpdateAt(); + public Boolean component6() { + return getUseSsl(); } @Override public LocalDateTime component7() { + return getUpdateAt(); + } + + @Override + public LocalDateTime component8() { return getCreateAt(); } @@ -241,12 +265,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public LocalDateTime value6() { - return getUpdateAt(); + public Boolean value6() { + return getUseSsl(); } @Override public LocalDateTime value7() { + return getUpdateAt(); + } + + @Override + public LocalDateTime value8() { return getCreateAt(); } @@ -281,19 +310,25 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public SysMailRecord value6(LocalDateTime value) { - setUpdateAt(value); + public SysMailRecord value6(Boolean value) { + setUseSsl(value); return this; } @Override public SysMailRecord value7(LocalDateTime value) { + setUpdateAt(value); + return this; + } + + @Override + public SysMailRecord value8(LocalDateTime value) { setCreateAt(value); return this; } @Override - public SysMailRecord values(Integer value1, String value2, String value3, String value4, Integer value5, LocalDateTime value6, LocalDateTime value7) { + public SysMailRecord values(Integer value1, String value2, String value3, String value4, Integer value5, Boolean value6, LocalDateTime value7, LocalDateTime value8) { value1(value1); value2(value2); value3(value3); @@ -301,6 +336,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements value5(value5); value6(value6); value7(value7); + value8(value8); return this; } @@ -318,7 +354,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements /** * Create a detached, initialised SysMailRecord */ - public SysMailRecord(Integer id, String username, String password, String smtpHost, Integer smtpPort, LocalDateTime updateAt, LocalDateTime createAt) { + public SysMailRecord(Integer id, String username, String password, String smtpHost, Integer smtpPort, Boolean useSsl, LocalDateTime updateAt, LocalDateTime createAt) { super(SysMail.SYS_MAIL); setId(id); @@ -326,6 +362,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements setPassword(password); setSmtpHost(smtpHost); setSmtpPort(smtpPort); + setUseSsl(useSsl); setUpdateAt(updateAt); setCreateAt(createAt); } @@ -342,6 +379,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements setPassword(value.getPassword()); setSmtpHost(value.getSmtpHost()); setSmtpPort(value.getSmtpPort()); + setUseSsl(value.getUseSsl()); setUpdateAt(value.getUpdateAt()); setCreateAt(value.getCreateAt()); } diff --git a/dao/src/main/resources/db/migration/V1__init.sql b/dao/src/main/resources/db/migration/V1__init.sql index 1db5027..c2ae585 100644 --- a/dao/src/main/resources/db/migration/V1__init.sql +++ b/dao/src/main/resources/db/migration/V1__init.sql @@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS sys_mail password TEXT NOT NULL, smtp_host VARCHAR(512) NOT NULL, smtp_port INT NOT NULL, + use_ssl BOOLEAN NOT NULL DEFAULT FALSE, update_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ) CHARSET utf8mb4