diff --git a/api/src/main/resources/static/css/492.babc6736.css b/api/src/main/resources/static/css/492.babc6736.css new file mode 100644 index 0000000..8da8c43 --- /dev/null +++ b/api/src/main/resources/static/css/492.babc6736.css @@ -0,0 +1 @@ +.el-row{margin-bottom:12px} \ No newline at end of file diff --git a/api/src/main/resources/static/css/708.4cf5de8a.css b/api/src/main/resources/static/css/708.4cf5de8a.css deleted file mode 100644 index 0f2754b..0000000 --- a/api/src/main/resources/static/css/708.4cf5de8a.css +++ /dev/null @@ -1 +0,0 @@ -.el-row{margin-bottom:12px}.el-input input{border:none} \ No newline at end of file diff --git a/api/src/main/resources/static/index.html b/api/src/main/resources/static/index.html index b079c24..75e0107 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/492-legacy.972f740c.js b/api/src/main/resources/static/js/492-legacy.972f740c.js new file mode 100644 index 0000000..df38d4d --- /dev/null +++ b/api/src/main/resources/static/js/492-legacy.972f740c.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[492],{4339:function(e,t,n){n.d(t,{b:function(){return a}});var a="document_template_properties"},6631:function(e,t,n){n.d(t,{D:function(){return r},z:function(){return u}});var a=n(3872),l="/api/v1.0",r=function(){return a.Z.get(l+"/document_template/properties")},u=function(e){return a.Z.patch(l+"/document_template/properties",e)}},1492:function(e,t,n){n.r(t),n.d(t,{default:function(){return f}});var a=n(6252),l=(0,a._)("div",{class:"h3"},"Columns",-1),r=(0,a._)("div",{class:"h3"},"Indexes",-1),u=(0,a._)("div",{class:"h3"},"Foreign Keys",-1),i=(0,a._)("div",{class:"h3"},"Trigger",-1);function o(e,t,n,o,s,m){var p=(0,a.up)("el-switch"),d=(0,a.up)("el-col"),c=(0,a.up)("el-row"),f=(0,a.up)("el-input"),h=(0,a.up)("el-table-column"),g=(0,a.up)("el-table");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(p,{modelValue:s.showSampleData,"onUpdate:modelValue":t[0]||(t[0]=function(e){return s.showSampleData=e}),size:"large","active-text":"展示示例数据","inactive-text":"隐藏示例数据",onChange:m.onSwitchShowSampleData},null,8,["modelValue","onChange"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[l]})),_:1}),(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.columns,"highlight-current-row":""},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.columnFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[1]||(t[1]=function(e){return m.saveColumnProperties()}),"input-style":s.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[r]})),_:1}),(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.indexes},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.indexFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[2]||(t[2]=function(e){return m.saveIndexProperties()}),"input-style":s.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[u]})),_:1}),(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.foreignKeys},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.foreignKeyFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[3]||(t[3]=function(e){return m.saveForeignKeyProperties()}),"input-style":s.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[i]})),_:1}),(0,a.Wm)(d,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.triggers},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.triggerFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[4]||(t[4]=function(e){return m.saveTriggerProperties()}),"input-style":s.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1})],64)}var s=n(6631),m=n(4339),p={data:function(){return{template:{columnFieldNameProperties:[],foreignKeyFieldNameProperties:[],indexFieldNameProperties:[],triggerFieldNameProperties:[]},sampleData:{columns:[],indexes:[],foreignKeys:[],triggers:[]},showSampleData:!1,inputStyle:{border:"none"}}},watch:{},created:function(){this.fetchDocumentTemplateProperties()},methods:{fetchDocumentTemplateProperties:function(){var e=this;(0,s.D)().then((function(t){t.errCode||(e.template=t.data)}))},clearPropertyCache:function(){sessionStorage.removeItem(m.b)},saveColumnProperties:function(){var e=this,t={type:"COLUMN_FIELD_NAME",properties:this.template.columnFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},saveIndexProperties:function(){var e=this,t={type:"INDEX_FIELD_NAME",properties:this.template.indexFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},saveTriggerProperties:function(){var e=this,t={type:"TRIGGER_FIELD_NAME",properties:this.template.triggerFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},saveForeignKeyProperties:function(){var e=this,t={type:"FOREIGN_KEY_FIELD_NAME",properties:this.template.foreignKeyFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},onSwitchShowSampleData:function(e){if(e){var t='[{"id":409,"name":"id","type":"INT","size":10,"decimalDigits":1,"comment":"id comment","description":"this is id","isPrimaryKey":true,"nullable":"NO","autoIncrement":"YES","defaultValue":"1","discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":410,"name":"email","type":"VARCHAR","size":512,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":411,"name":"username","type":"VARCHAR","size":128,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":412,"name":"password","type":"TEXT","size":65535,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"}]';this.sampleData.columns=JSON.parse(t);var n='[{"id":96,"name":"uk_email","isUnique":true,"columnNames":["email","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":97,"name":"uk_username","isUnique":true,"columnNames":["username","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":98,"name":"PRIMARY","isUnique":true,"columnNames":["id"],"createAt":"2022-04-10 13:45:06"}]';this.sampleData.indexes=JSON.parse(n);var a='[{"fkName":"dept_manager_ibfk_2","fkTableName":"dept_manager","fkColumnName":"dept_no","pkName":"PRIMARY","pkTableName":"departments","pkColumnName":"dept_no","updateRule":"CASCADE","deleteRule":"CASCADE"},{"fkName":"dept_manager_ibfk_1","fkTableName":"dept_manager","fkColumnName":"emp_no","pkName":"PRIMARY","pkTableName":"employees","pkColumnName":"emp_no","updateRule":"CASCADE","deleteRule":"CASCADE"}]';this.sampleData.foreignKeys=JSON.parse(a);var l='[{"id":1,"name":"custom trigger","timing":"before","manipulation":"insert","statement":"sql","triggerCreateAt":"1970-01-01 00:00:00"}]';this.sampleData.triggers=JSON.parse(l)}else this.sampleData.columns=[],this.sampleData.indexes=[],this.sampleData.foreignKeys=[],this.triggers=[]}}},d=n(3744);const c=(0,d.Z)(p,[["render",o]]);var f=c}}]); +//# sourceMappingURL=492-legacy.972f740c.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/492-legacy.972f740c.js.map b/api/src/main/resources/static/js/492-legacy.972f740c.js.map new file mode 100644 index 0000000..b6c2e5c --- /dev/null +++ b/api/src/main/resources/static/js/492-legacy.972f740c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/492-legacy.972f740c.js","mappings":"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","sources":["webpack://databasir/./src/api/Const.js","webpack://databasir/./src/api/DocumentTemplate.js","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue?fd37"],"sourcesContent":["export const databaseTypes = ['mysql', 'postgresql']\r\n\r\nexport const documentTemplatePropertiesKey = \"document_template_properties\"","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0'\r\n\r\nexport const listProperties = () => {\r\n return axios.get(base + '/document_template/properties')\r\n}\r\n\r\nexport const updateProperties = (body) => {\r\n return axios.patch(base + '/document_template/properties', body)\r\n}\r\n","\r\n\r\n","import { render } from \"./SysDocumentTemplateProperty.vue?vue&type=template&id=9d7ce1bc\"\nimport script from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\nexport * from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\n\nimport \"./SysDocumentTemplateProperty.vue?vue&type=style&index=0&id=9d7ce1bc&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":["documentTemplatePropertiesKey","base","listProperties","axios","updateProperties","body","_createElementVNode","class","_createVNode","_component_el_row","_component_el_col","_component_el_switch","$data","$event","size","onChange","$options","_hoisted_1","_component_el_table","border","data","columns","_createElementBlock","_Fragment","_renderList","columnFieldNameProperties","item","_createBlock","_component_el_table_column","label","key","prop","header","_component_el_input","value","placeholder","_hoisted_2","indexes","indexFieldNameProperties","_hoisted_3","foreignKeys","foreignKeyFieldNameProperties","_hoisted_4","triggers","triggerFieldNameProperties","template","sampleData","showSampleData","inputStyle","watch","created","this","fetchDocumentTemplateProperties","methods","then","resp","errCode","clearPropertyCache","sessionStorage","removeItem","saveColumnProperties","type","properties","$message","success","saveIndexProperties","saveTriggerProperties","saveForeignKeyProperties","onSwitchShowSampleData","isShow","columnJsonData","JSON","parse","indexJsonData","foreignKeyJsonData","triggerJsonData","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/492.de54c0ea.js b/api/src/main/resources/static/js/492.de54c0ea.js new file mode 100644 index 0000000..091f2fd --- /dev/null +++ b/api/src/main/resources/static/js/492.de54c0ea.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[492],{4339:function(e,t,a){a.d(t,{b:function(){return l}});const l="document_template_properties"},6631:function(e,t,a){a.d(t,{D:function(){return r},z:function(){return s}});var l=a(3872);const n="/api/v1.0",r=()=>l.Z.get(n+"/document_template/properties"),s=e=>l.Z.patch(n+"/document_template/properties",e)},1492:function(e,t,a){a.r(t),a.d(t,{default:function(){return h}});var l=a(6252);const n=(0,l._)("div",{class:"h3"},"Columns",-1),r=(0,l._)("div",{class:"h3"},"Indexes",-1),s=(0,l._)("div",{class:"h3"},"Foreign Keys",-1),i=(0,l._)("div",{class:"h3"},"Trigger",-1);function o(e,t,a,o,u,m){const p=(0,l.up)("el-switch"),d=(0,l.up)("el-col"),c=(0,l.up)("el-row"),h=(0,l.up)("el-input"),g=(0,l.up)("el-table-column"),y=(0,l.up)("el-table");return(0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[(0,l.Wm)(p,{modelValue:u.showSampleData,"onUpdate:modelValue":t[0]||(t[0]=e=>u.showSampleData=e),size:"large","active-text":"展示示例数据","inactive-text":"隐藏示例数据",onChange:m.onSwitchShowSampleData},null,8,["modelValue","onChange"])])),_:1})])),_:1}),(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[n])),_:1}),(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[(0,l.Wm)(y,{border:"",data:u.sampleData.columns,"highlight-current-row":""},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(u.template.columnFieldNameProperties,(e=>((0,l.wg)(),(0,l.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,l.w5)((()=>[(0,l.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:e.key,onChange:t[1]||(t[1]=e=>m.saveColumnProperties()),"input-style":u.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1}),(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[r])),_:1}),(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[(0,l.Wm)(y,{border:"",data:u.sampleData.indexes},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(u.template.indexFieldNameProperties,(e=>((0,l.wg)(),(0,l.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,l.w5)((()=>[(0,l.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:e.key,onChange:t[2]||(t[2]=e=>m.saveIndexProperties()),"input-style":u.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1}),(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[s])),_:1}),(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[(0,l.Wm)(y,{border:"",data:u.sampleData.foreignKeys},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(u.template.foreignKeyFieldNameProperties,(e=>((0,l.wg)(),(0,l.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,l.w5)((()=>[(0,l.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:e.key,onChange:t[3]||(t[3]=e=>m.saveForeignKeyProperties()),"input-style":u.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1}),(0,l.Wm)(c,null,{default:(0,l.w5)((()=>[(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[i])),_:1}),(0,l.Wm)(d,null,{default:(0,l.w5)((()=>[(0,l.Wm)(y,{border:"",data:u.sampleData.triggers},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(u.template.triggerFieldNameProperties,(e=>((0,l.wg)(),(0,l.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,l.w5)((()=>[(0,l.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:e.key,onChange:t[4]||(t[4]=e=>m.saveTriggerProperties()),"input-style":u.inputStyle},null,8,["modelValue","onUpdate:modelValue","placeholder","input-style"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1})],64)}var u=a(6631),m=a(4339),p={data(){return{template:{columnFieldNameProperties:[],foreignKeyFieldNameProperties:[],indexFieldNameProperties:[],triggerFieldNameProperties:[]},sampleData:{columns:[],indexes:[],foreignKeys:[],triggers:[]},showSampleData:!1,inputStyle:{border:"none"}}},watch:{},created(){this.fetchDocumentTemplateProperties()},methods:{fetchDocumentTemplateProperties(){(0,u.D)().then((e=>{e.errCode||(this.template=e.data)}))},clearPropertyCache(){sessionStorage.removeItem(m.b)},saveColumnProperties(){const e={type:"COLUMN_FIELD_NAME",properties:this.template.columnFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},saveIndexProperties(){const e={type:"INDEX_FIELD_NAME",properties:this.template.indexFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},saveTriggerProperties(){const e={type:"TRIGGER_FIELD_NAME",properties:this.template.triggerFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},saveForeignKeyProperties(){const e={type:"FOREIGN_KEY_FIELD_NAME",properties:this.template.foreignKeyFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},onSwitchShowSampleData(e){if(e){const e='[{"id":409,"name":"id","type":"INT","size":10,"decimalDigits":1,"comment":"id comment","description":"this is id","isPrimaryKey":true,"nullable":"NO","autoIncrement":"YES","defaultValue":"1","discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":410,"name":"email","type":"VARCHAR","size":512,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":411,"name":"username","type":"VARCHAR","size":128,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":412,"name":"password","type":"TEXT","size":65535,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"}]';this.sampleData.columns=JSON.parse(e);const t='[{"id":96,"name":"uk_email","isUnique":true,"columnNames":["email","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":97,"name":"uk_username","isUnique":true,"columnNames":["username","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":98,"name":"PRIMARY","isUnique":true,"columnNames":["id"],"createAt":"2022-04-10 13:45:06"}]';this.sampleData.indexes=JSON.parse(t);const a='[{"fkName":"dept_manager_ibfk_2","fkTableName":"dept_manager","fkColumnName":"dept_no","pkName":"PRIMARY","pkTableName":"departments","pkColumnName":"dept_no","updateRule":"CASCADE","deleteRule":"CASCADE"},{"fkName":"dept_manager_ibfk_1","fkTableName":"dept_manager","fkColumnName":"emp_no","pkName":"PRIMARY","pkTableName":"employees","pkColumnName":"emp_no","updateRule":"CASCADE","deleteRule":"CASCADE"}]';this.sampleData.foreignKeys=JSON.parse(a);const l='[{"id":1,"name":"custom trigger","timing":"before","manipulation":"insert","statement":"sql","triggerCreateAt":"1970-01-01 00:00:00"}]';this.sampleData.triggers=JSON.parse(l)}else this.sampleData.columns=[],this.sampleData.indexes=[],this.sampleData.foreignKeys=[],this.triggers=[]}}},d=a(3744);const c=(0,d.Z)(p,[["render",o]]);var h=c}}]); +//# sourceMappingURL=492.de54c0ea.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/492.de54c0ea.js.map b/api/src/main/resources/static/js/492.de54c0ea.js.map new file mode 100644 index 0000000..91b7005 --- /dev/null +++ b/api/src/main/resources/static/js/492.de54c0ea.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/492.de54c0ea.js","mappings":"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","sources":["webpack://databasir/./src/api/Const.js","webpack://databasir/./src/api/DocumentTemplate.js","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue?fd37"],"sourcesContent":["export const databaseTypes = ['mysql', 'postgresql']\r\n\r\nexport const documentTemplatePropertiesKey = \"document_template_properties\"","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0'\r\n\r\nexport const listProperties = () => {\r\n return axios.get(base + '/document_template/properties')\r\n}\r\n\r\nexport const updateProperties = (body) => {\r\n return axios.patch(base + '/document_template/properties', body)\r\n}\r\n","\r\n\r\n","import { render } from \"./SysDocumentTemplateProperty.vue?vue&type=template&id=9d7ce1bc\"\nimport script from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\nexport * from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\n\nimport \"./SysDocumentTemplateProperty.vue?vue&type=style&index=0&id=9d7ce1bc&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":["documentTemplatePropertiesKey","base","listProperties","axios","updateProperties","body","_createElementVNode","class","_createVNode","_component_el_row","_component_el_col","_component_el_switch","$data","$event","size","onChange","$options","_hoisted_1","_component_el_table","border","data","columns","_createElementBlock","_Fragment","_renderList","columnFieldNameProperties","item","_createBlock","_component_el_table_column","label","key","prop","header","_component_el_input","value","placeholder","_hoisted_2","indexes","indexFieldNameProperties","_hoisted_3","foreignKeys","foreignKeyFieldNameProperties","_hoisted_4","triggers","triggerFieldNameProperties","template","sampleData","showSampleData","inputStyle","watch","created","this","fetchDocumentTemplateProperties","methods","then","resp","errCode","clearPropertyCache","sessionStorage","removeItem","saveColumnProperties","type","properties","$message","success","saveIndexProperties","saveTriggerProperties","saveForeignKeyProperties","onSwitchShowSampleData","isShow","columnJsonData","JSON","parse","indexJsonData","foreignKeyJsonData","triggerJsonData","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/708-legacy.ba320e9c.js b/api/src/main/resources/static/js/708-legacy.ba320e9c.js deleted file mode 100644 index 57ea3e8..0000000 --- a/api/src/main/resources/static/js/708-legacy.ba320e9c.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[708],{4339:function(e,t,n){n.d(t,{b:function(){return a}});var a="document_template_properties"},6631:function(e,t,n){n.d(t,{D:function(){return l},z:function(){return u}});var a=n(3872),r="/api/v1.0",l=function(){return a.Z.get(r+"/document_template/properties")},u=function(e){return a.Z.patch(r+"/document_template/properties",e)}},6708:function(e,t,n){n.r(t),n.d(t,{default:function(){return f}});var a=n(6252),r=(0,a._)("div",{class:"h3"},"Columns",-1),l=(0,a._)("div",{class:"h3"},"Indexes",-1),u=(0,a._)("div",{class:"h3"},"Foreign Keys",-1),i=(0,a._)("div",{class:"h3"},"Trigger",-1);function o(e,t,n,o,s,m){var d=(0,a.up)("el-switch"),p=(0,a.up)("el-col"),c=(0,a.up)("el-row"),f=(0,a.up)("el-input"),h=(0,a.up)("el-table-column"),g=(0,a.up)("el-table");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(d,{modelValue:s.showSampleData,"onUpdate:modelValue":t[0]||(t[0]=function(e){return s.showSampleData=e}),size:"large","active-text":"展示示例数据","inactive-text":"隐藏示例数据",onChange:m.onSwitchShowSampleData},null,8,["modelValue","onChange"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[r]})),_:1}),(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.columns,"highlight-current-row":""},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.columnFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[1]||(t[1]=function(e){return m.saveColumnProperties()})},null,8,["modelValue","onUpdate:modelValue","placeholder"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[l]})),_:1}),(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.indexes},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.indexFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[2]||(t[2]=function(e){return m.saveIndexProperties()})},null,8,["modelValue","onUpdate:modelValue","placeholder"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[u]})),_:1}),(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.foreignKeys},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.foreignKeyFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[3]||(t[3]=function(e){return m.saveForeignKeyProperties()})},null,8,["modelValue","onUpdate:modelValue","placeholder"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1}),(0,a.Wm)(c,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[i]})),_:1}),(0,a.Wm)(p,null,{default:(0,a.w5)((function(){return[(0,a.Wm)(g,{border:"",data:s.sampleData.triggers},{default:(0,a.w5)((function(){return[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(s.template.triggerFieldNameProperties,(function(e){return(0,a.wg)(),(0,a.j4)(h,{label:e.key,key:e.key,prop:e.key},{header:(0,a.w5)((function(){return[(0,a.Wm)(f,{modelValue:e.value,"onUpdate:modelValue":function(t){return e.value=t},placeholder:e.key,onChange:t[4]||(t[4]=function(e){return m.saveTriggerProperties()})},null,8,["modelValue","onUpdate:modelValue","placeholder"])]})),_:2},1032,["label","prop"])})),128))]})),_:1},8,["data"])]})),_:1})]})),_:1})],64)}var s=n(6631),m=n(4339),d={data:function(){return{template:{columnFieldNameProperties:[],foreignKeyFieldNameProperties:[],indexFieldNameProperties:[],triggerFieldNameProperties:[]},sampleData:{columns:[],indexes:[],foreignKeys:[],triggers:[]},showSampleData:!1}},watch:{},created:function(){this.fetchDocumentTemplateProperties()},methods:{fetchDocumentTemplateProperties:function(){var e=this;(0,s.D)().then((function(t){t.errCode||(e.template=t.data)}))},clearPropertyCache:function(){sessionStorage.removeItem(m.b)},saveColumnProperties:function(){var e=this,t={type:"COLUMN_FIELD_NAME",properties:this.template.columnFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},saveIndexProperties:function(){var e=this,t={type:"INDEX_FIELD_NAME",properties:this.template.indexFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},saveTriggerProperties:function(){var e=this,t={type:"TRIGGER_FIELD_NAME",properties:this.template.triggerFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},saveForeignKeyProperties:function(){var e=this,t={type:"FOREIGN_KEY_FIELD_NAME",properties:this.template.foreignKeyFieldNameProperties};(0,s.z)(t).then((function(t){t.errCode||(e.$message.success("保存成功"),e.clearPropertyCache())}))},onSwitchShowSampleData:function(e){if(e){var t='[{"id":409,"name":"id","type":"INT","size":10,"decimalDigits":1,"comment":"id comment","description":"this is id","isPrimaryKey":true,"nullable":"NO","autoIncrement":"YES","defaultValue":"1","discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":410,"name":"email","type":"VARCHAR","size":512,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":411,"name":"username","type":"VARCHAR","size":128,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":412,"name":"password","type":"TEXT","size":65535,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"}]';this.sampleData.columns=JSON.parse(t);var n='[{"id":96,"name":"uk_email","isUnique":true,"columnNames":["email","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":97,"name":"uk_username","isUnique":true,"columnNames":["username","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":98,"name":"PRIMARY","isUnique":true,"columnNames":["id"],"createAt":"2022-04-10 13:45:06"}]';this.sampleData.indexes=JSON.parse(n);var a='[{"fkName":"dept_manager_ibfk_2","fkTableName":"dept_manager","fkColumnName":"dept_no","pkName":"PRIMARY","pkTableName":"departments","pkColumnName":"dept_no","updateRule":"CASCADE","deleteRule":"CASCADE"},{"fkName":"dept_manager_ibfk_1","fkTableName":"dept_manager","fkColumnName":"emp_no","pkName":"PRIMARY","pkTableName":"employees","pkColumnName":"emp_no","updateRule":"CASCADE","deleteRule":"CASCADE"}]';this.sampleData.foreignKeys=JSON.parse(a);var r='[{"id":1,"name":"custom trigger","timing":"before","manipulation":"insert","statement":"sql","triggerCreateAt":"1970-01-01 00:00:00"}]';this.sampleData.triggers=JSON.parse(r)}else this.sampleData.columns=[],this.sampleData.indexes=[],this.sampleData.foreignKeys=[],this.triggers=[]}}},p=n(3744);const c=(0,p.Z)(d,[["render",o]]);var f=c}}]); -//# sourceMappingURL=708-legacy.ba320e9c.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/708-legacy.ba320e9c.js.map b/api/src/main/resources/static/js/708-legacy.ba320e9c.js.map deleted file mode 100644 index 7f0140e..0000000 --- a/api/src/main/resources/static/js/708-legacy.ba320e9c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/708-legacy.ba320e9c.js","mappings":"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","sources":["webpack://databasir/./src/api/Const.js","webpack://databasir/./src/api/DocumentTemplate.js","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue?fd37"],"sourcesContent":["export const databaseTypes = ['mysql', 'postgresql']\r\n\r\nexport const documentTemplatePropertiesKey = \"document_template_properties\"","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0'\r\n\r\nexport const listProperties = () => {\r\n return axios.get(base + '/document_template/properties')\r\n}\r\n\r\nexport const updateProperties = (body) => {\r\n return axios.patch(base + '/document_template/properties', body)\r\n}\r\n","\r\n\r\n","import { render } from \"./SysDocumentTemplateProperty.vue?vue&type=template&id=b4d940a4\"\nimport script from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\nexport * from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\n\nimport \"./SysDocumentTemplateProperty.vue?vue&type=style&index=0&id=b4d940a4&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":["documentTemplatePropertiesKey","base","listProperties","axios","updateProperties","body","_createElementVNode","class","_createVNode","_component_el_row","_component_el_col","_component_el_switch","$data","$event","size","onChange","$options","_hoisted_1","_component_el_table","border","data","columns","_createElementBlock","_Fragment","_renderList","columnFieldNameProperties","item","_createBlock","_component_el_table_column","label","key","prop","header","_component_el_input","value","placeholder","_hoisted_2","indexes","indexFieldNameProperties","_hoisted_3","foreignKeys","foreignKeyFieldNameProperties","_hoisted_4","triggers","triggerFieldNameProperties","template","sampleData","showSampleData","watch","created","this","fetchDocumentTemplateProperties","methods","then","resp","errCode","clearPropertyCache","sessionStorage","removeItem","saveColumnProperties","type","properties","$message","success","saveIndexProperties","saveTriggerProperties","saveForeignKeyProperties","onSwitchShowSampleData","isShow","columnJsonData","JSON","parse","indexJsonData","foreignKeyJsonData","triggerJsonData","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/708.af5916f2.js b/api/src/main/resources/static/js/708.af5916f2.js deleted file mode 100644 index 9aed846..0000000 --- a/api/src/main/resources/static/js/708.af5916f2.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[708],{4339:function(e,a,l){l.d(a,{b:function(){return t}});const t="document_template_properties"},6631:function(e,a,l){l.d(a,{D:function(){return n},z:function(){return s}});var t=l(3872);const r="/api/v1.0",n=()=>t.Z.get(r+"/document_template/properties"),s=e=>t.Z.patch(r+"/document_template/properties",e)},6708:function(e,a,l){l.r(a),l.d(a,{default:function(){return h}});var t=l(6252);const r=(0,t._)("div",{class:"h3"},"Columns",-1),n=(0,t._)("div",{class:"h3"},"Indexes",-1),s=(0,t._)("div",{class:"h3"},"Foreign Keys",-1),o=(0,t._)("div",{class:"h3"},"Trigger",-1);function i(e,a,l,i,u,m){const d=(0,t.up)("el-switch"),p=(0,t.up)("el-col"),c=(0,t.up)("el-row"),h=(0,t.up)("el-input"),g=(0,t.up)("el-table-column"),f=(0,t.up)("el-table");return(0,t.wg)(),(0,t.iD)(t.HY,null,[(0,t.Wm)(c,null,{default:(0,t.w5)((()=>[(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[(0,t.Wm)(d,{modelValue:u.showSampleData,"onUpdate:modelValue":a[0]||(a[0]=e=>u.showSampleData=e),size:"large","active-text":"展示示例数据","inactive-text":"隐藏示例数据",onChange:m.onSwitchShowSampleData},null,8,["modelValue","onChange"])])),_:1})])),_:1}),(0,t.Wm)(c,null,{default:(0,t.w5)((()=>[(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[r])),_:1}),(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[(0,t.Wm)(f,{border:"",data:u.sampleData.columns,"highlight-current-row":""},{default:(0,t.w5)((()=>[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(u.template.columnFieldNameProperties,(e=>((0,t.wg)(),(0,t.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,t.w5)((()=>[(0,t.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,placeholder:e.key,onChange:a[1]||(a[1]=e=>m.saveColumnProperties())},null,8,["modelValue","onUpdate:modelValue","placeholder"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1}),(0,t.Wm)(c,null,{default:(0,t.w5)((()=>[(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[n])),_:1}),(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[(0,t.Wm)(f,{border:"",data:u.sampleData.indexes},{default:(0,t.w5)((()=>[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(u.template.indexFieldNameProperties,(e=>((0,t.wg)(),(0,t.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,t.w5)((()=>[(0,t.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,placeholder:e.key,onChange:a[2]||(a[2]=e=>m.saveIndexProperties())},null,8,["modelValue","onUpdate:modelValue","placeholder"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1}),(0,t.Wm)(c,null,{default:(0,t.w5)((()=>[(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[s])),_:1}),(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[(0,t.Wm)(f,{border:"",data:u.sampleData.foreignKeys},{default:(0,t.w5)((()=>[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(u.template.foreignKeyFieldNameProperties,(e=>((0,t.wg)(),(0,t.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,t.w5)((()=>[(0,t.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,placeholder:e.key,onChange:a[3]||(a[3]=e=>m.saveForeignKeyProperties())},null,8,["modelValue","onUpdate:modelValue","placeholder"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1}),(0,t.Wm)(c,null,{default:(0,t.w5)((()=>[(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[o])),_:1}),(0,t.Wm)(p,null,{default:(0,t.w5)((()=>[(0,t.Wm)(f,{border:"",data:u.sampleData.triggers},{default:(0,t.w5)((()=>[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(u.template.triggerFieldNameProperties,(e=>((0,t.wg)(),(0,t.j4)(g,{label:e.key,key:e.key,prop:e.key},{header:(0,t.w5)((()=>[(0,t.Wm)(h,{modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,placeholder:e.key,onChange:a[4]||(a[4]=e=>m.saveTriggerProperties())},null,8,["modelValue","onUpdate:modelValue","placeholder"])])),_:2},1032,["label","prop"])))),128))])),_:1},8,["data"])])),_:1})])),_:1})],64)}var u=l(6631),m=l(4339),d={data(){return{template:{columnFieldNameProperties:[],foreignKeyFieldNameProperties:[],indexFieldNameProperties:[],triggerFieldNameProperties:[]},sampleData:{columns:[],indexes:[],foreignKeys:[],triggers:[]},showSampleData:!1}},watch:{},created(){this.fetchDocumentTemplateProperties()},methods:{fetchDocumentTemplateProperties(){(0,u.D)().then((e=>{e.errCode||(this.template=e.data)}))},clearPropertyCache(){sessionStorage.removeItem(m.b)},saveColumnProperties(){const e={type:"COLUMN_FIELD_NAME",properties:this.template.columnFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},saveIndexProperties(){const e={type:"INDEX_FIELD_NAME",properties:this.template.indexFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},saveTriggerProperties(){const e={type:"TRIGGER_FIELD_NAME",properties:this.template.triggerFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},saveForeignKeyProperties(){const e={type:"FOREIGN_KEY_FIELD_NAME",properties:this.template.foreignKeyFieldNameProperties};(0,u.z)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.clearPropertyCache())}))},onSwitchShowSampleData(e){if(e){const e='[{"id":409,"name":"id","type":"INT","size":10,"decimalDigits":1,"comment":"id comment","description":"this is id","isPrimaryKey":true,"nullable":"NO","autoIncrement":"YES","defaultValue":"1","discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":410,"name":"email","type":"VARCHAR","size":512,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":411,"name":"username","type":"VARCHAR","size":128,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"},{"id":412,"name":"password","type":"TEXT","size":65535,"decimalDigits":null,"comment":"","description":null,"isPrimaryKey":false,"nullable":"NO","autoIncrement":"NO","defaultValue":null,"discussionCount":null,"createAt":"2022-04-10 13:45:06"}]';this.sampleData.columns=JSON.parse(e);const a='[{"id":96,"name":"uk_email","isUnique":true,"columnNames":["email","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":97,"name":"uk_username","isUnique":true,"columnNames":["username","deleted_token"],"createAt":"2022-04-10 13:45:06"},{"id":98,"name":"PRIMARY","isUnique":true,"columnNames":["id"],"createAt":"2022-04-10 13:45:06"}]';this.sampleData.indexes=JSON.parse(a);const l='[{"fkName":"dept_manager_ibfk_2","fkTableName":"dept_manager","fkColumnName":"dept_no","pkName":"PRIMARY","pkTableName":"departments","pkColumnName":"dept_no","updateRule":"CASCADE","deleteRule":"CASCADE"},{"fkName":"dept_manager_ibfk_1","fkTableName":"dept_manager","fkColumnName":"emp_no","pkName":"PRIMARY","pkTableName":"employees","pkColumnName":"emp_no","updateRule":"CASCADE","deleteRule":"CASCADE"}]';this.sampleData.foreignKeys=JSON.parse(l);const t='[{"id":1,"name":"custom trigger","timing":"before","manipulation":"insert","statement":"sql","triggerCreateAt":"1970-01-01 00:00:00"}]';this.sampleData.triggers=JSON.parse(t)}else this.sampleData.columns=[],this.sampleData.indexes=[],this.sampleData.foreignKeys=[],this.triggers=[]}}},p=l(3744);const c=(0,p.Z)(d,[["render",i]]);var h=c}}]); -//# sourceMappingURL=708.af5916f2.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/708.af5916f2.js.map b/api/src/main/resources/static/js/708.af5916f2.js.map deleted file mode 100644 index 576f8b7..0000000 --- a/api/src/main/resources/static/js/708.af5916f2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/708.af5916f2.js","mappings":"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","sources":["webpack://databasir/./src/api/Const.js","webpack://databasir/./src/api/DocumentTemplate.js","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue","webpack://databasir/./src/views/SysDocumentTemplateProperty.vue?fd37"],"sourcesContent":["export const databaseTypes = ['mysql', 'postgresql']\r\n\r\nexport const documentTemplatePropertiesKey = \"document_template_properties\"","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0'\r\n\r\nexport const listProperties = () => {\r\n return axios.get(base + '/document_template/properties')\r\n}\r\n\r\nexport const updateProperties = (body) => {\r\n return axios.patch(base + '/document_template/properties', body)\r\n}\r\n","\r\n\r\n","import { render } from \"./SysDocumentTemplateProperty.vue?vue&type=template&id=b4d940a4\"\nimport script from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\nexport * from \"./SysDocumentTemplateProperty.vue?vue&type=script&lang=js\"\n\nimport \"./SysDocumentTemplateProperty.vue?vue&type=style&index=0&id=b4d940a4&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":["documentTemplatePropertiesKey","base","listProperties","axios","updateProperties","body","_createElementVNode","class","_createVNode","_component_el_row","_component_el_col","_component_el_switch","$data","$event","size","onChange","$options","_hoisted_1","_component_el_table","border","data","columns","_createElementBlock","_Fragment","_renderList","columnFieldNameProperties","item","_createBlock","_component_el_table_column","label","key","prop","header","_component_el_input","value","placeholder","_hoisted_2","indexes","indexFieldNameProperties","_hoisted_3","foreignKeys","foreignKeyFieldNameProperties","_hoisted_4","triggers","triggerFieldNameProperties","template","sampleData","showSampleData","watch","created","this","fetchDocumentTemplateProperties","methods","then","resp","errCode","clearPropertyCache","sessionStorage","removeItem","saveColumnProperties","type","properties","$message","success","saveIndexProperties","saveTriggerProperties","saveForeignKeyProperties","onSwitchShowSampleData","isShow","columnJsonData","JSON","parse","indexJsonData","foreignKeyJsonData","triggerJsonData","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/app-legacy.7626bdb2.js b/api/src/main/resources/static/js/app-legacy.f44ddca8.js similarity index 97% rename from api/src/main/resources/static/js/app-legacy.7626bdb2.js rename to api/src/main/resources/static/js/app-legacy.f44ddca8.js index 4871d6e..55a2fa4 100644 --- a/api/src/main/resources/static/js/app-legacy.7626bdb2.js +++ b/api/src/main/resources/static/js/app-legacy.f44ddca8.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(837),i=t(9622),c=t(6246),s=(t(4415),t(4466)),l=t(4239),d=t(6252);function f(e,n){var t=(0,d.up)("router-view");return(0,d.wg)(),(0,d.j4)(t)}var m=t(3744);const p={},h=(0,m.Z)(p,[["render",f]]);var g=h,v=t(1836),b=t(3577),w=["src"],y=["src"];function k(e,n,r,o,u,a){var i=(0,d.up)("el-tooltip");return"mysql"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:0,content:r.databaseType,placement:"left"},{default:(0,d.w5)((function(){return[(0,d._)("img",{src:t(2357),style:{"max-width":"33px","max-height":"33px"}},null,8,w)]})),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,d.w5)((function(){return[(0,d._)("img",{src:t(3609),style:{"max-width":"33px","max-height":"33px"}},null,8,y)]})),_:1},8,["content"])):((0,d.wg)(),(0,d.iD)(d.HY,{key:2},[(0,d.Uk)((0,b.zw)(r.databaseType),1)],64))}var T={props:{databaseType:String}};const _=(0,m.Z)(T,[["render",k]]);var j=_,L=(0,r.ri)(g);Object.keys(u).forEach((function(e){L.component(e,u[e])})),L.component("database-icon",j),L.directive("require-roles",{mounted:function(e,n){var t=n.value;v.E.hasAnyRoles(t)||e.parentNode&&e.parentNode.removeChild(e)}}),L.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()}))}}),a.Z.registerLanguage("javascript",i.Z),L.use(c.Z),L.use(l.Z),L.use(o.Z),L.use(s.Z),L.mount("#app")},4466:function(e,n,t){t.d(n,{Z:function(){return Y}});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 T(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 _={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 j=(0,m.Z)(_,[["render",T]]);var L=j,S={components:{AppNav:h,Breadcrumb:w,Avatar:L}};const A=(0,m.Z)(S,[["render",u]]);var N=A;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 D(){return{name:"个人中心",to:{path:"/profile"}}}function I(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function O(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function Z(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}function M(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}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(),D()]},userList:function(){return[q(),C()]},sysEmailEdit:function(){return[q(),I()]},sysLog:function(){return[q(),O()]},sysOauth2:function(){return[q(),W()]},sysDatabaseType:function(){return[q(),Z()]},sysDocumentTemplate:function(){return[q(),M()]}},R=U,$=[{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(559)]).then(t.bind(t,1559))},meta:{breadcrumb:R.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(559)]).then(t.bind(t,1559))},meta:{breadcrumb:R.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(431)]).then(t.bind(t,2431))},meta:{breadcrumb:R.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(146)]).then(t.bind(t,6146))},meta:{breadcrumb:R.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(979)]).then(t.bind(t,6979))},meta:{breadcrumb:R.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:R.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:R.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return Promise.all([t.e(269),t.e(99)]).then(t.bind(t,2099))},meta:{nav:"操作日志",breadcrumb:R.sysLog}},{path:"sysOauth2",icon:"Connection",component:function(){return Promise.all([t.e(269),t.e(418)]).then(t.bind(t,2418))},meta:{nav:"登陆设置",breadcrumb:R.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:R.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:function(){return Promise.all([t.e(269),t.e(708)]).then(t.bind(t,6708))},meta:{nav:"文档模板",breadcrumb:R.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:R.sysKeyEdit}}]}],H=(0,r.p7)({history:(0,r.PO)(),routes:$});H.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"})})),H.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 Y=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",139:"b3ab46a9",146:"ba4f1d2b",243:"8e2218d7",269:"86bc3abd",418:"f7e82192",431:"1cef0516",469:"c7a09cfa",559:"9cf10eb0",708:"ba320e9c",865:"95ef57b0",924:"890aead4",979:"d00e6a4c"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",146:"9911c11a",431:"82a2f213",559:"b144be0e",708:"4cf5de8a",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 T(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 _={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 j=(0,m.Z)(_,[["render",T]]);var L=j,S={components:{AppNav:h,Breadcrumb:w,Avatar:L}};const A=(0,m.Z)(S,[["render",u]]);var N=A;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 D(){return{name:"个人中心",to:{path:"/profile"}}}function I(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function O(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function Z(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}function M(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}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(),D()]},userList:function(){return[q(),C()]},sysEmailEdit:function(){return[q(),I()]},sysLog:function(){return[q(),O()]},sysOauth2:function(){return[q(),W()]},sysDatabaseType:function(){return[q(),Z()]},sysDocumentTemplate:function(){return[q(),M()]}},R=U,$=[{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(559)]).then(t.bind(t,1559))},meta:{breadcrumb:R.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(559)]).then(t.bind(t,1559))},meta:{breadcrumb:R.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(924),t.e(431)]).then(t.bind(t,2431))},meta:{breadcrumb:R.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return Promise.all([t.e(269),t.e(146)]).then(t.bind(t,6146))},meta:{breadcrumb:R.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(979)]).then(t.bind(t,6979))},meta:{breadcrumb:R.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:R.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:R.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return Promise.all([t.e(269),t.e(99)]).then(t.bind(t,2099))},meta:{nav:"操作日志",breadcrumb:R.sysLog}},{path:"sysOauth2",icon:"Connection",component:function(){return Promise.all([t.e(269),t.e(418)]).then(t.bind(t,2418))},meta:{nav:"登陆设置",breadcrumb:R.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:R.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:function(){return Promise.all([t.e(269),t.e(492)]).then(t.bind(t,1492))},meta:{nav:"文档模板",breadcrumb:R.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:R.sysKeyEdit}}]}],H=(0,r.p7)({history:(0,r.PO)(),routes:$});H.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"})})),H.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 Y=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",139:"b3ab46a9",146:"ba4f1d2b",243:"8e2218d7",269:"86bc3abd",418:"f7e82192",431:"1cef0516",469:"c7a09cfa",492:"972f740c",559:"9cf10eb0",865:"95ef57b0",924:"890aead4",979:"d00e6a4c"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",146:"9911c11a",431:"82a2f213",492:"babc6736",559:"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\n\r\nimport 'highlight.js/styles/stackoverflow-light.css';\r\nimport hljs from 'highlight.js/lib/core';\r\nimport javascript from 'highlight.js/lib/languages/javascript';\r\nimport hljsVuePlugin from \"@highlightjs/vue-plugin\";\r\n\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\n\r\nhljs.registerLanguage('javascript', javascript);\r\napp.use(hljsVuePlugin)\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=39903466\"\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=39903466&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\nfunction sysDocumentTemplate() {\r\n return {\r\n name:'文档模板',\r\n to: {\r\n path: '/settings/sysDocumentTemplate'\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 sysDocumentTemplate: () => [index(), sysDocumentTemplate()],\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 {\r\n path: 'sysDocumentTemplate',\r\n icon: 'document-add',\r\n component: () => import('@/views/SysDocumentTemplateProperty.vue'),\r\n meta: {\r\n nav: '文档模板',\r\n breadcrumb: breadcurmbMap.sysDocumentTemplate\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\",\"139\":\"b3ab46a9\",\"146\":\"ba4f1d2b\",\"243\":\"8e2218d7\",\"269\":\"86bc3abd\",\"418\":\"f7e82192\",\"431\":\"1cef0516\",\"469\":\"c7a09cfa\",\"559\":\"9cf10eb0\",\"708\":\"ba320e9c\",\"865\":\"95ef57b0\",\"924\":\"890aead4\",\"979\":\"d00e6a4c\"}[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\",\"146\":\"9911c11a\",\"431\":\"82a2f213\",\"559\":\"b144be0e\",\"708\":\"4cf5de8a\",\"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,\"146\":1,\"431\":1,\"559\":1,\"708\":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","hljs","javascript","use","hljsVuePlugin","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","sysDocumentTemplate","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.f44ddca8.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\n\r\nimport 'highlight.js/styles/stackoverflow-light.css';\r\nimport hljs from 'highlight.js/lib/core';\r\nimport javascript from 'highlight.js/lib/languages/javascript';\r\nimport hljsVuePlugin from \"@highlightjs/vue-plugin\";\r\n\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\n\r\nhljs.registerLanguage('javascript', javascript);\r\napp.use(hljsVuePlugin)\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=39903466\"\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=39903466&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\nfunction sysDocumentTemplate() {\r\n return {\r\n name:'文档模板',\r\n to: {\r\n path: '/settings/sysDocumentTemplate'\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 sysDocumentTemplate: () => [index(), sysDocumentTemplate()],\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 {\r\n path: 'sysDocumentTemplate',\r\n icon: 'document-add',\r\n component: () => import('@/views/SysDocumentTemplateProperty.vue'),\r\n meta: {\r\n nav: '文档模板',\r\n breadcrumb: breadcurmbMap.sysDocumentTemplate\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\",\"139\":\"b3ab46a9\",\"146\":\"ba4f1d2b\",\"243\":\"8e2218d7\",\"269\":\"86bc3abd\",\"418\":\"f7e82192\",\"431\":\"1cef0516\",\"469\":\"c7a09cfa\",\"492\":\"972f740c\",\"559\":\"9cf10eb0\",\"865\":\"95ef57b0\",\"924\":\"890aead4\",\"979\":\"d00e6a4c\"}[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\",\"146\":\"9911c11a\",\"431\":\"82a2f213\",\"492\":\"babc6736\",\"559\":\"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,\"146\":1,\"431\":1,\"492\":1,\"559\":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","hljs","javascript","use","hljsVuePlugin","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","sysDocumentTemplate","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.3780af02.js b/api/src/main/resources/static/js/app.db861658.js similarity index 97% rename from api/src/main/resources/static/js/app.3780af02.js rename to api/src/main/resources/static/js/app.db861658.js index 2a5f8da..54dd80b 100644 --- a/api/src/main/resources/static/js/app.3780af02.js +++ b/api/src/main/resources/static/js/app.db861658.js @@ -1,2 +1,2 @@ -(function(){"use strict";var e={3710:function(e,t,n){var r=n(9963),a=n(2610),o=n(137),u=n(837),i=n(9622),s=n(6246),l=(n(4415),n(1327)),c=n(4239),d=n(6252);function m(e,t){const n=(0,d.up)("router-view");return(0,d.wg)(),(0,d.j4)(n)}var p=n(3744);const f={},h=(0,p.Z)(f,[["render",m]]);var g=h,b=n(1836),w=n(3577);const v=["src"],y=["src"];function k(e,t,r,a,o,u){const i=(0,d.up)("el-tooltip");return"mysql"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:0,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(2357),style:{"max-width":"33px","max-height":"33px"}},null,8,v)])),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(3609),style:{"max-width":"33px","max-height":"33px"}},null,8,y)])),_:1},8,["content"])):((0,d.wg)(),(0,d.iD)(d.HY,{key:2},[(0,d.Uk)((0,w.zw)(r.databaseType),1)],64))}var T={props:{databaseType:String}};const _=(0,p.Z)(T,[["render",k]]);var j=_;const L=(0,r.ri)(g);Object.keys(o).forEach((e=>{L.component(e,o[e])})),L.component("database-icon",j),L.directive("require-roles",{mounted(e,t){const n=t.value;b.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),L.directive("select-more",{updated(e,t){const n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),a=document.getElementById(r),o=a.querySelector(".el-scrollbar .el-select-dropdown__wrap");o.addEventListener("scroll",(function(){const e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()}))}}),u.Z.registerLanguage("javascript",i.Z),L.use(s.Z),L.use(c.Z),L.use(a.Z),L.use(l.Z),L.mount("#app")},1327:function(e,t,n){n.d(t,{Z:function(){return Y}});var r=n(2119),a=n(6252);function o(e,t,n,r,o,u){const i=(0,a.up)("AppNav"),s=(0,a.up)("el-aside"),l=(0,a.up)("Breadcrumb"),c=(0,a.up)("Avatar"),d=(0,a.up)("el-header"),m=(0,a.up)("router-view"),p=(0,a.up)("el-main"),f=(0,a.up)("el-container");return(0,a.wg)(),(0,a.j4)(f,{class:"databasir"},{default:(0,a.w5)((()=>[(0,a.Wm)(s,null,{default:(0,a.w5)((()=>[(0,a.Wm)(i,{class:"databasir-nav"})])),_:1}),(0,a.Wm)(d,{class:"databasir-main-header"},{default:(0,a.w5)((()=>[(0,a.Wm)(l),(0,a.Wm)(c)])),_:1}),(0,a.Wm)(p,{class:"databasir-main"},{default:(0,a.w5)((()=>[(0,a.Wm)(f,null,{default:(0,a.w5)((()=>[(0,a.Wm)(p,{class:"databasir-main-content"},{default:(0,a.w5)((()=>[(0,a.Wm)(m)])),_:1})])),_:1})])),_:1})])),_:1})}var u=n(3577);const i=(0,a._)("span",null,"Databasir",-1);function s(e,t,n,r,o,s){const l=(0,a.up)("home-filled"),c=(0,a.up)("el-icon"),d=(0,a.up)("el-menu-item"),m=(0,a.up)("el-sub-menu"),p=(0,a.up)("el-menu");return(0,a.wg)(),(0,a.j4)(p,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,a.w5)((()=>[(0,a.Wm)(d,{index:"/"},{title:(0,a.w5)((()=>[i])),default:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[(0,a.Wm)(l)])),_:1})])),_:1}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(r.routes,((e,t)=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((e=>!e.hidden))?((0,a.wg)(),(0,a.j4)(m,{key:0,index:e.path},{title:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(e.icon)))])),_:2},1024),(0,a._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.children,((n,r)=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t+"-"+r},[n.hidden?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(d,{key:0,index:e.path+"/"+n.path},{title:(0,a.w5)((()=>[(0,a._)("span",null,(0,u.zw)(n.meta.nav),1)])),default:(0,a.w5)((()=>[n.icon?((0,a.wg)(),(0,a.j4)(c,{key:0},{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(n.icon)))])),_:2},1024)):(0,a.kq)("",!0)])),_:2},1032,["index"]))],64)))),128))])),_:2},1032,["index"])):r.isShowMenu(e)?((0,a.wg)(),(0,a.j4)(d,{key:1,index:e.path},{title:(0,a.w5)((()=>[(0,a._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(e.icon)))])),_:2},1024)])),_:2},1032,["index"])):(0,a.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,a=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},o=()=>{d.Z.commit("expandMenu")};return{isCollapse:e,isShowMenu:a,expandMenu:o,routes:n}}},p=n(3744);const f=(0,p.Z)(m,[["render",s]]);var h=f;function g(e,t,n,r,o,i){const s=(0,a.up)("fold"),l=(0,a.up)("el-icon"),c=(0,a.up)("el-link"),d=(0,a.up)("el-breadcrumb-item"),m=(0,a.up)("el-breadcrumb");return(0,a.wg)(),(0,a.j4)(m,{separator:"/"},{default:(0,a.w5)((()=>[i.menuIsCollapse?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(d,{key:0},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{onClick:t[0]||(t[0]=e=>i.onFoldMenu()),underline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(l,null,{default:(0,a.w5)((()=>[(0,a.Wm)(s)])),_:1})])),_:1})])),_:1})),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(i.breadcrumbs,((e,t)=>((0,a.wg)(),(0,a.j4)(d,{key:t,to:e.to},{default:(0,a.w5)((()=>[(0,a.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,a.Uk)("个人中心"),k=(0,a.Uk)("注销登陆");function T(e,t,n,r,o,i){const s=(0,a.up)("el-avatar"),l=(0,a.up)("el-dropdown-item"),c=(0,a.up)("el-dropdown-menu"),d=(0,a.up)("el-dropdown");return(0,a.wg)(),(0,a.j4)(d,null,{dropdown:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[(0,a.Wm)(l,null,{default:(0,a.w5)((()=>[(0,a.Uk)((0,u.zw)(i.userNickname),1)])),_:1}),(0,a.Wm)(l,{icon:"user",divided:"",onClick:t[0]||(t[0]=e=>i.toProfilePage())},{default:(0,a.w5)((()=>[y])),_:1}),(0,a.Wm)(l,{icon:"back",onClick:t[1]||(t[1]=e=>i.onLogout())},{default:(0,a.w5)((()=>[k])),_:1})])),_:1})])),default:(0,a.w5)((()=>[(0,a.Wm)(s,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])])),_:1})}var _={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 j=(0,p.Z)(_,[["render",T]]);var L=j,S={components:{AppNav:h,Breadcrumb:v,Avatar:L}};const A=(0,p.Z)(S,[["render",o]]);var N=A;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 D(){return{name:"个人中心",to:{path:"/profile"}}}function I(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function O(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function Z(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}function M(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}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(),D()],userList:()=>[q(),C()],sysEmailEdit:()=>[q(),I()],sysLog:()=>[q(),O()],sysOauth2:()=>[q(),W()],sysDatabaseType:()=>[q(),Z()],sysDocumentTemplate:()=>[q(),M()]};var R=U;const $=[{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(559)]).then(n.bind(n,1559)),meta:{breadcrumb:R.groupList}}]},{path:"/groups",icon:"Collection",component:N,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:()=>Promise.all([n.e(269),n.e(559)]).then(n.bind(n,1559)),meta:{breadcrumb:R.groupList}},{path:":groupId",hidden:!0,component:()=>Promise.all([n.e(269),n.e(431)]).then(n.bind(n,2431)),meta:{breadcrumb:R.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:()=>Promise.all([n.e(269),n.e(146)]).then(n.bind(n,6146)),meta:{breadcrumb:R.groupProjectDocument}}]},{path:"/users",icon:"List",component:N,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(979)]).then(n.bind(n,6979)),meta:{breadcrumb:R.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:R.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:R.sysEmailEdit}},{path:"sysLog",icon:"Document",component:()=>Promise.all([n.e(269),n.e(99)]).then(n.bind(n,2099)),meta:{nav:"操作日志",breadcrumb:R.sysLog}},{path:"sysOauth2",icon:"Connection",component:()=>Promise.all([n.e(269),n.e(418)]).then(n.bind(n,2418)),meta:{nav:"登陆设置",breadcrumb:R.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:()=>Promise.all([n.e(269),n.e(564)]).then(n.bind(n,2564)),meta:{nav:"数据库类型",breadcrumb:R.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:()=>Promise.all([n.e(269),n.e(708)]).then(n.bind(n,6708)),meta:{nav:"文档模板",breadcrumb:R.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:R.sysKeyEdit}}]}],H=(0,r.p7)({history:(0,r.PO)(),routes:$});H.beforeEach(((e,t,n)=>{0==e.meta.requireAuth?"/login"==e.path&&c.r.hasAccessToken()?n(t):n():c.r.hasAccessToken()?n():n({path:"/login"})})),H.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 Y=H},4239:function(e,t,n){var r=n(8637),a=n(1836);const o=(0,r.MT)({state(){const e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=a.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"]=o},1836:function(e,t,n){n.d(t,{r:function(){return u},E:function(){return i}});const r="accessToken",a="accessTokenExpireAt",o="userLoginData",u={hasAccessToken(){const e=this.loadAccessToken();return e},hasValidAccessToken(){const e=this.loadAccessToken(),t=window.localStorage.getItem(a);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(a,t)},loadAccessToken(){let e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(a,e.accessTokenExpireAt),window.localStorage.setItem(o,JSON.stringify(e))},removeUserLoginData(){window.localStorage.removeItem(o),window.localStorage.removeItem(r),window.localStorage.removeItem(a)},loadUserLoginData(){if(!window.localStorage.getItem(o))return null;const e=window.localStorage.getItem(o);return JSON.parse(e)},hasAnyRoles(e){const t=window.localStorage.getItem(o);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(o);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 a=t[r];if(void 0!==a)return a.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var u=1/0;for(c=0;c=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[s])}))?r.splice(s--,1):(i=!1,o0&&e[c-1][2]>o;c--)e[c]=e[c-1];e[c]=[r,a,o]}}(),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",139:"338f8cdc",146:"dc9458dc",243:"d82073b3",269:"1422ca55",418:"0db44d75",431:"8efe060e",469:"70845a6a",559:"bebfa30d",564:"d209a2a0",708:"af5916f2",865:"8a397b0a",979:"917cb604"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",146:"9911c11a",431:"82a2f213",559:"b144be0e",708:"4cf5de8a",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,a,o,u){if(e[r])e[r].push(a);else{var i,s;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c[(0,d._)("img",{src:n(2357),style:{"max-width":"33px","max-height":"33px"}},null,8,v)])),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(3609),style:{"max-width":"33px","max-height":"33px"}},null,8,y)])),_:1},8,["content"])):((0,d.wg)(),(0,d.iD)(d.HY,{key:2},[(0,d.Uk)((0,w.zw)(r.databaseType),1)],64))}var T={props:{databaseType:String}};const _=(0,p.Z)(T,[["render",k]]);var j=_;const L=(0,r.ri)(g);Object.keys(o).forEach((e=>{L.component(e,o[e])})),L.component("database-icon",j),L.directive("require-roles",{mounted(e,t){const n=t.value;b.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),L.directive("select-more",{updated(e,t){const n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),a=document.getElementById(r),o=a.querySelector(".el-scrollbar .el-select-dropdown__wrap");o.addEventListener("scroll",(function(){const e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()}))}}),u.Z.registerLanguage("javascript",i.Z),L.use(s.Z),L.use(c.Z),L.use(a.Z),L.use(l.Z),L.mount("#app")},1327:function(e,t,n){n.d(t,{Z:function(){return Y}});var r=n(2119),a=n(6252);function o(e,t,n,r,o,u){const i=(0,a.up)("AppNav"),s=(0,a.up)("el-aside"),l=(0,a.up)("Breadcrumb"),c=(0,a.up)("Avatar"),d=(0,a.up)("el-header"),m=(0,a.up)("router-view"),p=(0,a.up)("el-main"),f=(0,a.up)("el-container");return(0,a.wg)(),(0,a.j4)(f,{class:"databasir"},{default:(0,a.w5)((()=>[(0,a.Wm)(s,null,{default:(0,a.w5)((()=>[(0,a.Wm)(i,{class:"databasir-nav"})])),_:1}),(0,a.Wm)(d,{class:"databasir-main-header"},{default:(0,a.w5)((()=>[(0,a.Wm)(l),(0,a.Wm)(c)])),_:1}),(0,a.Wm)(p,{class:"databasir-main"},{default:(0,a.w5)((()=>[(0,a.Wm)(f,null,{default:(0,a.w5)((()=>[(0,a.Wm)(p,{class:"databasir-main-content"},{default:(0,a.w5)((()=>[(0,a.Wm)(m)])),_:1})])),_:1})])),_:1})])),_:1})}var u=n(3577);const i=(0,a._)("span",null,"Databasir",-1);function s(e,t,n,r,o,s){const l=(0,a.up)("home-filled"),c=(0,a.up)("el-icon"),d=(0,a.up)("el-menu-item"),m=(0,a.up)("el-sub-menu"),p=(0,a.up)("el-menu");return(0,a.wg)(),(0,a.j4)(p,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,a.w5)((()=>[(0,a.Wm)(d,{index:"/"},{title:(0,a.w5)((()=>[i])),default:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[(0,a.Wm)(l)])),_:1})])),_:1}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(r.routes,((e,t)=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((e=>!e.hidden))?((0,a.wg)(),(0,a.j4)(m,{key:0,index:e.path},{title:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(e.icon)))])),_:2},1024),(0,a._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.children,((n,r)=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t+"-"+r},[n.hidden?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(d,{key:0,index:e.path+"/"+n.path},{title:(0,a.w5)((()=>[(0,a._)("span",null,(0,u.zw)(n.meta.nav),1)])),default:(0,a.w5)((()=>[n.icon?((0,a.wg)(),(0,a.j4)(c,{key:0},{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(n.icon)))])),_:2},1024)):(0,a.kq)("",!0)])),_:2},1032,["index"]))],64)))),128))])),_:2},1032,["index"])):r.isShowMenu(e)?((0,a.wg)(),(0,a.j4)(d,{key:1,index:e.path},{title:(0,a.w5)((()=>[(0,a._)("span",null,(0,u.zw)(e.meta.nav),1)])),default:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[((0,a.wg)(),(0,a.j4)((0,a.LL)(e.icon)))])),_:2},1024)])),_:2},1032,["index"])):(0,a.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,a=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},o=()=>{d.Z.commit("expandMenu")};return{isCollapse:e,isShowMenu:a,expandMenu:o,routes:n}}},p=n(3744);const f=(0,p.Z)(m,[["render",s]]);var h=f;function g(e,t,n,r,o,i){const s=(0,a.up)("fold"),l=(0,a.up)("el-icon"),c=(0,a.up)("el-link"),d=(0,a.up)("el-breadcrumb-item"),m=(0,a.up)("el-breadcrumb");return(0,a.wg)(),(0,a.j4)(m,{separator:"/"},{default:(0,a.w5)((()=>[i.menuIsCollapse?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(d,{key:0},{default:(0,a.w5)((()=>[(0,a.Wm)(c,{onClick:t[0]||(t[0]=e=>i.onFoldMenu()),underline:!1},{default:(0,a.w5)((()=>[(0,a.Wm)(l,null,{default:(0,a.w5)((()=>[(0,a.Wm)(s)])),_:1})])),_:1})])),_:1})),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(i.breadcrumbs,((e,t)=>((0,a.wg)(),(0,a.j4)(d,{key:t,to:e.to},{default:(0,a.w5)((()=>[(0,a.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,a.Uk)("个人中心"),k=(0,a.Uk)("注销登陆");function T(e,t,n,r,o,i){const s=(0,a.up)("el-avatar"),l=(0,a.up)("el-dropdown-item"),c=(0,a.up)("el-dropdown-menu"),d=(0,a.up)("el-dropdown");return(0,a.wg)(),(0,a.j4)(d,null,{dropdown:(0,a.w5)((()=>[(0,a.Wm)(c,null,{default:(0,a.w5)((()=>[(0,a.Wm)(l,null,{default:(0,a.w5)((()=>[(0,a.Uk)((0,u.zw)(i.userNickname),1)])),_:1}),(0,a.Wm)(l,{icon:"user",divided:"",onClick:t[0]||(t[0]=e=>i.toProfilePage())},{default:(0,a.w5)((()=>[y])),_:1}),(0,a.Wm)(l,{icon:"back",onClick:t[1]||(t[1]=e=>i.onLogout())},{default:(0,a.w5)((()=>[k])),_:1})])),_:1})])),default:(0,a.w5)((()=>[(0,a.Wm)(s,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])])),_:1})}var _={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 j=(0,p.Z)(_,[["render",T]]);var L=j,S={components:{AppNav:h,Breadcrumb:v,Avatar:L}};const A=(0,p.Z)(S,[["render",o]]);var N=A;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 D(){return{name:"个人中心",to:{path:"/profile"}}}function I(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function O(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function W(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function Z(){return{name:"数据库类型",to:{path:"/settings/sysDatabaseType"}}}function M(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}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(),D()],userList:()=>[q(),C()],sysEmailEdit:()=>[q(),I()],sysLog:()=>[q(),O()],sysOauth2:()=>[q(),W()],sysDatabaseType:()=>[q(),Z()],sysDocumentTemplate:()=>[q(),M()]};var R=U;const $=[{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(559)]).then(n.bind(n,1559)),meta:{breadcrumb:R.groupList}}]},{path:"/groups",icon:"Collection",component:N,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:()=>Promise.all([n.e(269),n.e(559)]).then(n.bind(n,1559)),meta:{breadcrumb:R.groupList}},{path:":groupId",hidden:!0,component:()=>Promise.all([n.e(269),n.e(431)]).then(n.bind(n,2431)),meta:{breadcrumb:R.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:()=>Promise.all([n.e(269),n.e(146)]).then(n.bind(n,6146)),meta:{breadcrumb:R.groupProjectDocument}}]},{path:"/users",icon:"List",component:N,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:()=>Promise.all([n.e(269),n.e(979)]).then(n.bind(n,6979)),meta:{breadcrumb:R.userList}}]},{path:"/profile",icon:"User",component:N,meta:{nav:"个人中心",breadcrumb:R.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:R.sysEmailEdit}},{path:"sysLog",icon:"Document",component:()=>Promise.all([n.e(269),n.e(99)]).then(n.bind(n,2099)),meta:{nav:"操作日志",breadcrumb:R.sysLog}},{path:"sysOauth2",icon:"Connection",component:()=>Promise.all([n.e(269),n.e(418)]).then(n.bind(n,2418)),meta:{nav:"登陆设置",breadcrumb:R.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:()=>Promise.all([n.e(269),n.e(564)]).then(n.bind(n,2564)),meta:{nav:"数据库类型",breadcrumb:R.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:()=>Promise.all([n.e(269),n.e(492)]).then(n.bind(n,1492)),meta:{nav:"文档模板",breadcrumb:R.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:N,meta:{nav:"系统秘钥",breadcrumb:R.sysKeyEdit}}]}],H=(0,r.p7)({history:(0,r.PO)(),routes:$});H.beforeEach(((e,t,n)=>{0==e.meta.requireAuth?"/login"==e.path&&c.r.hasAccessToken()?n(t):n():c.r.hasAccessToken()?n():n({path:"/login"})})),H.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 Y=H},4239:function(e,t,n){var r=n(8637),a=n(1836);const o=(0,r.MT)({state(){const e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=a.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"]=o},1836:function(e,t,n){n.d(t,{r:function(){return u},E:function(){return i}});const r="accessToken",a="accessTokenExpireAt",o="userLoginData",u={hasAccessToken(){const e=this.loadAccessToken();return e},hasValidAccessToken(){const e=this.loadAccessToken(),t=window.localStorage.getItem(a);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(a,t)},loadAccessToken(){let e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(a,e.accessTokenExpireAt),window.localStorage.setItem(o,JSON.stringify(e))},removeUserLoginData(){window.localStorage.removeItem(o),window.localStorage.removeItem(r),window.localStorage.removeItem(a)},loadUserLoginData(){if(!window.localStorage.getItem(o))return null;const e=window.localStorage.getItem(o);return JSON.parse(e)},hasAnyRoles(e){const t=window.localStorage.getItem(o);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(o);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 a=t[r];if(void 0!==a)return a.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var u=1/0;for(c=0;c=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[s])}))?r.splice(s--,1):(i=!1,o0&&e[c-1][2]>o;c--)e[c]=e[c-1];e[c]=[r,a,o]}}(),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",139:"338f8cdc",146:"dc9458dc",243:"d82073b3",269:"1422ca55",418:"0db44d75",431:"8efe060e",469:"70845a6a",492:"de54c0ea",559:"bebfa30d",564:"d209a2a0",865:"8a397b0a",979:"917cb604"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",146:"9911c11a",431:"82a2f213",492:"babc6736",559:"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,a,o,u){if(e[r])e[r].push(a);else{var i,s;if(void 0!==o)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\n\r\nimport 'highlight.js/styles/stackoverflow-light.css';\r\nimport hljs from 'highlight.js/lib/core';\r\nimport javascript from 'highlight.js/lib/languages/javascript';\r\nimport hljsVuePlugin from \"@highlightjs/vue-plugin\";\r\n\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\n\r\nhljs.registerLanguage('javascript', javascript);\r\napp.use(hljsVuePlugin)\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=39903466\"\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=39903466&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\nfunction sysDocumentTemplate() {\r\n return {\r\n name:'文档模板',\r\n to: {\r\n path: '/settings/sysDocumentTemplate'\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 sysDocumentTemplate: () => [index(), sysDocumentTemplate()],\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 {\r\n path: 'sysDocumentTemplate',\r\n icon: 'document-add',\r\n component: () => import('@/views/SysDocumentTemplateProperty.vue'),\r\n meta: {\r\n nav: '文档模板',\r\n breadcrumb: breadcurmbMap.sysDocumentTemplate\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\",\"139\":\"338f8cdc\",\"146\":\"dc9458dc\",\"243\":\"d82073b3\",\"269\":\"1422ca55\",\"418\":\"0db44d75\",\"431\":\"8efe060e\",\"469\":\"70845a6a\",\"559\":\"bebfa30d\",\"564\":\"d209a2a0\",\"708\":\"af5916f2\",\"865\":\"8a397b0a\",\"979\":\"917cb604\"}[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\",\"146\":\"9911c11a\",\"431\":\"82a2f213\",\"559\":\"b144be0e\",\"708\":\"4cf5de8a\",\"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,\"146\":1,\"431\":1,\"559\":1,\"708\":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","hljs","javascript","use","hljsVuePlugin","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","sysDocumentTemplate","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.db861658.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\n\r\nimport 'highlight.js/styles/stackoverflow-light.css';\r\nimport hljs from 'highlight.js/lib/core';\r\nimport javascript from 'highlight.js/lib/languages/javascript';\r\nimport hljsVuePlugin from \"@highlightjs/vue-plugin\";\r\n\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\n\r\nhljs.registerLanguage('javascript', javascript);\r\napp.use(hljsVuePlugin)\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=39903466\"\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=39903466&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\nfunction sysDocumentTemplate() {\r\n return {\r\n name:'文档模板',\r\n to: {\r\n path: '/settings/sysDocumentTemplate'\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 sysDocumentTemplate: () => [index(), sysDocumentTemplate()],\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 {\r\n path: 'sysDocumentTemplate',\r\n icon: 'document-add',\r\n component: () => import('@/views/SysDocumentTemplateProperty.vue'),\r\n meta: {\r\n nav: '文档模板',\r\n breadcrumb: breadcurmbMap.sysDocumentTemplate\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\",\"139\":\"338f8cdc\",\"146\":\"dc9458dc\",\"243\":\"d82073b3\",\"269\":\"1422ca55\",\"418\":\"0db44d75\",\"431\":\"8efe060e\",\"469\":\"70845a6a\",\"492\":\"de54c0ea\",\"559\":\"bebfa30d\",\"564\":\"d209a2a0\",\"865\":\"8a397b0a\",\"979\":\"917cb604\"}[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\",\"146\":\"9911c11a\",\"431\":\"82a2f213\",\"492\":\"babc6736\",\"559\":\"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,\"146\":1,\"431\":1,\"492\":1,\"559\":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","hljs","javascript","use","hljsVuePlugin","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","sysDocumentTemplate","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