From d345fee98fded6c52d908b65c2f93bcf904736de Mon Sep 17 00:00:00 2001 From: vran Date: Tue, 17 May 2022 09:25:04 +0800 Subject: [PATCH] feat: update global search loading (#181) --- .../static/css/{206.6b48a93a.css => 314.6b48a93a.css} | 0 api/src/main/resources/static/index.html | 2 +- api/src/main/resources/static/js/206-legacy.8d16f9c5.js.map | 1 - api/src/main/resources/static/js/206.8babe551.js.map | 1 - .../js/{206-legacy.8d16f9c5.js => 314-legacy.e55474ea.js} | 4 ++-- api/src/main/resources/static/js/314-legacy.e55474ea.js.map | 1 + .../resources/static/js/{206.8babe551.js => 314.358d11d3.js} | 4 ++-- api/src/main/resources/static/js/314.358d11d3.js.map | 1 + api/src/main/resources/static/js/app-legacy.94b013ac.js | 2 -- api/src/main/resources/static/js/app-legacy.94b013ac.js.map | 1 - api/src/main/resources/static/js/app-legacy.d2b56939.js | 2 ++ api/src/main/resources/static/js/app-legacy.d2b56939.js.map | 1 + api/src/main/resources/static/js/app.3b9845e4.js | 2 ++ api/src/main/resources/static/js/app.3b9845e4.js.map | 1 + api/src/main/resources/static/js/app.7ac511a9.js | 2 -- api/src/main/resources/static/js/app.7ac511a9.js.map | 1 - databasir-frontend | 2 +- 17 files changed, 14 insertions(+), 14 deletions(-) rename api/src/main/resources/static/css/{206.6b48a93a.css => 314.6b48a93a.css} (100%) delete mode 100644 api/src/main/resources/static/js/206-legacy.8d16f9c5.js.map delete mode 100644 api/src/main/resources/static/js/206.8babe551.js.map rename api/src/main/resources/static/js/{206-legacy.8d16f9c5.js => 314-legacy.e55474ea.js} (51%) create mode 100644 api/src/main/resources/static/js/314-legacy.e55474ea.js.map rename api/src/main/resources/static/js/{206.8babe551.js => 314.358d11d3.js} (59%) create mode 100644 api/src/main/resources/static/js/314.358d11d3.js.map delete mode 100644 api/src/main/resources/static/js/app-legacy.94b013ac.js delete mode 100644 api/src/main/resources/static/js/app-legacy.94b013ac.js.map create mode 100644 api/src/main/resources/static/js/app-legacy.d2b56939.js create mode 100644 api/src/main/resources/static/js/app-legacy.d2b56939.js.map create mode 100644 api/src/main/resources/static/js/app.3b9845e4.js create mode 100644 api/src/main/resources/static/js/app.3b9845e4.js.map delete mode 100644 api/src/main/resources/static/js/app.7ac511a9.js delete mode 100644 api/src/main/resources/static/js/app.7ac511a9.js.map diff --git a/api/src/main/resources/static/css/206.6b48a93a.css b/api/src/main/resources/static/css/314.6b48a93a.css similarity index 100% rename from api/src/main/resources/static/css/206.6b48a93a.css rename to api/src/main/resources/static/css/314.6b48a93a.css diff --git a/api/src/main/resources/static/index.html b/api/src/main/resources/static/index.html index 55f8a22..a373e6c 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/206-legacy.8d16f9c5.js.map b/api/src/main/resources/static/js/206-legacy.8d16f9c5.js.map deleted file mode 100644 index 9b4deae..0000000 --- a/api/src/main/resources/static/js/206-legacy.8d16f9c5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/206-legacy.8d16f9c5.js","mappings":"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","sources":["webpack://databasir/./node_modules/core-js/modules/es.array.slice.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=b12b6048\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=b12b6048&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["$","global","isArray","isConstructor","isObject","toAbsoluteIndex","lengthOfArrayLike","toIndexedObject","createProperty","wellKnownSymbol","arrayMethodHasSpeciesSupport","un$Slice","HAS_SPECIES_SUPPORT","SPECIES","Array","max","Math","target","proto","forced","slice","start","end","Constructor","result","n","O","this","length","k","fin","undefined","constructor","prototype","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","xs","sm","md","lg","xl","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","group","id","_component_el_card","shadow","onMouseenter","onMouseleave","class","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","owner","index","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_5","_component_database_icon","databaseType","groupId","groupName","projectId","_ctx","_component_el_dialog","width","center","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_10","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","onFavoriteProjectPageChange","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","role","fetchUserFavorites","listFavorites","jsonData","listGroups","message","required","trigger","requiredGroupOwners","onPageChange","onQuery","queryUsersAsync","query","callback","listUsers","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","deleteGroup","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","request","Object","assign","groupOwnerUserIds","r","createOrUpdateGroup","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","getGroup","toGroupDashboard","$router","path","toDocumentPage","favoriteProject","onRemoveFavorite","removeFavorite","onProjectDelete","deleteProjectById","tab","props","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/206.8babe551.js.map b/api/src/main/resources/static/js/206.8babe551.js.map deleted file mode 100644 index 48fa066..0000000 --- a/api/src/main/resources/static/js/206.8babe551.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/206.8babe551.js","mappings":"wUAEA,MAAMA,EAAO,mBAEAC,EAAcC,GAChBC,EAAAA,EAAAA,IAAUH,EAAM,CACnBI,OAAQF,IAIHG,EAAWC,GACbH,EAAAA,EAAAA,IAAUH,EAAO,IAAMM,GAGrBC,EAAuBC,GAC5BA,EAAKF,IAAiB,MAAXE,EAAKF,GACTG,EAAYD,GAEZE,EAAYF,GAIdE,EAAeF,GACjBL,EAAAA,EAAAA,KAAWH,EAAMQ,GAGfC,EAAeD,GACjBL,EAAAA,EAAAA,MAAYH,EAAMQ,GAGhBG,EAAeL,GACjBH,EAAAA,EAAAA,UAAaH,EAAO,IAAMM,GAGxBM,EAAmB,CAACC,EAASX,IAC/BC,EAAAA,EAAAA,IAAUH,EAAO,IAAMa,EAAU,WAAY,CAChDT,OAAQF,IAIHY,EAAiB,CAACD,EAASL,IAC7BL,EAAAA,EAAAA,KAAWH,EAAO,IAAMa,EAAU,WAAYL,GAG5CO,EAAoB,CAACF,EAASG,IAChCb,EAAAA,EAAAA,UAAaH,EAAM,IAAIa,EAAQ,YAAYG,GAGzCC,EAAwB,CAACJ,EAASG,EAAQE,KACnD,MAAMV,EAAO,CACTU,KAAMA,GAEV,OAAOf,EAAAA,EAAAA,MAAYH,EAAM,IAAIa,EAAQ,YAAYG,EAAQR,K,oNClD7D,MAAMR,EAAO,qBAEAmB,EAAgBC,GAClBjB,EAAAA,EAAAA,IAAUH,EAAM,CACnBI,OAAQgB,IAIHC,EAAkBf,GACpBH,EAAAA,EAAAA,IAAUH,EAAO,IAAMM,GAGrBgB,EAAyBC,GAC9BA,EAAQjB,GACDkB,EAAcD,GAEdE,EAAcF,GAIhBE,EAAiBF,GACpBpB,EAAAA,EAAAA,KAAWH,EAAMuB,GAGdG,EAAkBH,GACpBpB,EAAAA,EAAAA,KAAWH,EAAO,mBAAoBuB,GAGpCI,EAAyB,CAACrB,EAAIE,IAChCL,EAAAA,EAAAA,KAAWH,EAAO,IAAMM,EAAI,qBAAsBE,GAGhDoB,EAAoB,CAACC,EAAWC,IAClC3B,EAAAA,EAAAA,MAAYH,EAAO,IAAM6B,EAAW,UAAYC,EAAO,WAG5DC,EAAmB,mBAEZP,EAAiBD,GACpBpB,EAAAA,EAAAA,MAAY4B,EAAkB,IAAIR,EAAQV,QAAQ,YAAaU,GAG5DS,EAAoB,CAACnB,EAASP,IAChCH,EAAAA,EAAAA,UAAa4B,EAAmB,IAAKlB,EAAS,aAAeP,I,mTC3CxE,MAAMN,EAAO,kBAEAiC,EAAa/B,GACfC,EAAAA,EAAAA,IAAUH,EAAM,CACnBI,OAAQF,IAIHgC,EAAclB,GAChBb,EAAAA,EAAAA,KAAWH,EAAK,IAAIgB,EAAO,WAIzBmB,EAAenB,GACjBb,EAAAA,EAAAA,KAAWH,EAAK,IAAIgB,EAAO,YAGzBoB,EAAepB,GACjBb,EAAAA,EAAAA,IAAUH,EAAK,IAAIgB,GAGjBqB,EAAkBrB,GACpBb,EAAAA,EAAAA,UAAaH,EAAK,IAAIgB,GAGpBsB,EAAcf,GAChBpB,EAAAA,EAAAA,KAAWH,EAAMuB,GAGfgB,EAAiBjC,GACnBH,EAAAA,EAAAA,KAAWH,EAAM,IAAMM,EAAI,mBAGzBkC,EAAiBxB,GACnBb,EAAAA,EAAAA,KAAWH,EAAM,IAAMgB,EAAQ,eAG7ByB,EAAsBzB,GACxBb,EAAAA,EAAAA,UAAaH,EAAM,IAAMgB,EAAQ,eAG/B0B,EAAiB,CAAC1B,EAAQR,IAC5BL,EAAAA,EAAAA,KAAWH,EAAM,IAAMgB,EAAQ,YAAaR,GAG1CmC,EAAiB,CAAC3B,EAAQR,IAC5BL,EAAAA,EAAAA,KAAWH,EAAM,IAAMgB,EAAQ,YAAaR,I,oHC9CvD,MAAMR,EAAO,oCAEA4C,EAAiB1C,GACnBC,EAAAA,EAAAA,IAAUH,EAAM,CACnBI,OAAQF,IAIH2C,EAAkBhB,GACpB1B,EAAAA,EAAAA,UAAaH,EAAO,IAAM6B,GAGxBiB,EAAejB,GACjB1B,EAAAA,EAAAA,KAAWH,EAAM,IAAM6B,I,6GCQGkB,MAAA,oD,iBAeSA,MAAA,sC,GA2BIA,MAAA,mB,qBA6DR,Q,WAS6F,Q,WAGkB,Q,WAGN,Q,GAkCvIC,EAAAA,EAAAA,GAAa,UAAT,QAAI,G,WA6B2D,M,WACb,M,WAKI,Q,WAE2D,U,s5BAnN7HC,EAAAA,EAAAA,IAiKUC,EAAA,C,WAjKQC,EAAAA,U,qCAAAA,EAAAA,UAASC,GAAGC,WAAWF,EAAAA,YAAzC,C,kBACI,IAkFc,EAlFdF,EAAAA,EAAAA,IAkFcK,EAAA,CAlFDC,MAAM,OAAOC,KAAK,gBAA/B,C,kBACI,IAgFe,EAhFfP,EAAAA,EAAAA,IAgFeQ,EAAA,M,kBA/EX,IAqEU,EArEVR,EAAAA,EAAAA,IAqEUS,EAAA,M,kBApEN,IASS,EATTT,EAAAA,EAAAA,IASSU,EAAA,CATAC,OAAQ,IAAE,C,kBACf,IAIS,uBAJTC,EAAAA,EAAAA,IAISC,EAAA,CAJAC,GAAI,GAAKC,GAAI,GAAKC,GAAI,GAAKC,GAAI,EAAIC,GAAI,GAAhD,C,kBACI,IAEa,EAFblB,EAAAA,EAAAA,IAEamB,EAAA,CAFDC,QAAQ,SAASC,UAAU,OAAvC,C,kBACI,IAA8F,EAA9FrB,EAAAA,EAAAA,IAA8FsB,EAAA,CAAnFC,KAAK,QAASC,KAAK,OAAQ1B,MAAA,eAAqB2B,QAAK,eAAEvB,EAAAA,qB,gBAF1E,KAAqE,CAAC,iBAKtEF,EAAAA,EAAAA,IAESa,EAAA,CAFAC,GAAI,GAAKC,GAAI,GAAKC,GAAI,GAAKC,GAAI,EAAIC,GAAI,GAAhD,C,kBACI,IAA4H,EAA5HlB,EAAAA,EAAAA,IAA4H0B,EAAA,CAAjHC,SAAQzB,EAAAA,Q,WAAkB0B,EAAAA,eAAeC,kB,qCAAfD,EAAAA,eAAeC,kBAAiB1B,GAAEG,MAAM,KAAKwB,YAAY,QAAQ,cAAY,UAAlH,qC,eAG+B,GAAzBF,EAAAA,cAAcG,KAAKC,SAAM,WAAvCpB,EAAAA,EAAAA,IAISF,EAAA,CAAAuB,IAAAA,GAAA,C,kBAHL,IAES,EAFTjC,EAAAA,EAAAA,IAESa,EAAA,M,kBADL,IAA0C,EAA1Cb,EAAAA,EAAAA,IAA0CkC,EAAA,CAAhCC,YAAY,c,kBAF9B,WAKAvB,EAAAA,EAAAA,IAoDSF,EAAA,C,MApDOC,OAAQ,IAAxB,C,kBACwD,IAAqC,gBAAzFyB,EAAAA,EAAAA,IAkDSC,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAlD6DV,EAAAA,cAAcG,MAAxBQ,K,WAA5D3B,EAAAA,EAAAA,IAkDSC,EAAA,CAlDAC,GAAI,GAAKC,GAAI,GAAKC,GAAI,GAAKC,GAAI,EAAIC,GAAI,EAA2Ce,IAAKM,EAAMlF,GAAIyC,MAAA,0BAA1G,C,kBACI,IAgDU,EAhDVE,EAAAA,EAAAA,IAgDUwC,EAAA,CAhDDC,OAAO,QAASC,aAAU,GAAEd,EAAAA,kBAAkBW,EAAMlF,GAAKsF,aAAU,eAAEf,EAAAA,kBAAiB,MAAQH,QAAK,GAAEvB,EAAAA,iBAAiBqC,EAAMlF,GAAIkF,EAAMhC,MAAOqC,MAAM,OAA5J,C,kBACI,IAaM,EAbN7C,EAAAA,EAAAA,GAaM,MAbN,EAaM,EAZFC,EAAAA,EAAAA,IAIU6C,EAAA,CAJAC,WAAW,GAAK,C,kBACtB,IAEM,EAFN/C,EAAAA,EAAAA,GAEM,OAFA0B,QAAK,GAAEvB,EAAAA,iBAAiBqC,EAAMlF,GAAIkF,EAAMhC,MAAOT,MAAA,mBAArD,EACIC,EAAAA,EAAAA,GAAyB,WAAAgD,EAAAA,EAAAA,IAAlBR,EAAMhC,MAAI,IADrB,Q,KADJ,OAYE,SAPFP,EAAAA,EAAAA,IAMU6C,EAAA,CANAC,WAAW,EAGZrB,SAAK,YAAOvB,EAAAA,WAAWqC,EAAMlF,GAAIkF,EAAMhC,OAAI,UAChDiB,KAAK,OACL1B,MAAA,uBALJ,2BACYyC,EAAMlF,IAAMuE,EAAAA,mBAAAA,CAAAA,GAAAA,CAAAA,YAAAA,uBACkCW,EAAMlF,UAMpE2C,EAAAA,EAAAA,IAgCWgD,EAAA,CAhCDC,UAAU,WAAWC,UAAU,UAAWC,KAAM,IAA1D,C,kBACQ,IAEO,EAFPpD,EAAAA,EAAAA,GAEO,OAFP,GAEOgD,EAAAA,EAAAA,IADAR,EAAMJ,aAAW,IAExBnC,EAAAA,EAAAA,IAmBWgD,EAAA,CAnBDI,KAAA,IAAI,C,kBACV,IAEa,EAFbpD,EAAAA,EAAAA,IAEamB,EAAA,CAFDC,QAAQ,MAAI,C,kBACpB,IAA2C,EAA3CpB,EAAAA,EAAAA,IAA2CqD,EAAA,CAAlCC,MAAM,WAAS,C,kBAAC,IAAQ,EAARtD,EAAAA,EAAAA,IAAQuD,M,iBACxB,aACbnB,EAAAA,EAAAA,IAAmHC,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAAlFC,EAAMiB,gBAAgBC,MAAK,OAA5CC,EAAOC,M,WAAvB/C,EAAAA,EAAAA,IAAmHgD,EAAA,CAA9C3B,IAAK0B,EAAQpC,KAAK,QAAvF,C,kBAA+F,IAAW,mBAARmC,GAAK,M,KAAvG,eACgBnB,EAAMiB,gBAAgBxB,OAAM,eACxCpB,EAAAA,EAAAA,IAWciD,EAAA,CAAA5B,IAAAA,GAAA,CAPC6B,UAAQ,SACnB,IAImB,EAJnB9D,EAAAA,EAAAA,IAImB+D,EAAA,M,kBAHG,IAAwD,gBAA1E3B,EAAAA,EAAAA,IAEmBC,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAFwBC,EAAMiB,gBAAgBC,MAAK,KAA5CC,EAAOC,M,WAAjC/C,EAAAA,EAAAA,IAEmBoD,EAAA,CAFyD/B,IAAK0B,GAAK,C,kBAClF,IAAwC,EAAxC3D,EAAAA,EAAAA,IAAwC4D,EAAA,CAAhCrC,KAAK,QAAM,C,kBAAC,IAAW,mBAARmC,GAAK,M,KAA5B,S,KADJ,kB,KADJ,S,kBAJA,IAEU,EAFV1D,EAAAA,EAAAA,IAEUqD,EAAA,CAFDT,MAAM,kBAAgB,C,kBAC3B,IAAc,EAAd5C,EAAAA,EAAAA,IAAciE,M,cAFtB,0B,KANR,OAoBAjE,EAAAA,EAAAA,IAOWgD,EAAA,CAPDI,KAAA,IAAI,C,kBACV,IAEa,EAFbpD,EAAAA,EAAAA,IAEamB,EAAA,CAFDC,QAAQ,OAAK,C,kBACrB,IAA6C,EAA7CpB,EAAAA,EAAAA,IAA6CqD,EAAA,CAApCC,MAAM,WAAS,C,kBAAC,IAAU,EAAVtD,EAAAA,EAAAA,IAAUkE,M,gBAEvCnE,EAAAA,EAAAA,GAEO,OAFP,GAEOgD,EAAAA,EAAAA,IADAR,EAAM4B,cAAY,M,KAL7B,S,KAxBR,S,KAfJ,oC,KADJ,kB,iBAqDRnE,EAAAA,EAAAA,IAQYoE,EAAA,M,kBAPR,IAMgB,EANhBpE,EAAAA,EAAAA,IAMgBqE,EAAA,CANDC,OAAO,oBACjB,uBAAqB,EACrBC,YAAa3C,EAAAA,cAAc4C,OAC3B,YAAW5C,EAAAA,cAAcuB,KACzB,aAAYvB,EAAAA,cAAc6C,WAC1BC,gBAAgBxE,EAAAA,cALrB,sE,yBAUZF,EAAAA,EAAAA,IA4EcK,EAAA,CA5EDC,MAAM,OAAOC,KAAK,0BAA/B,C,kBACI,IAyEe,EAzEfP,EAAAA,EAAAA,IAyEeQ,EAAA,M,kBAxEX,IA8DU,EA9DVR,EAAAA,EAAAA,IA8DUS,EAAA,M,kBA7DN,IA4DW,EA5DXT,EAAAA,EAAAA,IA4DW2E,EAAA,CA5DA5C,KAAMH,EAAAA,wBAAwBG,KAAO6C,OAAA,IAAhD,C,kBACI,IAAiD,EAAjD5E,EAAAA,EAAAA,IAAiD6E,EAAA,CAAhCC,KAAK,YAAYxE,MAAM,WACxCN,EAAAA,EAAAA,IAOkB6E,EAAA,CAPDC,KAAK,cAAcxE,MAAM,QAA1C,C,kBACsByE,GAAK,EACnB/E,EAAAA,EAAAA,IAEU6C,EAAA,CAFApB,QAAK,GAAEvB,EAAAA,eAAe6E,EAAMC,MAAtC,C,kBACI,IAAwC,EAAxCjF,EAAAA,EAAAA,GAAwC,aAAAgD,EAAAA,EAAAA,IAA/BgC,EAAMC,IAAIC,aAAW,M,KADlC,qB,OAMRjF,EAAAA,EAAAA,IAA0D6E,EAAA,CAAzCC,KAAK,qBAAqBxE,MAAM,UACjDN,EAAAA,EAAAA,IASkB6E,EAAA,CATDvE,MAAM,OAAO4E,MAAM,UAApC,C,kBACsBH,GAAK,CACLA,EAAMC,IAAIG,aAAAA,EAAAA,EAAAA,OAAxBvE,EAAAA,EAAAA,IAESgD,EAAA,CAAA3B,IAAAA,GAAA,C,kBADL,IAA4B,mBAAzB8C,EAAMC,IAAII,cAAY,M,KAD7B,oBAGAhD,EAAAA,EAAAA,IAEO,OAAAiD,EAFM,W,OAKrBrF,EAAAA,EAAAA,IAIkB6E,EAAA,CAJDvE,MAAM,SAAO,C,kBACRyE,GAAK,EACnB/E,EAAAA,EAAAA,IAA8EsF,EAAA,CAA9DC,aAAcR,EAAMC,IAAIO,aAAe/D,KAAMuD,EAAMC,IAAIxD,MAAvE,mC,OAGRxB,EAAAA,EAAAA,IAAqD6E,EAAA,CAApCC,KAAK,eAAexE,MAAM,WAC3CN,EAAAA,EAAAA,IAMkB6E,EAAA,CANDC,KAAK,YAAYxE,MAAM,QAAxC,C,kBACsByE,GAAK,EACnB/E,EAAAA,EAAAA,IAEU6C,EAAA,CAFApB,QAAK,GAAEvB,EAAAA,iBAAiB6E,EAAMC,IAAIpH,QAASmH,EAAMC,IAAIQ,WAAYhE,KAAK,QAAhF,C,kBACI,IAAyB,mBAAtBuD,EAAMC,IAAIQ,WAAS,M,KAD1B,qB,OAKRxF,EAAAA,EAAAA,IAAgD6E,EAAA,CAA/BC,KAAK,WAAWxE,MAAM,UACvCN,EAAAA,EAAAA,IAwBkB6E,EAAA,CAxBDvE,MAAM,MAAI,C,kBACLyE,GAAK,EACnB/E,EAAAA,EAAAA,IAoBc6D,EAAA,MAbCC,UAAQ,SACnB,IAUmB,EAVnB9D,EAAAA,EAAAA,IAUmB+D,EAAA,M,kBATf,IAEmB,EAFnB/D,EAAAA,EAAAA,IAEmBgE,EAAA,M,kBADf,IAA2G,EAA3GhE,EAAAA,EAAAA,IAA2GsB,EAAA,CAAhGC,KAAK,UAAU4B,KAAK,QAAS1B,SAAK,YAAOvB,EAAAA,eAAe6E,EAAMC,MAAG,UAAGxD,KAAK,QAApF,C,kBAA2F,IAAI,M,KAA/F,qB,KADJ,OAGAxB,EAAAA,EAAAA,IAEmBgE,EAAA,M,kBADf,IAA6H,EAA7HhE,EAAAA,EAAAA,IAA6HsB,EAAA,CAAlHC,KAAK,UAAU4B,KAAK,QAAS1B,SAAK,YAAOvB,EAAAA,iBAAiB6E,EAAMC,IAAIpG,YAAS,UAAG4C,KAAK,cAAhG,C,kBAA6G,IAAI,M,KAAjH,qB,KADJ,OADmB,qBAInBZ,EAAAA,EAAAA,IAEmBoD,EAAA,M,kBADf,IAAuH,EAAvHhE,EAAAA,EAAAA,IAAuHsB,EAAA,CAA5GC,KAAK,SAAS4B,KAAK,QAAS1B,SAAK,YAAOvB,EAAAA,gBAAgB6E,EAAMC,IAAIpG,YAAS,UAAG4C,KAAK,UAA9F,C,kBAAuG,IAAI,M,KAA3G,qB,KADJ,gDAAwEiE,EAAAA,e,KAP5E,S,kBAPA,IAKO,EALP1F,EAAAA,EAAAA,GAKO,gBAHPC,EAAAA,EAAAA,IAEUqD,EAAA,M,kBADN,IAAc,EAAdrD,EAAAA,EAAAA,IAAciE,M,gBAJtB,S,cArCZ,e,OA8DJjE,EAAAA,EAAAA,IAQYoE,EAAA,M,kBAPR,IAMgB,EANhBpE,EAAAA,EAAAA,IAMgBqE,EAAA,CANDC,OAAO,oBACjB,uBAAqB,EACrBC,YAAa3C,EAAAA,wBAAwB4C,OACrC,YAAW5C,EAAAA,wBAAwBuB,KACnC,aAAYvB,EAAAA,wBAAwB6C,WACpCC,gBAAgBxE,EAAAA,6BALrB,sE,gCAtJhB,gCAoKAF,EAAAA,EAAAA,IAmDY0F,GAAA,C,WAnDQ9D,EAAAA,sB,uCAAAA,EAAAA,sBAAqBzB,GAAEwF,MAAM,MAAMC,OAAA,GAAO,uBAA9D,C,kBACI,IAyCU,EAzCV5F,EAAAA,EAAAA,IAyCU6F,EAAA,CAzCAC,MAAOlE,EAAAA,UAAYmE,MAAOnE,EAAAA,cAAeoE,IAAI,eAAe,iBAAe,OAArF,C,kBACI,IAEe,EAFfhG,EAAAA,EAAAA,IAEeiG,EAAA,CAFD3F,MAAM,KAAMwE,KAAK,QAA/B,C,kBACI,IAA8C,EAA9C9E,EAAAA,EAAAA,IAA8C0B,EAAA,C,WAA3BE,EAAAA,UAAUrB,K,qCAAVqB,EAAAA,UAAUrB,KAAIJ,IAAjC,0B,OAGJH,EAAAA,EAAAA,IAEeiG,EAAA,CAFD3F,MAAM,KAAKwE,KAAK,eAA9B,C,kBACI,IAAqE,EAArE9E,EAAAA,EAAAA,IAAqE0B,EAAA,C,WAAlDE,EAAAA,UAAUO,Y,qCAAVP,EAAAA,UAAUO,YAAWhC,GAAEoB,KAAK,YAA/C,0B,MAGJ2E,GACAlG,EAAAA,EAAAA,IASeiG,EAAA,M,kBARX,IAOkB,EAPlBjG,EAAAA,EAAAA,IAOkBmG,EAAA,C,WANLvE,EAAAA,cAAcwE,kC,qCAAdxE,EAAAA,cAAcwE,kCAAiCjG,GACvD,oBAAmBD,EAAAA,gBACpB4B,YAAY,cACXuE,SAAQnG,EAAAA,mBACToG,UAAA,IALJ,yD,OASJtG,EAAAA,EAAAA,IAgBeiG,EAAA,M,kBAfX,IAcW,EAdXjG,EAAAA,EAAAA,IAcWgD,EAAA,CAdDI,KAAA,IAAI,C,kBAEd,IAA8C,gBAD9ChB,EAAAA,EAAAA,IAYSC,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAXeV,EAAAA,UAAU2E,aAAW,CAArCC,EAAM7C,M,WADd/C,EAAAA,EAAAA,IAYSgD,EAAA,CAVR3B,IAAKuE,EAAKnJ,GACXkE,KAAK,UACL4B,KAAK,QACLsD,SAAA,GACC,uBAAqB,EACrBC,QAAK,GAAExG,EAAAA,mBAAmByD,IAP3B,C,kBASA,IAEa,EAFb3D,EAAAA,EAAAA,IAEamB,EAAA,CAFAC,QAASoF,EAAKG,MAAOtF,UAAU,OAA5C,C,kBACI,IAAgC,EAAhCtB,EAAAA,EAAAA,GAAgC,aAAAgD,EAAAA,EAAAA,IAAvByD,EAAKI,UAAQ,M,KAD1B,qB,KATA,8B,gBAeJ5G,EAAAA,EAAAA,IAGeiG,EAAA,M,kBAFX,IAA6E,EAA7EjG,EAAAA,EAAAA,IAA6EsB,EAAA,CAAlEC,KAAK,UAAWE,QAAK,eAAEvB,EAAAA,YAAW,kBAA7C,C,kBAA+D,IAAE,M,OACjEF,EAAAA,EAAAA,IAAgEsB,EAAA,CAApDG,QAAK,eAAEG,EAAAA,uBAAqB,IAAxC,C,kBAAkD,IAAE,M,uBAvC5D,qBA0CmBA,EAAAA,UAAUvE,KAAAA,EAAAA,EAAAA,OAA7BuD,EAAAA,EAAAA,IAOciG,GAAA,CAAA5E,IAAAA,GAAA,C,kBANV,IAKmB,EALnBjC,EAAAA,EAAAA,IAKmB8G,EAAA,CALDvG,KAAK,KAAG,CACXwG,OAAK,SAAC,IAAqC,EAArC/G,EAAAA,EAAAA,IAAqCqD,EAAA,M,kBAA5B,IAAkB,EAAlBrD,EAAAA,EAAAA,IAAkBgH,M,MAAU,K,kBACtD,IAEa,EAFbhH,EAAAA,EAAAA,IAEamB,EAAA,CAFDC,QAAQ,mBAAmBC,UAAU,OAAjD,C,kBACI,IAA+H,EAA/HrB,EAAAA,EAAAA,IAA+HsB,EAAA,CAApHE,KAAK,SAAS2B,KAAK,QAAQrD,MAAA,+BAAmC2B,QAAK,eAAEvB,EAAAA,cAAc0B,EAAAA,UAAUvE,MAAxG,C,kBAA6G,IAAM,M,mCAJ/H,kB,KA3CJ,uB,sDAwFJ,GACI0E,OACE,MAAO,CACHkF,uBAAuB,EACvBC,kBAAmB,KACnBC,UAAW,CACPZ,YAAa,IAEjBa,cAAe,CACb7G,KAAM,CAAC8G,KAAKC,uBAAuB,aAErCC,cAAe,CACXC,iBAAkB,KAClBpB,kCAAmC,KACnCjD,KAAM,IAEVsE,cAAe,CACZ1F,KAAM,GACNyC,OAAQ,EACRrB,KAAM,EACNuE,cAAc,EACdjD,WAAY,GAEfkD,eAAgB,CACdC,KAAM,EACNzE,KAAM,GACNtB,kBAAmB,MAGrBgG,wBAAyB,CACvB9F,KAAM,GACNyC,OAAQ,EACRrB,KAAM,GACNuE,cAAc,EACdjD,WAAY,GAEdqD,yBAA0B,CACxBF,KAAM,EACNzE,KAAM,GACN4E,oBAAqB,QAK7BC,UACIX,KAAKY,sBACLZ,KAAKa,4BAA4B,IAGrCC,SAAU,CACNC,UAAW,CACPC,MACI,OAAIhB,KAAKiB,OAAOC,MAAMC,mBACXnB,KAAKiB,OAAOC,MAAMC,oBAEzBnB,KAAKiB,OAAOG,OAAO,2BAA4B,gBACxC,iBAGfC,IAAIC,GACAtB,KAAKiB,OAAOG,OAAO,2BAA4BE,MAK3DC,QAAS,CACLC,SAAS5K,GACL,OAAOuI,EAAAA,EAAAA,YAAiB,CAAEvI,KAE9B6K,2BACI,MAAMC,QAAiBpJ,EAAAA,EAAAA,IAAc0H,KAAKS,0BAC1CT,KAAKQ,wBAAwB9F,KAAOgH,EAAShH,KAAKX,QAClDiG,KAAKQ,wBAAwBrD,OAASuE,EAAShH,KAAKyC,OAAS,EAC7D6C,KAAKQ,wBAAwB1E,KAAO4F,EAAShH,KAAKoB,KAClDkE,KAAKQ,wBAAwBpD,WAAasE,EAAShH,KAAK0C,WACxD4C,KAAKQ,wBAAwBH,cAAgBqB,EAAShH,KAAK2F,eAE/DoB,4BACI,MAAMC,QAAiB/L,EAAAA,EAAAA,IAAWqK,KAAKM,gBACvCN,KAAKI,cAAc1F,KAAOgH,EAAShH,KAAKX,QACxCiG,KAAKI,cAAcjD,OAASuE,EAAShH,KAAKyC,OAAS,EACnD6C,KAAKI,cAActE,KAAO4F,EAAShH,KAAKoB,KACxCkE,KAAKI,cAAchD,WAAasE,EAAShH,KAAK0C,WAC9C4C,KAAKI,cAAcC,cAAgBqB,EAAShH,KAAK2F,eAErDJ,uBAAuB0B,GACnB,MAAO,CACHC,UAAU,EACVD,QAASA,EACTE,QAAS,SAGjBC,sBACI,QAAkC,MAA9B9B,KAAKF,UAAUZ,aAChBc,KAAKF,UAAUZ,YAAYvE,OAAS,GACpCqF,KAAKF,UAAUZ,YAAYvE,OAAS,KAM3CoH,aAAa7E,GACLA,IACA8C,KAAKM,eAAeC,KAAOrD,EAAc,EACzC8C,KAAKY,wBAIboB,UACIhC,KAAKY,uBAETa,sBAAsBQ,EAAOC,GACzB,MAAMxH,QAAa/C,EAAAA,EAAAA,IAAUqI,KAAKE,eAAeiC,MAAKC,GAAQA,EAAK1H,KAAKX,UAClEsI,EAAQ3H,EAAK4H,KAAIC,IACZ,CACHC,MAAOD,EAAEhD,SACTA,SAAUgD,EAAEhD,SACZD,MAAOiD,EAAEjD,MACTtJ,GAAIuM,EAAEvM,OAGdkM,EAASG,IAGbI,cAAclM,GACVyJ,KAAK0C,SAAS,qBAAsB,KAAM,CACtCC,kBAAmB,KACnBC,iBAAkB,KAClB1I,KAAM,YACPiI,MAAK,MACJ9L,EAAAA,EAAAA,IAAYE,GAAS4L,MAAKC,IACjBA,EAAKS,UACN7C,KAAK8C,SAASC,QAAQ,QACtB/C,KAAKJ,uBAAwB,EAC7BI,KAAKY,8BAKrBoC,cACShD,KAAK8B,sBAIV9B,KAAKiD,MAAMC,aAAaC,UAASC,IAC7B,GAAIA,EAAO,CACP,MAAMnM,EAAUoM,OAAOC,OAAO,GAAItD,KAAKF,WACvC7I,EAAQsM,kBAAoBvD,KAAKF,UAAUZ,YAAYoD,KAAIkB,GAAKA,EAAExN,MAClEC,EAAAA,EAAAA,IAAoBgB,GAASkL,MAAKC,IACzBA,EAAKS,UACN7C,KAAK8C,SAASC,QAAQ,QACtB/C,KAAKJ,uBAAwB,EAC7BI,KAAKF,UAAY,CAAEZ,YAAa,IAChCc,KAAKY,+BAIbZ,KAAK8C,SAASW,MAAM,eAhBxBzD,KAAK8C,SAASY,QAAQ,0BAsB9BC,mBAAmBrH,GACf0D,KAAKF,UAAUZ,YAAY0E,OAAOtH,EAAO,IAE7CuH,mBAAmBC,GACV9D,KAAKF,UAAUZ,YAAY6E,MAAKrJ,GAAQA,EAAK1E,IAAM8N,EAAK9N,MACzDgK,KAAKF,UAAUZ,YAAY8E,KAAKF,GAGpC9D,KAAKE,cAAcnB,kCAAoC,MAE3DkF,eACIjE,KAAKJ,uBAAwB,EAC7BI,KAAKF,UAAY,CAAEZ,YAAa,KAEpCgF,WAAW3N,IACPR,EAAAA,EAAAA,IAASQ,GAAS4L,MAAKC,IACfA,EAAKS,UACL7C,KAAKJ,uBAAwB,EAC7BI,KAAKF,UAAYsC,EAAK1H,UAIlCyJ,iBAAiB5N,EAAS4H,GACtB6B,KAAKoE,QAAQJ,KAAK,CAACK,KAAM,WAAW9N,EAAS0L,MAAO,CAAC9D,UAAWA,MAGpEmG,eAAeC,GACX,MAAMhO,EAAUgO,EAAgBhO,QAC1BgB,EAAYgN,EAAgBhN,UAClCyI,KAAKoE,QAAQJ,KAAK,CACdK,KAAM,WAAa9N,EAAU,aAAegB,EAAa,aACzD0K,MAAO,CAAErE,YAAa2G,EAAgB3G,YAAaO,UAAWoG,EAAgBpG,cAGtF0C,4BAA4B3D,GACpBA,IACA8C,KAAKS,yBAAyBF,KAAOrD,EAAc,EACnD8C,KAAKwE,uBAGbC,iBAAiBlN,IACbgB,EAAAA,EAAAA,IAAehB,GAAW4K,MAAKC,IACtBA,EAAKS,UACN7C,KAAK8C,SAASC,QAAQ,QACtB/C,KAAKwE,0BAIjBE,gBAAgB1O,GACZgK,KAAK0C,SAAS,WAAY,KAAM,CAC5BC,kBAAmB,KACnBC,iBAAkB,KAClB1I,KAAM,YACPiI,MAAK,MACJzK,EAAAA,EAAAA,IAAkBsI,KAAKzJ,QAASP,GAAImM,MAAKC,IAChCA,EAAKS,UACN7C,KAAK8C,SAASC,QAAQ,QACtB/C,KAAKwE,6BAKrBzL,WAAW4L,GACP3E,KAAKiB,OAAOG,OAAO,2BAA4BuD,EAAIC,MAAM1L,S,UCxdrE,MAAM2L,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE","sources":["webpack://databasir/./src/api/Group.js","webpack://databasir/./src/api/Project.js","webpack://databasir/./src/api/User.js","webpack://databasir/./src/api/UserProject.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/groups'\r\n\r\nexport const listGroups = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const getGroup= (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateGroup = (body) => {\r\n if (body.id && body.id != null) {\r\n return updateGroup(body)\r\n } else {\r\n return createGroup(body)\r\n }\r\n}\r\n\r\nexport const createGroup = (body) => {\r\n return axios.post(base, body)\r\n}\r\n\r\nexport const updateGroup = (body) => {\r\n return axios.patch(base, body)\r\n}\r\n\r\nexport const deleteGroup = (id) => {\r\n return axios.delete(base + '/' + id)\r\n}\r\n\r\nexport const listGroupMembers = (groupId, pageQuery) => {\r\n return axios.get(base + '/' + groupId + '/members', {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const addGroupMember = (groupId, body) => {\r\n return axios.post(base + '/' + groupId + '/members', body)\r\n}\r\n\r\nexport const removeGroupMember = (groupId, userId) => {\r\n return axios.delete(base +'/'+groupId+'/members/'+userId)\r\n}\r\n\r\nexport const updateGroupMemberRole = (groupId, userId, role) => {\r\n const body = {\r\n role: role\r\n }\r\n return axios.patch(base +'/'+groupId+'/members/'+userId, body)\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/projects'\r\n\r\nexport const listProjects = (parameters) => {\r\n return axios.get(base, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const getProjectById = (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateProject = (request) => {\r\n if (request.id) {\r\n return updateProject(request)\r\n } else {\r\n return createProject(request)\r\n }\r\n}\r\n\r\nexport const createProject = (request) => {\r\n return axios.post(base, request);\r\n}\r\n\r\nexport const testConnection = (request) => {\r\n return axios.post(base + '/test_connection', request)\r\n}\r\n\r\nexport const listProjectManualTasks = (id, body) => {\r\n return axios.post(base + \"/\" + id +\"/list_manual_tasks\", body)\r\n}\r\n\r\nexport const cancelProjectTask = (projectId, taskId) => {\r\n return axios.patch(base + \"/\" + projectId +\"/tasks/\" + taskId+\"/cancel\")\r\n}\r\n\r\nconst groupProjectBase = '/api/v1.0/groups'\r\n\r\nexport const updateProject = (request) => {\r\n return axios.patch(groupProjectBase +'/'+request.groupId+'/projects', request);\r\n}\r\n\r\nexport const deleteProjectById = (groupId, id) => {\r\n return axios.delete(groupProjectBase + '/' +groupId +'/projects/' + id);\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const deleteByUserId = (userId) => {\r\n return axios.delete(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/user_projects/favorites'\r\n\r\nexport const listFavorites = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const removeFavorite = (projectId) => {\r\n return axios.delete(base + \"/\" + projectId)\r\n}\r\n\r\nexport const addFavorite = (projectId) => {\r\n return axios.post(base +'/' + projectId)\r\n}","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=b12b6048\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=b12b6048&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["base","listGroups","pageQuery","axios","params","getGroup","id","createOrUpdateGroup","body","updateGroup","createGroup","deleteGroup","listGroupMembers","groupId","addGroupMember","removeGroupMember","userId","updateGroupMemberRole","role","listProjects","parameters","getProjectById","createOrUpdateProject","request","updateProject","createProject","testConnection","listProjectManualTasks","cancelProjectTask","projectId","taskId","groupProjectBase","deleteProjectById","listUsers","enableUser","disableUser","getByUserId","deleteByUserId","createUser","renewPassword","addSysOwnerTo","removeSysOwnerFrom","updatePassword","updateNickname","listFavorites","removeFavorite","addFavorite","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","xs","sm","md","lg","xl","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","length","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","group","_component_el_card","shadow","onMouseenter","onMouseleave","class","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","slice","owner","index","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_5","_component_database_icon","databaseType","groupName","_ctx","_component_el_dialog","width","center","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_10","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","this","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","onFavoriteProjectPageChange","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","async","jsonData","message","required","trigger","requiredGroupOwners","onPageChange","onQuery","query","callback","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","Object","assign","groupOwnerUserIds","r","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","toGroupDashboard","$router","path","toDocumentPage","favoriteProject","fetchUserFavorites","onRemoveFavorite","onProjectDelete","tab","props","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/206-legacy.8d16f9c5.js b/api/src/main/resources/static/js/314-legacy.e55474ea.js similarity index 51% rename from api/src/main/resources/static/js/206-legacy.8d16f9c5.js rename to api/src/main/resources/static/js/314-legacy.e55474ea.js index cb72ec3..a237a12 100644 --- a/api/src/main/resources/static/js/206-legacy.8d16f9c5.js +++ b/api/src/main/resources/static/js/314-legacy.e55474ea.js @@ -1,2 +1,2 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[206],{47042:function(e,t,n){var r=n(82109),u=n(17854),o=n(43157),a=n(4411),i=n(70111),l=n(51400),c=n(26244),s=n(45656),p=n(86135),f=n(5112),m=n(81194),d=n(50206),g=m("slice"),w=f("species"),h=u.Array,W=Math.max;r({target:"Array",proto:!0,forced:!g},{slice:function(e,t){var n,r,u,f=s(this),m=c(f),g=l(e,m),_=l(void 0===t?m:t,m);if(o(f)&&(n=f.constructor,a(n)&&(n===h||o(n.prototype))?n=void 0:i(n)&&(n=n[w],null===n&&(n=void 0)),n===h||void 0===n))return d(f,g,_);for(r=new(void 0===n?h:n)(W(_-g,0)),u=0;g<_;g++,u++)g in f&&p(r,u,f[g]);return r.length=u,r}})},32206:function(e,t,n){n.r(t),n.d(t,{default:function(){return E}});n(68309),n(82526),n(41817),n(47042);var r=n(66252),u=n(3577),o=n(49963),a={style:{display:"flex","justify-content":"space-between"}},i=["onClick"],l={style:{color:"#909399","font-size":"13px"}},c={style:{color:"#909399"}},s={key:1},p=(0,r.Uk)(" 更多 "),f=(0,r.Uk)("查看文档"),m=(0,r.Uk)("取消关注"),d=(0,r.Uk)("删除项目"),g=(0,r._)("h2",null,"组长管理",-1),w=(0,r.Uk)("保存"),h=(0,r.Uk)("取消"),W=(0,r.Uk)("删除分组"),_=(0,r.Uk)("确认删除分组");function v(e,t,n,v,D,P){var y=(0,r.up)("el-button"),b=(0,r.up)("el-tooltip"),k=(0,r.up)("el-col"),C=(0,r.up)("el-input"),j=(0,r.up)("el-row"),G=(0,r.up)("el-empty"),O=(0,r.up)("el-link"),E=(0,r.up)("user"),z=(0,r.up)("el-icon"),U=(0,r.up)("el-tag"),x=(0,r.up)("arrow-down"),R=(0,r.up)("el-dropdown-item"),N=(0,r.up)("el-dropdown-menu"),S=(0,r.up)("el-dropdown"),T=(0,r.up)("el-space"),V=(0,r.up)("folder"),F=(0,r.up)("el-card"),I=(0,r.up)("el-main"),$=(0,r.up)("el-pagination"),Q=(0,r.up)("el-footer"),q=(0,r.up)("el-container"),A=(0,r.up)("el-tab-pane"),L=(0,r.up)("el-table-column"),M=(0,r.up)("database-icon"),Y=(0,r.up)("el-table"),B=(0,r.up)("el-tabs"),H=(0,r.up)("el-form-item"),K=(0,r.up)("el-autocomplete"),Z=(0,r.up)("el-form"),J=(0,r.up)("warning-filled"),X=(0,r.up)("el-collapse-item"),ee=(0,r.up)("el-collapse"),te=(0,r.up)("el-dialog"),ne=(0,r.Q2)("require-roles");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r.Wm)(B,{modelValue:P.activeTab,"onUpdate:modelValue":t[3]||(t[3]=function(e){return P.activeTab=e}),onTabClick:P.onTabClick},{default:(0,r.w5)((function(){return[(0,r.Wm)(A,{label:"项目分组",name:"groupListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(I,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(j,{gutter:12},{default:(0,r.w5)((function(){return[(0,r.wy)(((0,r.wg)(),(0,r.j4)(k,{xs:24,sm:24,md:12,lg:5,xl:3},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"创建一个分组",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"plain",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=function(e){return P.toCreatePage()})})]})),_:1})]})),_:1})),[[ne,["SYS_OWNER"]]]),(0,r.Wm)(k,{xs:24,sm:24,md:12,lg:8,xl:8},{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{onChange:P.onQuery,modelValue:D.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=function(e){return D.groupPageQuery.groupNameContains=e}),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])]})),_:1})]})),_:1}),0==D.groupPageData.data.length?((0,r.wg)(),(0,r.j4)(j,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(k,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(G,{description:"请先创建分组"})]})),_:1})]})),_:1})):((0,r.wg)(),(0,r.j4)(j,{key:1,gutter:20},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(D.groupPageData.data,(function(e){return(0,r.wg)(),(0,r.j4)(k,{xs:24,sm:12,md:12,lg:8,xl:6,key:e.id,style:{"margin-bottom":"20px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(F,{shadow:"hover",onMouseenter:function(t){return D.mouseEnterGroupId=e.id},onMouseleave:t[2]||(t[2]=function(e){return D.mouseEnterGroupId=null}),onClick:function(t){return P.toGroupDashboard(e.id,e.name)},class:"box"},{default:(0,r.w5)((function(){return[(0,r._)("div",a,[(0,r.Wm)(O,{underline:!1},{default:(0,r.w5)((function(){return[(0,r._)("div",{onClick:function(t){return P.toGroupDashboard(e.id,e.name)},style:{margin:"0 auto"}},[(0,r._)("h4",null,(0,u.zw)(e.name),1)],8,i)]})),_:2},1024),(0,r.wy)((0,r.Wm)(O,{underline:!1,onClick:(0,o.iM)((function(t){return P.toEditPage(e.id,e.name)}),["stop"]),icon:"Edit",style:{"margin-left":"8px"}},null,8,["onClick"]),[[o.F8,e.id==D.mouseEnterGroupId],[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]])]),(0,r.Wm)(T,{direction:"vertical",alignment:"stretch",size:16},{default:(0,r.w5)((function(){return[(0,r._)("span",l,(0,u.zw)(e.description),1),(0,r.Wm)(T,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"组长"},{default:(0,r.w5)((function(){return[(0,r.Wm)(z,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(E)]})),_:1})]})),_:1}),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(0,2),(function(e,t){return(0,r.wg)(),(0,r.j4)(U,{key:t,type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e),1)]})),_:2},1024)})),128)),e.groupOwnerNames.length>2?((0,r.wg)(),(0,r.j4)(S,{key:0},{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(2),(function(e,t){return(0,r.wg)(),(0,r.j4)(R,{key:t},{default:(0,r.w5)((function(){return[(0,r.Wm)(U,{type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e),1)]})),_:2},1024)]})),_:2},1024)})),128))]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r.Wm)(z,{class:"el-icon--right"},{default:(0,r.w5)((function(){return[(0,r.Wm)(x)]})),_:1})]})),_:2},1024)):(0,r.kq)("",!0)]})),_:2},1024),(0,r.Wm)(T,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"项目数"},{default:(0,r.w5)((function(){return[(0,r.Wm)(z,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(V)]})),_:1})]})),_:1}),(0,r._)("span",c,(0,u.zw)(e.projectCount),1)]})),_:2},1024)]})),_:2},1024)]})),_:2},1032,["onMouseenter","onClick"])]})),_:2},1024)})),128))]})),_:1}))]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.groupPageData.number,"page-size":D.groupPageData.size,"page-count":D.groupPageData.totalPages,onCurrentChange:P.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1}),(0,r.Wm)(A,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(I,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(Y,{data:D.favoriteProjectPageData.data,stripe:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(L,{prop:"projectId",label:"项目 ID"}),(0,r.Wm)(L,{prop:"projectName",label:"项目名称"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(O,{onClick:function(t){return P.toDocumentPage(e.row)}},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,u.zw)(e.row.projectName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"projectDescription",label:"项目描述"}),(0,r.Wm)(L,{label:"定时同步",align:"center"},{default:(0,r.w5)((function(e){return[e.row.isAutoSync?((0,r.wg)(),(0,r.j4)(U,{key:0},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e.row.autoSyncCron),1)]})),_:2},1024)):((0,r.wg)(),(0,r.iD)("span",s," 无 "))]})),_:1}),(0,r.Wm)(L,{label:"数据库类型"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(M,{databaseType:e.row.databaseType,icon:e.row.icon},null,8,["databaseType","icon"])]})),_:1}),(0,r.Wm)(L,{prop:"databaseName",label:"数据库名称"}),(0,r.Wm)(L,{prop:"groupName",label:"所属分组"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(O,{onClick:function(t){return P.toGroupDashboard(e.row.groupId,e.row.groupName)},icon:"List"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e.row.groupName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"createAt",label:"关注时间"}),(0,r.Wm)(L,{label:"操作"},{default:(0,r.w5)((function(t){return[(0,r.Wm)(S,null,{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(R,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"primary",size:"small",onClick:(0,o.iM)((function(e){return P.toDocumentPage(t.row)}),["stop"]),icon:"View"},{default:(0,r.w5)((function(){return[f]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.Wm)(R,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"warning",size:"small",onClick:(0,o.iM)((function(e){return P.onRemoveFavorite(t.row.projectId)}),["stop"]),icon:"StarFilled"},{default:(0,r.w5)((function(){return[m]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.wy)(((0,r.wg)(),(0,r.j4)(R,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"danger",size:"small",onClick:(0,o.iM)((function(e){return P.onProjectDelete(t.row.projectId)}),["stop"]),icon:"Remove"},{default:(0,r.w5)((function(){return[d]})),_:2},1032,["onClick"])]})),_:2},1024)),[[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r._)("span",null,[p,(0,r.Wm)(z,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(x)]})),_:1})])]})),_:2},1024)]})),_:1})]})),_:1},8,["data"])]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.favoriteProjectPageData.number,"page-size":D.favoriteProjectPageData.size,"page-count":D.favoriteProjectPageData.totalPages,onCurrentChange:P.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1})]})),_:1},8,["modelValue","onTabClick"]),(0,r.Wm)(te,{modelValue:D.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=function(e){return D.isShowEditGroupDialog=e}),width:"38%",center:"","destroy-on-close":""},{default:(0,r.w5)((function(){return[(0,r.Wm)(Z,{model:D.groupData,rules:D.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(H,{label:"名称",prop:"name"},{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{modelValue:D.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=function(e){return D.groupData.name=e})},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(H,{label:"描述",prop:"description"},{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{modelValue:D.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=function(e){return D.groupData.description=e}),type:"textarea"},null,8,["modelValue"])]})),_:1}),g,(0,r.Wm)(H,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(K,{modelValue:D.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=function(e){return D.userQueryData.nicknameOrUsernameOrEmailContains=e}),"fetch-suggestions":P.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:P.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])]})),_:1}),(0,r.Wm)(H,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(T,{wrap:""},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(D.groupData.groupOwners,(function(e,t){return(0,r.wg)(),(0,r.j4)(U,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:function(e){return P.onGroupOwnerRemove(t)}},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:e.email,placement:"top"},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,u.zw)(e.nickname),1)]})),_:2},1032,["content"])]})),_:2},1032,["onClose"])})),128))]})),_:1})]})),_:1}),(0,r.Wm)(H,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"primary",onClick:t[7]||(t[7]=function(e){return P.onGroupSave("groupFormRef")})},{default:(0,r.w5)((function(){return[w]})),_:1}),(0,r.Wm)(y,{onClick:t[8]||(t[8]=function(e){return D.isShowEditGroupDialog=!1})},{default:(0,r.w5)((function(){return[h]})),_:1})]})),_:1})]})),_:1},8,["model","rules"]),D.groupData.id?((0,r.wg)(),(0,r.j4)(ee,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(X,{name:"1"},{title:(0,r.w5)((function(){return[(0,r.Wm)(z,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(J)]})),_:1}),W]})),default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=function(e){return P.onGroupDelete(D.groupData.id)})},{default:(0,r.w5)((function(){return[_]})),_:1})]})),_:1})]})),_:1})]})),_:1})):(0,r.kq)("",!0)]})),_:1},8,["modelValue"])],64)}var D=n(48534),P=(n(21249),n(40561),n(41539),n(35666),n(78337)),y=n(63110),b=n(19080),k=n(79324),C=n(51836),j={data:function(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:8,totalElements:0,totalPages:0},groupPageQuery:{page:0,size:12,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:0},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created:function(){this.fetchGroupsFunction(),this.onFavoriteProjectPageChange(1)},computed:{activeTab:{get:function(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set:function(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit:function(e){return C.E.hasAnyRoles([e])},fetchUserFavorites:function(){var e=this;return(0,D.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,b.V$)(e.favoriteProjectPageQuery);case 2:n=t.sent,e.favoriteProjectPageData.data=n.data.content,e.favoriteProjectPageData.number=n.data.number+1,e.favoriteProjectPageData.size=n.data.size,e.favoriteProjectPageData.totalPages=n.data.totalPages,e.favoriteProjectPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},fetchGroupsFunction:function(){var e=this;return(0,D.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,P.Wq)(e.groupPageQuery);case 2:n=t.sent,e.groupPageData.data=n.data.content,e.groupPageData.number=n.data.number+1,e.groupPageData.size=n.data.size,e.groupPageData.totalPages=n.data.totalPages,e.groupPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},requiredInputValidRule:function(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners:function(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},onPageChange:function(e){e&&(this.groupPageQuery.page=e-1,this.fetchGroupsFunction())},onQuery:function(){this.fetchGroupsFunction()},queryUsersAsync:function(e,t){var n=this;return(0,D.Z)(regeneratorRuntime.mark((function e(){var r,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,(0,y.yw)(n.userQueryData).then((function(e){return e.data.content}));case 2:r=e.sent,u=r.map((function(e){return{value:e.nickname,nickname:e.nickname,email:e.email,id:e.id}})),t(u);case 5:case"end":return e.stop()}}),e)})))()},onGroupDelete:function(e){var t=this;this.$confirm("确认删除该分组?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){(0,P.iE)(e).then((function(e){e.errCode||(t.$message.success("删除成功"),t.isShowEditGroupDialog=!1,t.fetchGroupsFunction())}))}))},onGroupSave:function(){var e=this;this.requiredGroupOwners()?this.$refs.groupFormRef.validate((function(t){if(t){var n=Object.assign({},e.groupData);n.groupOwnerUserIds=e.groupData.groupOwners.map((function(e){return e.id})),(0,P.vB)(n).then((function(t){t.errCode||(e.$message.success("保存成功"),e.isShowEditGroupDialog=!1,e.groupData={groupOwners:[]},e.fetchGroupsFunction())}))}else e.$message.error("请填写表单必填项")})):this.$message.warning("组长人数至少需要 1 人,最多为 20 人")},onGroupOwnerRemove:function(e){this.groupData.groupOwners.splice(e,1)},onGroupOwnerSelect:function(e){this.groupData.groupOwners.some((function(t){return t.id==e.id}))||this.groupData.groupOwners.push(e),this.userQueryData.nicknameOrUsernameOrEmailContains=null},toCreatePage:function(){this.isShowEditGroupDialog=!0,this.groupData={groupOwners:[]}},toEditPage:function(e){var t=this;(0,P.ex)(e).then((function(e){e.errCode||(t.isShowEditGroupDialog=!0,t.groupData=e.data)}))},toGroupDashboard:function(e,t){this.$router.push({path:"/groups/"+e,query:{groupName:t}})},toDocumentPage:function(e){var t=e.groupId,n=e.projectId;this.$router.push({path:"/groups/"+t+"/projects/"+n+"/documents",query:{projectName:e.projectName,groupName:e.groupName}})},onFavoriteProjectPageChange:function(e){e&&(this.favoriteProjectPageQuery.page=e-1,this.fetchUserFavorites())},onRemoveFavorite:function(e){var t=this;(0,b.Ni)(e).then((function(e){e.errCode||(t.$message.success("成功取消"),t.fetchUserFavorites())}))},onProjectDelete:function(e){var t=this;this.$confirm("确认删除该项目?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){(0,k.jI)(t.groupId,e).then((function(e){e.errCode||(t.$message.success("删除成功"),t.fetchUserFavorites())}))}))},onTabClick:function(e){this.$store.commit("switchGroupListActiveTab",e.props.name)}}},G=n(83744);const O=(0,G.Z)(j,[["render",v]]);var E=O}}]); -//# sourceMappingURL=206-legacy.8d16f9c5.js.map \ No newline at end of file +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[314],{47042:function(e,t,n){var r=n(82109),u=n(17854),o=n(43157),a=n(4411),i=n(70111),l=n(51400),c=n(26244),s=n(45656),p=n(86135),f=n(5112),d=n(81194),m=n(50206),g=d("slice"),w=f("species"),h=u.Array,W=Math.max;r({target:"Array",proto:!0,forced:!g},{slice:function(e,t){var n,r,u,f=s(this),d=c(f),g=l(e,d),_=l(void 0===t?d:t,d);if(o(f)&&(n=f.constructor,a(n)&&(n===h||o(n.prototype))?n=void 0:i(n)&&(n=n[w],null===n&&(n=void 0)),n===h||void 0===n))return m(f,g,_);for(r=new(void 0===n?h:n)(W(_-g,0)),u=0;g<_;g++,u++)g in f&&p(r,u,f[g]);return r.length=u,r}})},36314:function(e,t,n){n.r(t),n.d(t,{default:function(){return z}});n(68309),n(82526),n(41817),n(47042);var r=n(66252),u=n(3577),o=n(49963),a={style:{display:"flex","justify-content":"space-between"}},i=["onClick"],l={style:{color:"#909399","font-size":"13px"}},c={style:{color:"#909399"}},s={key:1},p=(0,r.Uk)(" 更多 "),f=(0,r.Uk)("查看文档"),d=(0,r.Uk)("取消关注"),m=(0,r.Uk)("删除项目"),g=(0,r._)("h2",null,"组长管理",-1),w=(0,r.Uk)("保存"),h=(0,r.Uk)("取消"),W=(0,r.Uk)("删除分组"),_=(0,r.Uk)("确认删除分组");function v(e,t,n,v,D,P){var y=(0,r.up)("el-button"),b=(0,r.up)("el-tooltip"),k=(0,r.up)("el-col"),C=(0,r.up)("el-input"),j=(0,r.up)("el-row"),G=(0,r.up)("el-empty"),O=(0,r.up)("el-link"),E=(0,r.up)("user"),z=(0,r.up)("el-icon"),U=(0,r.up)("el-tag"),x=(0,r.up)("arrow-down"),R=(0,r.up)("el-dropdown-item"),N=(0,r.up)("el-dropdown-menu"),S=(0,r.up)("el-dropdown"),T=(0,r.up)("el-space"),V=(0,r.up)("folder"),F=(0,r.up)("el-card"),I=(0,r.up)("el-main"),$=(0,r.up)("el-pagination"),Q=(0,r.up)("el-footer"),q=(0,r.up)("el-container"),A=(0,r.up)("el-tab-pane"),L=(0,r.up)("el-table-column"),M=(0,r.up)("database-icon"),Y=(0,r.up)("el-table"),B=(0,r.up)("el-tabs"),H=(0,r.up)("el-form-item"),K=(0,r.up)("el-autocomplete"),Z=(0,r.up)("el-form"),J=(0,r.up)("warning-filled"),X=(0,r.up)("el-collapse-item"),ee=(0,r.up)("el-collapse"),te=(0,r.up)("el-dialog"),ne=(0,r.Q2)("require-roles");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r.Wm)(B,{modelValue:P.activeTab,"onUpdate:modelValue":t[3]||(t[3]=function(e){return P.activeTab=e}),onTabClick:P.onTabClick},{default:(0,r.w5)((function(){return[(0,r.Wm)(A,{label:"项目分组",name:"groupListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(I,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(j,{gutter:12},{default:(0,r.w5)((function(){return[(0,r.wy)(((0,r.wg)(),(0,r.j4)(k,{xs:24,sm:24,md:12,lg:5,xl:3},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"创建一个分组",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"plain",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=function(e){return P.toCreatePage()})})]})),_:1})]})),_:1})),[[ne,["SYS_OWNER"]]]),(0,r.Wm)(k,{xs:24,sm:24,md:12,lg:8,xl:8},{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{onChange:P.onQuery,modelValue:D.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=function(e){return D.groupPageQuery.groupNameContains=e}),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])]})),_:1})]})),_:1}),0==D.groupPageData.data.length?((0,r.wg)(),(0,r.j4)(j,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(k,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(G,{description:"请先创建分组"})]})),_:1})]})),_:1})):((0,r.wg)(),(0,r.j4)(j,{key:1,gutter:20},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(D.groupPageData.data,(function(e){return(0,r.wg)(),(0,r.j4)(k,{xs:24,sm:12,md:12,lg:8,xl:6,key:e.id,style:{"margin-bottom":"20px"}},{default:(0,r.w5)((function(){return[(0,r.Wm)(F,{shadow:"hover",onMouseenter:function(t){return D.mouseEnterGroupId=e.id},onMouseleave:t[2]||(t[2]=function(e){return D.mouseEnterGroupId=null}),onClick:function(t){return P.toGroupDashboard(e.id,e.name)},class:"box"},{default:(0,r.w5)((function(){return[(0,r._)("div",a,[(0,r.Wm)(O,{underline:!1},{default:(0,r.w5)((function(){return[(0,r._)("div",{onClick:function(t){return P.toGroupDashboard(e.id,e.name)},style:{margin:"0 auto"}},[(0,r._)("h4",null,(0,u.zw)(e.name),1)],8,i)]})),_:2},1024),(0,r.wy)((0,r.Wm)(O,{underline:!1,onClick:(0,o.iM)((function(t){return P.toEditPage(e.id,e.name)}),["stop"]),icon:"Edit",style:{"margin-left":"8px"}},null,8,["onClick"]),[[o.F8,e.id==D.mouseEnterGroupId],[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]])]),(0,r.Wm)(T,{direction:"vertical",alignment:"stretch",size:16},{default:(0,r.w5)((function(){return[(0,r._)("span",l,(0,u.zw)(e.description),1),(0,r.Wm)(T,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"组长"},{default:(0,r.w5)((function(){return[(0,r.Wm)(z,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(E)]})),_:1})]})),_:1}),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(0,2),(function(e,t){return(0,r.wg)(),(0,r.j4)(U,{key:t,type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e),1)]})),_:2},1024)})),128)),e.groupOwnerNames.length>2?((0,r.wg)(),(0,r.j4)(S,{key:0},{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.groupOwnerNames.slice(2),(function(e,t){return(0,r.wg)(),(0,r.j4)(R,{key:t},{default:(0,r.w5)((function(){return[(0,r.Wm)(U,{type:"info"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e),1)]})),_:2},1024)]})),_:2},1024)})),128))]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r.Wm)(z,{class:"el-icon--right"},{default:(0,r.w5)((function(){return[(0,r.Wm)(x)]})),_:1})]})),_:2},1024)):(0,r.kq)("",!0)]})),_:2},1024),(0,r.Wm)(T,{wrap:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"项目数"},{default:(0,r.w5)((function(){return[(0,r.Wm)(z,{color:"#909399"},{default:(0,r.w5)((function(){return[(0,r.Wm)(V)]})),_:1})]})),_:1}),(0,r._)("span",c,(0,u.zw)(e.projectCount),1)]})),_:2},1024)]})),_:2},1024)]})),_:2},1032,["onMouseenter","onClick"])]})),_:2},1024)})),128))]})),_:1}))]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.groupPageData.number,"page-size":D.groupPageData.size,"page-count":D.groupPageData.totalPages,onCurrentChange:P.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1}),(0,r.Wm)(A,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,r.w5)((function(){return[(0,r.Wm)(q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(I,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(Y,{data:D.favoriteProjectPageData.data,stripe:""},{default:(0,r.w5)((function(){return[(0,r.Wm)(L,{prop:"projectId",label:"项目 ID"}),(0,r.Wm)(L,{prop:"projectName",label:"项目名称"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(O,{onClick:function(t){return P.toDocumentPage(e.row)}},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,u.zw)(e.row.projectName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"projectDescription",label:"项目描述"}),(0,r.Wm)(L,{label:"定时同步",align:"center"},{default:(0,r.w5)((function(e){return[e.row.isAutoSync?((0,r.wg)(),(0,r.j4)(U,{key:0},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e.row.autoSyncCron),1)]})),_:2},1024)):((0,r.wg)(),(0,r.iD)("span",s," 无 "))]})),_:1}),(0,r.Wm)(L,{label:"数据库类型"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(M,{databaseType:e.row.databaseType,icon:e.row.icon},null,8,["databaseType","icon"])]})),_:1}),(0,r.Wm)(L,{prop:"databaseName",label:"数据库名称"}),(0,r.Wm)(L,{prop:"groupName",label:"所属分组"},{default:(0,r.w5)((function(e){return[(0,r.Wm)(O,{onClick:function(t){return P.toGroupDashboard(e.row.groupId,e.row.groupName)},icon:"List"},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,u.zw)(e.row.groupName),1)]})),_:2},1032,["onClick"])]})),_:1}),(0,r.Wm)(L,{prop:"createAt",label:"关注时间"}),(0,r.Wm)(L,{label:"操作"},{default:(0,r.w5)((function(t){return[(0,r.Wm)(S,null,{dropdown:(0,r.w5)((function(){return[(0,r.Wm)(N,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(R,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"primary",size:"small",onClick:(0,o.iM)((function(e){return P.toDocumentPage(t.row)}),["stop"]),icon:"View"},{default:(0,r.w5)((function(){return[f]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.Wm)(R,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"warning",size:"small",onClick:(0,o.iM)((function(e){return P.onRemoveFavorite(t.row.projectId)}),["stop"]),icon:"StarFilled"},{default:(0,r.w5)((function(){return[d]})),_:2},1032,["onClick"])]})),_:2},1024),(0,r.wy)(((0,r.wg)(),(0,r.j4)(R,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"danger",size:"small",onClick:(0,o.iM)((function(e){return P.onProjectDelete(t.row.projectId)}),["stop"]),icon:"Remove"},{default:(0,r.w5)((function(){return[m]})),_:2},1032,["onClick"])]})),_:2},1024)),[[ne,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])]})),_:2},1024)]})),default:(0,r.w5)((function(){return[(0,r._)("span",null,[p,(0,r.Wm)(z,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(x)]})),_:1})])]})),_:2},1024)]})),_:1})]})),_:1},8,["data"])]})),_:1}),(0,r.Wm)(Q,null,{default:(0,r.w5)((function(){return[(0,r.Wm)($,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:D.favoriteProjectPageData.number,"page-size":D.favoriteProjectPageData.size,"page-count":D.favoriteProjectPageData.totalPages,onCurrentChange:P.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])]})),_:1})]})),_:1})]})),_:1})]})),_:1},8,["modelValue","onTabClick"]),(0,r.Wm)(te,{modelValue:D.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=function(e){return D.isShowEditGroupDialog=e}),center:"","destroy-on-close":"",width:P.dialogWidth()},{default:(0,r.w5)((function(){return[(0,r.Wm)(Z,{model:D.groupData,rules:D.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(H,{label:"名称",prop:"name"},{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{modelValue:D.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=function(e){return D.groupData.name=e})},null,8,["modelValue"])]})),_:1}),(0,r.Wm)(H,{label:"描述",prop:"description"},{default:(0,r.w5)((function(){return[(0,r.Wm)(C,{modelValue:D.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=function(e){return D.groupData.description=e}),type:"textarea"},null,8,["modelValue"])]})),_:1}),g,(0,r.Wm)(H,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(K,{modelValue:D.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=function(e){return D.userQueryData.nicknameOrUsernameOrEmailContains=e}),"fetch-suggestions":P.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:P.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])]})),_:1}),(0,r.Wm)(H,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(T,{wrap:""},{default:(0,r.w5)((function(){return[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(D.groupData.groupOwners,(function(e,t){return(0,r.wg)(),(0,r.j4)(U,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:function(e){return P.onGroupOwnerRemove(t)}},{default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:e.email,placement:"top"},{default:(0,r.w5)((function(){return[(0,r._)("span",null,(0,u.zw)(e.nickname),1)]})),_:2},1032,["content"])]})),_:2},1032,["onClose"])})),128))]})),_:1})]})),_:1}),(0,r.Wm)(H,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{type:"primary",onClick:t[7]||(t[7]=function(e){return P.onGroupSave("groupFormRef")})},{default:(0,r.w5)((function(){return[w]})),_:1}),(0,r.Wm)(y,{onClick:t[8]||(t[8]=function(e){return D.isShowEditGroupDialog=!1})},{default:(0,r.w5)((function(){return[h]})),_:1})]})),_:1})]})),_:1},8,["model","rules"]),D.groupData.id?((0,r.wg)(),(0,r.j4)(ee,{key:0},{default:(0,r.w5)((function(){return[(0,r.Wm)(X,{name:"1"},{title:(0,r.w5)((function(){return[(0,r.Wm)(z,null,{default:(0,r.w5)((function(){return[(0,r.Wm)(J)]})),_:1}),W]})),default:(0,r.w5)((function(){return[(0,r.Wm)(b,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,r.w5)((function(){return[(0,r.Wm)(y,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=function(e){return P.onGroupDelete(D.groupData.id)})},{default:(0,r.w5)((function(){return[_]})),_:1})]})),_:1})]})),_:1})]})),_:1})):(0,r.kq)("",!0)]})),_:1},8,["modelValue","width"])],64)}var D=n(48534),P=(n(21249),n(40561),n(41539),n(35666),n(78337)),y=n(63110),b=n(19080),k=n(79324),C=n(51836),j=n(98968),G={data:function(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:8,totalElements:0,totalPages:0},groupPageQuery:{page:0,size:12,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:0},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created:function(){this.fetchGroupsFunction(),this.onFavoriteProjectPageChange(1)},computed:{activeTab:{get:function(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set:function(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit:function(e){return C.E.hasAnyRoles([e])},fetchUserFavorites:function(){var e=this;return(0,D.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,b.V$)(e.favoriteProjectPageQuery);case 2:n=t.sent,e.favoriteProjectPageData.data=n.data.content,e.favoriteProjectPageData.number=n.data.number+1,e.favoriteProjectPageData.size=n.data.size,e.favoriteProjectPageData.totalPages=n.data.totalPages,e.favoriteProjectPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},fetchGroupsFunction:function(){var e=this;return(0,D.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,P.Wq)(e.groupPageQuery);case 2:n=t.sent,e.groupPageData.data=n.data.content,e.groupPageData.number=n.data.number+1,e.groupPageData.size=n.data.size,e.groupPageData.totalPages=n.data.totalPages,e.groupPageData.totalElements=n.data.totalElements;case 8:case"end":return t.stop()}}),t)})))()},requiredInputValidRule:function(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners:function(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},onPageChange:function(e){e&&(this.groupPageQuery.page=e-1,this.fetchGroupsFunction())},onQuery:function(){this.fetchGroupsFunction()},queryUsersAsync:function(e,t){var n=this;return(0,D.Z)(regeneratorRuntime.mark((function e(){var r,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,(0,y.yw)(n.userQueryData).then((function(e){return e.data.content}));case 2:r=e.sent,u=r.map((function(e){return{value:e.nickname,nickname:e.nickname,email:e.email,id:e.id}})),t(u);case 5:case"end":return e.stop()}}),e)})))()},onGroupDelete:function(e){var t=this;this.$confirm("确认删除该分组?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){(0,P.iE)(e).then((function(e){e.errCode||(t.$message.success("删除成功"),t.isShowEditGroupDialog=!1,t.fetchGroupsFunction())}))}))},onGroupSave:function(){var e=this;this.requiredGroupOwners()?this.$refs.groupFormRef.validate((function(t){if(t){var n=Object.assign({},e.groupData);n.groupOwnerUserIds=e.groupData.groupOwners.map((function(e){return e.id})),(0,P.vB)(n).then((function(t){t.errCode||(e.$message.success("保存成功"),e.isShowEditGroupDialog=!1,e.groupData={groupOwners:[]},e.fetchGroupsFunction())}))}else e.$message.error("请填写表单必填项")})):this.$message.warning("组长人数至少需要 1 人,最多为 20 人")},onGroupOwnerRemove:function(e){this.groupData.groupOwners.splice(e,1)},onGroupOwnerSelect:function(e){this.groupData.groupOwners.some((function(t){return t.id==e.id}))||this.groupData.groupOwners.push(e),this.userQueryData.nicknameOrUsernameOrEmailContains=null},toCreatePage:function(){this.isShowEditGroupDialog=!0,this.groupData={groupOwners:[]}},toEditPage:function(e){var t=this;(0,P.ex)(e).then((function(e){e.errCode||(t.isShowEditGroupDialog=!0,t.groupData=e.data)}))},toGroupDashboard:function(e,t){this.$router.push({path:"/groups/"+e,query:{groupName:t}})},toDocumentPage:function(e){var t=e.groupId,n=e.projectId;this.$router.push({path:"/groups/"+t+"/projects/"+n+"/documents",query:{projectName:e.projectName,groupName:e.groupName}})},onFavoriteProjectPageChange:function(e){e&&(this.favoriteProjectPageQuery.page=e-1,this.fetchUserFavorites())},onRemoveFavorite:function(e){var t=this;(0,b.Ni)(e).then((function(e){e.errCode||(t.$message.success("成功取消"),t.fetchUserFavorites())}))},onProjectDelete:function(e){var t=this;this.$confirm("确认删除该项目?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){(0,k.jI)(t.groupId,e).then((function(e){e.errCode||(t.$message.success("删除成功"),t.fetchUserFavorites())}))}))},onTabClick:function(e){this.$store.commit("switchGroupListActiveTab",e.props.name)},dialogWidth:function(){return(0,j.c)()}}},O=n(83744);const E=(0,O.Z)(G,[["render",v]]);var z=E}}]); +//# sourceMappingURL=314-legacy.e55474ea.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/314-legacy.e55474ea.js.map b/api/src/main/resources/static/js/314-legacy.e55474ea.js.map new file mode 100644 index 0000000..0a6357e --- /dev/null +++ b/api/src/main/resources/static/js/314-legacy.e55474ea.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/314-legacy.e55474ea.js","mappings":"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","sources":["webpack://databasir/./node_modules/core-js/modules/es.array.slice.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=09d42977\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=09d42977&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["$","global","isArray","isConstructor","isObject","toAbsoluteIndex","lengthOfArrayLike","toIndexedObject","createProperty","wellKnownSymbol","arrayMethodHasSpeciesSupport","un$Slice","HAS_SPECIES_SUPPORT","SPECIES","Array","max","Math","target","proto","forced","slice","start","end","Constructor","result","n","O","this","length","k","fin","undefined","constructor","prototype","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","xs","sm","md","lg","xl","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","group","id","_component_el_card","shadow","onMouseenter","onMouseleave","class","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","owner","index","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_5","_component_database_icon","databaseType","groupId","groupName","projectId","_ctx","_component_el_dialog","center","width","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_10","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","onFavoriteProjectPageChange","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","role","fetchUserFavorites","listFavorites","jsonData","listGroups","message","required","trigger","requiredGroupOwners","onPageChange","onQuery","queryUsersAsync","query","callback","listUsers","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","deleteGroup","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","request","Object","assign","groupOwnerUserIds","r","createOrUpdateGroup","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","getGroup","toGroupDashboard","$router","path","toDocumentPage","favoriteProject","onRemoveFavorite","removeFavorite","onProjectDelete","deleteProjectById","tab","props","dialogWidth","dialogPercentWidth","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/206.8babe551.js b/api/src/main/resources/static/js/314.358d11d3.js similarity index 59% rename from api/src/main/resources/static/js/206.8babe551.js rename to api/src/main/resources/static/js/314.358d11d3.js index 0d31207..02c8b26 100644 --- a/api/src/main/resources/static/js/206.8babe551.js +++ b/api/src/main/resources/static/js/314.358d11d3.js @@ -1,2 +1,2 @@ -"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[206],{8337:function(e,t,a){a.d(t,{Wq:function(){return n},ex:function(){return u},vB:function(){return l},iE:function(){return p},yF:function(){return c},E2:function(){return d},_j:function(){return m},q9:function(){return g}});var o=a(3872);const r="/api/v1.0/groups",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id&&null!=e.id?s(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.patch(r,e),p=e=>o.Z["delete"](r+"/"+e),c=(e,t)=>o.Z.get(r+"/"+e+"/members",{params:t}),d=(e,t)=>o.Z.post(r+"/"+e+"/members",t),m=(e,t)=>o.Z["delete"](r+"/"+e+"/members/"+t),g=(e,t,a)=>{const n={role:a};return o.Z.patch(r+"/"+e+"/members/"+t,n)}},9324:function(e,t,a){a.d(t,{hW:function(){return n},Rp:function(){return u},Iu:function(){return l},M7:function(){return s},Dg:function(){return p},lN:function(){return c},jI:function(){return g}});var o=a(3872);const r="/api/v1.0/projects",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id?m(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.post(r+"/test_connection",e),p=(e,t)=>o.Z.post(r+"/"+e+"/list_manual_tasks",t),c=(e,t)=>o.Z.patch(r+"/"+e+"/tasks/"+t+"/cancel"),d="/api/v1.0/groups",m=e=>o.Z.patch(d+"/"+e.groupId+"/projects",e),g=(e,t)=>o.Z["delete"](d+"/"+e+"/projects/"+t)},3110:function(e,t,a){a.d(t,{yw:function(){return n},Dx:function(){return u},B9:function(){return l},__:function(){return i},IJ:function(){return s},r4:function(){return p},oD:function(){return c},_:function(){return d},Uz:function(){return m},gQ:function(){return g},Gz:function(){return w}});var o=a(3872);const r="/api/v1.0/users",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.post(r+"/"+e+"/enable"),l=e=>o.Z.post(r+"/"+e+"/disable"),i=e=>o.Z.get(r+"/"+e),s=e=>o.Z["delete"](r+"/"+e),p=e=>o.Z.post(r,e),c=e=>o.Z.post(r+"/"+e+"/renew_password"),d=e=>o.Z.post(r+"/"+e+"/sys_owners"),m=e=>o.Z["delete"](r+"/"+e+"/sys_owners"),g=(e,t)=>o.Z.post(r+"/"+e+"/password",t),w=(e,t)=>o.Z.post(r+"/"+e+"/nickname",t)},9080:function(e,t,a){a.d(t,{V$:function(){return n},Ni:function(){return u},a3:function(){return l}});var o=a(3872);const r="/api/v1.0/user_projects/favorites",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z["delete"](r+"/"+e),l=e=>o.Z.post(r+"/"+e)},2206:function(e,t,a){a.r(t),a.d(t,{default:function(){return O}});var o=a(6252),r=a(3577),n=a(9963);const u={style:{display:"flex","justify-content":"space-between"}},l=["onClick"],i={style:{color:"#909399","font-size":"13px"}},s={style:{color:"#909399"}},p={key:1},c=(0,o.Uk)(" 更多 "),d=(0,o.Uk)("查看文档"),m=(0,o.Uk)("取消关注"),g=(0,o.Uk)("删除项目"),w=(0,o._)("h2",null,"组长管理",-1),f=(0,o.Uk)("保存"),h=(0,o.Uk)("取消"),_=(0,o.Uk)("删除分组"),W=(0,o.Uk)("确认删除分组");function D(e,t,a,D,y,P){const b=(0,o.up)("el-button"),k=(0,o.up)("el-tooltip"),v=(0,o.up)("el-col"),C=(0,o.up)("el-input"),j=(0,o.up)("el-row"),G=(0,o.up)("el-empty"),O=(0,o.up)("el-link"),E=(0,o.up)("user"),z=(0,o.up)("el-icon"),U=(0,o.up)("el-tag"),Z=(0,o.up)("arrow-down"),N=(0,o.up)("el-dropdown-item"),I=(0,o.up)("el-dropdown-menu"),S=(0,o.up)("el-dropdown"),T=(0,o.up)("el-space"),V=(0,o.up)("folder"),x=(0,o.up)("el-card"),F=(0,o.up)("el-main"),R=(0,o.up)("el-pagination"),$=(0,o.up)("el-footer"),Q=(0,o.up)("el-container"),q=(0,o.up)("el-tab-pane"),A=(0,o.up)("el-table-column"),L=(0,o.up)("database-icon"),M=(0,o.up)("el-table"),Y=(0,o.up)("el-tabs"),B=(0,o.up)("el-form-item"),H=(0,o.up)("el-autocomplete"),K=(0,o.up)("el-form"),J=(0,o.up)("warning-filled"),X=(0,o.up)("el-collapse-item"),ee=(0,o.up)("el-collapse"),te=(0,o.up)("el-dialog"),ae=(0,o.Q2)("require-roles");return(0,o.wg)(),(0,o.iD)(o.HY,null,[(0,o.Wm)(Y,{modelValue:P.activeTab,"onUpdate:modelValue":t[3]||(t[3]=e=>P.activeTab=e),onTabClick:P.onTabClick},{default:(0,o.w5)((()=>[(0,o.Wm)(q,{label:"项目分组",name:"groupListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(j,{gutter:12},{default:(0,o.w5)((()=>[(0,o.wy)(((0,o.wg)(),(0,o.j4)(v,{xs:24,sm:24,md:12,lg:5,xl:3},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"创建一个分组",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"plain",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=e=>P.toCreatePage())})])),_:1})])),_:1})),[[ae,["SYS_OWNER"]]]),(0,o.Wm)(v,{xs:24,sm:24,md:12,lg:8,xl:8},{default:(0,o.w5)((()=>[(0,o.Wm)(C,{onChange:P.onQuery,modelValue:y.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=e=>y.groupPageQuery.groupNameContains=e),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])])),_:1})])),_:1}),0==y.groupPageData.data.length?((0,o.wg)(),(0,o.j4)(j,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(v,null,{default:(0,o.w5)((()=>[(0,o.Wm)(G,{description:"请先创建分组"})])),_:1})])),_:1})):((0,o.wg)(),(0,o.j4)(j,{key:1,gutter:20},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.groupPageData.data,(e=>((0,o.wg)(),(0,o.j4)(v,{xs:24,sm:12,md:12,lg:8,xl:6,key:e.id,style:{"margin-bottom":"20px"}},{default:(0,o.w5)((()=>[(0,o.Wm)(x,{shadow:"hover",onMouseenter:t=>y.mouseEnterGroupId=e.id,onMouseleave:t[2]||(t[2]=e=>y.mouseEnterGroupId=null),onClick:t=>P.toGroupDashboard(e.id,e.name),class:"box"},{default:(0,o.w5)((()=>[(0,o._)("div",u,[(0,o.Wm)(O,{underline:!1},{default:(0,o.w5)((()=>[(0,o._)("div",{onClick:t=>P.toGroupDashboard(e.id,e.name),style:{margin:"0 auto"}},[(0,o._)("h4",null,(0,r.zw)(e.name),1)],8,l)])),_:2},1024),(0,o.wy)((0,o.Wm)(O,{underline:!1,onClick:(0,n.iM)((t=>P.toEditPage(e.id,e.name)),["stop"]),icon:"Edit",style:{"margin-left":"8px"}},null,8,["onClick"]),[[n.F8,e.id==y.mouseEnterGroupId],[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]])]),(0,o.Wm)(T,{direction:"vertical",alignment:"stretch",size:16},{default:(0,o.w5)((()=>[(0,o._)("span",i,(0,r.zw)(e.description),1),(0,o.Wm)(T,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"组长"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(E)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(0,2),((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:t,type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e),1)])),_:2},1024)))),128)),e.groupOwnerNames.length>2?((0,o.wg)(),(0,o.j4)(S,{key:0},{dropdown:(0,o.w5)((()=>[(0,o.Wm)(I,null,{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(2),((e,t)=>((0,o.wg)(),(0,o.j4)(N,{key:t},{default:(0,o.w5)((()=>[(0,o.Wm)(U,{type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e),1)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o.Wm)(z,{class:"el-icon--right"},{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1024),(0,o.Wm)(T,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"项目数"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(V)])),_:1})])),_:1}),(0,o._)("span",s,(0,r.zw)(e.projectCount),1)])),_:2},1024)])),_:2},1024)])),_:2},1032,["onMouseenter","onClick"])])),_:2},1024)))),128))])),_:1}))])),_:1}),(0,o.Wm)($,null,{default:(0,o.w5)((()=>[(0,o.Wm)(R,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:y.groupPageData.number,"page-size":y.groupPageData.size,"page-count":y.groupPageData.totalPages,onCurrentChange:P.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1}),(0,o.Wm)(q,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(M,{data:y.favoriteProjectPageData.data,stripe:""},{default:(0,o.w5)((()=>[(0,o.Wm)(A,{prop:"projectId",label:"项目 ID"}),(0,o.Wm)(A,{prop:"projectName",label:"项目名称"},{default:(0,o.w5)((e=>[(0,o.Wm)(O,{onClick:t=>P.toDocumentPage(e.row)},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,r.zw)(e.row.projectName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"projectDescription",label:"项目描述"}),(0,o.Wm)(A,{label:"定时同步",align:"center"},{default:(0,o.w5)((e=>[e.row.isAutoSync?((0,o.wg)(),(0,o.j4)(U,{key:0},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e.row.autoSyncCron),1)])),_:2},1024)):((0,o.wg)(),(0,o.iD)("span",p," 无 "))])),_:1}),(0,o.Wm)(A,{label:"数据库类型"},{default:(0,o.w5)((e=>[(0,o.Wm)(L,{databaseType:e.row.databaseType,icon:e.row.icon},null,8,["databaseType","icon"])])),_:1}),(0,o.Wm)(A,{prop:"databaseName",label:"数据库名称"}),(0,o.Wm)(A,{prop:"groupName",label:"所属分组"},{default:(0,o.w5)((e=>[(0,o.Wm)(O,{onClick:t=>P.toGroupDashboard(e.row.groupId,e.row.groupName),icon:"List"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e.row.groupName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"createAt",label:"关注时间"}),(0,o.Wm)(A,{label:"操作"},{default:(0,o.w5)((t=>[(0,o.Wm)(S,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(I,null,{default:(0,o.w5)((()=>[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"primary",size:"small",onClick:(0,n.iM)((e=>P.toDocumentPage(t.row)),["stop"]),icon:"View"},{default:(0,o.w5)((()=>[d])),_:2},1032,["onClick"])])),_:2},1024),(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"warning",size:"small",onClick:(0,n.iM)((e=>P.onRemoveFavorite(t.row.projectId)),["stop"]),icon:"StarFilled"},{default:(0,o.w5)((()=>[m])),_:2},1032,["onClick"])])),_:2},1024),(0,o.wy)(((0,o.wg)(),(0,o.j4)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"danger",size:"small",onClick:(0,n.iM)((e=>P.onProjectDelete(t.row.projectId)),["stop"]),icon:"Remove"},{default:(0,o.w5)((()=>[g])),_:2},1032,["onClick"])])),_:2},1024)),[[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o._)("span",null,[c,(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])])),_:2},1024)])),_:1})])),_:1},8,["data"])])),_:1}),(0,o.Wm)($,null,{default:(0,o.w5)((()=>[(0,o.Wm)(R,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:y.favoriteProjectPageData.number,"page-size":y.favoriteProjectPageData.size,"page-count":y.favoriteProjectPageData.totalPages,onCurrentChange:P.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue","onTabClick"]),(0,o.Wm)(te,{modelValue:y.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=e=>y.isShowEditGroupDialog=e),width:"38%",center:"","destroy-on-close":""},{default:(0,o.w5)((()=>[(0,o.Wm)(K,{model:y.groupData,rules:y.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(B,{label:"名称",prop:"name"},{default:(0,o.w5)((()=>[(0,o.Wm)(C,{modelValue:y.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=e=>y.groupData.name=e)},null,8,["modelValue"])])),_:1}),(0,o.Wm)(B,{label:"描述",prop:"description"},{default:(0,o.w5)((()=>[(0,o.Wm)(C,{modelValue:y.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=e=>y.groupData.description=e),type:"textarea"},null,8,["modelValue"])])),_:1}),w,(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(H,{modelValue:y.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=e=>y.userQueryData.nicknameOrUsernameOrEmailContains=e),"fetch-suggestions":P.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:P.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(T,{wrap:""},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.groupData.groupOwners,((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:e=>P.onGroupOwnerRemove(t)},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:e.email,placement:"top"},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,r.zw)(e.nickname),1)])),_:2},1032,["content"])])),_:2},1032,["onClose"])))),128))])),_:1})])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"primary",onClick:t[7]||(t[7]=e=>P.onGroupSave("groupFormRef"))},{default:(0,o.w5)((()=>[f])),_:1}),(0,o.Wm)(b,{onClick:t[8]||(t[8]=e=>y.isShowEditGroupDialog=!1)},{default:(0,o.w5)((()=>[h])),_:1})])),_:1})])),_:1},8,["model","rules"]),y.groupData.id?((0,o.wg)(),(0,o.j4)(ee,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(X,{name:"1"},{title:(0,o.w5)((()=>[(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(J)])),_:1}),_])),default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=e=>P.onGroupDelete(y.groupData.id))},{default:(0,o.w5)((()=>[W])),_:1})])),_:1})])),_:1})])),_:1})):(0,o.kq)("",!0)])),_:1},8,["modelValue"])],64)}var y=a(8337),P=a(3110),b=a(9080),k=a(9324),v=a(1836),C={data(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:8,totalElements:0,totalPages:0},groupPageQuery:{page:0,size:12,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:0},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created(){this.fetchGroupsFunction(),this.onFavoriteProjectPageChange(1)},computed:{activeTab:{get(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit(e){return v.E.hasAnyRoles([e])},async fetchUserFavorites(){const e=await(0,b.V$)(this.favoriteProjectPageQuery);this.favoriteProjectPageData.data=e.data.content,this.favoriteProjectPageData.number=e.data.number+1,this.favoriteProjectPageData.size=e.data.size,this.favoriteProjectPageData.totalPages=e.data.totalPages,this.favoriteProjectPageData.totalElements=e.data.totalElements},async fetchGroupsFunction(){const e=await(0,y.Wq)(this.groupPageQuery);this.groupPageData.data=e.data.content,this.groupPageData.number=e.data.number+1,this.groupPageData.size=e.data.size,this.groupPageData.totalPages=e.data.totalPages,this.groupPageData.totalElements=e.data.totalElements},requiredInputValidRule(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},onPageChange(e){e&&(this.groupPageQuery.page=e-1,this.fetchGroupsFunction())},onQuery(){this.fetchGroupsFunction()},async queryUsersAsync(e,t){const a=await(0,P.yw)(this.userQueryData).then((e=>e.data.content)),o=a.map((e=>({value:e.nickname,nickname:e.nickname,email:e.email,id:e.id})));t(o)},onGroupDelete(e){this.$confirm("确认删除该分组?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,y.iE)(e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.isShowEditGroupDialog=!1,this.fetchGroupsFunction())}))}))},onGroupSave(){this.requiredGroupOwners()?this.$refs.groupFormRef.validate((e=>{if(e){const e=Object.assign({},this.groupData);e.groupOwnerUserIds=this.groupData.groupOwners.map((e=>e.id)),(0,y.vB)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.isShowEditGroupDialog=!1,this.groupData={groupOwners:[]},this.fetchGroupsFunction())}))}else this.$message.error("请填写表单必填项")})):this.$message.warning("组长人数至少需要 1 人,最多为 20 人")},onGroupOwnerRemove(e){this.groupData.groupOwners.splice(e,1)},onGroupOwnerSelect(e){this.groupData.groupOwners.some((t=>t.id==e.id))||this.groupData.groupOwners.push(e),this.userQueryData.nicknameOrUsernameOrEmailContains=null},toCreatePage(){this.isShowEditGroupDialog=!0,this.groupData={groupOwners:[]}},toEditPage(e){(0,y.ex)(e).then((e=>{e.errCode||(this.isShowEditGroupDialog=!0,this.groupData=e.data)}))},toGroupDashboard(e,t){this.$router.push({path:"/groups/"+e,query:{groupName:t}})},toDocumentPage(e){const t=e.groupId,a=e.projectId;this.$router.push({path:"/groups/"+t+"/projects/"+a+"/documents",query:{projectName:e.projectName,groupName:e.groupName}})},onFavoriteProjectPageChange(e){e&&(this.favoriteProjectPageQuery.page=e-1,this.fetchUserFavorites())},onRemoveFavorite(e){(0,b.Ni)(e).then((e=>{e.errCode||(this.$message.success("成功取消"),this.fetchUserFavorites())}))},onProjectDelete(e){this.$confirm("确认删除该项目?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,k.jI)(this.groupId,e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.fetchUserFavorites())}))}))},onTabClick(e){this.$store.commit("switchGroupListActiveTab",e.props.name)}}},j=a(3744);const G=(0,j.Z)(C,[["render",D]]);var O=G}}]); -//# sourceMappingURL=206.8babe551.js.map \ No newline at end of file +"use strict";(self["webpackChunkdatabasir"]=self["webpackChunkdatabasir"]||[]).push([[314],{8337:function(e,t,a){a.d(t,{Wq:function(){return n},ex:function(){return u},vB:function(){return l},iE:function(){return p},yF:function(){return c},E2:function(){return d},_j:function(){return m},q9:function(){return g}});var o=a(3872);const r="/api/v1.0/groups",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id&&null!=e.id?s(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.patch(r,e),p=e=>o.Z["delete"](r+"/"+e),c=(e,t)=>o.Z.get(r+"/"+e+"/members",{params:t}),d=(e,t)=>o.Z.post(r+"/"+e+"/members",t),m=(e,t)=>o.Z["delete"](r+"/"+e+"/members/"+t),g=(e,t,a)=>{const n={role:a};return o.Z.patch(r+"/"+e+"/members/"+t,n)}},9324:function(e,t,a){a.d(t,{hW:function(){return n},Rp:function(){return u},Iu:function(){return l},M7:function(){return s},Dg:function(){return p},lN:function(){return c},jI:function(){return g}});var o=a(3872);const r="/api/v1.0/projects",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.get(r+"/"+e),l=e=>e.id?m(e):i(e),i=e=>o.Z.post(r,e),s=e=>o.Z.post(r+"/test_connection",e),p=(e,t)=>o.Z.post(r+"/"+e+"/list_manual_tasks",t),c=(e,t)=>o.Z.patch(r+"/"+e+"/tasks/"+t+"/cancel"),d="/api/v1.0/groups",m=e=>o.Z.patch(d+"/"+e.groupId+"/projects",e),g=(e,t)=>o.Z["delete"](d+"/"+e+"/projects/"+t)},3110:function(e,t,a){a.d(t,{yw:function(){return n},Dx:function(){return u},B9:function(){return l},__:function(){return i},IJ:function(){return s},r4:function(){return p},oD:function(){return c},_:function(){return d},Uz:function(){return m},gQ:function(){return g},Gz:function(){return w}});var o=a(3872);const r="/api/v1.0/users",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z.post(r+"/"+e+"/enable"),l=e=>o.Z.post(r+"/"+e+"/disable"),i=e=>o.Z.get(r+"/"+e),s=e=>o.Z["delete"](r+"/"+e),p=e=>o.Z.post(r,e),c=e=>o.Z.post(r+"/"+e+"/renew_password"),d=e=>o.Z.post(r+"/"+e+"/sys_owners"),m=e=>o.Z["delete"](r+"/"+e+"/sys_owners"),g=(e,t)=>o.Z.post(r+"/"+e+"/password",t),w=(e,t)=>o.Z.post(r+"/"+e+"/nickname",t)},9080:function(e,t,a){a.d(t,{V$:function(){return n},Ni:function(){return u},a3:function(){return l}});var o=a(3872);const r="/api/v1.0/user_projects/favorites",n=e=>o.Z.get(r,{params:e}),u=e=>o.Z["delete"](r+"/"+e),l=e=>o.Z.post(r+"/"+e)},6314:function(e,t,a){a.r(t),a.d(t,{default:function(){return E}});var o=a(6252),r=a(3577),n=a(9963);const u={style:{display:"flex","justify-content":"space-between"}},l=["onClick"],i={style:{color:"#909399","font-size":"13px"}},s={style:{color:"#909399"}},p={key:1},c=(0,o.Uk)(" 更多 "),d=(0,o.Uk)("查看文档"),m=(0,o.Uk)("取消关注"),g=(0,o.Uk)("删除项目"),w=(0,o._)("h2",null,"组长管理",-1),f=(0,o.Uk)("保存"),h=(0,o.Uk)("取消"),_=(0,o.Uk)("删除分组"),W=(0,o.Uk)("确认删除分组");function D(e,t,a,D,y,P){const b=(0,o.up)("el-button"),k=(0,o.up)("el-tooltip"),v=(0,o.up)("el-col"),C=(0,o.up)("el-input"),j=(0,o.up)("el-row"),G=(0,o.up)("el-empty"),O=(0,o.up)("el-link"),E=(0,o.up)("user"),z=(0,o.up)("el-icon"),U=(0,o.up)("el-tag"),Z=(0,o.up)("arrow-down"),N=(0,o.up)("el-dropdown-item"),I=(0,o.up)("el-dropdown-menu"),S=(0,o.up)("el-dropdown"),T=(0,o.up)("el-space"),V=(0,o.up)("folder"),x=(0,o.up)("el-card"),F=(0,o.up)("el-main"),R=(0,o.up)("el-pagination"),$=(0,o.up)("el-footer"),Q=(0,o.up)("el-container"),q=(0,o.up)("el-tab-pane"),A=(0,o.up)("el-table-column"),L=(0,o.up)("database-icon"),M=(0,o.up)("el-table"),Y=(0,o.up)("el-tabs"),B=(0,o.up)("el-form-item"),H=(0,o.up)("el-autocomplete"),K=(0,o.up)("el-form"),J=(0,o.up)("warning-filled"),X=(0,o.up)("el-collapse-item"),ee=(0,o.up)("el-collapse"),te=(0,o.up)("el-dialog"),ae=(0,o.Q2)("require-roles");return(0,o.wg)(),(0,o.iD)(o.HY,null,[(0,o.Wm)(Y,{modelValue:P.activeTab,"onUpdate:modelValue":t[3]||(t[3]=e=>P.activeTab=e),onTabClick:P.onTabClick},{default:(0,o.w5)((()=>[(0,o.Wm)(q,{label:"项目分组",name:"groupListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(j,{gutter:12},{default:(0,o.w5)((()=>[(0,o.wy)(((0,o.wg)(),(0,o.j4)(v,{xs:24,sm:24,md:12,lg:5,xl:3},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"创建一个分组",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"plain",icon:"plus",style:{width:"100%"},onClick:t[0]||(t[0]=e=>P.toCreatePage())})])),_:1})])),_:1})),[[ae,["SYS_OWNER"]]]),(0,o.Wm)(v,{xs:24,sm:24,md:12,lg:8,xl:8},{default:(0,o.w5)((()=>[(0,o.Wm)(C,{onChange:P.onQuery,modelValue:y.groupPageQuery.groupNameContains,"onUpdate:modelValue":t[1]||(t[1]=e=>y.groupPageQuery.groupNameContains=e),label:"组名",placeholder:"组名称搜索","prefix-icon":"search"},null,8,["onChange","modelValue"])])),_:1})])),_:1}),0==y.groupPageData.data.length?((0,o.wg)(),(0,o.j4)(j,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(v,null,{default:(0,o.w5)((()=>[(0,o.Wm)(G,{description:"请先创建分组"})])),_:1})])),_:1})):((0,o.wg)(),(0,o.j4)(j,{key:1,gutter:20},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.groupPageData.data,(e=>((0,o.wg)(),(0,o.j4)(v,{xs:24,sm:12,md:12,lg:8,xl:6,key:e.id,style:{"margin-bottom":"20px"}},{default:(0,o.w5)((()=>[(0,o.Wm)(x,{shadow:"hover",onMouseenter:t=>y.mouseEnterGroupId=e.id,onMouseleave:t[2]||(t[2]=e=>y.mouseEnterGroupId=null),onClick:t=>P.toGroupDashboard(e.id,e.name),class:"box"},{default:(0,o.w5)((()=>[(0,o._)("div",u,[(0,o.Wm)(O,{underline:!1},{default:(0,o.w5)((()=>[(0,o._)("div",{onClick:t=>P.toGroupDashboard(e.id,e.name),style:{margin:"0 auto"}},[(0,o._)("h4",null,(0,r.zw)(e.name),1)],8,l)])),_:2},1024),(0,o.wy)((0,o.Wm)(O,{underline:!1,onClick:(0,n.iM)((t=>P.toEditPage(e.id,e.name)),["stop"]),icon:"Edit",style:{"margin-left":"8px"}},null,8,["onClick"]),[[n.F8,e.id==y.mouseEnterGroupId],[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.id]]])]),(0,o.Wm)(T,{direction:"vertical",alignment:"stretch",size:16},{default:(0,o.w5)((()=>[(0,o._)("span",i,(0,r.zw)(e.description),1),(0,o.Wm)(T,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"组长"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(E)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(0,2),((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:t,type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e),1)])),_:2},1024)))),128)),e.groupOwnerNames.length>2?((0,o.wg)(),(0,o.j4)(S,{key:0},{dropdown:(0,o.w5)((()=>[(0,o.Wm)(I,null,{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.groupOwnerNames.slice(2),((e,t)=>((0,o.wg)(),(0,o.j4)(N,{key:t},{default:(0,o.w5)((()=>[(0,o.Wm)(U,{type:"info"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e),1)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o.Wm)(z,{class:"el-icon--right"},{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1024),(0,o.Wm)(T,{wrap:""},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"项目数"},{default:(0,o.w5)((()=>[(0,o.Wm)(z,{color:"#909399"},{default:(0,o.w5)((()=>[(0,o.Wm)(V)])),_:1})])),_:1}),(0,o._)("span",s,(0,r.zw)(e.projectCount),1)])),_:2},1024)])),_:2},1024)])),_:2},1032,["onMouseenter","onClick"])])),_:2},1024)))),128))])),_:1}))])),_:1}),(0,o.Wm)($,null,{default:(0,o.w5)((()=>[(0,o.Wm)(R,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:y.groupPageData.number,"page-size":y.groupPageData.size,"page-count":y.groupPageData.totalPages,onCurrentChange:P.onPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1}),(0,o.Wm)(q,{label:"关注项目",name:"favoriteProjectListTab"},{default:(0,o.w5)((()=>[(0,o.Wm)(Q,null,{default:(0,o.w5)((()=>[(0,o.Wm)(F,null,{default:(0,o.w5)((()=>[(0,o.Wm)(M,{data:y.favoriteProjectPageData.data,stripe:""},{default:(0,o.w5)((()=>[(0,o.Wm)(A,{prop:"projectId",label:"项目 ID"}),(0,o.Wm)(A,{prop:"projectName",label:"项目名称"},{default:(0,o.w5)((e=>[(0,o.Wm)(O,{onClick:t=>P.toDocumentPage(e.row)},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,r.zw)(e.row.projectName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"projectDescription",label:"项目描述"}),(0,o.Wm)(A,{label:"定时同步",align:"center"},{default:(0,o.w5)((e=>[e.row.isAutoSync?((0,o.wg)(),(0,o.j4)(U,{key:0},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e.row.autoSyncCron),1)])),_:2},1024)):((0,o.wg)(),(0,o.iD)("span",p," 无 "))])),_:1}),(0,o.Wm)(A,{label:"数据库类型"},{default:(0,o.w5)((e=>[(0,o.Wm)(L,{databaseType:e.row.databaseType,icon:e.row.icon},null,8,["databaseType","icon"])])),_:1}),(0,o.Wm)(A,{prop:"databaseName",label:"数据库名称"}),(0,o.Wm)(A,{prop:"groupName",label:"所属分组"},{default:(0,o.w5)((e=>[(0,o.Wm)(O,{onClick:t=>P.toGroupDashboard(e.row.groupId,e.row.groupName),icon:"List"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,r.zw)(e.row.groupName),1)])),_:2},1032,["onClick"])])),_:1}),(0,o.Wm)(A,{prop:"createAt",label:"关注时间"}),(0,o.Wm)(A,{label:"操作"},{default:(0,o.w5)((t=>[(0,o.Wm)(S,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(I,null,{default:(0,o.w5)((()=>[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"primary",size:"small",onClick:(0,n.iM)((e=>P.toDocumentPage(t.row)),["stop"]),icon:"View"},{default:(0,o.w5)((()=>[d])),_:2},1032,["onClick"])])),_:2},1024),(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"warning",size:"small",onClick:(0,n.iM)((e=>P.onRemoveFavorite(t.row.projectId)),["stop"]),icon:"StarFilled"},{default:(0,o.w5)((()=>[m])),_:2},1032,["onClick"])])),_:2},1024),(0,o.wy)(((0,o.wg)(),(0,o.j4)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"danger",size:"small",onClick:(0,n.iM)((e=>P.onProjectDelete(t.row.projectId)),["stop"]),icon:"Remove"},{default:(0,o.w5)((()=>[g])),_:2},1032,["onClick"])])),_:2},1024)),[[ae,["SYS_OWNER","GROUP_OWNER?groupId="+e.groupId]]])])),_:2},1024)])),default:(0,o.w5)((()=>[(0,o._)("span",null,[c,(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(Z)])),_:1})])])),_:2},1024)])),_:1})])),_:1},8,["data"])])),_:1}),(0,o.Wm)($,null,{default:(0,o.w5)((()=>[(0,o.Wm)(R,{layout:"prev, pager, next","hide-on-single-page":!1,currentPage:y.favoriteProjectPageData.number,"page-size":y.favoriteProjectPageData.size,"page-count":y.favoriteProjectPageData.totalPages,onCurrentChange:P.onFavoriteProjectPageChange},null,8,["currentPage","page-size","page-count","onCurrentChange"])])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue","onTabClick"]),(0,o.Wm)(te,{modelValue:y.isShowEditGroupDialog,"onUpdate:modelValue":t[10]||(t[10]=e=>y.isShowEditGroupDialog=e),center:"","destroy-on-close":"",width:P.dialogWidth()},{default:(0,o.w5)((()=>[(0,o.Wm)(K,{model:y.groupData,rules:y.groupDataRule,ref:"groupFormRef","label-position":"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(B,{label:"名称",prop:"name"},{default:(0,o.w5)((()=>[(0,o.Wm)(C,{modelValue:y.groupData.name,"onUpdate:modelValue":t[4]||(t[4]=e=>y.groupData.name=e)},null,8,["modelValue"])])),_:1}),(0,o.Wm)(B,{label:"描述",prop:"description"},{default:(0,o.w5)((()=>[(0,o.Wm)(C,{modelValue:y.groupData.description,"onUpdate:modelValue":t[5]||(t[5]=e=>y.groupData.description=e),type:"textarea"},null,8,["modelValue"])])),_:1}),w,(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(H,{modelValue:y.userQueryData.nicknameOrUsernameOrEmailContains,"onUpdate:modelValue":t[6]||(t[6]=e=>y.userQueryData.nicknameOrUsernameOrEmailContains=e),"fetch-suggestions":P.queryUsersAsync,placeholder:"用户名、昵称或邮箱搜索",onSelect:P.onGroupOwnerSelect,clearable:""},null,8,["modelValue","fetch-suggestions","onSelect"])])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(T,{wrap:""},{default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.groupData.groupOwners,((e,t)=>((0,o.wg)(),(0,o.j4)(U,{key:e.id,type:"primary",size:"large",closable:"","disable-transitions":!1,onClose:e=>P.onGroupOwnerRemove(t)},{default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:e.email,placement:"top"},{default:(0,o.w5)((()=>[(0,o._)("span",null,(0,r.zw)(e.nickname),1)])),_:2},1032,["content"])])),_:2},1032,["onClose"])))),128))])),_:1})])),_:1}),(0,o.Wm)(B,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{type:"primary",onClick:t[7]||(t[7]=e=>P.onGroupSave("groupFormRef"))},{default:(0,o.w5)((()=>[f])),_:1}),(0,o.Wm)(b,{onClick:t[8]||(t[8]=e=>y.isShowEditGroupDialog=!1)},{default:(0,o.w5)((()=>[h])),_:1})])),_:1})])),_:1},8,["model","rules"]),y.groupData.id?((0,o.wg)(),(0,o.j4)(ee,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(X,{name:"1"},{title:(0,o.w5)((()=>[(0,o.Wm)(z,null,{default:(0,o.w5)((()=>[(0,o.Wm)(J)])),_:1}),_])),default:(0,o.w5)((()=>[(0,o.Wm)(k,{content:"数据一旦删除将无法恢复,谨慎操作",placement:"top"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,{icon:"delete",size:"large",style:{width:"100%",margin:"0 auto"},onClick:t[9]||(t[9]=e=>P.onGroupDelete(y.groupData.id))},{default:(0,o.w5)((()=>[W])),_:1})])),_:1})])),_:1})])),_:1})):(0,o.kq)("",!0)])),_:1},8,["modelValue","width"])],64)}var y=a(8337),P=a(3110),b=a(9080),k=a(9324),v=a(1836),C=a(8968),j={data(){return{isShowEditGroupDialog:!1,mouseEnterGroupId:null,groupData:{groupOwners:[]},groupDataRule:{name:[this.requiredInputValidRule("请输入有效昵称")]},userQueryData:{nicknameContains:null,nicknameOrUsernameOrEmailContains:null,size:50},groupPageData:{data:[],number:1,size:8,totalElements:0,totalPages:0},groupPageQuery:{page:0,size:12,groupNameContains:null},favoriteProjectPageData:{data:[],number:1,size:15,totalElements:0,totalPages:0},favoriteProjectPageQuery:{page:0,size:20,projectNameContains:null}}},created(){this.fetchGroupsFunction(),this.onFavoriteProjectPageChange(1)},computed:{activeTab:{get(){return this.$store.state.groupListActiveTab?this.$store.state.groupListActiveTab:(this.$store.commit("switchGroupListActiveTab","groupListTab"),"groupListTab")},set(e){this.$store.commit("switchGroupListActiveTab",e)}}},methods:{isPermit(e){return v.E.hasAnyRoles([e])},async fetchUserFavorites(){const e=await(0,b.V$)(this.favoriteProjectPageQuery);this.favoriteProjectPageData.data=e.data.content,this.favoriteProjectPageData.number=e.data.number+1,this.favoriteProjectPageData.size=e.data.size,this.favoriteProjectPageData.totalPages=e.data.totalPages,this.favoriteProjectPageData.totalElements=e.data.totalElements},async fetchGroupsFunction(){const e=await(0,y.Wq)(this.groupPageQuery);this.groupPageData.data=e.data.content,this.groupPageData.number=e.data.number+1,this.groupPageData.size=e.data.size,this.groupPageData.totalPages=e.data.totalPages,this.groupPageData.totalElements=e.data.totalElements},requiredInputValidRule(e){return{required:!0,message:e,trigger:"blur"}},requiredGroupOwners(){return!(null==this.groupData.groupOwners||this.groupData.groupOwners.length<1||this.groupData.groupOwners.length>20)},onPageChange(e){e&&(this.groupPageQuery.page=e-1,this.fetchGroupsFunction())},onQuery(){this.fetchGroupsFunction()},async queryUsersAsync(e,t){const a=await(0,P.yw)(this.userQueryData).then((e=>e.data.content)),o=a.map((e=>({value:e.nickname,nickname:e.nickname,email:e.email,id:e.id})));t(o)},onGroupDelete(e){this.$confirm("确认删除该分组?删除后数据将无法恢复","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,y.iE)(e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.isShowEditGroupDialog=!1,this.fetchGroupsFunction())}))}))},onGroupSave(){this.requiredGroupOwners()?this.$refs.groupFormRef.validate((e=>{if(e){const e=Object.assign({},this.groupData);e.groupOwnerUserIds=this.groupData.groupOwners.map((e=>e.id)),(0,y.vB)(e).then((e=>{e.errCode||(this.$message.success("保存成功"),this.isShowEditGroupDialog=!1,this.groupData={groupOwners:[]},this.fetchGroupsFunction())}))}else this.$message.error("请填写表单必填项")})):this.$message.warning("组长人数至少需要 1 人,最多为 20 人")},onGroupOwnerRemove(e){this.groupData.groupOwners.splice(e,1)},onGroupOwnerSelect(e){this.groupData.groupOwners.some((t=>t.id==e.id))||this.groupData.groupOwners.push(e),this.userQueryData.nicknameOrUsernameOrEmailContains=null},toCreatePage(){this.isShowEditGroupDialog=!0,this.groupData={groupOwners:[]}},toEditPage(e){(0,y.ex)(e).then((e=>{e.errCode||(this.isShowEditGroupDialog=!0,this.groupData=e.data)}))},toGroupDashboard(e,t){this.$router.push({path:"/groups/"+e,query:{groupName:t}})},toDocumentPage(e){const t=e.groupId,a=e.projectId;this.$router.push({path:"/groups/"+t+"/projects/"+a+"/documents",query:{projectName:e.projectName,groupName:e.groupName}})},onFavoriteProjectPageChange(e){e&&(this.favoriteProjectPageQuery.page=e-1,this.fetchUserFavorites())},onRemoveFavorite(e){(0,b.Ni)(e).then((e=>{e.errCode||(this.$message.success("成功取消"),this.fetchUserFavorites())}))},onProjectDelete(e){this.$confirm("确认删除该项目?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{(0,k.jI)(this.groupId,e).then((e=>{e.errCode||(this.$message.success("删除成功"),this.fetchUserFavorites())}))}))},onTabClick(e){this.$store.commit("switchGroupListActiveTab",e.props.name)},dialogWidth(){return(0,C.c)()}}},G=a(3744);const O=(0,G.Z)(j,[["render",D]]);var E=O}}]); +//# sourceMappingURL=314.358d11d3.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/314.358d11d3.js.map b/api/src/main/resources/static/js/314.358d11d3.js.map new file mode 100644 index 0000000..1c0ecf1 --- /dev/null +++ b/api/src/main/resources/static/js/314.358d11d3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/314.358d11d3.js","mappings":"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","sources":["webpack://databasir/./src/api/Group.js","webpack://databasir/./src/api/Project.js","webpack://databasir/./src/api/User.js","webpack://databasir/./src/api/UserProject.js","webpack://databasir/./src/views/GroupList.vue","webpack://databasir/./src/views/GroupList.vue?d658"],"sourcesContent":["import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/groups'\r\n\r\nexport const listGroups = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const getGroup= (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateGroup = (body) => {\r\n if (body.id && body.id != null) {\r\n return updateGroup(body)\r\n } else {\r\n return createGroup(body)\r\n }\r\n}\r\n\r\nexport const createGroup = (body) => {\r\n return axios.post(base, body)\r\n}\r\n\r\nexport const updateGroup = (body) => {\r\n return axios.patch(base, body)\r\n}\r\n\r\nexport const deleteGroup = (id) => {\r\n return axios.delete(base + '/' + id)\r\n}\r\n\r\nexport const listGroupMembers = (groupId, pageQuery) => {\r\n return axios.get(base + '/' + groupId + '/members', {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const addGroupMember = (groupId, body) => {\r\n return axios.post(base + '/' + groupId + '/members', body)\r\n}\r\n\r\nexport const removeGroupMember = (groupId, userId) => {\r\n return axios.delete(base +'/'+groupId+'/members/'+userId)\r\n}\r\n\r\nexport const updateGroupMemberRole = (groupId, userId, role) => {\r\n const body = {\r\n role: role\r\n }\r\n return axios.patch(base +'/'+groupId+'/members/'+userId, body)\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/projects'\r\n\r\nexport const listProjects = (parameters) => {\r\n return axios.get(base, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const getProjectById = (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateProject = (request) => {\r\n if (request.id) {\r\n return updateProject(request)\r\n } else {\r\n return createProject(request)\r\n }\r\n}\r\n\r\nexport const createProject = (request) => {\r\n return axios.post(base, request);\r\n}\r\n\r\nexport const testConnection = (request) => {\r\n return axios.post(base + '/test_connection', request)\r\n}\r\n\r\nexport const listProjectManualTasks = (id, body) => {\r\n return axios.post(base + \"/\" + id +\"/list_manual_tasks\", body)\r\n}\r\n\r\nexport const cancelProjectTask = (projectId, taskId) => {\r\n return axios.patch(base + \"/\" + projectId +\"/tasks/\" + taskId+\"/cancel\")\r\n}\r\n\r\nconst groupProjectBase = '/api/v1.0/groups'\r\n\r\nexport const updateProject = (request) => {\r\n return axios.patch(groupProjectBase +'/'+request.groupId+'/projects', request);\r\n}\r\n\r\nexport const deleteProjectById = (groupId, id) => {\r\n return axios.delete(groupProjectBase + '/' +groupId +'/projects/' + id);\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const deleteByUserId = (userId) => {\r\n return axios.delete(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/user_projects/favorites'\r\n\r\nexport const listFavorites = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const removeFavorite = (projectId) => {\r\n return axios.delete(base + \"/\" + projectId)\r\n}\r\n\r\nexport const addFavorite = (projectId) => {\r\n return axios.post(base +'/' + projectId)\r\n}","\r\n\r\n\r\n\r\n","import { render } from \"./GroupList.vue?vue&type=template&id=09d42977\"\nimport script from \"./GroupList.vue?vue&type=script&lang=js\"\nexport * from \"./GroupList.vue?vue&type=script&lang=js\"\n\nimport \"./GroupList.vue?vue&type=style&index=0&id=09d42977&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["base","listGroups","pageQuery","axios","params","getGroup","id","createOrUpdateGroup","body","updateGroup","createGroup","deleteGroup","listGroupMembers","groupId","addGroupMember","removeGroupMember","userId","updateGroupMemberRole","role","listProjects","parameters","getProjectById","createOrUpdateProject","request","updateProject","createProject","testConnection","listProjectManualTasks","cancelProjectTask","projectId","taskId","groupProjectBase","deleteProjectById","listUsers","enableUser","disableUser","getByUserId","deleteByUserId","createUser","renewPassword","addSysOwnerTo","removeSysOwnerFrom","updatePassword","updateNickname","listFavorites","removeFavorite","addFavorite","style","_createElementVNode","_createVNode","_component_el_tabs","$options","$event","onTabClick","_component_el_tab_pane","label","name","_component_el_container","_component_el_main","_component_el_row","gutter","_createBlock","_component_el_col","xs","sm","md","lg","xl","_component_el_tooltip","content","placement","_component_el_button","type","icon","onClick","_component_el_input","onChange","$data","groupNameContains","placeholder","data","length","key","_component_el_empty","description","_createElementBlock","_Fragment","_renderList","group","_component_el_card","shadow","onMouseenter","onMouseleave","class","_component_el_link","underline","_toDisplayString","_component_el_space","direction","alignment","size","wrap","_component_el_icon","color","_component_user","groupOwnerNames","slice","owner","index","_component_el_tag","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_component_arrow_down","_component_folder","projectCount","_component_el_footer","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_table","stripe","_component_el_table_column","prop","scope","row","projectName","align","isAutoSync","autoSyncCron","_hoisted_5","_component_database_icon","databaseType","groupName","_ctx","_component_el_dialog","center","width","_component_el_form","model","rules","ref","_component_el_form_item","_hoisted_10","_component_el_autocomplete","nicknameOrUsernameOrEmailContains","onSelect","clearable","groupOwners","user","closable","onClose","email","nickname","_component_el_collapse","_component_el_collapse_item","title","_component_warning_filled","isShowEditGroupDialog","mouseEnterGroupId","groupData","groupDataRule","this","requiredInputValidRule","userQueryData","nicknameContains","groupPageData","totalElements","groupPageQuery","page","favoriteProjectPageData","favoriteProjectPageQuery","projectNameContains","created","fetchGroupsFunction","onFavoriteProjectPageChange","computed","activeTab","get","$store","state","groupListActiveTab","commit","set","newVal","methods","isPermit","async","jsonData","message","required","trigger","requiredGroupOwners","onPageChange","onQuery","query","callback","then","resp","users","map","u","value","onGroupDelete","$confirm","confirmButtonText","cancelButtonText","errCode","$message","success","onGroupSave","$refs","groupFormRef","validate","valid","Object","assign","groupOwnerUserIds","r","error","warning","onGroupOwnerRemove","splice","onGroupOwnerSelect","item","some","push","toCreatePage","toEditPage","toGroupDashboard","$router","path","toDocumentPage","favoriteProject","fetchUserFavorites","onRemoveFavorite","onProjectDelete","tab","props","dialogWidth","dialogPercentWidth","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/app-legacy.94b013ac.js b/api/src/main/resources/static/js/app-legacy.94b013ac.js deleted file mode 100644 index 0e2ff0d..0000000 --- a/api/src/main/resources/static/js/app-legacy.94b013ac.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){"use strict";var e={40152:function(e,t,n){n.d(t,{x4:function(){return o},rd:function(){return a},jb:function(){return u}});var r=n(63872),o=function(e){var t=new FormData;return t.append("username",e.username),t.append("password",e.password),r.Z.post("/login",t)},a=function(e,t){return r.Z.get("/oauth2/login/"+e,{params:t})},u=function(e){return r.Z.post("/access_tokens",{refreshToken:e})}},21381:function(e,t,n){n(66992),n(88674),n(19601),n(17727),n(41539),n(54747),n(47941);var r=n(49963),o=n(8722),a=n(30137),u=n(30837),i=n(99622),c=n(66246),s=(n(54415),n(24943)),l=n(24239),f=n(66252);function d(e,t){var n=(0,f.up)("router-view");return(0,f.wg)(),(0,f.j4)(n)}var p=n(83744);const m={},h=(0,p.Z)(m,[["render",d]]);var g=h,y=n(51836),w=n(3577),v=["src"],b=["src"],k=["src"],S=["src"],_=["src"],j=["src"];function T(e,t,r,o,a,u){var i=(0,f.up)("el-tooltip");return"mysql"==r.databaseType.toLowerCase()?((0,f.wg)(),(0,f.j4)(i,{key:0,content:r.databaseType,placement:"left"},{default:(0,f.w5)((function(){return[(0,f._)("img",{src:n(92357),style:{"max-width":"33px","max-height":"33px"}},null,8,v)]})),_:1},8,["content"])):"postgresql"==r.databaseType.toLowerCase()?((0,f.wg)(),(0,f.j4)(i,{key:1,content:r.databaseType,placement:"left"},{default:(0,f.w5)((function(){return[(0,f._)("img",{src:n(43609),style:{"max-width":"33px","max-height":"33px"}},null,8,b)]})),_:1},8,["content"])):"oracle"==r.databaseType.toLowerCase()?((0,f.wg)(),(0,f.j4)(i,{key:2,content:r.databaseType,placement:"left"},{default:(0,f.w5)((function(){return[(0,f._)("img",{src:n(22260),style:{"max-width":"33px","max-height":"33px"}},null,8,k)]})),_:1},8,["content"])):"mariadb"==r.databaseType.toLowerCase()?((0,f.wg)(),(0,f.j4)(i,{key:3,content:r.databaseType,placement:"left"},{default:(0,f.w5)((function(){return[(0,f._)("img",{src:n(36658),style:{"max-width":"33px","max-height":"33px"}},null,8,S)]})),_:1},8,["content"])):"sqlserver"==r.databaseType.toLowerCase()?((0,f.wg)(),(0,f.j4)(i,{key:4,content:r.databaseType,placement:"left"},{default:(0,f.w5)((function(){return[(0,f._)("img",{src:n(35641),style:{"max-width":"33px","max-height":"33px"}},null,8,_)]})),_:1},8,["content"])):r.icon?((0,f.wg)(),(0,f.j4)(i,{key:5,content:r.databaseType,placement:"left"},{default:(0,f.w5)((function(){return[(0,f._)("img",{src:r.icon,style:{"max-width":"33px","max-height":"33px"}},null,8,j)]})),_:1},8,["content"])):((0,f.wg)(),(0,f.iD)(f.HY,{key:6},[(0,f.Uk)((0,w.zw)(r.databaseType),1)],64))}var x={props:{databaseType:String,icon:String}};const D=(0,p.Z)(x,[["render",T]]);var A=D,L=n(94890),q=(0,r.ri)(g);Object.keys(a).forEach((function(e){q.component(e,a[e])})),q.component("database-icon",A),q.directive("require-roles",{mounted:function(e,t){var n=t.value;y.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),q.directive("select-more",{updated:function(e,t){var n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),o=document.getElementById(r);if(null!=o){var a=o.parentElement.querySelector(".el-select-dropdown .el-scrollbar .el-select-dropdown__wrap");null!=a?a.addEventListener("scroll",(function(){var e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()})):console.log("load select component failed")}}}),u.Z.registerLanguage("javascript",i.Z),q.use(c.Z),q.use(l.Z),q.use(o.Z),q.use(s.Z),q.use(L._),q.mount("#app")},24943:function(e,t,n){n.d(t,{Z:function(){return oe}});n(41539),n(78783),n(33948);var r=n(42119),o=(n(74916),n(64765),n(68309),n(66252)),a=n(3577),u={style:{"margin-top":"16px"}},i={class:"search-container"},c={key:0,style:{height:"80px"}},s=["onClick"],l=(0,o.Uk)("project"),f=(0,o.Uk)(),d={class:"jump"},p=["onClick"],m=(0,o.Uk)("group"),h=(0,o.Uk)(),g={class:"jump"};function y(e,t,n,r,y,w){var v=(0,o.up)("AppNav"),b=(0,o.up)("el-aside"),k=(0,o.up)("Breadcrumb"),S=(0,o.up)("Avatar"),_=(0,o.up)("el-header"),j=(0,o.up)("router-view"),T=(0,o.up)("el-main"),x=(0,o.up)("el-container"),D=(0,o.up)("el-input"),A=(0,o.up)("el-tag"),L=(0,o.up)("el-link"),q=(0,o.up)("el-divider"),C=(0,o.up)("Right"),N=(0,o.up)("el-icon"),E=(0,o.up)("el-dialog"),W=(0,o.Q2)("loading");return(0,o.wg)(),(0,o.j4)(x,{class:"databasir"},{default:(0,o.w5)((function(){return[(0,o.Wm)(b,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(v,{class:"databasir-nav",onOnSearch:t[0]||(t[0]=function(e){return w.search()})})]})),_:1}),(0,o.Wm)(_,{class:"databasir-main-header"},{default:(0,o.w5)((function(){return[(0,o.Wm)(k),(0,o.Wm)(S)]})),_:1}),(0,o.Wm)(T,{class:"databasir-main"},{default:(0,o.w5)((function(){return[(0,o.Wm)(x,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(T,{class:"databasir-main-content"},{default:(0,o.w5)((function(){return[(0,o.Wm)(j)]})),_:1})]})),_:1})]})),_:1}),(0,o.Wm)(E,{modelValue:y.showSearchDialog,"onUpdate:modelValue":t[2]||(t[2]=function(e){return y.showSearchDialog=e}),title:"搜索",width:"60%"},{default:(0,o.w5)((function(){return[(0,o.Wm)(D,{modelValue:y.queryKeyword,"onUpdate:modelValue":t[1]||(t[1]=function(e){return y.queryKeyword=e}),"prefix-icon":"Search",placeholder:"分组、项目、database、schema 搜索",style:{width:"100%",border:"none"},onChange:w.onQuery},null,8,["modelValue","onChange"]),(0,o._)("div",u,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.searchSelectHistory,(function(e,t){return(0,o.wg)(),(0,o.j4)(L,{underline:!1,key:t,onClick:function(t){return w.jumpToPath(e.path)},style:{"margin-right":"12px","margin-bottom":"12px"}},{default:(0,o.w5)((function(){return[(0,o.Wm)(A,{closable:"",type:"group"==e.type?"primary":"success",onClose:function(t){return w.onRemoveSelectHistoryItem(e.label)}},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.label),1)]})),_:2},1032,["type","onClose"])]})),_:2},1032,["onClick"])})),128))]),y.queryData.projects.length>0||y.queryData.groups.length>0?((0,o.wg)(),(0,o.j4)(q,{key:0})):(0,o.kq)("",!0),(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",i,[y.queryLoading&&0==y.queryData.projects.length&&0==y.queryData.groups.length?((0,o.wg)(),(0,o.iD)("div",c)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.queryData.projects,(function(e,t){return(0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:t,onClick:function(t){return w.jumpToProject(e)}},[(0,o._)("span",null,[(0,o.Wm)(A,{type:"success"},{default:(0,o.w5)((function(){return[l]})),_:1}),f,(0,o.Wm)(L,{underline:!1},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.groupName)+" / "+(0,a.zw)(e.projectName),1)]})),_:2},1024)]),(0,o._)("span",d,[(0,o.Wm)(N,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(C)]})),_:1})])],8,s)})),128)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.queryData.groups,(function(e,t){return(0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:t,onClick:function(t){return w.jumpToGroup(e)}},[(0,o._)("span",null,[(0,o.Wm)(A,null,{default:(0,o.w5)((function(){return[m]})),_:1}),h,(0,o.Wm)(L,{underline:!1},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.name),1)]})),_:2},1024)]),(0,o._)("span",g,[(0,o.Wm)(N,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(C)]})),_:1})])],8,p)})),128))])),[[W,y.queryLoading]])]})),_:1},8,["modelValue"])]})),_:1})}n(57327),n(40561),n(38862);var w=(0,o._)("span",null,"Databasir",-1);function v(e,t,n,r,u,i){var c=(0,o.up)("home-filled"),s=(0,o.up)("el-icon"),l=(0,o.up)("el-menu-item"),f=(0,o.up)("el-sub-menu"),d=(0,o.up)("el-button"),p=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(p,{router:"",collapse:e.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{index:"/"},{title:(0,o.w5)((function(){return[w]})),default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(c)]})),_:1})]})),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.routes,(function(t,n){return(0,o.wg)(),(0,o.iD)(o.HY,{key:n},[e.isShowMenu(t)&&t.children.length>0&&t.children.some((function(e){return!e.hidden}))?((0,o.wg)(),(0,o.j4)(f,{key:0,index:t.path},{title:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))]})),_:2},1024),(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)]})),default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.children,(function(e,r){return(0,o.wg)(),(0,o.iD)(o.HY,{key:n+"-"+r},[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(l,{key:0,index:t.path+"/"+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[e.icon?((0,o.wg)(),(0,o.j4)(s,{key:0},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))]})),_:2},1024)):(0,o.kq)("",!0)]})),_:2},1032,["index"]))],64)})),128))]})),_:2},1032,["index"])):e.isShowMenu(t)?((0,o.wg)(),(0,o.j4)(l,{key:1,index: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[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))]})),_:2},1024)]})),_:2},1032,["index"])):(0,o.kq)("",!0)],64)})),128)),(0,o.Wm)(l,{index:"",onClick:t[0]||(t[0]=function(t){return e.showSearchDialog()})},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{type:"text",icon:"Search",style:{color:"#303133"}})]})),_:1})]})),_:1},8,["collapse"])}var b=n(2262),k=n(51836),S=n(24239),_=(0,o.aZ)({emits:["on-search"],setup:function(e,t){var n=(0,b.Fl)((function(){return S.Z.state.menu.isCollapse})),o=(0,r.tv)(),a=o.options.routes,u=function(e){if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){var t=k.E.hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},i=function(){S.Z.commit("expandMenu")},c=function(){t.emit("on-search")};return{isCollapse:n,isShowMenu:u,expandMenu:i,routes:a,showSearchDialog:c}}}),j=n(83744);const T=(0,j.Z)(_,[["render",v]]);var x=T;function D(e,t,n,r,u,i){var c=(0,o.up)("fold"),s=(0,o.up)("el-icon"),l=(0,o.up)("el-link"),f=(0,o.up)("el-breadcrumb-item"),d=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(d,{separator:"/"},{default:(0,o.w5)((function(){return[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(f,{key:0},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{onClick:t[0]||(t[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,t){return(0,o.wg)(),(0,o.j4)(f,{key:t,to:e.to},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.name),1)]})),_:2},1032,["to"])})),128))]})),_:1})}var A={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 L=(0,j.Z)(A,[["render",D]]);var q=L,C=(0,o.Uk)("个人中心"),N=(0,o.Uk)("注销登陆");function E(e,t,n,r,u,i){var c=(0,o.up)("el-avatar"),s=(0,o.up)("el-dropdown-item"),l=(0,o.up)("el-dropdown-menu"),f=(0,o.up)("el-dropdown");return(0,o.wg)(),(0,o.j4)(f,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:t[0]||(t[0]=function(e){return i.toProfilePage()})},{default:(0,o.w5)((function(){return[C]})),_:1}),(0,o.Wm)(s,{icon:"back",onClick:t[1]||(t[1]=function(e){return i.onLogout()})},{default:(0,o.w5)((function(){return[N]})),_:1})]})),_:1})]})),default:(0,o.w5)((function(){return[(0,o.Wm)(c,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])]})),_:1})}var W={computed:{userNickname:function(){return this.$store.state.user.nickname},avatarUrl:function(){return this.$store.state.user.avatar}},methods:{onLogout:function(){k.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage:function(){this.$router.push({path:"/profile"})}}};const I=(0,j.Z)(W,[["render",E]]);var O=I,H=n(63872),P="/api/v1.0/search",U=function(e){return H.Z.get(P,{params:e})},R={components:{AppNav:x,Breadcrumb:q,Avatar:O},data:function(){return{showSearchDialog:!1,queryKeyword:"",queryData:{projects:[],groups:[]},queryLoading:!1,searchSelectHistory:[],searchSelectHistoryKey:"globalSearchSelectHistory"}},mounted:function(){this.loadSearchSelectHistory()},methods:{search:function(){this.showSearchDialog=!0},onQuery:function(e){var t=this;this.queryLoading=!0,U({query:e}).then((function(e){e.errCode||(t.queryData=e.data)})).finally((function(){return t.queryLoading=!1}))},jumpToGroup:function(e){this.showSearchDialog=!1;var t="/groups/"+e.id+"?groupName="+e.name,n={label:e.name,path:t,type:"group"},r=this.searchSelectHistory.filter((function(e){return e.label!=n.label}));r.unshift(n),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=t},jumpToProject:function(e){this.showSearchDialog=!1;var t="/groups/"+e.groupId+"/projects/"+e.projectId+"/documents?groupName="+e.groupName+"&projectName="+e.projectName,n={label:e.groupName+" / "+e.projectName,path:t,type:"project"},r=this.searchSelectHistory.filter((function(e){return e.label!=n.label}));r.unshift(n),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=t},jumpToPath:function(e){window.location=e},loadSearchSelectHistory:function(){var e=this.searchSelectHistoryKey;if(null!=window.localStorage.getItem(e)){var t=JSON.parse(window.localStorage.getItem(e));this.searchSelectHistory=t}},onRemoveSelectHistoryItem:function(e){var t=this.searchSelectHistory.filter((function(t){return t.label!=e}));this.searchSelectHistory=t,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory))}}};const Z=(0,j.Z)(R,[["render",y]]);var K=Z;function M(){return{name:"首页",to:{path:"/"}}}function z(){return{name:"项目中心",to:{name:"groupListPage"}}}function B(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function Y(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 V(){return{name:"用户列表",to:{path:"/users"}}}function $(){return{name:"个人中心",to:{path:"/profile"}}}function F(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function J(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function Q(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function G(){return{name:"数据库扩展",to:{path:"/settings/sysDatabaseType"}}}function X(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}var ee={index:function(){return[M()]},groupList:function(){return[M(),z()]},groupDashboard:function(e,t){return[M(),z(),B(e,t)]},groupProjectDocument:function(e,t){return[M(),z(),B(e,t),Y(e)]},userProfile:function(){return[M(),$()]},userList:function(){return[M(),V()]},sysEmailEdit:function(){return[M(),F()]},sysLog:function(){return[M(),J()]},sysOauth2:function(){return[M(),Q()]},sysDatabaseType:function(){return[M(),G()]},sysDocumentTemplate:function(){return[M(),X()]}},te=ee,ne=[{path:"/login",component:function(){return n.e(139).then(n.bind(n,41139))},hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:function(){return n.e(865).then(n.bind(n,68865))},hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:K,children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e(480),n.e(206)]).then(n.bind(n,32206))},meta:{breadcrumb:te.groupList}}]},{path:"/groups",icon:"Collection",component:K,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:function(){return Promise.all([n.e(480),n.e(206)]).then(n.bind(n,32206))},meta:{breadcrumb:te.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([n.e(480),n.e(725)]).then(n.bind(n,40725))},meta:{breadcrumb:te.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return n.e(408).then(n.bind(n,37408))},meta:{breadcrumb:te.groupProjectDocument}}]},{path:"/users",icon:"List",component:K,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:function(){return n.e(117).then(n.bind(n,4117))},meta:{breadcrumb:te.userList}}]},{path:"/profile",icon:"User",component:K,meta:{nav:"个人中心",breadcrumb:te.userProfile},children:[{path:"",hidden:!0,component:function(){return n.e(469).then(n.bind(n,26469))}}]},{path:"/settings",icon:"Setting",component:K,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:function(){return n.e(243).then(n.bind(n,51243))},meta:{nav:"邮箱设置",breadcrumb:te.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return n.e(17).then(n.bind(n,16017))},meta:{nav:"操作日志",breadcrumb:te.sysLog}},{path:"sysOauth2",icon:"Connection",component:function(){return n.e(834).then(n.bind(n,86834))},meta:{nav:"登陆设置",breadcrumb:te.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:function(){return n.e(918).then(n.bind(n,30918))},meta:{nav:"数据库扩展",breadcrumb:te.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:function(){return n.e(227).then(n.bind(n,93227))},meta:{nav:"文档模板",breadcrumb:te.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:K,meta:{nav:"系统秘钥",breadcrumb:te.sysKeyEdit}}]}],re=(0,r.p7)({history:(0,r.PO)(),routes:ne});re.beforeEach((function(e,t,n){0==e.meta.requireAuth?"/login"==e.path&&k.r.hasAccessToken()?n(t):n():k.r.hasAccessToken()?n():n({path:"/login"})})),re.beforeEach((function(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 oe=re},24239:function(e,t,n){var r=n(88637),o=n(51836),a=(0,r.MT)({state:function(){var e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=o.E.loadUserLoginData();return t&&(e.user.nickname=t.nickname,e.user.usernmae=t.usernmae,e.user.email=t.email,e.user.avatar=t.avatar),e},mutations:{userUpdate:function(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:function(e){e.menu.isCollapse=!0},expandMenu:function(e){e.menu.isCollapse=!1},switchGroupListActiveTab:function(e,t){t&&(e.groupListActiveTab=t)}}});t["Z"]=a},51836:function(e,t,n){n.d(t,{r:function(){return u},E:function(){return i}});n(38862),n(41539),n(21249);var r="accessToken",o="accessTokenExpireAt",a="userLoginData",u={hasAccessToken:function(){var e=this.loadAccessToken();return e},hasValidAccessToken:function(){var e=this.loadAccessToken(),t=window.localStorage.getItem(o);return e&&t?t>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken:function(e,t){window.localStorage.setItem(r,e),window.localStorage.setItem(o,t)},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(a,JSON.stringify(e))},removeUserLoginData:function(){window.localStorage.removeItem(a),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData:function(){if(!window.localStorage.getItem(a))return null;var e=window.localStorage.getItem(a);return JSON.parse(e)},hasAnyRoles:function(e){var t=window.localStorage.getItem(a);if(null==t)return!1;var n=JSON.parse(t);return n.roles.map((function(e){return e.groupId?e.role+"?groupId="+e.groupId:e.role})).some((function(t){return e.some((function(e){return e==t}))}))},getRefreshToken:function(){var e=window.localStorage.getItem(a);if(null==e)return null;var t=JSON.parse(e);return t.refreshToken}}},63872:function(e,t,n){var r=n(48534),o=(n(35666),n(41539),n(54747),n(23157),n(74916),n(15306),n(9669)),a=n.n(o),u=n(20610),i=n(24943),c=n(51836),s=n(40152),l={NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_API_URL;a().defaults.baseURL=l,a().defaults.timeout=15e3,a().defaults.withCredentials=!1,a().defaults.headers.post["Content-Type"]="application/json",a().defaults.headers.post["Access-Control-Allow-Origin-Type"]="*";var f=!1;function d(){f=!0}function p(){f=!1}var m=[];function h(e){m.push(e)}function g(e){m.forEach((function(t){t(e)})),m=[]}function y(e){return w.apply(this,arguments)}function w(){return w=(0,r.Z)(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(n=c.E.getRefreshToken(),n||k(),!f){e.next=4;break}return e.abrupt("return",new Promise((function(e){h((function(){t&&(t.headers.Authorization="Bearer "+c.r.loadAccessToken()),e(t)}))})));case 4:return d(),e.next=7,(0,s.jb)(n).then((function(e){e.errCode?k():(c.r.saveAccessToken(e.data.accessToken,e.data.accessTokenExpireAt),p())})).finally((function(){return p()}));case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)}))),w.apply(this,arguments)}function v(e){return b.apply(this,arguments)}function b(){return b=(0,r.Z)(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,a()({method:t.method,data:t.data,url:t.url,baseURL:t.baseURL,headers:{Authorization:"Bearer "+c.r.loadAccessToken()}});case 3:return n=e.sent,g(t),e.abrupt("return",n);case 8:e.prev=8,e.t0=e["catch"](0),console.log(e.t0),S("网络异常,请稍后再试");case 12:case"end":return e.stop()}}),e,null,[[0,8]])}))),b.apply(this,arguments)}function k(){c.E.removeUserLoginData(),i.Z.replace("/login")}function S(e){(0,u.z8)({message:e,type:"error",duration:5e3,grouping:!0})}a().interceptors.request.use(function(){var e=(0,r.Z)(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if("/access_tokens"!=t.url&&!t.url.startsWith("/oauth2")&&"/login"!=t.url){e.next=2;break}return e.abrupt("return",t);case 2:if(!c.r.hasValidAccessToken()){e.next=5;break}return t.headers.Authorization="Bearer "+c.r.loadAccessToken(),e.abrupt("return",t);case 5:if(!f){e.next=8;break}return n=new Promise((function(e){h((function(){t&&(t.headers.Authorization="Bearer "+c.r.loadAccessToken()),e(t)}))})),e.abrupt("return",n);case 8:return e.abrupt("return",t);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),(function(e){return p(),Promise.reject(e)})),a().interceptors.response.use((function(e){var t=e.data;return t.errCode&&S(t.errMessage),t}),(function(e){if(e.response)if(401==e.response.status){if("X_0002"==e.response.data.errCode)c.E.removeUserLoginData(),S("登陆状态失效,请重新登陆"),k();else if("X_0004"==e.response.data.errCode)return y(e.config).then((function(){return v(e.config)}))}else 403==e.response.status?S("无执行该操作的权限"):S(e.message);else console.log(e),S("网络异常,请稍后再试");return Promise.reject(e)})),t["Z"]=a()},36658:function(e,t,n){e.exports=n.p+"img/MariaDB.9e6854cc.svg"},92357:function(e,t,n){e.exports=n.p+"img/MySQL.c8f47618.svg"},22260:function(e,t,n){e.exports=n.p+"img/Oracle.c9ed26e0.svg"},43609:function(e,t,n){e.exports=n.p+"img/PostgreSQL.6e3d3a5e.svg"},35641:function(e,t,n){e.exports=n.p+"img/Sqlserver.deff7c4c.svg"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,a){if(!r){var u=1/0;for(l=0;l=a)&&Object.keys(n.O).every((function(e){return n.O[e](r[c])}))?r.splice(c--,1):(i=!1,a0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[r,o,a]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"-legacy."+{17:"5bee094a",117:"623d8834",139:"2e4437df",206:"8d16f9c5",227:"ed1b0a5b",243:"0e928586",408:"ddfcf48f",469:"9029bf4c",480:"e63a01f3",725:"47994393",834:"162d5bb2",865:"5ba4977e",918:"d3d8cbff"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",206:"6b48a93a",227:"90d5c1b0",408:"1969b1d0",725:"82a2f213",834:"f2905e33",865:"7df1e56e",918:"b113d9de"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="databasir:";n.l=function(r,o,a,u){if(e[r])e[r].push(o);else{var i,c;if(void 0!==a)for(var s=document.getElementsByTagName("script"),l=0;l {\r\n const data = new FormData();\r\n data.append('username', form.username);\r\n data.append('password', form.password);\r\n return axios.post('/login', data)\r\n}\r\n\r\nexport const oauth2Login = (registrationId, parameters) => {\r\n return axios.get('/oauth2/login/'+registrationId, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const logout = () => {\r\n return axios.get('/logout')\r\n}\r\n\r\nexport const loginInfo = () => {\r\n return axios.get('/api/v1.0/login_info')\r\n}\r\n\r\nexport const refreshAccessToken = (refreshToken) => {\r\n return axios.post('/access_tokens', {\r\n refreshToken: refreshToken\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\\\\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=14de696c\"\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\\\\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\nimport { VueClipboard } from '@soerenmartius/vue3-clipboard'\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 if (poper == null) {\r\n return;\r\n }\r\n const selector = poper.parentElement.querySelector('.el-select-dropdown .el-scrollbar .el-select-dropdown__wrap');\r\n if (selector == null) {\r\n console.log('load select component failed')\r\n return;\r\n }\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.use(VueClipboard)\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=0c349a0c\"\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=0c349a0c&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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\\\\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\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import axios from '@/utils/fetch';\r\n\r\nconst base = \"/api/v1.0/search\"\r\n\r\nexport const query = (keyword) => {\r\n return axios.get(base, {\r\n params: keyword\r\n })\r\n}","import { render } from \"./Layout.vue?vue&type=template&id=6a109b90\"\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=6a109b90&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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","import axios from 'axios';\r\nimport { ElMessage } from 'element-plus'\r\nimport router from '../router';\r\nimport { token, user } from './auth';\r\nimport { refreshAccessToken } from '../api/Login';\r\n\r\nconst BASE_API = process.env.VUE_APP_API_URL\r\n// default config\r\naxios.defaults.baseURL = BASE_API,\r\naxios.defaults.timeout = 15 * 1000;\r\naxios.defaults.withCredentials = false;\r\naxios.defaults.headers.post['Content-Type'] = 'application/json';\r\naxios.defaults.headers.post[\"Access-Control-Allow-Origin-Type\"] = \"*\";\r\n\r\n// token request config\r\n// eslint-disable-next-line\r\nlet tokenRefreshLock = false\r\n\r\nfunction lock() {\r\n tokenRefreshLock = true\r\n}\r\n\r\nfunction unlock() {\r\n tokenRefreshLock = false\r\n}\r\n\r\nlet blockRequests = []\r\n\r\nfunction blockRequest(request) {\r\n blockRequests.push(request)\r\n}\r\n\r\nfunction relaseRequests(config) {\r\n blockRequests.forEach(request => {\r\n request(config)\r\n })\r\n blockRequests = []\r\n}\r\n\r\n// 请求拦截器\r\naxios.interceptors.request.use(async function (config) {\r\n if (config.url == '/access_tokens' || config.url.startsWith('/oauth2') || config.url == '/login') {\r\n return config\r\n }\r\n\r\n if (token.hasValidAccessToken()) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n return config;\r\n }\r\n if (tokenRefreshLock) {\r\n const promise = new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n return promise\r\n } \r\n return config\r\n}, function (error) {\r\n unlock()\r\n return Promise.reject(error);\r\n});\r\n\r\n// response拦截器\r\naxios.interceptors.response.use(\r\n (response) => {\r\n const res = response.data;\r\n if (res.errCode) {\r\n notify(res.errMessage)\r\n }\r\n return res;\r\n },\r\n (error) => {\r\n if (error.response) {\r\n if(error.response.status == 401) {\r\n if (error.response.data.errCode == 'X_0002') {\r\n user.removeUserLoginData()\r\n notify('登陆状态失效,请重新登陆')\r\n redirectLogin()\r\n } else if (error.response.data.errCode == 'X_0004') {\r\n return refresh(error.config).then(() => retryFromResponse(error.config))\r\n }\r\n } else if (error.response.status == 403) {\r\n notify('无执行该操作的权限')\r\n } else {\r\n notify(error.message)\r\n } \r\n } else {\r\n console.log(error)\r\n notify('网络异常,请稍后再试')\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nasync function refresh(config) {\r\n const refreshToken = user.getRefreshToken()\r\n if(!refreshToken) {\r\n redirectLogin()\r\n }\r\n\r\n if(tokenRefreshLock) {\r\n return new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n }\r\n\r\n lock()\r\n return await refreshAccessToken(refreshToken).then(resp => {\r\n if (resp.errCode) {\r\n redirectLogin()\r\n } else {\r\n token.saveAccessToken(resp.data.accessToken, resp.data.accessTokenExpireAt)\r\n unlock()\r\n }\r\n }).finally(() => unlock())\r\n}\r\n\r\nasync function retryFromResponse(config) {\r\n try {\r\n const res = await axios({\r\n method: config.method,\r\n data: config.data,\r\n url: config.url,\r\n baseURL: config.baseURL,\r\n headers: {\r\n Authorization: 'Bearer ' + token.loadAccessToken()\r\n },\r\n })\r\n relaseRequests(config)\r\n return res;\r\n } catch(error) {\r\n console.log(error)\r\n notify(\"网络异常,请稍后再试\");\r\n }\r\n}\r\n\r\n\r\nfunction redirectLogin () {\r\n user.removeUserLoginData()\r\n router.replace('/login')\r\n}\r\n\r\nfunction notify(msg) {\r\n ElMessage({\r\n message: msg,\r\n type: 'error',\r\n duration: 5 * 1000,\r\n grouping: true,\r\n });\r\n}\r\n\r\nexport default axios;\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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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.\" + {\"17\":\"5bee094a\",\"117\":\"623d8834\",\"139\":\"2e4437df\",\"206\":\"8d16f9c5\",\"227\":\"ed1b0a5b\",\"243\":\"0e928586\",\"408\":\"ddfcf48f\",\"469\":\"9029bf4c\",\"480\":\"e63a01f3\",\"725\":\"47994393\",\"834\":\"162d5bb2\",\"865\":\"5ba4977e\",\"918\":\"d3d8cbff\"}[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\",\"206\":\"6b48a93a\",\"227\":\"90d5c1b0\",\"408\":\"1969b1d0\",\"725\":\"82a2f213\",\"834\":\"f2905e33\",\"865\":\"7df1e56e\",\"918\":\"b113d9de\"}[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__.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,\"206\":1,\"227\":1,\"408\":1,\"725\":1,\"834\":1,\"865\":1,\"918\":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__(21381); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["login","form","data","FormData","append","username","password","axios","oauth2Login","registrationId","parameters","params","refreshAccessToken","refreshToken","_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","icon","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","parentElement","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","console","log","hljs","javascript","use","hljsVuePlugin","store","ElementPlus","router","VueClipboard","mount","class","_component_el_container","_createVNode","_component_el_aside","_component_AppNav","onOnSearch","$options","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_dialog","$data","$event","title","width","_component_el_input","placeholder","onChange","_renderList","item","index","_component_el_link","underline","onClick","path","_component_el_tag","closable","type","onClose","label","projects","length","groups","_component_el_divider","project","groupName","_toDisplayString","projectName","_component_el_icon","_component_Right","group","name","_component_el_menu","collapse","_ctx","mode","_component_el_menu_item","_hoisted_1","_component_home_filled","menu","children","some","ele","hidden","_component_el_sub_menu","_resolveDynamicComponent","meta","nav","childIndex","_component_el_button","defineComponent","emits","setup","context","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","showSearchDialog","emit","_component_el_breadcrumb","separator","_component_el_breadcrumb_item","_component_fold","to","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","base","query","keyword","components","AppNav","Breadcrumb","Avatar","queryKeyword","queryData","queryLoading","searchSelectHistory","searchSelectHistoryKey","loadSearchSelectHistory","search","onQuery","val","then","resp","errCode","finally","jumpToGroup","select","history","filter","unshift","splice","window","localStorage","setItem","JSON","stringify","location","jumpToProject","groupId","projectId","jumpToPath","getItem","obj","parse","onRemoveSelectHistoryItem","groupList","groupDashboard","route","groupProjectDocument","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","sysDocumentTemplate","breadcurmbMap","requireAuth","Layout","createRouter","createWebHistory","beforeEach","from","next","token","createStore","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","Date","getTime","saveAccessToken","tokenExpireAt","saveUserLoginData","userLoginData","accessTokenExpireAt","removeUserLoginData","removeItem","loadUserLoginData","map","role","exists","expected","getRefreshToken","BASE_API","process","VUE_APP_API_URL","tokenRefreshLock","lock","unlock","blockRequests","blockRequest","request","relaseRequests","config","refresh","redirectLogin","Promise","resolve","headers","Authorization","retryFromResponse","method","url","baseURL","res","notify","msg","ElMessage","message","duration","grouping","startsWith","promise","error","reject","response","errMessage","status","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","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-legacy.d2b56939.js b/api/src/main/resources/static/js/app-legacy.d2b56939.js new file mode 100644 index 0000000..e738150 --- /dev/null +++ b/api/src/main/resources/static/js/app-legacy.d2b56939.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={40152:function(e,n,t){t.d(n,{x4:function(){return o},rd:function(){return a},jb:function(){return u}});var r=t(63872),o=function(e){var n=new FormData;return n.append("username",e.username),n.append("password",e.password),r.Z.post("/login",n)},a=function(e,n){return r.Z.get("/oauth2/login/"+e,{params:n})},u=function(e){return r.Z.post("/access_tokens",{refreshToken:e})}},21381:function(e,n,t){t(66992),t(88674),t(19601),t(17727),t(41539),t(54747),t(47941);var r=t(49963),o=t(8722),a=t(30137),u=t(30837),i=t(99622),c=t(66246),s=(t(54415),t(7843)),l=t(24239),d=t(66252);function f(e,n){var t=(0,d.up)("router-view");return(0,d.wg)(),(0,d.j4)(t)}var p=t(83744);const m={},h=(0,p.Z)(m,[["render",f]]);var g=h,w=t(51836),y=t(3577),v=["src"],b=["src"],k=["src"],S=["src"],x=["src"],_=["src"];function j(e,n,r,o,a,u){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(92357),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)((function(){return[(0,d._)("img",{src:t(43609),style:{"max-width":"33px","max-height":"33px"}},null,8,b)]})),_:1},8,["content"])):"oracle"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:2,content:r.databaseType,placement:"left"},{default:(0,d.w5)((function(){return[(0,d._)("img",{src:t(22260),style:{"max-width":"33px","max-height":"33px"}},null,8,k)]})),_:1},8,["content"])):"mariadb"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:3,content:r.databaseType,placement:"left"},{default:(0,d.w5)((function(){return[(0,d._)("img",{src:t(36658),style:{"max-width":"33px","max-height":"33px"}},null,8,S)]})),_:1},8,["content"])):"sqlserver"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:4,content:r.databaseType,placement:"left"},{default:(0,d.w5)((function(){return[(0,d._)("img",{src:t(35641),style:{"max-width":"33px","max-height":"33px"}},null,8,x)]})),_:1},8,["content"])):r.icon?((0,d.wg)(),(0,d.j4)(i,{key:5,content:r.databaseType,placement:"left"},{default:(0,d.w5)((function(){return[(0,d._)("img",{src:r.icon,style:{"max-width":"33px","max-height":"33px"}},null,8,_)]})),_:1},8,["content"])):((0,d.wg)(),(0,d.iD)(d.HY,{key:6},[(0,d.Uk)((0,y.zw)(r.databaseType),1)],64))}var T={props:{databaseType:String,icon:String}};const A=(0,p.Z)(T,[["render",j]]);var L=A,D=t(94890),C=(0,r.ri)(g);Object.keys(a).forEach((function(e){C.component(e,a[e])})),C.component("database-icon",L),C.directive("require-roles",{mounted:function(e,n){var t=n.value;w.E.hasAnyRoles(t)||e.parentNode&&e.parentNode.removeChild(e)}}),C.directive("select-more",{updated:function(e,n){var t=e.querySelector(".select-trigger"),r=t.getAttribute("aria-describedby"),o=document.getElementById(r);if(null!=o){var a=o.parentElement.querySelector(".el-select-dropdown .el-scrollbar .el-select-dropdown__wrap");null!=a?a.addEventListener("scroll",(function(){var e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&n.value()})):console.log("load select component failed")}}}),u.Z.registerLanguage("javascript",i.Z),C.use(c.Z),C.use(l.Z),C.use(o.Z),C.use(s.Z),C.use(D._),C.mount("#app")},7843:function(e,n,t){t.d(n,{Z:function(){return oe}});t(41539),t(78783),t(33948);var r=t(42119),o=(t(74916),t(64765),t(68309),t(66252)),a=t(3577),u={style:{"margin-top":"16px"}},i={class:"search-container"},c=["onClick"],s=(0,o.Uk)("project"),l=(0,o.Uk)(),d={class:"jump"},f=["onClick"],p=(0,o.Uk)("group"),m=(0,o.Uk)(),h={class:"jump"};function g(e,n,t,r,g,w){var y=(0,o.up)("AppNav"),v=(0,o.up)("el-aside"),b=(0,o.up)("Breadcrumb"),k=(0,o.up)("Avatar"),S=(0,o.up)("el-header"),x=(0,o.up)("router-view"),_=(0,o.up)("el-main"),j=(0,o.up)("el-container"),T=(0,o.up)("el-button"),A=(0,o.up)("el-input"),L=(0,o.up)("el-tag"),D=(0,o.up)("el-link"),C=(0,o.up)("el-divider"),q=(0,o.up)("Right"),N=(0,o.up)("el-icon"),E=(0,o.up)("el-dialog");return(0,o.wg)(),(0,o.j4)(j,{class:"databasir"},{default:(0,o.w5)((function(){return[(0,o.Wm)(v,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(y,{class:"databasir-nav",onOnSearch:n[0]||(n[0]=function(e){return w.search()})})]})),_:1}),(0,o.Wm)(S,{class:"databasir-main-header"},{default:(0,o.w5)((function(){return[(0,o.Wm)(b),(0,o.Wm)(k)]})),_:1}),(0,o.Wm)(_,{class:"databasir-main"},{default:(0,o.w5)((function(){return[(0,o.Wm)(j,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(_,{class:"databasir-main-content"},{default:(0,o.w5)((function(){return[(0,o.Wm)(x)]})),_:1})]})),_:1})]})),_:1}),(0,o.Wm)(E,{modelValue:g.showSearchDialog,"onUpdate:modelValue":n[2]||(n[2]=function(e){return g.showSearchDialog=e}),title:"搜索",width:w.dialogWidth()},{default:(0,o.w5)((function(){return[(0,o.Wm)(A,{modelValue:g.queryKeyword,"onUpdate:modelValue":n[1]||(n[1]=function(e){return g.queryKeyword=e}),placeholder:"分组、项目、database、schema 搜索",style:{width:"100%",border:"none"},onChange:w.onQuery},{prepend:(0,o.w5)((function(){return[(0,o.Wm)(T,{type:"text",loading:g.queryLoading,icon:"Search"},null,8,["loading"])]})),_:1},8,["modelValue","onChange"]),(0,o._)("div",u,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(g.searchSelectHistory,(function(e,n){return(0,o.wg)(),(0,o.j4)(D,{underline:!1,key:n,onClick:function(n){return w.jumpToPath(e.path)},style:{"margin-right":"12px","margin-bottom":"12px"}},{default:(0,o.w5)((function(){return[(0,o.Wm)(L,{closable:"",type:"group"==e.type?"primary":"success",onClose:function(n){return w.onRemoveSelectHistoryItem(e.label)}},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.label),1)]})),_:2},1032,["type","onClose"])]})),_:2},1032,["onClick"])})),128))]),g.queryData.projects.length>0||g.queryData.groups.length>0?((0,o.wg)(),(0,o.j4)(C,{key:0})):(0,o.kq)("",!0),(0,o._)("div",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(g.queryData.projects,(function(e,n){return(0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:n,onClick:function(n){return w.jumpToProject(e)}},[(0,o._)("span",null,[(0,o.Wm)(L,{type:"success"},{default:(0,o.w5)((function(){return[s]})),_:1}),l,(0,o.Wm)(D,{underline:!1},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.groupName)+" / "+(0,a.zw)(e.projectName),1)]})),_:2},1024)]),(0,o._)("span",d,[(0,o.Wm)(N,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(q)]})),_:1})])],8,c)})),128)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(g.queryData.groups,(function(e,n){return(0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:n,onClick:function(n){return w.jumpToGroup(e)}},[(0,o._)("span",null,[(0,o.Wm)(L,null,{default:(0,o.w5)((function(){return[p]})),_:1}),m,(0,o.Wm)(D,{underline:!1},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,a.zw)(e.name),1)]})),_:2},1024)]),(0,o._)("span",h,[(0,o.Wm)(N,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(q)]})),_:1})])],8,f)})),128))])]})),_:1},8,["modelValue","width"])]})),_:1})}t(57327),t(40561),t(38862);var w=(0,o._)("span",null,"Databasir",-1);function y(e,n,t,r,u,i){var c=(0,o.up)("home-filled"),s=(0,o.up)("el-icon"),l=(0,o.up)("el-menu-item"),d=(0,o.up)("el-sub-menu"),f=(0,o.up)("el-button"),p=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(p,{router:"",collapse:e.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{index:"/"},{title:(0,o.w5)((function(){return[w]})),default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(c)]})),_:1})]})),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.routes,(function(n,t){return(0,o.wg)(),(0,o.iD)(o.HY,{key:t},[e.isShowMenu(n)&&n.children.length>0&&n.children.some((function(e){return!e.hidden}))?((0,o.wg)(),(0,o.j4)(d,{key:0,index:n.path},{title:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(n.icon)))]})),_:2},1024),(0,o._)("span",null,(0,a.zw)(n.meta.nav),1)]})),default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.children,(function(e,r){return(0,o.wg)(),(0,o.iD)(o.HY,{key:t+"-"+r},[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(l,{key:0,index:n.path+"/"+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[e.icon?((0,o.wg)(),(0,o.j4)(s,{key:0},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))]})),_:2},1024)):(0,o.kq)("",!0)]})),_:2},1032,["index"]))],64)})),128))]})),_:2},1032,["index"])):e.isShowMenu(n)?((0,o.wg)(),(0,o.j4)(l,{key:1,index:n.path},{title:(0,o.w5)((function(){return[(0,o._)("span",null,(0,a.zw)(n.meta.nav),1)]})),default:(0,o.w5)((function(){return[(0,o.Wm)(s,null,{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.j4)((0,o.LL)(n.icon)))]})),_:2},1024)]})),_:2},1032,["index"])):(0,o.kq)("",!0)],64)})),128)),(0,o.Wm)(l,{index:"",onClick:n[0]||(n[0]=function(n){return e.showSearchDialog()})},{default:(0,o.w5)((function(){return[(0,o.Wm)(f,{type:"text",icon:"Search",style:{color:"#303133"}})]})),_:1})]})),_:1},8,["collapse"])}var v=t(2262),b=t(51836),k=t(24239),S=(0,o.aZ)({emits:["on-search"],setup:function(e,n){var t=(0,v.Fl)((function(){return k.Z.state.menu.isCollapse})),o=(0,r.tv)(),a=o.options.routes,u=function(e){if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){var n=b.E.hasAnyRoles(e.meta.requireAnyRoles);if(!n)return!1}return!0},i=function(){k.Z.commit("expandMenu")},c=function(){n.emit("on-search")};return{isCollapse:t,isShowMenu:u,expandMenu:i,routes:a,showSearchDialog:c}}}),x=t(83744);const _=(0,x.Z)(S,[["render",y]]);var j=_;function T(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 A={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 L=(0,x.Z)(A,[["render",T]]);var D=L,C=(0,o.Uk)("个人中心"),q=(0,o.Uk)("注销登陆");function N(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[C]})),_:1}),(0,o.Wm)(s,{icon:"back",onClick:n[1]||(n[1]=function(e){return i.onLogout()})},{default:(0,o.w5)((function(){return[q]})),_:1})]})),_:1})]})),default:(0,o.w5)((function(){return[(0,o.Wm)(c,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])]})),_:1})}var E={computed:{userNickname:function(){return this.$store.state.user.nickname},avatarUrl:function(){return this.$store.state.user.avatar}},methods:{onLogout:function(){b.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage:function(){this.$router.push({path:"/profile"})}}};const W=(0,x.Z)(E,[["render",N]]);var I=W,O=t(63872),H="/api/v1.0/search",P=function(e){return O.Z.get(H,{params:e})},U=t(98968),R={components:{AppNav:j,Breadcrumb:D,Avatar:I},data:function(){return{showSearchDialog:!1,queryKeyword:"",queryData:{projects:[],groups:[]},queryLoading:!1,searchSelectHistory:[],searchSelectHistoryKey:"globalSearchSelectHistory"}},mounted:function(){this.loadSearchSelectHistory()},methods:{search:function(){this.showSearchDialog=!0},onQuery:function(e){var n=this;this.queryLoading=!0,P({query:e}).then((function(e){e.errCode||(n.queryData=e.data)})).finally((function(){return n.queryLoading=!1}))},jumpToGroup:function(e){this.showSearchDialog=!1;var n="/groups/"+e.id+"?groupName="+e.name,t={label:e.name,path:n,type:"group"},r=this.searchSelectHistory.filter((function(e){return e.label!=t.label}));r.unshift(t),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=n},jumpToProject:function(e){this.showSearchDialog=!1;var n="/groups/"+e.groupId+"/projects/"+e.projectId+"/documents?groupName="+e.groupName+"&projectName="+e.projectName,t={label:e.groupName+" / "+e.projectName,path:n,type:"project"},r=this.searchSelectHistory.filter((function(e){return e.label!=t.label}));r.unshift(t),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=n},jumpToPath:function(e){window.location=e},loadSearchSelectHistory:function(){var e=this.searchSelectHistoryKey;if(null!=window.localStorage.getItem(e)){var n=JSON.parse(window.localStorage.getItem(e));this.searchSelectHistory=n}},onRemoveSelectHistoryItem:function(e){var n=this.searchSelectHistory.filter((function(n){return n.label!=e}));this.searchSelectHistory=n,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory))},dialogWidth:function(){return(0,U.c)()}}};const Z=(0,x.Z)(R,[["render",g]]);var K=Z;function M(){return{name:"首页",to:{path:"/"}}}function z(){return{name:"项目中心",to:{name:"groupListPage"}}}function B(e){var n="项目组";return e.query.groupName&&(n=e.query.groupName),{name:n,to:{path:"/groups/"+e.params.groupId}}}function Y(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 V(){return{name:"用户列表",to:{path:"/users"}}}function $(){return{name:"个人中心",to:{path:"/profile"}}}function F(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function J(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function Q(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function G(){return{name:"数据库扩展",to:{path:"/settings/sysDatabaseType"}}}function X(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}var ee={index:function(){return[M()]},groupList:function(){return[M(),z()]},groupDashboard:function(e,n){return[M(),z(),B(e,n)]},groupProjectDocument:function(e,n){return[M(),z(),B(e,n),Y(e)]},userProfile:function(){return[M(),$()]},userList:function(){return[M(),V()]},sysEmailEdit:function(){return[M(),F()]},sysLog:function(){return[M(),J()]},sysOauth2:function(){return[M(),Q()]},sysDatabaseType:function(){return[M(),G()]},sysDocumentTemplate:function(){return[M(),X()]}},ne=ee,te=[{path:"/login",component:function(){return t.e(139).then(t.bind(t,41139))},hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:function(){return t.e(865).then(t.bind(t,68865))},hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:K,children:[{path:"",hidden:!0,component:function(){return Promise.all([t.e(480),t.e(314)]).then(t.bind(t,36314))},meta:{breadcrumb:ne.groupList}}]},{path:"/groups",icon:"Collection",component:K,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:function(){return Promise.all([t.e(480),t.e(314)]).then(t.bind(t,36314))},meta:{breadcrumb:ne.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([t.e(480),t.e(725)]).then(t.bind(t,40725))},meta:{breadcrumb:ne.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return t.e(408).then(t.bind(t,37408))},meta:{breadcrumb:ne.groupProjectDocument}}]},{path:"/users",icon:"List",component:K,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:function(){return t.e(117).then(t.bind(t,4117))},meta:{breadcrumb:ne.userList}}]},{path:"/profile",icon:"User",component:K,meta:{nav:"个人中心",breadcrumb:ne.userProfile},children:[{path:"",hidden:!0,component:function(){return t.e(469).then(t.bind(t,26469))}}]},{path:"/settings",icon:"Setting",component:K,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:function(){return t.e(243).then(t.bind(t,51243))},meta:{nav:"邮箱设置",breadcrumb:ne.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return t.e(17).then(t.bind(t,16017))},meta:{nav:"操作日志",breadcrumb:ne.sysLog}},{path:"sysOauth2",icon:"Connection",component:function(){return t.e(834).then(t.bind(t,86834))},meta:{nav:"登陆设置",breadcrumb:ne.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:function(){return t.e(918).then(t.bind(t,30918))},meta:{nav:"数据库扩展",breadcrumb:ne.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:function(){return t.e(227).then(t.bind(t,93227))},meta:{nav:"文档模板",breadcrumb:ne.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:K,meta:{nav:"系统秘钥",breadcrumb:ne.sysKeyEdit}}]}],re=(0,r.p7)({history:(0,r.PO)(),routes:te});re.beforeEach((function(e,n,t){0==e.meta.requireAuth?"/login"==e.path&&b.r.hasAccessToken()?t(n):t():b.r.hasAccessToken()?t():t({path:"/login"})})),re.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 oe=re},24239:function(e,n,t){var r=t(88637),o=t(51836),a=(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"]=a},98968:function(e,n,t){t.d(n,{c:function(){return o}});var r=function(e){var n=window.innerWidth;return n>=1920?e.xl?e.xl:null:n>=1200?e.lg?e.lg:e.xl?e.xl:null:n>=992?e.md?e.md:e.lg?e.lg:e.xl?e.xl:null:n>=768?e.sm?e.sm:e.md?e.md:e.lg?e.lg:e.xl?e.xl:null:e.xs?e.xs:e.sm?e.sm:e.md?e.md:e.lg?e.lg:e.xl?e.xl:null},o=function(){return r({xl:"36%",lg:"42%",md:"60%",sm:"80%",xs:"90%"})}},51836:function(e,n,t){t.d(n,{r:function(){return u},E:function(){return i}});t(38862),t(41539),t(21249);var r="accessToken",o="accessTokenExpireAt",a="userLoginData",u={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(a,JSON.stringify(e))},removeUserLoginData:function(){window.localStorage.removeItem(a),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData:function(){if(!window.localStorage.getItem(a))return null;var e=window.localStorage.getItem(a);return JSON.parse(e)},hasAnyRoles:function(e){var n=window.localStorage.getItem(a);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(a);if(null==e)return null;var n=JSON.parse(e);return n.refreshToken}}},63872:function(e,n,t){var r=t(48534),o=(t(35666),t(41539),t(54747),t(23157),t(74916),t(15306),t(9669)),a=t.n(o),u=t(20610),i=t(7843),c=t(51836),s=t(40152),l={NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_API_URL;a().defaults.baseURL=l,a().defaults.timeout=15e3,a().defaults.withCredentials=!1,a().defaults.headers.post["Content-Type"]="application/json",a().defaults.headers.post["Access-Control-Allow-Origin-Type"]="*";var d=!1;function f(){d=!0}function p(){d=!1}var m=[];function h(e){m.push(e)}function g(e){m.forEach((function(n){n(e)})),m=[]}function w(e){return y.apply(this,arguments)}function y(){return y=(0,r.Z)(regeneratorRuntime.mark((function e(n){var t;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t=c.E.getRefreshToken(),t||k(),!d){e.next=4;break}return e.abrupt("return",new Promise((function(e){h((function(){n&&(n.headers.Authorization="Bearer "+c.r.loadAccessToken()),e(n)}))})));case 4:return f(),e.next=7,(0,s.jb)(t).then((function(e){e.errCode?k():(c.r.saveAccessToken(e.data.accessToken,e.data.accessTokenExpireAt),p())})).finally((function(){return p()}));case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)}))),y.apply(this,arguments)}function v(e){return b.apply(this,arguments)}function b(){return b=(0,r.Z)(regeneratorRuntime.mark((function e(n){var t;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,a()({method:n.method,data:n.data,url:n.url,baseURL:n.baseURL,headers:{Authorization:"Bearer "+c.r.loadAccessToken()}});case 3:return t=e.sent,g(n),e.abrupt("return",t);case 8:e.prev=8,e.t0=e["catch"](0),console.log(e.t0),S("网络异常,请稍后再试");case 12:case"end":return e.stop()}}),e,null,[[0,8]])}))),b.apply(this,arguments)}function k(){c.E.removeUserLoginData(),i.Z.replace("/login")}function S(e){(0,u.z8)({message:e,type:"error",duration:5e3,grouping:!0})}a().interceptors.request.use(function(){var e=(0,r.Z)(regeneratorRuntime.mark((function e(n){var t;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if("/access_tokens"!=n.url&&!n.url.startsWith("/oauth2")&&"/login"!=n.url){e.next=2;break}return e.abrupt("return",n);case 2:if(!c.r.hasValidAccessToken()){e.next=5;break}return n.headers.Authorization="Bearer "+c.r.loadAccessToken(),e.abrupt("return",n);case 5:if(!d){e.next=8;break}return t=new Promise((function(e){h((function(){n&&(n.headers.Authorization="Bearer "+c.r.loadAccessToken()),e(n)}))})),e.abrupt("return",t);case 8:return e.abrupt("return",n);case 9:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),(function(e){return p(),Promise.reject(e)})),a().interceptors.response.use((function(e){var n=e.data;return n.errCode&&S(n.errMessage),n}),(function(e){if(e.response)if(401==e.response.status){if("X_0002"==e.response.data.errCode)c.E.removeUserLoginData(),S("登陆状态失效,请重新登陆"),k();else if("X_0004"==e.response.data.errCode)return w(e.config).then((function(){return v(e.config)}))}else 403==e.response.status?S("无执行该操作的权限"):S(e.message);else console.log(e),S("网络异常,请稍后再试");return Promise.reject(e)})),n["Z"]=a()},36658:function(e,n,t){e.exports=t.p+"img/MariaDB.9e6854cc.svg"},92357:function(e,n,t){e.exports=t.p+"img/MySQL.c8f47618.svg"},22260:function(e,n,t){e.exports=t.p+"img/Oracle.c9ed26e0.svg"},43609:function(e,n,t){e.exports=t.p+"img/PostgreSQL.6e3d3a5e.svg"},35641:function(e,n,t){e.exports=t.p+"img/Sqlserver.deff7c4c.svg"}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var a=n[r]={exports:{}};return e[r].call(a.exports,a,a.exports,t),a.exports}t.m=e,function(){var e=[];t.O=function(n,r,o,a){if(!r){var u=1/0;for(l=0;l=a)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(i=!1,a0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[r,o,a]}}(),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."+{17:"5bee094a",117:"623d8834",139:"2e4437df",227:"ed1b0a5b",243:"0e928586",314:"e55474ea",408:"ddfcf48f",469:"9029bf4c",480:"e63a01f3",725:"47994393",834:"162d5bb2",865:"5ba4977e",918:"d3d8cbff"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",227:"90d5c1b0",314:"6b48a93a",408:"1969b1d0",725:"82a2f213",834:"f2905e33",865:"7df1e56e",918:"b113d9de"}[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,a,u){if(e[r])e[r].push(o);else{var i,c;if(void 0!==a)for(var s=document.getElementsByTagName("script"),l=0;l {\r\n const data = new FormData();\r\n data.append('username', form.username);\r\n data.append('password', form.password);\r\n return axios.post('/login', data)\r\n}\r\n\r\nexport const oauth2Login = (registrationId, parameters) => {\r\n return axios.get('/oauth2/login/'+registrationId, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const logout = () => {\r\n return axios.get('/logout')\r\n}\r\n\r\nexport const loginInfo = () => {\r\n return axios.get('/api/v1.0/login_info')\r\n}\r\n\r\nexport const refreshAccessToken = (refreshToken) => {\r\n return axios.post('/access_tokens', {\r\n refreshToken: refreshToken\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\\\\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=14de696c\"\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\\\\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\nimport { VueClipboard } from '@soerenmartius/vue3-clipboard'\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 if (poper == null) {\r\n return;\r\n }\r\n const selector = poper.parentElement.querySelector('.el-select-dropdown .el-scrollbar .el-select-dropdown__wrap');\r\n if (selector == null) {\r\n console.log('load select component failed')\r\n return;\r\n }\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.use(VueClipboard)\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=0c349a0c\"\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=0c349a0c&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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\\\\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\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import axios from '@/utils/fetch';\r\n\r\nconst base = \"/api/v1.0/search\"\r\n\r\nexport const query = (keyword) => {\r\n return axios.get(base, {\r\n params: keyword\r\n })\r\n}","import { render } from \"./Layout.vue?vue&type=template&id=68ce833b\"\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=68ce833b&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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","export const responsive = (map) => {\r\n const width = window.innerWidth\r\n if (width >= 1920) {\r\n return (map.xl?map.xl: null)\r\n } else if (width >= 1200) {\r\n return (map.lg?map.lg: map.xl?map.xl: null)\r\n\r\n } else if (width >= 992) {\r\n return (map.md? map.md: map.lg?map.lg: map.xl?map.xl: null)\r\n\r\n } else if (width >= 768) {\r\n return map.sm ? map.sm : (map.md? map.md: map.lg?map.lg: map.xl?map.xl: null)\r\n } else {\r\n return map.xs ? map.xs :(map.sm ? map.sm : (map.md? map.md: map.lg?map.lg: map.xl?map.xl: null))\r\n }\r\n}\r\n\r\n\r\nexport const dialogPercentWidth = () => {\r\n return responsive({\r\n xl: \"36%\",\r\n lg: \"42%\",\r\n md: \"60%\",\r\n sm: \"80%\",\r\n xs: \"90%\"\r\n })\r\n}","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","import axios from 'axios';\r\nimport { ElMessage } from 'element-plus'\r\nimport router from '../router';\r\nimport { token, user } from './auth';\r\nimport { refreshAccessToken } from '../api/Login';\r\n\r\nconst BASE_API = process.env.VUE_APP_API_URL\r\n// default config\r\naxios.defaults.baseURL = BASE_API,\r\naxios.defaults.timeout = 15 * 1000;\r\naxios.defaults.withCredentials = false;\r\naxios.defaults.headers.post['Content-Type'] = 'application/json';\r\naxios.defaults.headers.post[\"Access-Control-Allow-Origin-Type\"] = \"*\";\r\n\r\n// token request config\r\n// eslint-disable-next-line\r\nlet tokenRefreshLock = false\r\n\r\nfunction lock() {\r\n tokenRefreshLock = true\r\n}\r\n\r\nfunction unlock() {\r\n tokenRefreshLock = false\r\n}\r\n\r\nlet blockRequests = []\r\n\r\nfunction blockRequest(request) {\r\n blockRequests.push(request)\r\n}\r\n\r\nfunction relaseRequests(config) {\r\n blockRequests.forEach(request => {\r\n request(config)\r\n })\r\n blockRequests = []\r\n}\r\n\r\n// 请求拦截器\r\naxios.interceptors.request.use(async function (config) {\r\n if (config.url == '/access_tokens' || config.url.startsWith('/oauth2') || config.url == '/login') {\r\n return config\r\n }\r\n\r\n if (token.hasValidAccessToken()) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n return config;\r\n }\r\n if (tokenRefreshLock) {\r\n const promise = new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n return promise\r\n } \r\n return config\r\n}, function (error) {\r\n unlock()\r\n return Promise.reject(error);\r\n});\r\n\r\n// response拦截器\r\naxios.interceptors.response.use(\r\n (response) => {\r\n const res = response.data;\r\n if (res.errCode) {\r\n notify(res.errMessage)\r\n }\r\n return res;\r\n },\r\n (error) => {\r\n if (error.response) {\r\n if(error.response.status == 401) {\r\n if (error.response.data.errCode == 'X_0002') {\r\n user.removeUserLoginData()\r\n notify('登陆状态失效,请重新登陆')\r\n redirectLogin()\r\n } else if (error.response.data.errCode == 'X_0004') {\r\n return refresh(error.config).then(() => retryFromResponse(error.config))\r\n }\r\n } else if (error.response.status == 403) {\r\n notify('无执行该操作的权限')\r\n } else {\r\n notify(error.message)\r\n } \r\n } else {\r\n console.log(error)\r\n notify('网络异常,请稍后再试')\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nasync function refresh(config) {\r\n const refreshToken = user.getRefreshToken()\r\n if(!refreshToken) {\r\n redirectLogin()\r\n }\r\n\r\n if(tokenRefreshLock) {\r\n return new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n }\r\n\r\n lock()\r\n return await refreshAccessToken(refreshToken).then(resp => {\r\n if (resp.errCode) {\r\n redirectLogin()\r\n } else {\r\n token.saveAccessToken(resp.data.accessToken, resp.data.accessTokenExpireAt)\r\n unlock()\r\n }\r\n }).finally(() => unlock())\r\n}\r\n\r\nasync function retryFromResponse(config) {\r\n try {\r\n const res = await axios({\r\n method: config.method,\r\n data: config.data,\r\n url: config.url,\r\n baseURL: config.baseURL,\r\n headers: {\r\n Authorization: 'Bearer ' + token.loadAccessToken()\r\n },\r\n })\r\n relaseRequests(config)\r\n return res;\r\n } catch(error) {\r\n console.log(error)\r\n notify(\"网络异常,请稍后再试\");\r\n }\r\n}\r\n\r\n\r\nfunction redirectLogin () {\r\n user.removeUserLoginData()\r\n router.replace('/login')\r\n}\r\n\r\nfunction notify(msg) {\r\n ElMessage({\r\n message: msg,\r\n type: 'error',\r\n duration: 5 * 1000,\r\n grouping: true,\r\n });\r\n}\r\n\r\nexport default axios;\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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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.\" + {\"17\":\"5bee094a\",\"117\":\"623d8834\",\"139\":\"2e4437df\",\"227\":\"ed1b0a5b\",\"243\":\"0e928586\",\"314\":\"e55474ea\",\"408\":\"ddfcf48f\",\"469\":\"9029bf4c\",\"480\":\"e63a01f3\",\"725\":\"47994393\",\"834\":\"162d5bb2\",\"865\":\"5ba4977e\",\"918\":\"d3d8cbff\"}[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\",\"227\":\"90d5c1b0\",\"314\":\"6b48a93a\",\"408\":\"1969b1d0\",\"725\":\"82a2f213\",\"834\":\"f2905e33\",\"865\":\"7df1e56e\",\"918\":\"b113d9de\"}[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__.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,\"227\":1,\"314\":1,\"408\":1,\"725\":1,\"834\":1,\"865\":1,\"918\":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__(21381); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["login","form","data","FormData","append","username","password","axios","oauth2Login","registrationId","parameters","params","refreshAccessToken","refreshToken","_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","icon","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","parentElement","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","console","log","hljs","javascript","use","hljsVuePlugin","store","ElementPlus","router","VueClipboard","mount","class","_component_el_container","_createVNode","_component_el_aside","_component_AppNav","onOnSearch","$options","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_dialog","$data","$event","title","width","_component_el_input","placeholder","onChange","prepend","_component_el_button","type","loading","_renderList","item","index","_component_el_link","underline","onClick","path","_component_el_tag","closable","onClose","label","projects","length","groups","_component_el_divider","project","groupName","_toDisplayString","projectName","_component_el_icon","_component_Right","group","name","_component_el_menu","collapse","_ctx","mode","_component_el_menu_item","_hoisted_1","_component_home_filled","menu","children","some","ele","hidden","_component_el_sub_menu","_resolveDynamicComponent","meta","nav","childIndex","defineComponent","emits","setup","context","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","showSearchDialog","emit","_component_el_breadcrumb","separator","_component_el_breadcrumb_item","_component_fold","to","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","base","query","keyword","components","AppNav","Breadcrumb","Avatar","queryKeyword","queryData","queryLoading","searchSelectHistory","searchSelectHistoryKey","loadSearchSelectHistory","search","onQuery","val","then","resp","errCode","finally","jumpToGroup","select","history","filter","unshift","splice","window","localStorage","setItem","JSON","stringify","location","jumpToProject","groupId","projectId","jumpToPath","getItem","obj","parse","onRemoveSelectHistoryItem","dialogWidth","dialogPercentWidth","groupList","groupDashboard","route","groupProjectDocument","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","sysDocumentTemplate","breadcurmbMap","requireAuth","Layout","createRouter","createWebHistory","beforeEach","from","next","token","createStore","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","responsive","map","innerWidth","xl","lg","md","sm","xs","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","Date","getTime","saveAccessToken","tokenExpireAt","saveUserLoginData","userLoginData","accessTokenExpireAt","removeUserLoginData","removeItem","loadUserLoginData","role","exists","expected","getRefreshToken","BASE_API","process","VUE_APP_API_URL","tokenRefreshLock","lock","unlock","blockRequests","blockRequest","request","relaseRequests","config","refresh","redirectLogin","Promise","resolve","headers","Authorization","retryFromResponse","method","url","baseURL","res","notify","msg","ElMessage","message","duration","grouping","startsWith","promise","error","reject","response","errMessage","status","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","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.3b9845e4.js b/api/src/main/resources/static/js/app.3b9845e4.js new file mode 100644 index 0000000..a112038 --- /dev/null +++ b/api/src/main/resources/static/js/app.3b9845e4.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={152:function(e,t,n){n.d(t,{x4:function(){return o},rd:function(){return a},jb:function(){return s}});var r=n(3872);const o=e=>{const t=new FormData;return t.append("username",e.username),t.append("password",e.password),r.Z.post("/login",t)},a=(e,t)=>r.Z.get("/oauth2/login/"+e,{params:t}),s=e=>r.Z.post("/access_tokens",{refreshToken:e})},1381:function(e,t,n){var r=n(9963),o=n(8722),a=n(137),s=n(837),i=n(9622),u=n(6246),l=(n(4415),n(1773)),c=n(4239),d=n(6252);function p(e,t){const n=(0,d.up)("router-view");return(0,d.wg)(),(0,d.j4)(n)}var m=n(3744);const h={},f=(0,m.Z)(h,[["render",p]]);var g=f,w=n(1836),y=n(3577);const b=["src"],v=["src"],k=["src"],S=["src"],_=["src"],j=["src"];function x(e,t,r,o,a,s){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,b)])),_: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,v)])),_:1},8,["content"])):"oracle"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:2,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(2260),style:{"max-width":"33px","max-height":"33px"}},null,8,k)])),_:1},8,["content"])):"mariadb"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:3,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(6658),style:{"max-width":"33px","max-height":"33px"}},null,8,S)])),_:1},8,["content"])):"sqlserver"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:4,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(5641),style:{"max-width":"33px","max-height":"33px"}},null,8,_)])),_:1},8,["content"])):r.icon?((0,d.wg)(),(0,d.j4)(i,{key:5,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:r.icon,style:{"max-width":"33px","max-height":"33px"}},null,8,j)])),_:1},8,["content"])):((0,d.wg)(),(0,d.iD)(d.HY,{key:6},[(0,d.Uk)((0,y.zw)(r.databaseType),1)],64))}var T={props:{databaseType:String,icon:String}};const A=(0,m.Z)(T,[["render",x]]);var L=A,D=n(4890);const C=(0,r.ri)(g);Object.keys(a).forEach((e=>{C.component(e,a[e])})),C.component("database-icon",L),C.directive("require-roles",{mounted(e,t){const n=t.value;w.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),C.directive("select-more",{updated(e,t){const n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),o=document.getElementById(r);if(null==o)return;const a=o.parentElement.querySelector(".el-select-dropdown .el-scrollbar .el-select-dropdown__wrap");null!=a?a.addEventListener("scroll",(function(){const e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()})):console.log("load select component failed")}}),s.Z.registerLanguage("javascript",i.Z),C.use(u.Z),C.use(c.Z),C.use(o.Z),C.use(l.Z),C.use(D._),C.mount("#app")},1773:function(e,t,n){n.d(t,{Z:function(){return oe}});var r=n(2119),o=n(6252),a=n(3577);const s={style:{"margin-top":"16px"}},i={class:"search-container"},u=["onClick"],l=(0,o.Uk)("project"),c=(0,o.Uk)(),d={class:"jump"},p=["onClick"],m=(0,o.Uk)("group"),h=(0,o.Uk)(),f={class:"jump"};function g(e,t,n,r,g,w){const y=(0,o.up)("AppNav"),b=(0,o.up)("el-aside"),v=(0,o.up)("Breadcrumb"),k=(0,o.up)("Avatar"),S=(0,o.up)("el-header"),_=(0,o.up)("router-view"),j=(0,o.up)("el-main"),x=(0,o.up)("el-container"),T=(0,o.up)("el-button"),A=(0,o.up)("el-input"),L=(0,o.up)("el-tag"),D=(0,o.up)("el-link"),C=(0,o.up)("el-divider"),q=(0,o.up)("Right"),N=(0,o.up)("el-icon"),E=(0,o.up)("el-dialog");return(0,o.wg)(),(0,o.j4)(x,{class:"databasir"},{default:(0,o.w5)((()=>[(0,o.Wm)(b,null,{default:(0,o.w5)((()=>[(0,o.Wm)(y,{class:"databasir-nav",onOnSearch:t[0]||(t[0]=e=>w.search())})])),_:1}),(0,o.Wm)(S,{class:"databasir-main-header"},{default:(0,o.w5)((()=>[(0,o.Wm)(v),(0,o.Wm)(k)])),_:1}),(0,o.Wm)(j,{class:"databasir-main"},{default:(0,o.w5)((()=>[(0,o.Wm)(x,null,{default:(0,o.w5)((()=>[(0,o.Wm)(j,{class:"databasir-main-content"},{default:(0,o.w5)((()=>[(0,o.Wm)(_)])),_:1})])),_:1})])),_:1}),(0,o.Wm)(E,{modelValue:g.showSearchDialog,"onUpdate:modelValue":t[2]||(t[2]=e=>g.showSearchDialog=e),title:"搜索",width:w.dialogWidth()},{default:(0,o.w5)((()=>[(0,o.Wm)(A,{modelValue:g.queryKeyword,"onUpdate:modelValue":t[1]||(t[1]=e=>g.queryKeyword=e),placeholder:"分组、项目、database、schema 搜索",style:{width:"100%",border:"none"},onChange:w.onQuery},{prepend:(0,o.w5)((()=>[(0,o.Wm)(T,{type:"text",loading:g.queryLoading,icon:"Search"},null,8,["loading"])])),_:1},8,["modelValue","onChange"]),(0,o._)("div",s,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(g.searchSelectHistory,((e,t)=>((0,o.wg)(),(0,o.j4)(D,{underline:!1,key:t,onClick:t=>w.jumpToPath(e.path),style:{"margin-right":"12px","margin-bottom":"12px"}},{default:(0,o.w5)((()=>[(0,o.Wm)(L,{closable:"",type:"group"==e.type?"primary":"success",onClose:t=>w.onRemoveSelectHistoryItem(e.label)},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.label),1)])),_:2},1032,["type","onClose"])])),_:2},1032,["onClick"])))),128))]),g.queryData.projects.length>0||g.queryData.groups.length>0?((0,o.wg)(),(0,o.j4)(C,{key:0})):(0,o.kq)("",!0),(0,o._)("div",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(g.queryData.projects,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:t,onClick:t=>w.jumpToProject(e)},[(0,o._)("span",null,[(0,o.Wm)(L,{type:"success"},{default:(0,o.w5)((()=>[l])),_:1}),c,(0,o.Wm)(D,{underline:!1},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.groupName)+" / "+(0,a.zw)(e.projectName),1)])),_:2},1024)]),(0,o._)("span",d,[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(q)])),_:1})])],8,u)))),128)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(g.queryData.groups,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:t,onClick:t=>w.jumpToGroup(e)},[(0,o._)("span",null,[(0,o.Wm)(L,null,{default:(0,o.w5)((()=>[m])),_:1}),h,(0,o.Wm)(D,{underline:!1},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.name),1)])),_:2},1024)]),(0,o._)("span",f,[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(q)])),_:1})])],8,p)))),128))])])),_:1},8,["modelValue","width"])])),_:1})}const w=(0,o._)("span",null,"Databasir",-1);function y(e,t,n,r,s,i){const u=(0,o.up)("home-filled"),l=(0,o.up)("el-icon"),c=(0,o.up)("el-menu-item"),d=(0,o.up)("el-sub-menu"),p=(0,o.up)("el-button"),m=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(m,{router:"",collapse:e.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((()=>[(0,o.Wm)(c,{index:"/"},{title:(0,o.w5)((()=>[w])),default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Wm)(u)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.routes,((t,n)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n},[e.isShowMenu(t)&&t.children.length>0&&t.children.some((e=>!e.hidden))?((0,o.wg)(),(0,o.j4)(d,{key:0,index:t.path},{title:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))])),_:2},1024),(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)])),default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.children,((e,r)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n+"-"+r},[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(c,{key:0,index:t.path+"/"+e.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,a.zw)(e.meta.nav),1)])),default:(0,o.w5)((()=>[e.icon?((0,o.wg)(),(0,o.j4)(l,{key:0},{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1032,["index"]))],64)))),128))])),_:2},1032,["index"])):e.isShowMenu(t)?((0,o.wg)(),(0,o.j4)(c,{key:1,index:t.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)])),default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))])),_:2},1024)])),_:2},1032,["index"])):(0,o.kq)("",!0)],64)))),128)),(0,o.Wm)(c,{index:"",onClick:t[0]||(t[0]=t=>e.showSearchDialog())},{default:(0,o.w5)((()=>[(0,o.Wm)(p,{type:"text",icon:"Search",style:{color:"#303133"}})])),_:1})])),_:1},8,["collapse"])}var b=n(2262),v=n(1836),k=n(4239),S=(0,o.aZ)({emits:["on-search"],setup(e,t){const n=(0,b.Fl)((()=>k.Z.state.menu.isCollapse)),o=(0,r.tv)(),a=o.options.routes,s=e=>{if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){const t=v.E.hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},i=()=>{k.Z.commit("expandMenu")},u=()=>{t.emit("on-search")};return{isCollapse:n,isShowMenu:s,expandMenu:i,routes:a,showSearchDialog:u}}}),_=n(3744);const j=(0,_.Z)(S,[["render",y]]);var x=j;function T(e,t,n,r,s,i){const u=(0,o.up)("fold"),l=(0,o.up)("el-icon"),c=(0,o.up)("el-link"),d=(0,o.up)("el-breadcrumb-item"),p=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(p,{separator:"/"},{default:(0,o.w5)((()=>[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(c,{onClick:t[0]||(t[0]=e=>i.onFoldMenu()),underline:!1},{default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Wm)(u)])),_:1})])),_:1})])),_:1})),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.breadcrumbs,((e,t)=>((0,o.wg)(),(0,o.j4)(d,{key:t,to:e.to},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.name),1)])),_:2},1032,["to"])))),128))])),_:1})}var A={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 L=(0,_.Z)(A,[["render",T]]);var D=L;const C=(0,o.Uk)("个人中心"),q=(0,o.Uk)("注销登陆");function N(e,t,n,r,s,i){const u=(0,o.up)("el-avatar"),l=(0,o.up)("el-dropdown-item"),c=(0,o.up)("el-dropdown-menu"),d=(0,o.up)("el-dropdown");return(0,o.wg)(),(0,o.j4)(d,null,{dropdown:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(i.userNickname),1)])),_:1}),(0,o.Wm)(l,{icon:"user",divided:"",onClick:t[0]||(t[0]=e=>i.toProfilePage())},{default:(0,o.w5)((()=>[C])),_:1}),(0,o.Wm)(l,{icon:"back",onClick:t[1]||(t[1]=e=>i.onLogout())},{default:(0,o.w5)((()=>[q])),_:1})])),_:1})])),default:(0,o.w5)((()=>[(0,o.Wm)(u,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])])),_:1})}var E={computed:{userNickname(){return this.$store.state.user.nickname},avatarUrl(){return this.$store.state.user.avatar}},methods:{onLogout(){v.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage(){this.$router.push({path:"/profile"})}}};const W=(0,_.Z)(E,[["render",N]]);var I=W,O=n(3872);const H="/api/v1.0/search",U=e=>O.Z.get(H,{params:e});var P=n(8968),Z={components:{AppNav:x,Breadcrumb:D,Avatar:I},data(){return{showSearchDialog:!1,queryKeyword:"",queryData:{projects:[],groups:[]},queryLoading:!1,searchSelectHistory:[],searchSelectHistoryKey:"globalSearchSelectHistory"}},mounted(){this.loadSearchSelectHistory()},methods:{search(){this.showSearchDialog=!0},onQuery(e){this.queryLoading=!0,U({query:e}).then((e=>{e.errCode||(this.queryData=e.data)})).finally((()=>this.queryLoading=!1))},jumpToGroup(e){this.showSearchDialog=!1;const t="/groups/"+e.id+"?groupName="+e.name,n={label:e.name,path:t,type:"group"},r=this.searchSelectHistory.filter((e=>e.label!=n.label));r.unshift(n),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=t},jumpToProject(e){this.showSearchDialog=!1;const t="/groups/"+e.groupId+"/projects/"+e.projectId+"/documents?groupName="+e.groupName+"&projectName="+e.projectName,n={label:e.groupName+" / "+e.projectName,path:t,type:"project"},r=this.searchSelectHistory.filter((e=>e.label!=n.label));r.unshift(n),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=t},jumpToPath(e){window.location=e},loadSearchSelectHistory(){const e=this.searchSelectHistoryKey;if(null!=window.localStorage.getItem(e)){const t=JSON.parse(window.localStorage.getItem(e));this.searchSelectHistory=t}},onRemoveSelectHistoryItem(e){const t=this.searchSelectHistory.filter((t=>t.label!=e));this.searchSelectHistory=t,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory))},dialogWidth(){return(0,P.c)()}}};const R=(0,_.Z)(Z,[["render",g]]);var K=R;function M(){return{name:"首页",to:{path:"/"}}}function z(){return{name:"项目中心",to:{name:"groupListPage"}}}function B(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function Y(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 V(){return{name:"用户列表",to:{path:"/users"}}}function $(){return{name:"个人中心",to:{path:"/profile"}}}function F(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function J(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function Q(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function G(){return{name:"数据库扩展",to:{path:"/settings/sysDatabaseType"}}}function X(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}const ee={index:()=>[M()],groupList:()=>[M(),z()],groupDashboard:(e,t)=>[M(),z(),B(e,t)],groupProjectDocument:(e,t)=>[M(),z(),B(e,t),Y(e)],userProfile:()=>[M(),$()],userList:()=>[M(),V()],sysEmailEdit:()=>[M(),F()],sysLog:()=>[M(),J()],sysOauth2:()=>[M(),Q()],sysDatabaseType:()=>[M(),G()],sysDocumentTemplate:()=>[M(),X()]};var te=ee;const ne=[{path:"/login",component:()=>n.e(139).then(n.bind(n,1139)),hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:()=>n.e(865).then(n.bind(n,8865)),hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:K,children:[{path:"",hidden:!0,component:()=>n.e(314).then(n.bind(n,6314)),meta:{breadcrumb:te.groupList}}]},{path:"/groups",icon:"Collection",component:K,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:()=>n.e(314).then(n.bind(n,6314)),meta:{breadcrumb:te.groupList}},{path:":groupId",hidden:!0,component:()=>n.e(725).then(n.bind(n,725)),meta:{breadcrumb:te.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:()=>n.e(991).then(n.bind(n,1991)),meta:{breadcrumb:te.groupProjectDocument}}]},{path:"/users",icon:"List",component:K,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:()=>n.e(117).then(n.bind(n,4117)),meta:{breadcrumb:te.userList}}]},{path:"/profile",icon:"User",component:K,meta:{nav:"个人中心",breadcrumb:te.userProfile},children:[{path:"",hidden:!0,component:()=>n.e(469).then(n.bind(n,6469))}]},{path:"/settings",icon:"Setting",component:K,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:()=>n.e(243).then(n.bind(n,1243)),meta:{nav:"邮箱设置",breadcrumb:te.sysEmailEdit}},{path:"sysLog",icon:"Document",component:()=>n.e(17).then(n.bind(n,6017)),meta:{nav:"操作日志",breadcrumb:te.sysLog}},{path:"sysOauth2",icon:"Connection",component:()=>n.e(834).then(n.bind(n,6834)),meta:{nav:"登陆设置",breadcrumb:te.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:()=>n.e(918).then(n.bind(n,918)),meta:{nav:"数据库扩展",breadcrumb:te.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:()=>n.e(227).then(n.bind(n,3227)),meta:{nav:"文档模板",breadcrumb:te.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:K,meta:{nav:"系统秘钥",breadcrumb:te.sysKeyEdit}}]}],re=(0,r.p7)({history:(0,r.PO)(),routes:ne});re.beforeEach(((e,t,n)=>{0==e.meta.requireAuth?"/login"==e.path&&v.r.hasAccessToken()?n(t):n():v.r.hasAccessToken()?n():n({path:"/login"})})),re.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 oe=re},4239:function(e,t,n){var r=n(8637),o=n(1836);const a=(0,r.MT)({state(){const e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=o.E.loadUserLoginData();return t&&(e.user.nickname=t.nickname,e.user.usernmae=t.usernmae,e.user.email=t.email,e.user.avatar=t.avatar),e},mutations:{userUpdate(e,t){t.nickname&&(e.user.nickname=t.nickname),t.usernmae&&(e.user.usernmae=t.usernmae),t.email&&(e.user.email=t.email),t.avatar&&(e.user.avatar=t.avatar)},foldMenu(e){e.menu.isCollapse=!0},expandMenu(e){e.menu.isCollapse=!1},switchGroupListActiveTab(e,t){t&&(e.groupListActiveTab=t)}}});t["Z"]=a},8968:function(e,t,n){n.d(t,{c:function(){return o}});const r=e=>{const t=window.innerWidth;return t>=1920?e.xl?e.xl:null:t>=1200?e.lg?e.lg:e.xl?e.xl:null:t>=992?e.md?e.md:e.lg?e.lg:e.xl?e.xl:null:t>=768?e.sm?e.sm:e.md?e.md:e.lg?e.lg:e.xl?e.xl:null:e.xs?e.xs:e.sm?e.sm:e.md?e.md:e.lg?e.lg:e.xl?e.xl:null},o=()=>r({xl:"36%",lg:"42%",md:"60%",sm:"80%",xs:"90%"})},1836:function(e,t,n){n.d(t,{r:function(){return s},E:function(){return i}});const r="accessToken",o="accessTokenExpireAt",a="userLoginData",s={hasAccessToken(){const e=this.loadAccessToken();return e},hasValidAccessToken(){const e=this.loadAccessToken(),t=window.localStorage.getItem(o);return e&&t?t>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken(e,t){window.localStorage.setItem(r,e),window.localStorage.setItem(o,t)},loadAccessToken(){let e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(a,JSON.stringify(e))},removeUserLoginData(){window.localStorage.removeItem(a),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData(){if(!window.localStorage.getItem(a))return null;const e=window.localStorage.getItem(a);return JSON.parse(e)},hasAnyRoles(e){const t=window.localStorage.getItem(a);if(null==t)return!1;const n=JSON.parse(t);return n.roles.map((e=>e.groupId?e.role+"?groupId="+e.groupId:e.role)).some((t=>e.some((e=>e==t))))},getRefreshToken(){const e=window.localStorage.getItem(a);if(null==e)return null;const t=JSON.parse(e);return t.refreshToken}}},3872:function(e,t,n){var r=n(9669),o=n.n(r),a=n(610),s=n(1773),i=n(1836),u=n(152);const l={NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_API_URL;o().defaults.baseURL=l,o().defaults.timeout=15e3,o().defaults.withCredentials=!1,o().defaults.headers.post["Content-Type"]="application/json",o().defaults.headers.post["Access-Control-Allow-Origin-Type"]="*";let c=!1;function d(){c=!0}function p(){c=!1}let m=[];function h(e){m.push(e)}function f(e){m.forEach((t=>{t(e)})),m=[]}async function g(e){const t=i.E.getRefreshToken();return t||y(),c?new Promise((t=>{h((()=>{e&&(e.headers.Authorization="Bearer "+i.r.loadAccessToken()),t(e)}))})):(d(),await(0,u.jb)(t).then((e=>{e.errCode?y():(i.r.saveAccessToken(e.data.accessToken,e.data.accessTokenExpireAt),p())})).finally((()=>p())))}async function w(e){try{const t=await o()({method:e.method,data:e.data,url:e.url,baseURL:e.baseURL,headers:{Authorization:"Bearer "+i.r.loadAccessToken()}});return f(e),t}catch(t){console.log(t),b("网络异常,请稍后再试")}}function y(){i.E.removeUserLoginData(),s.Z.replace("/login")}function b(e){(0,a.z8)({message:e,type:"error",duration:5e3,grouping:!0})}o().interceptors.request.use((async function(e){if("/access_tokens"==e.url||e.url.startsWith("/oauth2")||"/login"==e.url)return e;if(i.r.hasValidAccessToken())return e.headers.Authorization="Bearer "+i.r.loadAccessToken(),e;if(c){const t=new Promise((t=>{h((()=>{e&&(e.headers.Authorization="Bearer "+i.r.loadAccessToken()),t(e)}))}));return t}return e}),(function(e){return p(),Promise.reject(e)})),o().interceptors.response.use((e=>{const t=e.data;return t.errCode&&b(t.errMessage),t}),(e=>{if(e.response)if(401==e.response.status){if("X_0002"==e.response.data.errCode)i.E.removeUserLoginData(),b("登陆状态失效,请重新登陆"),y();else if("X_0004"==e.response.data.errCode)return g(e.config).then((()=>w(e.config)))}else 403==e.response.status?b("无执行该操作的权限"):b(e.message);else console.log(e),b("网络异常,请稍后再试");return Promise.reject(e)})),t["Z"]=o()},6658:function(e,t,n){e.exports=n.p+"img/MariaDB.9e6854cc.svg"},2357:function(e,t,n){e.exports=n.p+"img/MySQL.c8f47618.svg"},2260:function(e,t,n){e.exports=n.p+"img/Oracle.c9ed26e0.svg"},3609:function(e,t,n){e.exports=n.p+"img/PostgreSQL.6e3d3a5e.svg"},5641:function(e,t,n){e.exports=n.p+"img/Sqlserver.deff7c4c.svg"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,a){if(!r){var s=1/0;for(c=0;c=a)&&Object.keys(n.O).every((function(e){return n.O[e](r[u])}))?r.splice(u--,1):(i=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,o,a]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{17:"f8914b9e",117:"1f755d73",139:"64be11ff",227:"b20a14b0",243:"47faec0e",314:"358d11d3",469:"52881502",725:"e0865a14",834:"72e75f55",865:"d67048bf",918:"268bc178",991:"73d56bf1"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",227:"90d5c1b0",314:"6b48a93a",725:"82a2f213",834:"f2905e33",865:"7df1e56e",918:"b113d9de",991:"1969b1d0"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="databasir:";n.l=function(r,o,a,s){if(e[r])e[r].push(o);else{var i,u;if(void 0!==a)for(var l=document.getElementsByTagName("script"),c=0;c {\r\n const data = new FormData();\r\n data.append('username', form.username);\r\n data.append('password', form.password);\r\n return axios.post('/login', data)\r\n}\r\n\r\nexport const oauth2Login = (registrationId, parameters) => {\r\n return axios.get('/oauth2/login/'+registrationId, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const logout = () => {\r\n return axios.get('/logout')\r\n}\r\n\r\nexport const loginInfo = () => {\r\n return axios.get('/api/v1.0/login_info')\r\n}\r\n\r\nexport const refreshAccessToken = (refreshToken) => {\r\n return axios.post('/access_tokens', {\r\n refreshToken: refreshToken\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\\\\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=14de696c\"\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\\\\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\nimport { VueClipboard } from '@soerenmartius/vue3-clipboard'\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 if (poper == null) {\r\n return;\r\n }\r\n const selector = poper.parentElement.querySelector('.el-select-dropdown .el-scrollbar .el-select-dropdown__wrap');\r\n if (selector == null) {\r\n console.log('load select component failed')\r\n return;\r\n }\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.use(VueClipboard)\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=0c349a0c\"\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=0c349a0c&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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\\\\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\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import axios from '@/utils/fetch';\r\n\r\nconst base = \"/api/v1.0/search\"\r\n\r\nexport const query = (keyword) => {\r\n return axios.get(base, {\r\n params: keyword\r\n })\r\n}","import { render } from \"./Layout.vue?vue&type=template&id=68ce833b\"\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=68ce833b&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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","export const responsive = (map) => {\r\n const width = window.innerWidth\r\n if (width >= 1920) {\r\n return (map.xl?map.xl: null)\r\n } else if (width >= 1200) {\r\n return (map.lg?map.lg: map.xl?map.xl: null)\r\n\r\n } else if (width >= 992) {\r\n return (map.md? map.md: map.lg?map.lg: map.xl?map.xl: null)\r\n\r\n } else if (width >= 768) {\r\n return map.sm ? map.sm : (map.md? map.md: map.lg?map.lg: map.xl?map.xl: null)\r\n } else {\r\n return map.xs ? map.xs :(map.sm ? map.sm : (map.md? map.md: map.lg?map.lg: map.xl?map.xl: null))\r\n }\r\n}\r\n\r\n\r\nexport const dialogPercentWidth = () => {\r\n return responsive({\r\n xl: \"36%\",\r\n lg: \"42%\",\r\n md: \"60%\",\r\n sm: \"80%\",\r\n xs: \"90%\"\r\n })\r\n}","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","import axios from 'axios';\r\nimport { ElMessage } from 'element-plus'\r\nimport router from '../router';\r\nimport { token, user } from './auth';\r\nimport { refreshAccessToken } from '../api/Login';\r\n\r\nconst BASE_API = process.env.VUE_APP_API_URL\r\n// default config\r\naxios.defaults.baseURL = BASE_API,\r\naxios.defaults.timeout = 15 * 1000;\r\naxios.defaults.withCredentials = false;\r\naxios.defaults.headers.post['Content-Type'] = 'application/json';\r\naxios.defaults.headers.post[\"Access-Control-Allow-Origin-Type\"] = \"*\";\r\n\r\n// token request config\r\n// eslint-disable-next-line\r\nlet tokenRefreshLock = false\r\n\r\nfunction lock() {\r\n tokenRefreshLock = true\r\n}\r\n\r\nfunction unlock() {\r\n tokenRefreshLock = false\r\n}\r\n\r\nlet blockRequests = []\r\n\r\nfunction blockRequest(request) {\r\n blockRequests.push(request)\r\n}\r\n\r\nfunction relaseRequests(config) {\r\n blockRequests.forEach(request => {\r\n request(config)\r\n })\r\n blockRequests = []\r\n}\r\n\r\n// 请求拦截器\r\naxios.interceptors.request.use(async function (config) {\r\n if (config.url == '/access_tokens' || config.url.startsWith('/oauth2') || config.url == '/login') {\r\n return config\r\n }\r\n\r\n if (token.hasValidAccessToken()) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n return config;\r\n }\r\n if (tokenRefreshLock) {\r\n const promise = new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n return promise\r\n } \r\n return config\r\n}, function (error) {\r\n unlock()\r\n return Promise.reject(error);\r\n});\r\n\r\n// response拦截器\r\naxios.interceptors.response.use(\r\n (response) => {\r\n const res = response.data;\r\n if (res.errCode) {\r\n notify(res.errMessage)\r\n }\r\n return res;\r\n },\r\n (error) => {\r\n if (error.response) {\r\n if(error.response.status == 401) {\r\n if (error.response.data.errCode == 'X_0002') {\r\n user.removeUserLoginData()\r\n notify('登陆状态失效,请重新登陆')\r\n redirectLogin()\r\n } else if (error.response.data.errCode == 'X_0004') {\r\n return refresh(error.config).then(() => retryFromResponse(error.config))\r\n }\r\n } else if (error.response.status == 403) {\r\n notify('无执行该操作的权限')\r\n } else {\r\n notify(error.message)\r\n } \r\n } else {\r\n console.log(error)\r\n notify('网络异常,请稍后再试')\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nasync function refresh(config) {\r\n const refreshToken = user.getRefreshToken()\r\n if(!refreshToken) {\r\n redirectLogin()\r\n }\r\n\r\n if(tokenRefreshLock) {\r\n return new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n }\r\n\r\n lock()\r\n return await refreshAccessToken(refreshToken).then(resp => {\r\n if (resp.errCode) {\r\n redirectLogin()\r\n } else {\r\n token.saveAccessToken(resp.data.accessToken, resp.data.accessTokenExpireAt)\r\n unlock()\r\n }\r\n }).finally(() => unlock())\r\n}\r\n\r\nasync function retryFromResponse(config) {\r\n try {\r\n const res = await axios({\r\n method: config.method,\r\n data: config.data,\r\n url: config.url,\r\n baseURL: config.baseURL,\r\n headers: {\r\n Authorization: 'Bearer ' + token.loadAccessToken()\r\n },\r\n })\r\n relaseRequests(config)\r\n return res;\r\n } catch(error) {\r\n console.log(error)\r\n notify(\"网络异常,请稍后再试\");\r\n }\r\n}\r\n\r\n\r\nfunction redirectLogin () {\r\n user.removeUserLoginData()\r\n router.replace('/login')\r\n}\r\n\r\nfunction notify(msg) {\r\n ElMessage({\r\n message: msg,\r\n type: 'error',\r\n duration: 5 * 1000,\r\n grouping: true,\r\n });\r\n}\r\n\r\nexport default axios;\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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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 + \".\" + {\"17\":\"f8914b9e\",\"117\":\"1f755d73\",\"139\":\"64be11ff\",\"227\":\"b20a14b0\",\"243\":\"47faec0e\",\"314\":\"358d11d3\",\"469\":\"52881502\",\"725\":\"e0865a14\",\"834\":\"72e75f55\",\"865\":\"d67048bf\",\"918\":\"268bc178\",\"991\":\"73d56bf1\"}[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\",\"227\":\"90d5c1b0\",\"314\":\"6b48a93a\",\"725\":\"82a2f213\",\"834\":\"f2905e33\",\"865\":\"7df1e56e\",\"918\":\"b113d9de\",\"991\":\"1969b1d0\"}[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__.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,\"227\":1,\"314\":1,\"725\":1,\"834\":1,\"865\":1,\"918\":1,\"991\":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__(1381); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["login","form","data","FormData","append","username","password","axios","oauth2Login","registrationId","parameters","params","refreshAccessToken","refreshToken","_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","icon","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","parentElement","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","console","log","hljs","javascript","use","hljsVuePlugin","store","ElementPlus","router","VueClipboard","mount","class","_component_el_container","_createVNode","_component_el_aside","_component_AppNav","onOnSearch","$options","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_dialog","$data","$event","title","width","_component_el_input","placeholder","onChange","prepend","_component_el_button","type","loading","_renderList","item","index","_component_el_link","underline","onClick","path","_component_el_tag","closable","onClose","label","projects","length","groups","_component_el_divider","project","groupName","_toDisplayString","projectName","_component_el_icon","_component_Right","group","name","_component_el_menu","collapse","_ctx","mode","_component_el_menu_item","_hoisted_1","_component_home_filled","menu","children","some","ele","hidden","_component_el_sub_menu","_resolveDynamicComponent","meta","nav","childIndex","defineComponent","emits","setup","context","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","showSearchDialog","emit","_component_el_breadcrumb","separator","_component_el_breadcrumb_item","_component_fold","to","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","base","query","keyword","components","AppNav","Breadcrumb","Avatar","queryKeyword","queryData","queryLoading","searchSelectHistory","searchSelectHistoryKey","loadSearchSelectHistory","search","onQuery","val","then","resp","errCode","finally","jumpToGroup","select","history","filter","unshift","splice","window","localStorage","setItem","JSON","stringify","location","jumpToProject","groupId","projectId","jumpToPath","getItem","obj","parse","onRemoveSelectHistoryItem","dialogWidth","dialogPercentWidth","groupList","groupDashboard","route","groupProjectDocument","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","sysDocumentTemplate","breadcurmbMap","requireAuth","Layout","createRouter","createWebHistory","beforeEach","from","next","token","createStore","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","responsive","map","innerWidth","xl","lg","md","sm","xs","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","Date","getTime","saveAccessToken","tokenExpireAt","saveUserLoginData","userLoginData","accessTokenExpireAt","removeUserLoginData","removeItem","loadUserLoginData","role","exists","expected","getRefreshToken","BASE_API","process","VUE_APP_API_URL","tokenRefreshLock","lock","unlock","blockRequests","blockRequest","request","relaseRequests","config","async","refresh","redirectLogin","Promise","resolve","headers","Authorization","retryFromResponse","res","method","url","baseURL","error","notify","msg","ElMessage","message","duration","grouping","startsWith","promise","reject","response","errMessage","status","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","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.7ac511a9.js b/api/src/main/resources/static/js/app.7ac511a9.js deleted file mode 100644 index a7c90f9..0000000 --- a/api/src/main/resources/static/js/app.7ac511a9.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){"use strict";var e={152:function(e,t,n){n.d(t,{x4:function(){return o},rd:function(){return a},jb:function(){return s}});var r=n(3872);const o=e=>{const t=new FormData;return t.append("username",e.username),t.append("password",e.password),r.Z.post("/login",t)},a=(e,t)=>r.Z.get("/oauth2/login/"+e,{params:t}),s=e=>r.Z.post("/access_tokens",{refreshToken:e})},1381:function(e,t,n){var r=n(9963),o=n(8722),a=n(137),s=n(837),i=n(9622),u=n(6246),c=(n(4415),n(2680)),l=n(4239),d=n(6252);function p(e,t){const n=(0,d.up)("router-view");return(0,d.wg)(),(0,d.j4)(n)}var m=n(3744);const h={},f=(0,m.Z)(h,[["render",p]]);var g=f,y=n(1836),w=n(3577);const b=["src"],v=["src"],k=["src"],S=["src"],_=["src"],j=["src"];function T(e,t,r,o,a,s){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,b)])),_: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,v)])),_:1},8,["content"])):"oracle"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:2,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(2260),style:{"max-width":"33px","max-height":"33px"}},null,8,k)])),_:1},8,["content"])):"mariadb"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:3,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(6658),style:{"max-width":"33px","max-height":"33px"}},null,8,S)])),_:1},8,["content"])):"sqlserver"==r.databaseType.toLowerCase()?((0,d.wg)(),(0,d.j4)(i,{key:4,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:n(5641),style:{"max-width":"33px","max-height":"33px"}},null,8,_)])),_:1},8,["content"])):r.icon?((0,d.wg)(),(0,d.j4)(i,{key:5,content:r.databaseType,placement:"left"},{default:(0,d.w5)((()=>[(0,d._)("img",{src:r.icon,style:{"max-width":"33px","max-height":"33px"}},null,8,j)])),_:1},8,["content"])):((0,d.wg)(),(0,d.iD)(d.HY,{key:6},[(0,d.Uk)((0,w.zw)(r.databaseType),1)],64))}var x={props:{databaseType:String,icon:String}};const D=(0,m.Z)(x,[["render",T]]);var A=D,L=n(4890);const q=(0,r.ri)(g);Object.keys(a).forEach((e=>{q.component(e,a[e])})),q.component("database-icon",A),q.directive("require-roles",{mounted(e,t){const n=t.value;y.E.hasAnyRoles(n)||e.parentNode&&e.parentNode.removeChild(e)}}),q.directive("select-more",{updated(e,t){const n=e.querySelector(".select-trigger"),r=n.getAttribute("aria-describedby"),o=document.getElementById(r);if(null==o)return;const a=o.parentElement.querySelector(".el-select-dropdown .el-scrollbar .el-select-dropdown__wrap");null!=a?a.addEventListener("scroll",(function(){const e=this.scrollHeight-this.scrollTop-1<=this.clientHeight;e&&t.value()})):console.log("load select component failed")}}),s.Z.registerLanguage("javascript",i.Z),q.use(u.Z),q.use(l.Z),q.use(o.Z),q.use(c.Z),q.use(L._),q.mount("#app")},2680:function(e,t,n){n.d(t,{Z:function(){return oe}});var r=n(2119),o=n(6252),a=n(3577);const s={style:{"margin-top":"16px"}},i={class:"search-container"},u={key:0,style:{height:"80px"}},c=["onClick"],l=(0,o.Uk)("project"),d=(0,o.Uk)(),p={class:"jump"},m=["onClick"],h=(0,o.Uk)("group"),f=(0,o.Uk)(),g={class:"jump"};function y(e,t,n,r,y,w){const b=(0,o.up)("AppNav"),v=(0,o.up)("el-aside"),k=(0,o.up)("Breadcrumb"),S=(0,o.up)("Avatar"),_=(0,o.up)("el-header"),j=(0,o.up)("router-view"),T=(0,o.up)("el-main"),x=(0,o.up)("el-container"),D=(0,o.up)("el-input"),A=(0,o.up)("el-tag"),L=(0,o.up)("el-link"),q=(0,o.up)("el-divider"),C=(0,o.up)("Right"),N=(0,o.up)("el-icon"),E=(0,o.up)("el-dialog"),W=(0,o.Q2)("loading");return(0,o.wg)(),(0,o.j4)(x,{class:"databasir"},{default:(0,o.w5)((()=>[(0,o.Wm)(v,null,{default:(0,o.w5)((()=>[(0,o.Wm)(b,{class:"databasir-nav",onOnSearch:t[0]||(t[0]=e=>w.search())})])),_:1}),(0,o.Wm)(_,{class:"databasir-main-header"},{default:(0,o.w5)((()=>[(0,o.Wm)(k),(0,o.Wm)(S)])),_:1}),(0,o.Wm)(T,{class:"databasir-main"},{default:(0,o.w5)((()=>[(0,o.Wm)(x,null,{default:(0,o.w5)((()=>[(0,o.Wm)(T,{class:"databasir-main-content"},{default:(0,o.w5)((()=>[(0,o.Wm)(j)])),_:1})])),_:1})])),_:1}),(0,o.Wm)(E,{modelValue:y.showSearchDialog,"onUpdate:modelValue":t[2]||(t[2]=e=>y.showSearchDialog=e),title:"搜索",width:"60%"},{default:(0,o.w5)((()=>[(0,o.Wm)(D,{modelValue:y.queryKeyword,"onUpdate:modelValue":t[1]||(t[1]=e=>y.queryKeyword=e),"prefix-icon":"Search",placeholder:"分组、项目、database、schema 搜索",style:{width:"100%",border:"none"},onChange:w.onQuery},null,8,["modelValue","onChange"]),(0,o._)("div",s,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.searchSelectHistory,((e,t)=>((0,o.wg)(),(0,o.j4)(L,{underline:!1,key:t,onClick:t=>w.jumpToPath(e.path),style:{"margin-right":"12px","margin-bottom":"12px"}},{default:(0,o.w5)((()=>[(0,o.Wm)(A,{closable:"",type:"group"==e.type?"primary":"success",onClose:t=>w.onRemoveSelectHistoryItem(e.label)},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.label),1)])),_:2},1032,["type","onClose"])])),_:2},1032,["onClick"])))),128))]),y.queryData.projects.length>0||y.queryData.groups.length>0?((0,o.wg)(),(0,o.j4)(q,{key:0})):(0,o.kq)("",!0),(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",i,[y.queryLoading&&0==y.queryData.projects.length&&0==y.queryData.groups.length?((0,o.wg)(),(0,o.iD)("div",u)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.queryData.projects,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:t,onClick:t=>w.jumpToProject(e)},[(0,o._)("span",null,[(0,o.Wm)(A,{type:"success"},{default:(0,o.w5)((()=>[l])),_:1}),d,(0,o.Wm)(L,{underline:!1},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.groupName)+" / "+(0,a.zw)(e.projectName),1)])),_:2},1024)]),(0,o._)("span",p,[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(C)])),_:1})])],8,c)))),128)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(y.queryData.groups,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"search-item",key:t,onClick:t=>w.jumpToGroup(e)},[(0,o._)("span",null,[(0,o.Wm)(A,null,{default:(0,o.w5)((()=>[h])),_:1}),f,(0,o.Wm)(L,{underline:!1},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.name),1)])),_:2},1024)]),(0,o._)("span",g,[(0,o.Wm)(N,null,{default:(0,o.w5)((()=>[(0,o.Wm)(C)])),_:1})])],8,m)))),128))])),[[W,y.queryLoading]])])),_:1},8,["modelValue"])])),_:1})}const w=(0,o._)("span",null,"Databasir",-1);function b(e,t,n,r,s,i){const u=(0,o.up)("home-filled"),c=(0,o.up)("el-icon"),l=(0,o.up)("el-menu-item"),d=(0,o.up)("el-sub-menu"),p=(0,o.up)("el-button"),m=(0,o.up)("el-menu");return(0,o.wg)(),(0,o.j4)(m,{router:"",collapse:e.isCollapse,mode:"vertical",class:"left-menu"},{default:(0,o.w5)((()=>[(0,o.Wm)(l,{index:"/"},{title:(0,o.w5)((()=>[w])),default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(u)])),_:1})])),_:1}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.routes,((t,n)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n},[e.isShowMenu(t)&&t.children.length>0&&t.children.some((e=>!e.hidden))?((0,o.wg)(),(0,o.j4)(d,{key:0,index:t.path},{title:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))])),_:2},1024),(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)])),default:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.children,((e,r)=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n+"-"+r},[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(l,{key:0,index:t.path+"/"+e.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,a.zw)(e.meta.nav),1)])),default:(0,o.w5)((()=>[e.icon?((0,o.wg)(),(0,o.j4)(c,{key:0},{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.icon)))])),_:2},1024)):(0,o.kq)("",!0)])),_:2},1032,["index"]))],64)))),128))])),_:2},1032,["index"])):e.isShowMenu(t)?((0,o.wg)(),(0,o.j4)(l,{key:1,index:t.path},{title:(0,o.w5)((()=>[(0,o._)("span",null,(0,a.zw)(t.meta.nav),1)])),default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[((0,o.wg)(),(0,o.j4)((0,o.LL)(t.icon)))])),_:2},1024)])),_:2},1032,["index"])):(0,o.kq)("",!0)],64)))),128)),(0,o.Wm)(l,{index:"",onClick:t[0]||(t[0]=t=>e.showSearchDialog())},{default:(0,o.w5)((()=>[(0,o.Wm)(p,{type:"text",icon:"Search",style:{color:"#303133"}})])),_:1})])),_:1},8,["collapse"])}var v=n(2262),k=n(1836),S=n(4239),_=(0,o.aZ)({emits:["on-search"],setup(e,t){const n=(0,v.Fl)((()=>S.Z.state.menu.isCollapse)),o=(0,r.tv)(),a=o.options.routes,s=e=>{if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){const t=k.E.hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},i=()=>{S.Z.commit("expandMenu")},u=()=>{t.emit("on-search")};return{isCollapse:n,isShowMenu:s,expandMenu:i,routes:a,showSearchDialog:u}}}),j=n(3744);const T=(0,j.Z)(_,[["render",b]]);var x=T;function D(e,t,n,r,s,i){const u=(0,o.up)("fold"),c=(0,o.up)("el-icon"),l=(0,o.up)("el-link"),d=(0,o.up)("el-breadcrumb-item"),p=(0,o.up)("el-breadcrumb");return(0,o.wg)(),(0,o.j4)(p,{separator:"/"},{default:(0,o.w5)((()=>[i.menuIsCollapse?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(d,{key:0},{default:(0,o.w5)((()=>[(0,o.Wm)(l,{onClick:t[0]||(t[0]=e=>i.onFoldMenu()),underline:!1},{default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Wm)(u)])),_:1})])),_:1})])),_:1})),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(i.breadcrumbs,((e,t)=>((0,o.wg)(),(0,o.j4)(d,{key:t,to:e.to},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.name),1)])),_:2},1032,["to"])))),128))])),_:1})}var A={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 L=(0,j.Z)(A,[["render",D]]);var q=L;const C=(0,o.Uk)("个人中心"),N=(0,o.Uk)("注销登陆");function E(e,t,n,r,s,i){const u=(0,o.up)("el-avatar"),c=(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)((()=>[(0,o.Wm)(l,null,{default:(0,o.w5)((()=>[(0,o.Wm)(c,null,{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(i.userNickname),1)])),_:1}),(0,o.Wm)(c,{icon:"user",divided:"",onClick:t[0]||(t[0]=e=>i.toProfilePage())},{default:(0,o.w5)((()=>[C])),_:1}),(0,o.Wm)(c,{icon:"back",onClick:t[1]||(t[1]=e=>i.onLogout())},{default:(0,o.w5)((()=>[N])),_:1})])),_:1})])),default:(0,o.w5)((()=>[(0,o.Wm)(u,{size:36,src:i.avatarUrl,icon:"avatar"},null,8,["src"])])),_:1})}var W={computed:{userNickname(){return this.$store.state.user.nickname},avatarUrl(){return this.$store.state.user.avatar}},methods:{onLogout(){k.E.removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage(){this.$router.push({path:"/profile"})}}};const I=(0,j.Z)(W,[["render",E]]);var O=I,H=n(3872);const U="/api/v1.0/search",P=e=>H.Z.get(U,{params:e});var Z={components:{AppNav:x,Breadcrumb:q,Avatar:O},data(){return{showSearchDialog:!1,queryKeyword:"",queryData:{projects:[],groups:[]},queryLoading:!1,searchSelectHistory:[],searchSelectHistoryKey:"globalSearchSelectHistory"}},mounted(){this.loadSearchSelectHistory()},methods:{search(){this.showSearchDialog=!0},onQuery(e){this.queryLoading=!0,P({query:e}).then((e=>{e.errCode||(this.queryData=e.data)})).finally((()=>this.queryLoading=!1))},jumpToGroup(e){this.showSearchDialog=!1;const t="/groups/"+e.id+"?groupName="+e.name,n={label:e.name,path:t,type:"group"},r=this.searchSelectHistory.filter((e=>e.label!=n.label));r.unshift(n),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=t},jumpToProject(e){this.showSearchDialog=!1;const t="/groups/"+e.groupId+"/projects/"+e.projectId+"/documents?groupName="+e.groupName+"&projectName="+e.projectName,n={label:e.groupName+" / "+e.projectName,path:t,type:"project"},r=this.searchSelectHistory.filter((e=>e.label!=n.label));r.unshift(n),r.splice(15),this.searchSelectHistory=r,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory)),window.location=t},jumpToPath(e){window.location=e},loadSearchSelectHistory(){const e=this.searchSelectHistoryKey;if(null!=window.localStorage.getItem(e)){const t=JSON.parse(window.localStorage.getItem(e));this.searchSelectHistory=t}},onRemoveSelectHistoryItem(e){const t=this.searchSelectHistory.filter((t=>t.label!=e));this.searchSelectHistory=t,window.localStorage.setItem(this.searchSelectHistoryKey,JSON.stringify(this.searchSelectHistory))}}};const R=(0,j.Z)(Z,[["render",y]]);var K=R;function M(){return{name:"首页",to:{path:"/"}}}function z(){return{name:"项目中心",to:{name:"groupListPage"}}}function B(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function Y(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 V(){return{name:"用户列表",to:{path:"/users"}}}function $(){return{name:"个人中心",to:{path:"/profile"}}}function F(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function J(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}function Q(){return{name:"登录设置",to:{path:"/settings/sysOauth2"}}}function G(){return{name:"数据库扩展",to:{path:"/settings/sysDatabaseType"}}}function X(){return{name:"文档模板",to:{path:"/settings/sysDocumentTemplate"}}}const ee={index:()=>[M()],groupList:()=>[M(),z()],groupDashboard:(e,t)=>[M(),z(),B(e,t)],groupProjectDocument:(e,t)=>[M(),z(),B(e,t),Y(e)],userProfile:()=>[M(),$()],userList:()=>[M(),V()],sysEmailEdit:()=>[M(),F()],sysLog:()=>[M(),J()],sysOauth2:()=>[M(),Q()],sysDatabaseType:()=>[M(),G()],sysDocumentTemplate:()=>[M(),X()]};var te=ee;const ne=[{path:"/login",component:()=>n.e(139).then(n.bind(n,1139)),hidden:!0,meta:{requireAuth:!1}},{path:"/login/oauth2/:id",component:()=>n.e(865).then(n.bind(n,8865)),hidden:!0,props:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:K,children:[{path:"",hidden:!0,component:()=>n.e(206).then(n.bind(n,2206)),meta:{breadcrumb:te.groupList}}]},{path:"/groups",icon:"Collection",component:K,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:()=>n.e(206).then(n.bind(n,2206)),meta:{breadcrumb:te.groupList}},{path:":groupId",hidden:!0,component:()=>n.e(725).then(n.bind(n,725)),meta:{breadcrumb:te.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:()=>n.e(991).then(n.bind(n,1991)),meta:{breadcrumb:te.groupProjectDocument}}]},{path:"/users",icon:"List",component:K,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:()=>n.e(117).then(n.bind(n,4117)),meta:{breadcrumb:te.userList}}]},{path:"/profile",icon:"User",component:K,meta:{nav:"个人中心",breadcrumb:te.userProfile},children:[{path:"",hidden:!0,component:()=>n.e(469).then(n.bind(n,6469))}]},{path:"/settings",icon:"Setting",component:K,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:()=>n.e(243).then(n.bind(n,1243)),meta:{nav:"邮箱设置",breadcrumb:te.sysEmailEdit}},{path:"sysLog",icon:"Document",component:()=>n.e(17).then(n.bind(n,6017)),meta:{nav:"操作日志",breadcrumb:te.sysLog}},{path:"sysOauth2",icon:"Connection",component:()=>n.e(834).then(n.bind(n,6834)),meta:{nav:"登陆设置",breadcrumb:te.sysOauth2}},{path:"sysDatabaseType",icon:"office-building",component:()=>n.e(918).then(n.bind(n,918)),meta:{nav:"数据库扩展",breadcrumb:te.sysDatabaseType}},{path:"sysDocumentTemplate",icon:"document-add",component:()=>n.e(227).then(n.bind(n,3227)),meta:{nav:"文档模板",breadcrumb:te.sysDocumentTemplate}},{path:"sysKey",icon:"Key",hidden:"true",component:K,meta:{nav:"系统秘钥",breadcrumb:te.sysKeyEdit}}]}],re=(0,r.p7)({history:(0,r.PO)(),routes:ne});re.beforeEach(((e,t,n)=>{0==e.meta.requireAuth?"/login"==e.path&&k.r.hasAccessToken()?n(t):n():k.r.hasAccessToken()?n():n({path:"/login"})})),re.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 oe=re},4239:function(e,t,n){var r=n(8637),o=n(1836);const a=(0,r.MT)({state(){const e={user:{nickname:null,usernmae:null,email:null,avatar:null},groupListActiveTab:null,menu:{isCollapse:!0}},t=o.E.loadUserLoginData();return t&&(e.user.nickname=t.nickname,e.user.usernmae=t.usernmae,e.user.email=t.email,e.user.avatar=t.avatar),e},mutations:{userUpdate(e,t){t.nickname&&(e.user.nickname=t.nickname),t.usernmae&&(e.user.usernmae=t.usernmae),t.email&&(e.user.email=t.email),t.avatar&&(e.user.avatar=t.avatar)},foldMenu(e){e.menu.isCollapse=!0},expandMenu(e){e.menu.isCollapse=!1},switchGroupListActiveTab(e,t){t&&(e.groupListActiveTab=t)}}});t["Z"]=a},1836:function(e,t,n){n.d(t,{r:function(){return s},E:function(){return i}});const r="accessToken",o="accessTokenExpireAt",a="userLoginData",s={hasAccessToken(){const e=this.loadAccessToken();return e},hasValidAccessToken(){const e=this.loadAccessToken(),t=window.localStorage.getItem(o);return e&&t?t>(new Date).getTime()-1e4:(console.log("warn: not found accessToken and expireAt key"),!1)},saveAccessToken(e,t){window.localStorage.setItem(r,e),window.localStorage.setItem(o,t)},loadAccessToken(){let e=window.localStorage.getItem(r);return e||null}},i={saveUserLoginData(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(a,JSON.stringify(e))},removeUserLoginData(){window.localStorage.removeItem(a),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData(){if(!window.localStorage.getItem(a))return null;const e=window.localStorage.getItem(a);return JSON.parse(e)},hasAnyRoles(e){const t=window.localStorage.getItem(a);if(null==t)return!1;const n=JSON.parse(t);return n.roles.map((e=>e.groupId?e.role+"?groupId="+e.groupId:e.role)).some((t=>e.some((e=>e==t))))},getRefreshToken(){const e=window.localStorage.getItem(a);if(null==e)return null;const t=JSON.parse(e);return t.refreshToken}}},3872:function(e,t,n){var r=n(9669),o=n.n(r),a=n(610),s=n(2680),i=n(1836),u=n(152);const c={NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_API_URL;o().defaults.baseURL=c,o().defaults.timeout=15e3,o().defaults.withCredentials=!1,o().defaults.headers.post["Content-Type"]="application/json",o().defaults.headers.post["Access-Control-Allow-Origin-Type"]="*";let l=!1;function d(){l=!0}function p(){l=!1}let m=[];function h(e){m.push(e)}function f(e){m.forEach((t=>{t(e)})),m=[]}async function g(e){const t=i.E.getRefreshToken();return t||w(),l?new Promise((t=>{h((()=>{e&&(e.headers.Authorization="Bearer "+i.r.loadAccessToken()),t(e)}))})):(d(),await(0,u.jb)(t).then((e=>{e.errCode?w():(i.r.saveAccessToken(e.data.accessToken,e.data.accessTokenExpireAt),p())})).finally((()=>p())))}async function y(e){try{const t=await o()({method:e.method,data:e.data,url:e.url,baseURL:e.baseURL,headers:{Authorization:"Bearer "+i.r.loadAccessToken()}});return f(e),t}catch(t){console.log(t),b("网络异常,请稍后再试")}}function w(){i.E.removeUserLoginData(),s.Z.replace("/login")}function b(e){(0,a.z8)({message:e,type:"error",duration:5e3,grouping:!0})}o().interceptors.request.use((async function(e){if("/access_tokens"==e.url||e.url.startsWith("/oauth2")||"/login"==e.url)return e;if(i.r.hasValidAccessToken())return e.headers.Authorization="Bearer "+i.r.loadAccessToken(),e;if(l){const t=new Promise((t=>{h((()=>{e&&(e.headers.Authorization="Bearer "+i.r.loadAccessToken()),t(e)}))}));return t}return e}),(function(e){return p(),Promise.reject(e)})),o().interceptors.response.use((e=>{const t=e.data;return t.errCode&&b(t.errMessage),t}),(e=>{if(e.response)if(401==e.response.status){if("X_0002"==e.response.data.errCode)i.E.removeUserLoginData(),b("登陆状态失效,请重新登陆"),w();else if("X_0004"==e.response.data.errCode)return g(e.config).then((()=>y(e.config)))}else 403==e.response.status?b("无执行该操作的权限"):b(e.message);else console.log(e),b("网络异常,请稍后再试");return Promise.reject(e)})),t["Z"]=o()},6658:function(e,t,n){e.exports=n.p+"img/MariaDB.9e6854cc.svg"},2357:function(e,t,n){e.exports=n.p+"img/MySQL.c8f47618.svg"},2260:function(e,t,n){e.exports=n.p+"img/Oracle.c9ed26e0.svg"},3609:function(e,t,n){e.exports=n.p+"img/PostgreSQL.6e3d3a5e.svg"},5641:function(e,t,n){e.exports=n.p+"img/Sqlserver.deff7c4c.svg"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,a){if(!r){var s=1/0;for(l=0;l=a)&&Object.keys(n.O).every((function(e){return n.O[e](r[u])}))?r.splice(u--,1):(i=!1,a0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[r,o,a]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{17:"f8914b9e",117:"1f755d73",139:"64be11ff",206:"8babe551",227:"b20a14b0",243:"47faec0e",469:"52881502",725:"e0865a14",834:"72e75f55",865:"d67048bf",918:"268bc178",991:"73d56bf1"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{139:"a7dec339",206:"6b48a93a",227:"90d5c1b0",725:"82a2f213",834:"f2905e33",865:"7df1e56e",918:"b113d9de",991:"1969b1d0"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="databasir:";n.l=function(r,o,a,s){if(e[r])e[r].push(o);else{var i,u;if(void 0!==a)for(var c=document.getElementsByTagName("script"),l=0;l {\r\n const data = new FormData();\r\n data.append('username', form.username);\r\n data.append('password', form.password);\r\n return axios.post('/login', data)\r\n}\r\n\r\nexport const oauth2Login = (registrationId, parameters) => {\r\n return axios.get('/oauth2/login/'+registrationId, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const logout = () => {\r\n return axios.get('/logout')\r\n}\r\n\r\nexport const loginInfo = () => {\r\n return axios.get('/api/v1.0/login_info')\r\n}\r\n\r\nexport const refreshAccessToken = (refreshToken) => {\r\n return axios.post('/access_tokens', {\r\n refreshToken: refreshToken\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\\\\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=14de696c\"\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\\\\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\nimport { VueClipboard } from '@soerenmartius/vue3-clipboard'\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 if (poper == null) {\r\n return;\r\n }\r\n const selector = poper.parentElement.querySelector('.el-select-dropdown .el-scrollbar .el-select-dropdown__wrap');\r\n if (selector == null) {\r\n console.log('load select component failed')\r\n return;\r\n }\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.use(VueClipboard)\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=0c349a0c\"\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=0c349a0c&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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\\\\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\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import axios from '@/utils/fetch';\r\n\r\nconst base = \"/api/v1.0/search\"\r\n\r\nexport const query = (keyword) => {\r\n return axios.get(base, {\r\n params: keyword\r\n })\r\n}","import { render } from \"./Layout.vue?vue&type=template&id=6a109b90\"\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=6a109b90&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir\\\\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","import axios from 'axios';\r\nimport { ElMessage } from 'element-plus'\r\nimport router from '../router';\r\nimport { token, user } from './auth';\r\nimport { refreshAccessToken } from '../api/Login';\r\n\r\nconst BASE_API = process.env.VUE_APP_API_URL\r\n// default config\r\naxios.defaults.baseURL = BASE_API,\r\naxios.defaults.timeout = 15 * 1000;\r\naxios.defaults.withCredentials = false;\r\naxios.defaults.headers.post['Content-Type'] = 'application/json';\r\naxios.defaults.headers.post[\"Access-Control-Allow-Origin-Type\"] = \"*\";\r\n\r\n// token request config\r\n// eslint-disable-next-line\r\nlet tokenRefreshLock = false\r\n\r\nfunction lock() {\r\n tokenRefreshLock = true\r\n}\r\n\r\nfunction unlock() {\r\n tokenRefreshLock = false\r\n}\r\n\r\nlet blockRequests = []\r\n\r\nfunction blockRequest(request) {\r\n blockRequests.push(request)\r\n}\r\n\r\nfunction relaseRequests(config) {\r\n blockRequests.forEach(request => {\r\n request(config)\r\n })\r\n blockRequests = []\r\n}\r\n\r\n// 请求拦截器\r\naxios.interceptors.request.use(async function (config) {\r\n if (config.url == '/access_tokens' || config.url.startsWith('/oauth2') || config.url == '/login') {\r\n return config\r\n }\r\n\r\n if (token.hasValidAccessToken()) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n return config;\r\n }\r\n if (tokenRefreshLock) {\r\n const promise = new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n return promise\r\n } \r\n return config\r\n}, function (error) {\r\n unlock()\r\n return Promise.reject(error);\r\n});\r\n\r\n// response拦截器\r\naxios.interceptors.response.use(\r\n (response) => {\r\n const res = response.data;\r\n if (res.errCode) {\r\n notify(res.errMessage)\r\n }\r\n return res;\r\n },\r\n (error) => {\r\n if (error.response) {\r\n if(error.response.status == 401) {\r\n if (error.response.data.errCode == 'X_0002') {\r\n user.removeUserLoginData()\r\n notify('登陆状态失效,请重新登陆')\r\n redirectLogin()\r\n } else if (error.response.data.errCode == 'X_0004') {\r\n return refresh(error.config).then(() => retryFromResponse(error.config))\r\n }\r\n } else if (error.response.status == 403) {\r\n notify('无执行该操作的权限')\r\n } else {\r\n notify(error.message)\r\n } \r\n } else {\r\n console.log(error)\r\n notify('网络异常,请稍后再试')\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nasync function refresh(config) {\r\n const refreshToken = user.getRefreshToken()\r\n if(!refreshToken) {\r\n redirectLogin()\r\n }\r\n\r\n if(tokenRefreshLock) {\r\n return new Promise((resolve) => {\r\n blockRequest(() => {\r\n if (config) {\r\n config.headers.Authorization = 'Bearer ' + token.loadAccessToken()\r\n }\r\n resolve(config)\r\n })\r\n })\r\n }\r\n\r\n lock()\r\n return await refreshAccessToken(refreshToken).then(resp => {\r\n if (resp.errCode) {\r\n redirectLogin()\r\n } else {\r\n token.saveAccessToken(resp.data.accessToken, resp.data.accessTokenExpireAt)\r\n unlock()\r\n }\r\n }).finally(() => unlock())\r\n}\r\n\r\nasync function retryFromResponse(config) {\r\n try {\r\n const res = await axios({\r\n method: config.method,\r\n data: config.data,\r\n url: config.url,\r\n baseURL: config.baseURL,\r\n headers: {\r\n Authorization: 'Bearer ' + token.loadAccessToken()\r\n },\r\n })\r\n relaseRequests(config)\r\n return res;\r\n } catch(error) {\r\n console.log(error)\r\n notify(\"网络异常,请稍后再试\");\r\n }\r\n}\r\n\r\n\r\nfunction redirectLogin () {\r\n user.removeUserLoginData()\r\n router.replace('/login')\r\n}\r\n\r\nfunction notify(msg) {\r\n ElMessage({\r\n message: msg,\r\n type: 'error',\r\n duration: 5 * 1000,\r\n grouping: true,\r\n });\r\n}\r\n\r\nexport default axios;\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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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 + \".\" + {\"17\":\"f8914b9e\",\"117\":\"1f755d73\",\"139\":\"64be11ff\",\"206\":\"8babe551\",\"227\":\"b20a14b0\",\"243\":\"47faec0e\",\"469\":\"52881502\",\"725\":\"e0865a14\",\"834\":\"72e75f55\",\"865\":\"d67048bf\",\"918\":\"268bc178\",\"991\":\"73d56bf1\"}[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\",\"206\":\"6b48a93a\",\"227\":\"90d5c1b0\",\"725\":\"82a2f213\",\"834\":\"f2905e33\",\"865\":\"7df1e56e\",\"918\":\"b113d9de\",\"991\":\"1969b1d0\"}[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__.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,\"206\":1,\"227\":1,\"725\":1,\"834\":1,\"865\":1,\"918\":1,\"991\":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__(1381); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["login","form","data","FormData","append","username","password","axios","oauth2Login","registrationId","parameters","params","refreshAccessToken","refreshToken","_createBlock","_component_router_view","script","__exports__","render","$props","toLowerCase","_component_el_tooltip","content","placement","_createElementVNode","src","require","style","_createElementBlock","_Fragment","key","props","databaseType","String","icon","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","parentElement","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","console","log","hljs","javascript","use","hljsVuePlugin","store","ElementPlus","router","VueClipboard","mount","class","_component_el_container","_createVNode","_component_el_aside","_component_AppNav","onOnSearch","$options","_component_el_header","_component_Breadcrumb","_component_Avatar","_component_el_main","_component_el_dialog","$data","$event","title","width","_component_el_input","placeholder","onChange","_renderList","item","index","_component_el_link","underline","onClick","path","_component_el_tag","closable","type","onClose","label","projects","length","groups","_component_el_divider","project","groupName","_toDisplayString","projectName","_component_el_icon","_component_Right","group","name","_component_el_menu","collapse","_ctx","mode","_component_el_menu_item","_hoisted_1","_component_home_filled","menu","children","some","ele","hidden","_component_el_sub_menu","_resolveDynamicComponent","meta","nav","childIndex","_component_el_button","defineComponent","emits","setup","context","isCollapse","computed","useRouter","routes","options","isShowMenu","requireAnyRoles","hasAnyRoles","expandMenu","showSearchDialog","emit","_component_el_breadcrumb","separator","_component_el_breadcrumb_item","_component_fold","to","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","base","query","keyword","components","AppNav","Breadcrumb","Avatar","queryKeyword","queryData","queryLoading","searchSelectHistory","searchSelectHistoryKey","loadSearchSelectHistory","search","onQuery","val","then","resp","errCode","finally","jumpToGroup","select","history","filter","unshift","splice","window","localStorage","setItem","JSON","stringify","location","jumpToProject","groupId","projectId","jumpToPath","getItem","obj","parse","onRemoveSelectHistoryItem","groupList","groupDashboard","route","groupProjectDocument","userList","userProfile","sysEmailEdit","sysLog","sysOauth2","sysDatabaseType","sysDocumentTemplate","breadcurmbMap","requireAuth","Layout","createRouter","createWebHistory","beforeEach","from","next","token","createStore","usernmae","email","groupListActiveTab","loginData","mutations","userUpdate","param","foldMenu","switchGroupListActiveTab","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","Date","getTime","saveAccessToken","tokenExpireAt","saveUserLoginData","userLoginData","accessTokenExpireAt","removeUserLoginData","removeItem","loadUserLoginData","map","role","exists","expected","getRefreshToken","BASE_API","process","VUE_APP_API_URL","tokenRefreshLock","lock","unlock","blockRequests","blockRequest","request","relaseRequests","config","async","refresh","redirectLogin","Promise","resolve","headers","Authorization","retryFromResponse","res","method","url","baseURL","error","notify","msg","ElMessage","message","duration","grouping","startsWith","promise","reject","response","errMessage","status","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","getElementsByTagName","s","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/databasir-frontend b/databasir-frontend index f616e30..6b6c318 160000 --- a/databasir-frontend +++ b/databasir-frontend @@ -1 +1 @@ -Subproject commit f616e30e5bac5d500ce6722cd550329a731b8fac +Subproject commit 6b6c31840dc2a9b42a984aab2e13e9bbcd0d328f