From e799940c2dac9a997c92605318297b3a5c89cfab Mon Sep 17 00:00:00 2001 From: vran Date: Fri, 25 Feb 2022 20:55:00 +0800 Subject: [PATCH] add isFavorite to project list api (#26) * feat: add isFavorite to project list api * feat:update frontend resources --- .../com/databasir/api/ProjectController.java | 8 +++++++- .../static/css/chunk-03c4dbde.00ac37b1.css | 1 - .../static/css/chunk-152d8fda.24a020fa.css | 1 + .../static/css/chunk-2be10a43.3284ac4c.css | 1 + .../static/css/chunk-39c5c064.80a92238.css | 1 - ....06814884.css => chunk-af715350.06814884.css} | 0 .../main/resources/static/img/MySQL.9d6aa60a.svg | 1 + .../resources/static/img/PostgreSQL.308e2acc.svg | 1 + api/src/main/resources/static/index.html | 2 +- api/src/main/resources/static/js/app.eed3d895.js | 2 -- .../main/resources/static/js/app.eed3d895.js.map | 1 - api/src/main/resources/static/js/app.f350e7fd.js | 2 ++ .../main/resources/static/js/app.f350e7fd.js.map | 1 + .../static/js/chunk-03c4dbde.fc870883.js | 2 -- .../static/js/chunk-03c4dbde.fc870883.js.map | 1 - .../static/js/chunk-152d8fda.21133535.js | 2 ++ .../static/js/chunk-152d8fda.21133535.js.map | 1 + .../static/js/chunk-2be10a43.e440181e.js | 2 ++ .../static/js/chunk-2be10a43.e440181e.js.map | 1 + .../static/js/chunk-39c5c064.54a7dd3b.js | 2 -- .../static/js/chunk-39c5c064.54a7dd3b.js.map | 1 - .../static/js/chunk-566612f0.8a0bf91d.js | 2 -- .../static/js/chunk-566612f0.8a0bf91d.js.map | 1 - .../static/js/chunk-af715350.f0eb72e9.js | 2 ++ .../static/js/chunk-af715350.f0eb72e9.js.map | 1 + .../converter/ProjectResponseConverter.java | 3 ++- .../project/data/ProjectSimpleResponse.java | 2 ++ .../domain/project/service/ProjectService.java | 16 ++++++++++------ .../dao/impl/UserFavoriteProjectDao.java | 11 +++++++++++ 29 files changed, 49 insertions(+), 23 deletions(-) delete mode 100644 api/src/main/resources/static/css/chunk-03c4dbde.00ac37b1.css create mode 100644 api/src/main/resources/static/css/chunk-152d8fda.24a020fa.css create mode 100644 api/src/main/resources/static/css/chunk-2be10a43.3284ac4c.css delete mode 100644 api/src/main/resources/static/css/chunk-39c5c064.80a92238.css rename api/src/main/resources/static/css/{chunk-566612f0.06814884.css => chunk-af715350.06814884.css} (100%) create mode 100644 api/src/main/resources/static/img/MySQL.9d6aa60a.svg create mode 100644 api/src/main/resources/static/img/PostgreSQL.308e2acc.svg delete mode 100644 api/src/main/resources/static/js/app.eed3d895.js delete mode 100644 api/src/main/resources/static/js/app.eed3d895.js.map create mode 100644 api/src/main/resources/static/js/app.f350e7fd.js create mode 100644 api/src/main/resources/static/js/app.f350e7fd.js.map delete mode 100644 api/src/main/resources/static/js/chunk-03c4dbde.fc870883.js delete mode 100644 api/src/main/resources/static/js/chunk-03c4dbde.fc870883.js.map create mode 100644 api/src/main/resources/static/js/chunk-152d8fda.21133535.js create mode 100644 api/src/main/resources/static/js/chunk-152d8fda.21133535.js.map create mode 100644 api/src/main/resources/static/js/chunk-2be10a43.e440181e.js create mode 100644 api/src/main/resources/static/js/chunk-2be10a43.e440181e.js.map delete mode 100644 api/src/main/resources/static/js/chunk-39c5c064.54a7dd3b.js delete mode 100644 api/src/main/resources/static/js/chunk-39c5c064.54a7dd3b.js.map delete mode 100644 api/src/main/resources/static/js/chunk-566612f0.8a0bf91d.js delete mode 100644 api/src/main/resources/static/js/chunk-566612f0.8a0bf91d.js.map create mode 100644 api/src/main/resources/static/js/chunk-af715350.f0eb72e9.js create mode 100644 api/src/main/resources/static/js/chunk-af715350.f0eb72e9.js.map diff --git a/api/src/main/java/com/databasir/api/ProjectController.java b/api/src/main/java/com/databasir/api/ProjectController.java index c390f7b..f3707eb 100644 --- a/api/src/main/java/com/databasir/api/ProjectController.java +++ b/api/src/main/java/com/databasir/api/ProjectController.java @@ -1,5 +1,6 @@ package com.databasir.api; +import com.databasir.api.config.security.DatabasirUserDetails; import com.databasir.api.validator.CronExpressionValidator; import com.databasir.common.JsonData; import com.databasir.core.domain.log.annotation.Operation; @@ -11,6 +12,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.web.PageableDefault; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -71,7 +73,11 @@ public class ProjectController { public JsonData> list(@PageableDefault(sort = "id", direction = Sort.Direction.DESC) Pageable page, ProjectListCondition condition) { - return JsonData.ok(projectService.list(page, condition)); + DatabasirUserDetails user = (DatabasirUserDetails) SecurityContextHolder.getContext() + .getAuthentication() + .getPrincipal(); + Integer userId = user.getUserPojo().getId(); + return JsonData.ok(projectService.list(userId, page, condition)); } @PostMapping(Routes.GroupProject.TEST_CONNECTION) diff --git a/api/src/main/resources/static/css/chunk-03c4dbde.00ac37b1.css b/api/src/main/resources/static/css/chunk-03c4dbde.00ac37b1.css deleted file mode 100644 index 108b16f..0000000 --- a/api/src/main/resources/static/css/chunk-03c4dbde.00ac37b1.css +++ /dev/null @@ -1 +0,0 @@ -.card-header{display:flex;justify-content:space-between;align-items:center}.el-row{margin-bottom:20px}.el-row:last-child{margin-bottom:0} \ No newline at end of file diff --git a/api/src/main/resources/static/css/chunk-152d8fda.24a020fa.css b/api/src/main/resources/static/css/chunk-152d8fda.24a020fa.css new file mode 100644 index 0000000..c334835 --- /dev/null +++ b/api/src/main/resources/static/css/chunk-152d8fda.24a020fa.css @@ -0,0 +1 @@ +.el-row{margin-bottom:20px}.remark-card{margin-bottom:30px}.remark-header{display:flex;justify-content:space-between;align-items:center}.remark-header .remark-user{color:#6d6d6d}.remark-header .remark-time{color:#6d6d6d;font-size:.8rem;margin-left:10px}.remark-content{white-space:pre-wrap;text-align:left}.text{font-size:14px;line-height:1.3rem}.item{margin-top:10px;margin-right:40px}.toc-wrapper{right:0;z-index:0;bottom:auto;padding-left:12px;margin-left:10px}.toc{top:130px;margin-left:0;transform:scale(1);bottom:0;position:fixed;overflow-y:hidden;overflow-x:hidden}.toc:hover{overflow-y:auto;overflow-x:auto}.toc-wrapper .toc ul{list-style:none;line-height:1.7;inline-size:200px;overflow-wrap:break-word}.toc-wrapper .toc a{display:inherit} \ No newline at end of file diff --git a/api/src/main/resources/static/css/chunk-2be10a43.3284ac4c.css b/api/src/main/resources/static/css/chunk-2be10a43.3284ac4c.css new file mode 100644 index 0000000..f81a253 --- /dev/null +++ b/api/src/main/resources/static/css/chunk-2be10a43.3284ac4c.css @@ -0,0 +1 @@ +.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.el-row{margin-bottom:20px}.el-row:last-child{margin-bottom:0} \ No newline at end of file diff --git a/api/src/main/resources/static/css/chunk-39c5c064.80a92238.css b/api/src/main/resources/static/css/chunk-39c5c064.80a92238.css deleted file mode 100644 index afdc0e3..0000000 --- a/api/src/main/resources/static/css/chunk-39c5c064.80a92238.css +++ /dev/null @@ -1 +0,0 @@ -.remark-card{margin-bottom:30px}.remark-header{display:flex;justify-content:space-between;align-items:center}.remark-header .remark-user{color:#6d6d6d}.remark-header .remark-time{color:#6d6d6d;font-size:.8rem;margin-left:10px}.remark-content{white-space:pre-wrap;text-align:left}.text{font-size:14px;line-height:1.3rem}.item{margin-top:10px;margin-right:40px}.toc-wrapper{right:0;top:60;z-index:0;bottom:auto;padding-left:33px;margin-left:10px}.toc{top:130px;margin-left:0;transform:scale(1);bottom:0;position:fixed;overflow-y:hidden;overflow-x:hidden}.toc:hover{overflow-y:auto}.toc-wrapper .toc ul{list-style:none;line-height:1.7;inline-size:200px;overflow-wrap:break-word}.toc-wrapper .toc a{display:inherit}.document-content-wrapper{display:flex;margin:0;min-width:1060px;max-width:1260px}.document-content{min-width:1060px} \ No newline at end of file diff --git a/api/src/main/resources/static/css/chunk-566612f0.06814884.css b/api/src/main/resources/static/css/chunk-af715350.06814884.css similarity index 100% rename from api/src/main/resources/static/css/chunk-566612f0.06814884.css rename to api/src/main/resources/static/css/chunk-af715350.06814884.css diff --git a/api/src/main/resources/static/img/MySQL.9d6aa60a.svg b/api/src/main/resources/static/img/MySQL.9d6aa60a.svg new file mode 100644 index 0000000..fc7d31e --- /dev/null +++ b/api/src/main/resources/static/img/MySQL.9d6aa60a.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/api/src/main/resources/static/img/PostgreSQL.308e2acc.svg b/api/src/main/resources/static/img/PostgreSQL.308e2acc.svg new file mode 100644 index 0000000..36b5452 --- /dev/null +++ b/api/src/main/resources/static/img/PostgreSQL.308e2acc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/api/src/main/resources/static/index.html b/api/src/main/resources/static/index.html index cd05852..5f95398 100644 --- a/api/src/main/resources/static/index.html +++ b/api/src/main/resources/static/index.html @@ -1 +1 @@ -databasir-frontend
\ No newline at end of file +databasir-frontend
\ No newline at end of file diff --git a/api/src/main/resources/static/js/app.eed3d895.js b/api/src/main/resources/static/js/app.eed3d895.js deleted file mode 100644 index 3bd94a0..0000000 --- a/api/src/main/resources/static/js/app.eed3d895.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var r,o,u=t[0],i=t[1],l=t[2],s=0,d=[];s(new Date).getTime():(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(){return window.localStorage.getItem(r)}},u={saveUserLoginData:function(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(c,JSON.stringify(e))},removeUserLoginData:function(){window.localStorage.removeItem(c),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData:function(){if(window.localStorage.getItem(c)){var e=window.localStorage.getItem(c);return JSON.parse(e)}return null},hasAnyRoles:function(e){var t=window.localStorage.getItem(c);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(c);if(null==e)return null;var t=JSON.parse(e);return t.refreshToken}}},"61b1":function(e,t,n){"use strict";n("8cd5")},"8cd5":function(e,t,n){},a18c:function(e,t,n){"use strict";n("d3b7"),n("3ca3"),n("ddb0");var r=n("6c02"),o=n("7a23");function c(e,t,n,r,c,a){var u=Object(o["resolveComponent"])("AppNav"),i=Object(o["resolveComponent"])("el-aside"),l=Object(o["resolveComponent"])("Breadcrumb"),s=Object(o["resolveComponent"])("Avatar"),d=Object(o["resolveComponent"])("el-header"),b=Object(o["resolveComponent"])("router-view"),f=Object(o["resolveComponent"])("el-main"),m=Object(o["resolveComponent"])("el-container");return Object(o["openBlock"])(),Object(o["createBlock"])(m,{class:"databasir"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u,{class:"databasir-nav"})]})),_:1}),Object(o["createVNode"])(d,{class:"databasir-main-header"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l),Object(o["createVNode"])(s)]})),_:1}),Object(o["createVNode"])(f,{class:"databasir-main"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(m,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(f,{class:"databasir-main-content"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(b)]})),_:1})]})),_:1})]})),_:1})]})),_:1})}var a=Object(o["createElementVNode"])("span",null,"Databasir",-1);function u(e,t,n,r,c,u){var i=Object(o["resolveComponent"])("expand"),l=Object(o["resolveComponent"])("el-icon"),s=Object(o["resolveComponent"])("el-menu-item"),d=Object(o["resolveComponent"])("home-filled"),b=Object(o["resolveComponent"])("el-sub-menu"),f=Object(o["resolveComponent"])("el-menu");return Object(o["openBlock"])(),Object(o["createBlock"])(f,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:Object(o["withCtx"])((function(){return[r.isCollapse?(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:0,onClick:r.expandMenu,index:"#"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i)]})),_:1})]})),_:1},8,["onClick"])):Object(o["createCommentVNode"])("",!0),Object(o["createVNode"])(s,{index:"/"},{title:Object(o["withCtx"])((function(){return[a]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(d)]})),_:1})]})),_:1}),(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(r.routes,(function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:t},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((function(e){return!e.hidden}))?(Object(o["openBlock"])(),Object(o["createBlock"])(b,{key:0,index:e.path},{title:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(e.icon)))]})),_:2},1024),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.meta.nav),1)]})),default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.children,(function(n,r){return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:t+"-"+r},[n.hidden?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:0,index:e.path+"/"+n.path},{title:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(n.meta.nav),1)]})),default:Object(o["withCtx"])((function(){return[n.icon?(Object(o["openBlock"])(),Object(o["createBlock"])(l,{key:0},{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(n.icon)))]})),_:2},1024)):Object(o["createCommentVNode"])("",!0)]})),_:2},1032,["index"]))],64)})),128))]})),_:2},1032,["index"])):r.isShowMenu(e)?(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:1,index:e.path},{title:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.meta.nav),1)]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(e.icon)))]})),_:2},1024)]})),_:2},1032,["index"])):Object(o["createCommentVNode"])("",!0)],64)})),128))]})),_:1},8,["collapse"])}var i=n("5f87"),l=n("4360"),s={setup:function(){var e=Object(o["computed"])((function(){return l["a"].state.menu.isCollapse})),t=Object(r["d"])(),n=t.options.routes,c=function(e){if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){var t=i["b"].hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},a=function(){l["a"].commit("expandMenu")};return{isCollapse:e,isShowMenu:c,expandMenu:a,routes:n}}},d=(n("61b1"),n("6b0d")),b=n.n(d);const f=b()(s,[["render",u]]);var m=f;n("b0c0");function p(e,t,n,r,c,a){var u=Object(o["resolveComponent"])("fold"),i=Object(o["resolveComponent"])("el-icon"),l=Object(o["resolveComponent"])("el-link"),s=Object(o["resolveComponent"])("el-breadcrumb-item"),d=Object(o["resolveComponent"])("el-breadcrumb");return Object(o["openBlock"])(),Object(o["createBlock"])(d,{separator:"/"},{default:Object(o["withCtx"])((function(){return[a.menuIsCollapse?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:0},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,{onClick:t[0]||(t[0]=function(e){return a.onFoldMenu()}),underline:!1},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u)]})),_:1})]})),_:1})]})),_:1})),(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(a.breadcrumbs,(function(e,t){return Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:t,to:e.to},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.name),1)]})),_:2},1032,["to"])})),128))]})),_:1})}var h={data:function(){},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 j=b()(h,[["render",p]]);var O=j,v=Object(o["createTextVNode"])("个人中心"),k=Object(o["createTextVNode"])("注销登陆");function g(e,t,n,r,c,a){var u=Object(o["resolveComponent"])("el-avatar"),i=Object(o["resolveComponent"])("el-dropdown-item"),l=Object(o["resolveComponent"])("el-dropdown-menu"),s=Object(o["resolveComponent"])("el-dropdown");return Object(o["openBlock"])(),Object(o["createBlock"])(s,null,{dropdown:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,null,{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(a.userNickname),1)]})),_:1}),Object(o["createVNode"])(i,{icon:"user",divided:"",onClick:t[0]||(t[0]=function(e){return a.toProfilePage()})},{default:Object(o["withCtx"])((function(){return[v]})),_:1}),Object(o["createVNode"])(i,{icon:"back",onClick:t[1]||(t[1]=function(e){return a.onLogout()})},{default:Object(o["withCtx"])((function(){return[k]})),_:1})]})),_:1})]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u,{size:36,src:c.avatarUrl,icon:"avatar"},null,8,["src"])]})),_:1})}var w={data:function(){return{avatarUrl:null}},computed:{userNickname:function(){return this.$store.state.user.nickname}},methods:{onLogout:function(){i["b"].removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage:function(){this.$router.push({path:"/profile"})}}};const y=b()(w,[["render",g]]);var C=y,N={components:{AppNav:m,Breadcrumb:O,Avatar:C},data:function(){return{}}};n("f8c6");const x=b()(N,[["render",c]]);var B=x;function S(){return{name:"首页",to:{path:"/"}}}function _(){return{name:"项目中心",to:{name:"groupListPage"}}}function V(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function A(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 E(){return{name:"用户列表",to:{path:"/users"}}}function L(){return{name:"个人中心",to:{path:"/profile"}}}function T(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function P(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}var I={index:function(){return[S()]},groupList:function(){return[S(),_()]},groupDashboard:function(e,t){return[S(),_(),V(e,t)]},groupProjectDocument:function(e,t){return[S(),_(),V(e,t),A(e)]},userProfile:function(){return[S(),L()]},userList:function(){return[S(),E()]},sysEmailEdit:function(){return[S(),T()]},sysLog:function(){return[S(),P()]}},q=I,D=[{path:"/login",component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-0888fe78")]).then(n.bind(null,"a55b"))},hidden:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:B,children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-03c4dbde")]).then(n.bind(null,"d648"))},meta:{breadcrumb:q.groupList}}]},{path:"/groups",icon:"Collection",component:B,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-03c4dbde")]).then(n.bind(null,"d648"))},meta:{breadcrumb:q.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-566612f0")]).then(n.bind(null,"3cd5"))},meta:{breadcrumb:q.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-39c5c064")]).then(n.bind(null,"0742"))},meta:{breadcrumb:q.groupProjectDocument}}]},{path:"/users",icon:"List",component:B,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-76185686")]).then(n.bind(null,"ab3a"))},meta:{breadcrumb:q.userList}}]},{path:"/profile",icon:"User",component:B,meta:{nav:"个人中心",breadcrumb:q.userProfile},children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-fffb1b64")]).then(n.bind(null,"4a39"))}}]},{path:"/settings",icon:"Setting",component:B,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-2d0cc811")]).then(n.bind(null,"4de0"))},meta:{nav:"邮箱设置",breadcrumb:q.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-e421509c")]).then(n.bind(null,"efd7"))},meta:{nav:"操作日志",breadcrumb:q.sysLog}},{path:"sysKey",icon:"Key",hidden:"true",component:B,meta:{nav:"系统秘钥",breadcrumb:q.sysKeyEdit}}]}],M=Object(r["a"])({history:Object(r["b"])(),routes:D});M.beforeEach((function(e,t,n){0==e.meta.requireAuth?"/login"==e.path&&i["a"].hasAccessToken()?n(t):n():i["a"].hasAccessToken()?n():n({path:"/login"})})),M.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()}));t["a"]=M},ee2f:function(e,t,n){},f8c6:function(e,t,n){"use strict";n("ee2f")}}); -//# sourceMappingURL=app.eed3d895.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/app.eed3d895.js.map b/api/src/main/resources/static/js/app.eed3d895.js.map deleted file mode 100644 index 93c9ae3..0000000 --- a/api/src/main/resources/static/js/app.eed3d895.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/index.js","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/main.js","webpack:///./src/utils/auth.js","webpack:///./src/components/AppNav.vue?2477","webpack:///./src/layouts/Layout.vue","webpack:///./src/components/AppNav.vue","webpack:///./src/components/AppNav.vue?33c4","webpack:///./src/components/Breadcrumb.vue","webpack:///./src/components/Breadcrumb.vue?57f7","webpack:///./src/components/Avatar.vue","webpack:///./src/components/Avatar.vue?a351","webpack:///./src/layouts/Layout.vue?726f","webpack:///./src/router/breadcurmb.js","webpack:///./src/router/index.js","webpack:///./src/layouts/Layout.vue?f7ac"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","store","createStore","state","user","loadUserLoginData","userData","nickname","usernmae","email","groupListActiveTab","menu","isCollapse","mutations","userUpdate","param","foldMenu","expandMenu","switchGroupListActiveTab","__exports__","render","app","createApp","App","keys","Icons","forEach","component","directive","mounted","el","binding","roles","hasAnyRoles","updated","child","querySelector","id","poper","getElementById","selector","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","use","ElementPlus","router","mount","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","token","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","localStorage","getItem","Date","getTime","log","saveAccessToken","tokenExpireAt","setItem","saveUserLoginData","userLoginData","accessTokenExpireAt","JSON","stringify","removeUserLoginData","removeItem","parse","map","role","groupId","some","exists","expected","getRefreshToken","refreshToken","class","collapse","index","title","routes","isShowMenu","children","ele","hidden","path","icon","meta","nav","childIndex","setup","options","requireAnyRoles","commit","separator","menuIsCollapse","onFoldMenu","underline","breadcrumbs","item","to","computed","$route","breadcrumb","$store","methods","dropdown","userNickname","divided","toProfilePage","onLogout","size","avatarUrl","$router","components","AppNav","Breadcrumb","Avatar","groupList","groupDashboard","route","groupName","query","params","groupProjectDocument","projectName","projectId","userList","userProfile","sysEmailEdit","sysLog","breadcurmbMap","requireAuth","Layout","sysKeyEdit","createRouter","history","createWebHashHistory","beforeEach","from","next"],"mappings":"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","file":"js/app.eed3d895.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-48cebeac\":\"162363c9\",\"chunk-03c4dbde\":\"fc870883\",\"chunk-0888fe78\":\"b3edc7bf\",\"chunk-2d0cc811\":\"c5d1ef9e\",\"chunk-39c5c064\":\"54a7dd3b\",\"chunk-566612f0\":\"8a0bf91d\",\"chunk-76185686\":\"f269c8f3\",\"chunk-e421509c\":\"b47034f5\",\"chunk-fffb1b64\":\"1ffb9f27\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-03c4dbde\":1,\"chunk-0888fe78\":1,\"chunk-39c5c064\":1,\"chunk-566612f0\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-48cebeac\":\"31d6cfe0\",\"chunk-03c4dbde\":\"00ac37b1\",\"chunk-0888fe78\":\"e51aa148\",\"chunk-2d0cc811\":\"31d6cfe0\",\"chunk-39c5c064\":\"80a92238\",\"chunk-566612f0\":\"06814884\",\"chunk-76185686\":\"31d6cfe0\",\"chunk-e421509c\":\"31d6cfe0\",\"chunk-fffb1b64\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\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\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { createStore } from 'vuex'\r\nimport { user } from '../utils/auth'\r\n\r\nconst store = createStore({\r\n state() {\r\n const data = user.loadUserLoginData()\r\n const userData = {\r\n nickname: null,\r\n usernmae: null,\r\n email: null,\r\n }\r\n if (data != null) {\r\n userData.nickname = data.nickname\r\n userData.usernmae = data.usernmae\r\n userData.email = data.email;\r\n }\r\n return {\r\n user: userData,\r\n groupListActiveTab: null,\r\n menu: {\r\n isCollapse: true,\r\n }\r\n }\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 },\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","\r\n","import { render } from \"./App.vue?vue&type=template&id=2b08e877\"\nconst script = {}\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ElementPlus from 'element-plus'\r\nimport * as Icons from '@element-plus/icons'\r\nimport 'element-plus/dist/index.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport { user } from './utils/auth'\r\n\r\nconst app = createApp(App)\r\nObject.keys(Icons).forEach(key => {\r\n app.component(key, Icons[key])\r\n})\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\napp.directive(\"select-more\", {\r\n updated(el, binding) {\r\n const child = el.querySelector('.select-trigger');\r\n const id = child.getAttribute('aria-describedby');\r\n const poper = document.getElementById(id);\r\n const selector = poper.querySelector('.el-scrollbar .el-select-dropdown__wrap');\r\n selector.addEventListener('scroll', function () {\r\n const condition = this.scrollHeight - this.scrollTop - 1 <= this.clientHeight;\r\n if (condition) {\r\n binding.value();\r\n }\r\n });\r\n },\r\n});\r\n\r\napp.use(store)\r\napp.use(ElementPlus)\r\napp.use(router)\r\napp.mount('#app')\r\n\r\n","const accessTokenKey = 'accessToken'\r\nconst accessTokenExpireAtKey = 'accessTokenExpireAt'\r\nconst userLoginDataKey = 'userLoginData'\r\n\r\nexport const token = {\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 return expireAt > new Date().getTime()\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 return window.localStorage.getItem(accessTokenKey)\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 } else {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n return JSON.parse(data)\r\n }\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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppNav.vue?vue&type=style&index=0&id=9b19d010&lang=css\"","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./AppNav.vue?vue&type=template&id=9b19d010\"\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=9b19d010&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\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=f841bcd6\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\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=41b59522\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Layout.vue?vue&type=template&id=57316434\"\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=57316434&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\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\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}\r\n\r\nexport default breadcurmbMap","import { createRouter, createWebHashHistory } 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: '/',\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 // 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: createWebHashHistory(),\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;","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Layout.vue?vue&type=style&index=0&id=57316434&lang=css\""],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/app.f350e7fd.js b/api/src/main/resources/static/js/app.f350e7fd.js new file mode 100644 index 0000000..12add52 --- /dev/null +++ b/api/src/main/resources/static/js/app.f350e7fd.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var r,o,u=t[0],i=t[1],l=t[2],s=0,d=[];s(new Date).getTime():(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(){return window.localStorage.getItem(r)}},u={saveUserLoginData:function(e){window.localStorage.setItem(r,e.accessToken),window.localStorage.setItem(o,e.accessTokenExpireAt),window.localStorage.setItem(c,JSON.stringify(e))},removeUserLoginData:function(){window.localStorage.removeItem(c),window.localStorage.removeItem(r),window.localStorage.removeItem(o)},loadUserLoginData:function(){if(window.localStorage.getItem(c)){var e=window.localStorage.getItem(c);return JSON.parse(e)}return null},hasAnyRoles:function(e){var t=window.localStorage.getItem(c);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(c);if(null==e)return null;var t=JSON.parse(e);return t.refreshToken}}},"61b1":function(e,t,n){"use strict";n("8cd5")},"8cd5":function(e,t,n){},"9ada":function(e,t,n){e.exports=n.p+"img/MySQL.9d6aa60a.svg"},a18c:function(e,t,n){"use strict";n("d3b7"),n("3ca3"),n("ddb0");var r=n("6c02"),o=n("7a23");function c(e,t,n,r,c,a){var u=Object(o["resolveComponent"])("AppNav"),i=Object(o["resolveComponent"])("el-aside"),l=Object(o["resolveComponent"])("Breadcrumb"),s=Object(o["resolveComponent"])("Avatar"),d=Object(o["resolveComponent"])("el-header"),b=Object(o["resolveComponent"])("router-view"),m=Object(o["resolveComponent"])("el-main"),p=Object(o["resolveComponent"])("el-container");return Object(o["openBlock"])(),Object(o["createBlock"])(p,{class:"databasir"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u,{class:"databasir-nav"})]})),_:1}),Object(o["createVNode"])(d,{class:"databasir-main-header"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l),Object(o["createVNode"])(s)]})),_:1}),Object(o["createVNode"])(m,{class:"databasir-main"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(p,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(m,{class:"databasir-main-content"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(b)]})),_:1})]})),_:1})]})),_:1})]})),_:1})}var a=Object(o["createElementVNode"])("span",null,"Databasir",-1);function u(e,t,n,r,c,u){var i=Object(o["resolveComponent"])("expand"),l=Object(o["resolveComponent"])("el-icon"),s=Object(o["resolveComponent"])("el-menu-item"),d=Object(o["resolveComponent"])("home-filled"),b=Object(o["resolveComponent"])("el-sub-menu"),m=Object(o["resolveComponent"])("el-menu");return Object(o["openBlock"])(),Object(o["createBlock"])(m,{router:"",collapse:r.isCollapse,mode:"vertical",class:"left-menu"},{default:Object(o["withCtx"])((function(){return[r.isCollapse?(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:0,onClick:r.expandMenu,index:"#"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i)]})),_:1})]})),_:1},8,["onClick"])):Object(o["createCommentVNode"])("",!0),Object(o["createVNode"])(s,{index:"/"},{title:Object(o["withCtx"])((function(){return[a]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(d)]})),_:1})]})),_:1}),(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(r.routes,(function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:t},[r.isShowMenu(e)&&e.children.length>0&&e.children.some((function(e){return!e.hidden}))?(Object(o["openBlock"])(),Object(o["createBlock"])(b,{key:0,index:e.path},{title:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(e.icon)))]})),_:2},1024),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.meta.nav),1)]})),default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.children,(function(n,r){return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:t+"-"+r},[n.hidden?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:0,index:e.path+"/"+n.path},{title:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(n.meta.nav),1)]})),default:Object(o["withCtx"])((function(){return[n.icon?(Object(o["openBlock"])(),Object(o["createBlock"])(l,{key:0},{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(n.icon)))]})),_:2},1024)):Object(o["createCommentVNode"])("",!0)]})),_:2},1032,["index"]))],64)})),128))]})),_:2},1032,["index"])):r.isShowMenu(e)?(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:1,index:e.path},{title:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.meta.nav),1)]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(e.icon)))]})),_:2},1024)]})),_:2},1032,["index"])):Object(o["createCommentVNode"])("",!0)],64)})),128))]})),_:1},8,["collapse"])}var i=n("5f87"),l=n("4360"),s={setup:function(){var e=Object(o["computed"])((function(){return l["a"].state.menu.isCollapse})),t=Object(r["d"])(),n=t.options.routes,c=function(e){if(e.hidden)return!1;if(e.meta.requireAnyRoles&&e.meta.requireAnyRoles.length>0){var t=i["b"].hasAnyRoles(e.meta.requireAnyRoles);if(!t)return!1}return!0},a=function(){l["a"].commit("expandMenu")};return{isCollapse:e,isShowMenu:c,expandMenu:a,routes:n}}},d=(n("61b1"),n("6b0d")),b=n.n(d);const m=b()(s,[["render",u]]);var p=m;n("b0c0");function f(e,t,n,r,c,a){var u=Object(o["resolveComponent"])("fold"),i=Object(o["resolveComponent"])("el-icon"),l=Object(o["resolveComponent"])("el-link"),s=Object(o["resolveComponent"])("el-breadcrumb-item"),d=Object(o["resolveComponent"])("el-breadcrumb");return Object(o["openBlock"])(),Object(o["createBlock"])(d,{separator:"/"},{default:Object(o["withCtx"])((function(){return[a.menuIsCollapse?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:0},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,{onClick:t[0]||(t[0]=function(e){return a.onFoldMenu()}),underline:!1},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u)]})),_:1})]})),_:1})]})),_:1})),(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(a.breadcrumbs,(function(e,t){return Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:t,to:e.to},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.name),1)]})),_:2},1032,["to"])})),128))]})),_:1})}var h={data:function(){},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 j=b()(h,[["render",f]]);var O=j,v=Object(o["createTextVNode"])("个人中心"),k=Object(o["createTextVNode"])("注销登陆");function g(e,t,n,r,c,a){var u=Object(o["resolveComponent"])("el-avatar"),i=Object(o["resolveComponent"])("el-dropdown-item"),l=Object(o["resolveComponent"])("el-dropdown-menu"),s=Object(o["resolveComponent"])("el-dropdown");return Object(o["openBlock"])(),Object(o["createBlock"])(s,null,{dropdown:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(l,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,null,{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(a.userNickname),1)]})),_:1}),Object(o["createVNode"])(i,{icon:"user",divided:"",onClick:t[0]||(t[0]=function(e){return a.toProfilePage()})},{default:Object(o["withCtx"])((function(){return[v]})),_:1}),Object(o["createVNode"])(i,{icon:"back",onClick:t[1]||(t[1]=function(e){return a.onLogout()})},{default:Object(o["withCtx"])((function(){return[k]})),_:1})]})),_:1})]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u,{size:36,src:c.avatarUrl,icon:"avatar"},null,8,["src"])]})),_:1})}var y={data:function(){return{avatarUrl:null}},computed:{userNickname:function(){return this.$store.state.user.nickname}},methods:{onLogout:function(){i["b"].removeUserLoginData(),this.$router.push({path:"/login"})},toProfilePage:function(){this.$router.push({path:"/profile"})}}};const w=b()(y,[["render",g]]);var C=w,x={components:{AppNav:p,Breadcrumb:O,Avatar:C},data:function(){return{}}};n("ca30");const N=b()(x,[["render",c]]);var B=N;function S(){return{name:"首页",to:{path:"/"}}}function _(){return{name:"项目中心",to:{name:"groupListPage"}}}function V(e){var t="项目组";return e.query.groupName&&(t=e.query.groupName),{name:t,to:{path:"/groups/"+e.params.groupId}}}function T(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 E(){return{name:"用户列表",to:{path:"/users"}}}function A(){return{name:"个人中心",to:{path:"/profile"}}}function L(){return{name:"邮箱设置",to:{path:"/settings/sysEmail"}}}function P(){return{name:"操作日志",to:{path:"/settings/sysLog"}}}var q={index:function(){return[S()]},groupList:function(){return[S(),_()]},groupDashboard:function(e,t){return[S(),_(),V(e,t)]},groupProjectDocument:function(e,t){return[S(),_(),V(e,t),T(e)]},userProfile:function(){return[S(),A()]},userList:function(){return[S(),E()]},sysEmailEdit:function(){return[S(),L()]},sysLog:function(){return[S(),P()]}},I=q,D=[{path:"/login",component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-0888fe78")]).then(n.bind(null,"a55b"))},hidden:!0,meta:{requireAuth:!1}},{path:"/",hidden:!0,component:B,children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-2be10a43")]).then(n.bind(null,"d648"))},meta:{breadcrumb:I.groupList}}]},{path:"/groups",icon:"Collection",component:B,meta:{nav:"项目中心"},children:[{path:"",name:"groupListPage",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-2be10a43")]).then(n.bind(null,"d648"))},meta:{breadcrumb:I.groupList}},{path:":groupId",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-af715350")]).then(n.bind(null,"3cd5"))},meta:{breadcrumb:I.groupDashboard}},{path:":groupId/projects/:projectId/documents",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-152d8fda")]).then(n.bind(null,"0742"))},meta:{breadcrumb:I.groupProjectDocument}}]},{path:"/users",icon:"List",component:B,meta:{nav:"用户中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-76185686")]).then(n.bind(null,"ab3a"))},meta:{breadcrumb:I.userList}}]},{path:"/profile",icon:"User",component:B,meta:{nav:"个人中心",breadcrumb:I.userProfile},children:[{path:"",hidden:!0,component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-fffb1b64")]).then(n.bind(null,"4a39"))}}]},{path:"/settings",icon:"Setting",component:B,meta:{nav:"系统中心",requireAnyRoles:["SYS_OWNER"]},children:[{path:"sysEmail",icon:"Notification",component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-2d0cc811")]).then(n.bind(null,"4de0"))},meta:{nav:"邮箱设置",breadcrumb:I.sysEmailEdit}},{path:"sysLog",icon:"Document",component:function(){return Promise.all([n.e("chunk-48cebeac"),n.e("chunk-e421509c")]).then(n.bind(null,"efd7"))},meta:{nav:"操作日志",breadcrumb:I.sysLog}},{path:"sysKey",icon:"Key",hidden:"true",component:B,meta:{nav:"系统秘钥",breadcrumb:I.sysKeyEdit}}]}],M=Object(r["a"])({history:Object(r["b"])(),routes:D});M.beforeEach((function(e,t,n){0==e.meta.requireAuth?"/login"==e.path&&i["a"].hasAccessToken()?n(t):n():i["a"].hasAccessToken()?n():n({path:"/login"})})),M.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()}));t["a"]=M},bb01:function(e,t,n){e.exports=n.p+"img/PostgreSQL.308e2acc.svg"},ca30:function(e,t,n){"use strict";n("f636")},f636:function(e,t,n){}}); +//# sourceMappingURL=app.f350e7fd.js.map \ No newline at end of file diff --git a/api/src/main/resources/static/js/app.f350e7fd.js.map b/api/src/main/resources/static/js/app.f350e7fd.js.map new file mode 100644 index 0000000..f2d9442 --- /dev/null +++ b/api/src/main/resources/static/js/app.f350e7fd.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/index.js","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/components/DatabaseIcon.vue","webpack:///./src/components/DatabaseIcon.vue?e127","webpack:///./src/main.js","webpack:///./src/utils/auth.js","webpack:///./src/components/AppNav.vue?2477","webpack:///./src/assets/database/MySQL.svg","webpack:///./src/layouts/Layout.vue","webpack:///./src/components/AppNav.vue","webpack:///./src/components/AppNav.vue?33c4","webpack:///./src/components/Breadcrumb.vue","webpack:///./src/components/Breadcrumb.vue?57f7","webpack:///./src/components/Avatar.vue","webpack:///./src/components/Avatar.vue?a351","webpack:///./src/layouts/Layout.vue?726f","webpack:///./src/router/breadcurmb.js","webpack:///./src/router/index.js","webpack:///./src/assets/database/PostgreSQL.svg","webpack:///./src/layouts/Layout.vue?5f7e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","store","createStore","state","user","loadUserLoginData","userData","nickname","usernmae","email","groupListActiveTab","menu","isCollapse","mutations","userUpdate","param","foldMenu","expandMenu","switchGroupListActiveTab","__exports__","render","databaseType","toLowerCase","content","placement","style","props","String","app","createApp","App","keys","Icons","forEach","component","DatabaseIcon","directive","mounted","el","binding","roles","hasAnyRoles","updated","child","querySelector","id","poper","getElementById","selector","addEventListener","condition","this","scrollHeight","scrollTop","clientHeight","use","ElementPlus","router","mount","accessTokenKey","accessTokenExpireAtKey","userLoginDataKey","token","hasAccessToken","accessToken","loadAccessToken","hasValidAccessToken","expireAt","localStorage","getItem","Date","getTime","log","saveAccessToken","tokenExpireAt","setItem","saveUserLoginData","userLoginData","accessTokenExpireAt","JSON","stringify","removeUserLoginData","removeItem","parse","map","role","groupId","some","exists","expected","getRefreshToken","refreshToken","class","collapse","index","title","routes","isShowMenu","children","ele","hidden","path","icon","meta","nav","childIndex","setup","options","requireAnyRoles","commit","separator","menuIsCollapse","onFoldMenu","underline","breadcrumbs","item","to","computed","$route","breadcrumb","$store","methods","dropdown","userNickname","divided","toProfilePage","onLogout","size","avatarUrl","$router","components","AppNav","Breadcrumb","Avatar","groupList","groupDashboard","route","groupName","query","params","groupProjectDocument","projectName","projectId","userList","userProfile","sysEmailEdit","sysLog","breadcurmbMap","requireAuth","Layout","sysKeyEdit","createRouter","history","createWebHashHistory","beforeEach","from","next"],"mappings":"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","file":"js/app.f350e7fd.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-48cebeac\":\"162363c9\",\"chunk-0888fe78\":\"b3edc7bf\",\"chunk-152d8fda\":\"21133535\",\"chunk-2be10a43\":\"e440181e\",\"chunk-2d0cc811\":\"c5d1ef9e\",\"chunk-76185686\":\"f269c8f3\",\"chunk-af715350\":\"f0eb72e9\",\"chunk-e421509c\":\"b47034f5\",\"chunk-fffb1b64\":\"1ffb9f27\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0888fe78\":1,\"chunk-152d8fda\":1,\"chunk-2be10a43\":1,\"chunk-af715350\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-48cebeac\":\"31d6cfe0\",\"chunk-0888fe78\":\"e51aa148\",\"chunk-152d8fda\":\"24a020fa\",\"chunk-2be10a43\":\"3284ac4c\",\"chunk-2d0cc811\":\"31d6cfe0\",\"chunk-76185686\":\"31d6cfe0\",\"chunk-af715350\":\"06814884\",\"chunk-e421509c\":\"31d6cfe0\",\"chunk-fffb1b64\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\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\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { createStore } from 'vuex'\r\nimport { user } from '../utils/auth'\r\n\r\nconst store = createStore({\r\n state() {\r\n const data = user.loadUserLoginData()\r\n const userData = {\r\n nickname: null,\r\n usernmae: null,\r\n email: null,\r\n }\r\n if (data != null) {\r\n userData.nickname = data.nickname\r\n userData.usernmae = data.usernmae\r\n userData.email = data.email;\r\n }\r\n return {\r\n user: userData,\r\n groupListActiveTab: null,\r\n menu: {\r\n isCollapse: true,\r\n }\r\n }\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 },\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","\r\n","import { render } from \"./App.vue?vue&type=template&id=2b08e877\"\nconst script = {}\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./DatabaseIcon.vue?vue&type=template&id=154abc1d\"\nimport script from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\nexport * from \"./DatabaseIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport ElementPlus from 'element-plus'\r\nimport * as Icons from '@element-plus/icons'\r\nimport 'element-plus/dist/index.css'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport { user } from './utils/auth'\r\nimport DatabaseIcon from './components/DatabaseIcon.vue'\r\n\r\n\r\n// element icon\r\nconst app = createApp(App)\r\nObject.keys(Icons).forEach(key => {\r\n app.component(key, Icons[key])\r\n})\r\napp.component('database-icon', DatabaseIcon)\r\n\r\n// permission directive\r\napp.directive('require-roles', {\r\n mounted(el, binding) {\r\n const roles = binding.value\r\n if (!user.hasAnyRoles(roles)) {\r\n el.parentNode && el.parentNode.removeChild(el)\r\n }\r\n },\r\n})\r\n\r\n// custom select directive\r\napp.directive(\"select-more\", {\r\n updated(el, binding) {\r\n const child = el.querySelector('.select-trigger');\r\n const id = child.getAttribute('aria-describedby');\r\n const poper = document.getElementById(id);\r\n const selector = poper.querySelector('.el-scrollbar .el-select-dropdown__wrap');\r\n selector.addEventListener('scroll', function () {\r\n const condition = this.scrollHeight - this.scrollTop - 1 <= this.clientHeight;\r\n if (condition) {\r\n binding.value();\r\n }\r\n });\r\n },\r\n});\r\n\r\napp.use(store)\r\napp.use(ElementPlus)\r\napp.use(router)\r\napp.mount('#app')\r\n\r\n","const accessTokenKey = 'accessToken'\r\nconst accessTokenExpireAtKey = 'accessTokenExpireAt'\r\nconst userLoginDataKey = 'userLoginData'\r\n\r\nexport const token = {\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 return expireAt > new Date().getTime()\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 return window.localStorage.getItem(accessTokenKey)\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 } else {\r\n const data = window.localStorage.getItem(userLoginDataKey)\r\n return JSON.parse(data)\r\n }\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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppNav.vue?vue&type=style&index=0&id=9b19d010&lang=css\"","module.exports = __webpack_public_path__ + \"img/MySQL.9d6aa60a.svg\";","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./AppNav.vue?vue&type=template&id=9b19d010\"\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=9b19d010&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\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=f841bcd6\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\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=41b59522\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Layout.vue?vue&type=template&id=db7179e0\"\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=db7179e0&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\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\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}\r\n\r\nexport default breadcurmbMap","import { createRouter, createWebHashHistory } 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: '/',\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 // 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: createWebHashHistory(),\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;","module.exports = __webpack_public_path__ + \"img/PostgreSQL.308e2acc.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Layout.vue?vue&type=style&index=0&id=db7179e0&lang=css\""],"sourceRoot":""} \ No newline at end of file diff --git a/api/src/main/resources/static/js/chunk-03c4dbde.fc870883.js b/api/src/main/resources/static/js/chunk-03c4dbde.fc870883.js deleted file mode 100644 index 2479e97..0000000 --- a/api/src/main/resources/static/js/chunk-03c4dbde.fc870883.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-03c4dbde"],{"057f":function(e,t,n){var r=n("c6b6"),o=n("fc6a"),c=n("241c").f,a=n("4dae"),u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],i=function(e){try{return c(e)}catch(t){return a(u)}};e.exports.f=function(e){return u&&"Window"==r(e)?i(e):c(o(e))}},"0db5":function(e,t,n){"use strict";n.d(t,"d",(function(){return c})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return u})),n.d(t,"e",(function(){return l})),n.d(t,"b",(function(){return d}));var r=n("1c1e"),o="/api/v1.0/projects",c=function(e){return r["a"].get(o,{params:e})},a=function(e){return r["a"].get(o+"/"+e)},u=function(e){return e.id?f(e):i(e)},i=function(e){return r["a"].post(o,e)},l=function(e){return r["a"].post(o+"/test_connection",e)},s="/api/v1.0/groups",f=function(e){return r["a"].patch(s+"/"+e.groupId+"/projects",e)},d=function(e,t){return r["a"].delete(s+"/"+e+"/projects/"+t)}},"0faa":function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return u}));var r=n("1c1e"),o="/api/v1.0/user_projects/favorites",c=function(e){return r["a"].get(o,{params:e})},a=function(e){return r["a"].delete(o+"/"+e)},u=function(e){return r["a"].post(o+"/"+e)}},"1bb4":function(e,t,n){},"2faf":function(e,t,n){"use strict";n.d(t,"f",(function(){return c})),n.d(t,"d",(function(){return a})),n.d(t,"b",(function(){return u})),n.d(t,"c",(function(){return s})),n.d(t,"e",(function(){return f})),n.d(t,"a",(function(){return d})),n.d(t,"g",(function(){return b})),n.d(t,"h",(function(){return p}));var r=n("1c1e"),o="/api/v1.0/groups",c=function(e){return r["a"].get(o,{params:e})},a=function(e){return r["a"].get(o+"/"+e)},u=function(e){return e.id&&null!=e.id?l(e):i(e)},i=function(e){return r["a"].post(o,e)},l=function(e){return r["a"].patch(o,e)},s=function(e){return r["a"].delete(o+"/"+e)},f=function(e,t){return r["a"].get(o+"/"+e+"/members",{params:t})},d=function(e,t){return r["a"].post(o+"/"+e+"/members",t)},b=function(e,t){return r["a"].delete(o+"/"+e+"/members/"+t)},p=function(e,t,n){var c={role:n};return r["a"].patch(o+"/"+e+"/members/"+t,c)}},"428f":function(e,t,n){var r=n("da84");e.exports=r},"4dae":function(e,t,n){var r=n("da84"),o=n("23cb"),c=n("07fa"),a=n("8418"),u=r.Array,i=Math.max;e.exports=function(e,t,n){for(var r=c(e),l=o(t,r),s=o(void 0===n?r:n,r),f=u(i(s-l,0)),d=0;lj)throw b(g);for(o=l(h,r),f=0;fw-r+n;f--)delete h[f-1]}else if(n>r)for(f=w-r;f>v;f--)d=f+r-1,m=f+n-1,d in h?h[m]=h[d]:delete h[m];for(f=0;f20)},partitionArray:function(e,t){for(var n=[],r=0,o=0;o {\r\n return axios.get(base, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const getProjectById = (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateProject = (request) => {\r\n if (request.id) {\r\n return updateProject(request)\r\n } else {\r\n return createProject(request)\r\n }\r\n}\r\n\r\nexport const createProject = (request) => {\r\n return axios.post(base, request);\r\n}\r\n\r\nexport const testConnection = (request) => {\r\n return axios.post(base + '/test_connection', request)\r\n}\r\n\r\n\r\nconst groupProjectBase = '/api/v1.0/groups'\r\n\r\n\r\nexport const updateProject = (request) => {\r\n return axios.patch(groupProjectBase +'/'+request.groupId+'/projects', request);\r\n}\r\n\r\nexport const deleteProjectById = (groupId, id) => {\r\n return axios.delete(groupProjectBase + '/' +groupId +'/projects/' + id);\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/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}","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","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./GroupList.vue?vue&type=style&index=0&id=7d42a534&lang=css\"","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","