You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
84 KiB

{"version":3,"file":"js/506.128427e0.js","mappings":"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","sources":["webpack://databasir-frontend/./src/api/DatabaseType.js","webpack://databasir-frontend/./src/api/Group.js","webpack://databasir-frontend/./src/api/OperationLog.js","webpack://databasir-frontend/./src/api/Project.js","webpack://databasir-frontend/./src/api/User.js","webpack://databasir-frontend/./src/api/UserProject.js","webpack://databasir-frontend/./src/views/GroupDashboard.vue","webpack://databasir-frontend/./src/views/GroupDashboard.vue?5149"],"sourcesContent":["import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/database_types'\r\n\r\nconst simples = '/api/v1.0/simple_database_types'\r\n\r\nexport const deleteDatabaseType = (id) => {\r\n return axios.delete(base+\"/\"+id)\r\n}\r\n\r\nexport const createDatabaseType = (body) => {\r\n return axios.post(base, body)\r\n}\r\n\r\nexport const updateDatabaseType = (body) => {\r\n return axios.patch(base, body)\r\n}\r\n\r\nexport const listSimples = () => {\r\n return axios.get(simples)\r\n}\r\n\r\nexport const listPage = (filter) => {\r\n return axios.get(base, {\r\n params: filter\r\n })\r\n}\r\n\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","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/operation_logs'\r\n\r\nexport const listOperationLogs = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/projects'\r\n\r\nexport const listProjects = (parameters) => {\r\n return axios.get(base, {\r\n params: parameters\r\n })\r\n}\r\n\r\nexport const getProjectById = (id) => {\r\n return axios.get(base + \"/\" + id)\r\n}\r\n\r\nexport const createOrUpdateProject = (request) => {\r\n if (request.id) {\r\n return updateProject(request)\r\n } else {\r\n return createProject(request)\r\n }\r\n}\r\n\r\nexport const createProject = (request) => {\r\n return axios.post(base, request);\r\n}\r\n\r\nexport const testConnection = (request) => {\r\n return axios.post(base + '/test_connection', request)\r\n}\r\n\r\n\r\nconst groupProjectBase = '/api/v1.0/groups'\r\n\r\n\r\nexport const updateProject = (request) => {\r\n return axios.patch(groupProjectBase +'/'+request.groupId+'/projects', request);\r\n}\r\n\r\nexport const deleteProjectById = (groupId, id) => {\r\n return axios.delete(groupProjectBase + '/' +groupId +'/projects/' + id);\r\n}\r\n","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/user_projects/favorites'\r\n\r\nexport const listFavorites = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const removeFavorite = (projectId) => {\r\n return axios.delete(base + \"/\" + projectId)\r\n}\r\n\r\nexport const addFavorite = (projectId) => {\r\n return axios.post(base +'/' + projectId)\r\n}","<template>\r\n <el-tabs>\r\n <!-- project list -->\r\n <el-tab-pane label=\"项目列表\">\r\n <el-row :gutter=\"12\">\r\n <el-col :span=\"3\" v-require-roles=\"['SYS_OWNER', 'GROUP_OWNER?groupId='+groupId, 'GROUP_MEMBER?groupId='+groupId]\">\r\n <el-tooltip content=\"新建一个新项目\" placement=\"top\">\r\n <el-button type=\"primary\" style=\"width:100%\" icon=\"plus\" @click=\"toCreateProject\">新建</el-button>\r\n </el-tooltip>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-input @change='onProjectQuery' v-model=\"projectFilter.nameContains\" label=\"项目名\" placeholder=\"项目名称搜索\" prefix-icon=\"search\"/>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-input @change=\"onProjectQuery\" v-model=\"projectFilter.databaseNameContains\" label=\"数据库名\" placeholder=\"数据库名称搜索\" prefix-icon=\"search\"/>\r\n </el-col>\r\n <el-col :span=\"5\">\r\n <el-select @change=\"onProjectQuery\" @clear=\"onProjectDatabaseTypeClear()\" v-model=\"projectFilter.databaseType\" placeholder=\"选择数据库类型\" clearable>\r\n <el-option\r\n v-for=\"item in databaseTypes\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\"\r\n >\r\n </el-option>\r\n </el-select>\r\n </el-col>\r\n </el-row>\r\n <el-row>\r\n <el-table :data=\"projectPageData.data\" border>\r\n <el-table-column prop=\"id\" label=\"ID\" min-width=\"60\" fixed=\"left\" />\r\n <el-table-column label=\"项目名称\" min-width=\"120\" fixed=\"left\" resizable>\r\n <template v-slot=\"scope\">\r\n <el-link :underline=\"true\" @click.stop=\"toDocumentPage(scope.row)\">\r\n <el-icon v-if=\"scope.row.isFavorite\" ><star-filled /></el-icon>\r\n {{ scope.row.name }}\r\n </el-link>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"databaseName\" label=\"数据库\" width=\"200\" resizable />\r\n <el-table-column label=\"数据库类型\">\r\n <template v-slot=\"scope\">\r\n <database-icon :databaseType=\"scope.row.databaseType\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"description\" label=\"说明\" min-width=\"160\" resizable />\r\n <el-table-column label=\"定时同步\" align=\"center\">\r\n <template v-slot=\"scope\">\r\n <el-tag v-if=\"scope.row.isAutoSync\">\r\n {{ scope.row.autoSyncCron }}\r\n </el-tag>\r\n <span v-else>\r\n 无\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"createAt\" label=\"创建时间\" min-width=\"120\" resizable ></el-table-column>\r\n <el-table-column fixed=\"right\" label=\"操作\" min-width=\"180\" align=\"center\" resizable>\r\n <template v-slot=\"scope\">\r\n <el-dropdown>\r\n <span>\r\n 更多\r\n <el-icon >\r\n <arrow-down />\r\n </el-icon>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item>\r\n <el-button type=\"primary\" size=\"small\" @click.stop=\"toEditProject(scope.row)\" icon=\"Edit\">编辑项目</el-button>\r\n </el-dropdown-item>\r\n <el-dropdown-item>\r\n <el-button type=\"primary\" size=\"small\" @click.stop=\"toDocumentPage(scope.row)\" icon=\"View\">查看文档</el-button>\r\n </el-dropdown-item>\r\n <el-dropdown-item>\r\n <el-button \r\n v-if=\"!scope.row.isFavorite\"\r\n type=\"primary\" \r\n size=\"small\" \r\n @click.stop=\"onAddProjectFavorite(scope.row)\" \r\n icon=\"Star\">\r\n 关注项目\r\n </el-button>\r\n <el-button \r\n v-else\r\n type=\"warning\" \r\n size=\"small\" \r\n @click.stop=\"onRemoveProjectFavorite(scope.row)\" \r\n icon=\"StarFilled\">\r\n 取消关注\r\n </el-button>\r\n </el-dropdown-item>\r\n <el-dropdown-item>\r\n <el-button type=\"primary\" size=\"small\" @click.stop=\"toProjectOperationLogDrawer(scope.row)\" icon=\"Tickets\">查看日志</el-button>\r\n </el-dropdown-item>\r\n <el-dropdown-item v-require-roles=\"['SYS_OWNER', 'GROUP_OWNER?groupId='+groupId]\">\r\n <el-button type=\"danger\" size=\"small\" @click.stop=\"onProjectDelete(scope.row.id)\" icon=\"Remove\">删除项目</el-button>\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n \r\n </el-row>\r\n <el-row>\r\n <el-col>\r\n <el-pagination layout=\"prev, pager, next\" \r\n :hide-on-single-page=\"false\"\r\n :currentPage=\"projectPageData.number\" \r\n :page-size=\"projectPageData.size\" \r\n :page-count=\"projectPageData.totalPages\"\r\n @current-change=\"onProjectListCurrentPageChange\">\r\n\r\n </el-pagination>\r\n </el-col>\r\n </el-row>\r\n\r\n <!-- project form -->\r\n <el-dialog v-model=\"isShowProjectEditDialog\" width=\"42%\" center destroy-on-close >\r\n <el-form :model=\"projectForm\" label-position=\"top\" :rules=\"projectFormRules\" ref=\"projectFormRulesRef\">\r\n <el-tabs>\r\n <el-tab-pane label=\"基础配置\">\r\n <!-- basic -->\r\n <h3>基础信息</h3>\r\n <el-row :gutter=\"33\">\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"名称\" prop=\"name\">\r\n <el-input v-model=\"projectForm.name\" placeholder=\"项目名称\"></el-input>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"描述\" prop=\"description\">\r\n <el-input v-model=\"projectForm.description\" type=\"textarea\" placeholder=\"项目描述\"></el-input>\r\n </el-form-item> \r\n </el-col>\r\n </el-row>\r\n \r\n <!-- connection -->\r\n <h3>连接配置</h3>\r\n <el-row :gutter=\"33\">\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"用户名\" prop=\"dataSource.username\">\r\n <el-input v-model=\"projectForm.dataSource.username\" placeholder=\"root\"></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"密码\" prop=\"dataSource.password\">\r\n <el-input v-model=\"projectForm.dataSource.password\" placeholder=\"**********\" :type=\"password\" show-password></el-input>\r\n </el-form-item> \r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-form-item label=\"地址\" prop=\"dataSource.url\">\r\n <el-input v-model=\"projectForm.dataSource.url\" placeholder=\"127.0.0.1:3306\"></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"7\">\r\n <el-form-item label=\"数据库\" prop=\"dataSource.databaseName\">\r\n <el-input v-model=\"projectForm.dataSource.databaseName\" placeholder=\"需要同步的数据库名称\"></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"5\">\r\n <el-form-item label=\"数据库类型\" prop=\"dataSource.databaseType\">\r\n <el-select v-model=\"projectForm.dataSource.databaseType\" placeholder=\"选择数据库类型\" clearable>\r\n <el-option\r\n v-for=\"item in databaseTypes\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\"\r\n >\r\n </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-form-item :label=\"index > 0 ? '':'属性'\" v-for=\"(item, index) in projectForm.dataSource.properties\" :key=\"index\">\r\n <el-col :span=\"6\">\r\n <el-input v-model.trim=\"item.key\" placeholder=\"Key\"></el-input>\r\n </el-col>\r\n <el-col :span=\"6\" style=\"margin-left:33px;\">\r\n <el-input v-model.trim=\"item.value\" placeholder=\"Value\" />\r\n </el-col>\r\n <el-col :span=\"8\" style=\"margin-left:33px;\">\r\n <el-button type=\"danger\" size=\"small\" @click=\"removeDataSourceProperty(index)\">- 删除</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"addDataSourceProperty\" v-if=\"(index+1) == projectForm.dataSource.properties.length\">+ 添加</el-button>\r\n </el-col>\r\n </el-form-item>\r\n <el-form-item label=\"属性\" v-if=\"projectForm.dataSource.properties.length == 0\">\r\n <el-button type=\"text\" size=\"small\" @click=\"addDataSourceProperty\" >+ 添加</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item>\r\n <el-col>\r\n <el-button v-if=\"testConnectionState.isTest\" plain circle :type=\"testConnectionState.buttonType\" size=\"small\">\r\n <el-icon v-if=\"testConnectionState.success\"><check /></el-icon>\r\n <el-icon v-else><close /></el-icon>\r\n </el-button>\r\n <el-button :type=\"testConnectionState.buttonType\" plain size=\"small\" @click=\"onTestConnection('projectFormRulesRef')\" :loading=\"loading.testConnection\">\r\n 测试连接\r\n </el-button>\r\n </el-col>\r\n <el-col v-if=\"testConnectionState.isTest && !testConnectionState.success\">\r\n <el-link type=\"danger\" :underline=\"false\">{{ testConnectionState.message }}</el-link>\r\n </el-col>\r\n </el-form-item>\r\n </el-tab-pane>\r\n\r\n <el-tab-pane label=\"高级配置\">\r\n <!-- schema meta sync rule-->\r\n <h2>同步规则</h2>\r\n <el-form-item label=\"定时同步\">\r\n <el-space wrap :size=\"33\">\r\n <el-switch v-model=\"projectForm.projectSyncRule.isAutoSync\"></el-switch>\r\n <el-input \r\n v-model=\"projectForm.projectSyncRule.autoSyncCron\" \r\n v-if=\"projectForm.projectSyncRule.isAutoSync\" \r\n placeholder=\"CRON 表达式\" \r\n >\r\n </el-input> \r\n </el-space>\r\n </el-form-item>\r\n\r\n <!-- ignore table name regex -->\r\n <el-form-item :label=\"index > 0 ? '': '忽略表名称(支持正则表达式)'\" v-for=\"(item, index) in projectForm.projectSyncRule.ignoreTableNameRegexes\" :key=\"index\">\r\n <el-col :span=\"6\">\r\n <el-input v-model=\"projectForm.projectSyncRule.ignoreTableNameRegexes[index]\" placeholder=\"name regex\"></el-input>\r\n </el-col>\r\n <el-col :span=\"6\" :offset=\"1\">\r\n <el-button type=\"danger\" size=\"small\" @click=\"removeIgnoreTableName(index)\">- 删除</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"addIgnoreTableName\" v-if=\"(index+1) == projectForm.projectSyncRule.ignoreTableNameRegexes.length\">+ 添加</el-button>\r\n </el-col>\r\n </el-form-item>\r\n <el-form-item label=\"忽略表名称(支持正则表达式)\" v-if=\"projectForm.projectSyncRule.ignoreTableNameRegexes.length == 0\">\r\n <el-button type=\"text\" size=\"small\" @click=\"addIgnoreTableName\" >+ 添加</el-button>\r\n </el-form-item>\r\n\r\n <!-- ignore column name regex -->\r\n <el-form-item :label=\"index > 0 ? '' : '忽略列名称(支持正则表达式)'\" v-for=\"(item, index) in projectForm.projectSyncRule.ignoreColumnNameRegexes\" :key=\"index\">\r\n <el-col :span=\"6\">\r\n <el-input v-model=\"projectForm.projectSyncRule.ignoreColumnNameRegexes[index]\" placeholder=\"name regex\"></el-input>\r\n </el-col>\r\n <el-col :span=\"6\" :offset=\"1\">\r\n <el-button type=\"danger\" size=\"small\" @click=\"removeIgnoreColumnName(index)\">- 删除</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"addIgnoreColumnName\" v-if=\"(index+1) == projectForm.projectSyncRule.ignoreColumnNameRegexes.length\">+ 添加</el-button>\r\n </el-col>\r\n </el-form-item>\r\n <el-form-item label=\"忽略列名称(支持正则表达式)\" v-if=\"projectForm.projectSyncRule.ignoreColumnNameRegexes.length == 0\">\r\n <el-button type=\"text\" size=\"small\" @click=\"addIgnoreColumnName\" >+ 添加</el-button>\r\n </el-form-item>\r\n </el-tab-pane>\r\n </el-tabs>\r\n <el-form-item>\r\n <el-divider content-position=\"center\"></el-divider>\r\n <el-button type=\"primary\" @click=\"onProjectFormSave('projectFormRulesRef')\" >保存</el-button>\r\n <el-button @click=\"onProjectFormCancel\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-dialog>\r\n <el-drawer\r\n v-model=\"isShowProjectOperationLogDrawer\"\r\n title=\"项目日志\"\r\n size=\"50%\"\r\n >\r\n <el-table :data=\"projectOperationLogPageData.data\">\r\n <el-table-column prop=\"id\" label=\"ID\"/>\r\n <el-table-column prop=\"operatorNickname\" label=\"操作人\" />\r\n <el-table-column prop=\"operationName\" label=\"操作\" />\r\n <el-table-column label=\"状态\" >\r\n <template v-slot=\"scope\">\r\n <span v-if=\"scope.row.isSuccess\">\r\n <el-tag type=\"success\">成功</el-tag>\r\n </span>\r\n <span v-else>\r\n <el-tag type=\"danger\">失败</el-tag>\r\n </span>\r\n </template>\r\n </el-table-column>\r\n\r\n <el-table-column label=\"错误信息\" >\r\n <template v-slot=\"scope\">\r\n <span v-if=\"scope.row.isSuccess\">\r\n </span>\r\n <span v-else>\r\n {{ scope.row.operationResponse.errMessage }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"createAt\" label=\"记录时间\" />\r\n </el-table>\r\n <el-pagination layout=\"prev, pager, next\" \r\n :hide-on-single-page=\"false\"\r\n :currentPage=\"projectOperationLogPageData.number\" \r\n :page-size=\"projectOperationLogPageData.size\" \r\n :page-count=\"projectOperationLogPageData.totalPages\"\r\n @current-change=\"onProjectOperationLogCurrentPageChange\">\r\n\r\n </el-pagination>\r\n </el-drawer>\r\n </el-tab-pane>\r\n \r\n <el-tab-pane label=\"分组成员\">\r\n <el-row :gutter=\"33\">\r\n <el-col :span=\"3\" v-require-roles=\"['SYS_OWNER', 'GROUP_OWNER?groupId='+groupId]\">\r\n <el-tooltip content=\"添加一个新组员\" placement=\"top\">\r\n <el-button type=\"primary\" style=\"width:100%\" icon=\"plus\" @click=\"onClickShowAddGroupMemberDrawer()\">添加成员</el-button>\r\n </el-tooltip>\r\n </el-col>\r\n <el-col :span=\"3\">\r\n <el-select @change=\"onGroupMemberQuery\" @clear=\"onGroupRoleFilterClear\" v-model=\"groupMemberFilter.role\" placeholder=\"选择角色过滤\" clearable>\r\n <el-option\r\n v-for=\"item in roleTypes\"\r\n :key=\"item\"\r\n :label=\"formatRoleName(item)\"\r\n :value=\"item\"\r\n >\r\n </el-option>\r\n </el-select>\r\n </el-col>\r\n <el-col :span=\"8\">\r\n <el-input @change='onGroupMemberQuery()' v-model=\"groupMemberFilter.nicknameOrUsernameOrEmailContains\" placeholder=\"成员昵称、用户名、邮箱搜索\" prefix-icon=\"search\"/>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row>\r\n <el-col>\r\n <el-table :data=\"groupMemberPageData.data\" border width='80%'>\r\n <el-table-column prop=\"userId\" label=\"用户 ID\" min-width=\"60\" fixed=\"left\" />\r\n <el-table-column prop=\"nickname\" label=\"昵称\" min-width=\"120\" fixed=\"left\" resizable />\r\n <el-table-column prop=\"username\" label=\"用户名\" min-width=\"120\" resizable />\r\n <el-table-column prop=\"email\" label=\"邮箱\" width=\"200\" resizable />\r\n <el-table-column label=\"角色\" resizable align=\"center\">\r\n <template v-slot=\"scope\">\r\n <el-tag v-if=\"scope.row.role == 'GROUP_OWNER'\" type=\"danger\" effect=\"plain\"> {{ formatRoleName(scope.row.role )}} </el-tag>\r\n <el-tag v-else effect=\"plain\"> {{ formatRoleName(scope.row.role )}} </el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"createAt\" label=\"入组时间\" min-width=\"160\" resizable />\r\n <el-table-column label=\"操作\" min-width=\"120\" resizable v-require-roles=\"['SYS_OWNER', 'GROUP_OWNER?groupId='+groupId]\">\r\n <template v-slot=\"scope\">\r\n <el-button type=\"danger\" size=\"small\" @click=\"onGroupMemberRemove(scope.row.nickname, scope.row.userId)\" plain>移除</el-button>\r\n <el-button v-if=\"scope.row.role == 'GROUP_MEMBER'\" plain size=\"small\" @click=\"onGroupMemberRoleUpdate(scope.row, 'GROUP_OWNER')\">升为组长</el-button>\r\n <el-button v-else size=\"small\" @click=\"onGroupMemberRoleUpdate(scope.row, 'GROUP_MEMBER')\" plain>设为组员</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n <el-row>\r\n <el-col>\r\n <el-pagination layout=\"prev, pager, next\" \r\n :hide-on-single-page=\"false\"\r\n :currentPage=\"groupMemberPageData.number\" \r\n :page-size=\"groupMemberPageData.size\" \r\n :page-count=\"groupMemberPageData.totalPages\"\r\n @current-change=\"onGroupMemberCurrentPageChange\">\r\n\r\n </el-pagination>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-drawer\r\n v-model=\"isShowAddGroupMemberDrawer\"\r\n title=\"添加成员\"\r\n direction=\"btt\"\r\n size=\"50%\"\r\n >\r\n <el-affix :offset=\"0\" position=\"top\" target=\".el-drawer__body\">\r\n <el-row :gutter=\"33\">\r\n <el-col :span=\"12\">\r\n <el-input @change='fetchUsers' v-model=\"userPageQuery.nicknameOrUsernameOrEmailContains\" label=\"用户名\" placeholder=\"输入昵称、用户名或邮箱搜索\" prefix-icon=\"search\"/>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-pagination layout=\"sizes, prev, pager, next\" \r\n :hide-on-single-page=\"false\"\r\n :currentPage=\"userPageQuery.number\" \r\n :page-size=\"userPageQuery.size\" \r\n :page-sizes=\"[5, 10, 20, 30]\"\r\n :page-count=\"userPageData.totalPages\"\r\n @size-change=\"onUserPageSizeChange\"\r\n @current-change=\"fetchUsers\">\r\n </el-pagination>\r\n </el-col>\r\n </el-row>\r\n </el-affix>\r\n\r\n <el-row>\r\n <el-col>\r\n <el-table :data=\"userPageData.data\" style=\"width: 100%\" border>\r\n <el-table-column prop=\"id\" label=\"用户 ID\" width=\"80\" />\r\n <el-table-column prop=\"nickname\" label=\"昵称\" />\r\n <el-table-column prop=\"username\" label=\"用户名\" />\r\n <el-table-column prop=\"email\" label=\"邮箱\" />\r\n <el-table-column label=\"启用状态\" width=\"100\">\r\n <template v-slot=\"scope\">\r\n <span v-if=\"scope.row.enabled\">\r\n <el-tag type=\"success\">启用中</el-tag>\r\n </span>\r\n <span v-else>\r\n <el-tag type=\"danger\">已禁用</el-tag>\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\">\r\n <template v-slot=\"scope\">\r\n <span v-if=\"isInGroup(scope.row)\">\r\n <el-button type=\"danger\" size=\"small\" @click=\"onGroupMemberRemove(scope.row.nickname, scope.row.id)\" plain>移除</el-button>\r\n </span>\r\n <span v-else>\r\n <el-button type=\"primary\" plain size=\"small\" @click=\"onGroupMemberAdd(scope.row.id, 'GROUP_MEMBER')\">+ 添加组员</el-button>\r\n <el-button type=\"plain\" plain size=\"small\" @click=\"onGroupMemberAdd(scope.row.id, 'GROUP_OWNER')\">+ 添加组长</el-button>\r\n </span>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-col>\r\n </el-row>\r\n </el-drawer>\r\n </el-tab-pane>\r\n </el-tabs>\r\n</template>\r\n\r\n<style>\r\n.el-row {\r\n margin-top: 33px\r\n}\r\n</style>\r\n<script>\r\nimport { listProjects, deleteProjectById, getProjectById, testConnection, createOrUpdateProject } from '@/api/Project'\r\nimport { listGroupMembers, removeGroupMember, addGroupMember, updateGroupMemberRole } from '../api/Group'\r\nimport { listUsers } from '../api/User'\r\nimport { listOperationLogs } from '../api/OperationLog'\r\nimport { ElMessage } from 'element-plus'\r\nimport { listSimples } from '../api/DatabaseType'\r\nimport { addFavorite, removeFavorite } from '../api/UserProject'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n isShowProjectEditDialog: false,\r\n isShowAddGroupMemberDrawer: false,\r\n isShowProjectOperationLogDrawer: false,\r\n // ====== project domain ======\r\n projectPageData: {\r\n data: [],\r\n number: 1,\r\n size: 15,\r\n totalElements:0,\r\n totalPages: 1\r\n },\r\n projectFilter: {\r\n page: 0,\r\n size: 15,\r\n groupId: null,\r\n databaseType: null,\r\n nameContains: null,\r\n databaseNameContains: null\r\n },\r\n\r\n // ======= group domain =======\r\n groupMemberPageData: {\r\n data: [],\r\n number: 1,\r\n size: 10,\r\n totalElements:0,\r\n totalPages: 1\r\n },\r\n groupMemberFilter: {\r\n page: 0,\r\n size: 10,\r\n role: null,\r\n nicknameOrUsernameOrEmailContains: null\r\n },\r\n userPageQuery: {\r\n page: 0,\r\n size: 10,\r\n nicknameOrUsernameOrEmailContains: null\r\n },\r\n userPageData: {\r\n data: [],\r\n number: 1,\r\n size: 8,\r\n totalElements:0,\r\n totalPages: 1\r\n },\r\n\r\n // ======= project form ======\r\n projectForm: {\r\n id: null,\r\n name: null,\r\n description: null,\r\n groupId: null,\r\n dataSource: {\r\n username: null,\r\n databaseType: null,\r\n databaseName: null,\r\n password: null,\r\n url: null,\r\n properties: []\r\n },\r\n projectSyncRule: {\r\n isAutoSync: false,\r\n autoSyncCron: null,\r\n ignoreTableNameRegexes: [],\r\n ignoreColumnNameRegexes: []\r\n }\r\n },\r\n projectFormRules: {\r\n name: [ {required: true, message: '名称不能为空',trigger: 'blur'}, ],\r\n description: [ {required: true, message: '说明不能为空',trigger: 'blur'}, ],\r\n dataSource: {\r\n username: [ {required: true,message: '数据库用户名不能为空',trigger: 'blur'} ],\r\n url: [ {required: true,message: '数据库连接地址不能为空',trigger: 'blur'} ],\r\n databaseName: [ {required: true,message: '数据库名称不能为空',trigger: 'blur'} ],\r\n databaseType: [ {required: true,message: '请选择数据库类型',trigger: 'change'} ],\r\n }\r\n },\r\n testConnectionState: {\r\n buttonType: 'primary',\r\n isTest: false,\r\n success: false,\r\n message: null,\r\n },\r\n loading: {\r\n testConnection: false\r\n },\r\n projectOperationLogPageData: {\r\n data: [],\r\n number: 1,\r\n size: 10,\r\n totalElements:0,\r\n totalPages: 1\r\n },\r\n\r\n projectOperationLogPageQuery: {\r\n page: 0,\r\n size: 10,\r\n involveProjectId: null,\r\n module: 'project',\r\n },\r\n // ======= common domain ======\r\n groupId: null,\r\n databaseTypes: [],\r\n roleTypes: ['GROUP_OWNER', 'GROUP_MEMBER']\r\n }\r\n },\r\n\r\n mounted(){\r\n listSimples().then(resp => {\r\n this.databaseTypes = resp.data\r\n })\r\n },\r\n \r\n created() {\r\n if (this.$route.params.groupId) {\r\n this.projectFilter.groupId = this.$route.params.groupId\r\n this.groupId = this.$route.params.groupId\r\n }\r\n\r\n this.$watch(\r\n () => this.projectForm.dataSource,\r\n () => {\r\n this.testConnectionState.isTest = false\r\n this.testConnectionState.buttonType = 'primary'\r\n },\r\n { deep: true }\r\n )\r\n this.fetchGroupProjects()\r\n this.fetchGroupMembers()\r\n },\r\n\r\n methods: {\r\n // ========== group domain ===========\r\n formatRoleName(role) {\r\n if (role == 'GROUP_OWNER') {\r\n return '组长'\r\n } else if (role == 'GROUP_MEMBER') {\r\n return '组员'\r\n } else {\r\n return '未知'\r\n }\r\n },\r\n fetchGroupMembers(currentPage) {\r\n if (currentPage) {\r\n this.groupMemberFilter.page = currentPage - 1\r\n } else {\r\n this.groupMemberFilter.page = 0\r\n }\r\n listGroupMembers(this.$route.params.groupId, this.groupMemberFilter).then(jsonData => {\r\n this.groupMemberPageData.data = jsonData.data.content\r\n this.groupMemberPageData.number = jsonData.data.number + 1\r\n this.groupMemberPageData.size = jsonData.data.size\r\n this.groupMemberPageData.totalPages = jsonData.data.totalPages\r\n this.groupMemberPageData.totalElements = jsonData.data.totalElements\r\n })\r\n },\r\n onGroupRoleFilterClear() {\r\n this.groupMemberFilter.role = null\r\n },\r\n onGroupMemberQuery() {\r\n this.groupMemberFilter.page = 0\r\n if (this.groupMemberFilter.role == '') {\r\n this.groupMemberFilter.role = null\r\n }\r\n this.fetchGroupMembers()\r\n },\r\n onGroupMemberCurrentPageChange(currentPage) {\r\n if (currentPage && (currentPage -1) != this.groupMemberFilter.page) {\r\n this.groupMemberFilter.page = currentPage - 1\r\n this.fetchGroupMembers()\r\n }\r\n },\r\n onGroupMemberRemove(nickname, userId) {\r\n const groupId = this.$route.params.groupId\r\n this.$confirm('确认移除成员['+nickname+']', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n removeGroupMember(groupId , userId).then(resp => {\r\n if (!resp.errCode) {\r\n this.$message.success(\"移除成功\")\r\n this.fetchGroupMembers()\r\n if(this.isShowAddGroupMemberDrawer) {\r\n this.userPageData.data.filter(u => u.id == userId).forEach(u => {\r\n const idx = u.inGroupIds.indexOf(this.groupId)\r\n u.inGroupIds.splice(idx, 1)\r\n })\r\n }\r\n }\r\n })\r\n })\r\n\r\n },\r\n onGroupMemberRoleUpdate(user, role) {\r\n const groupId = this.$route.params.groupId\r\n updateGroupMemberRole(groupId, user.userId, role).then(resp => {\r\n if (!resp.errCode) {\r\n const roleDesc = role == 'GROUP_OWNER' ? '组长' : '组员'\r\n this.$message.success(\"成功设置为\"+roleDesc)\r\n user.role = role\r\n }\r\n })\r\n },\r\n isInGroup(user) {\r\n return user.inGroupIds.some(item => item == this.groupId)\r\n },\r\n // ========= group member add domain ========\r\n fetchUsers(currentPage) {\r\n if (currentPage) {\r\n this.userPageQuery.page = currentPage - 1\r\n } else {\r\n this.userPageQuery.page = null\r\n }\r\n listUsers(this.userPageQuery).then(resp => {\r\n if (!resp.errCode) {\r\n this.userPageData.data = resp.data.content\r\n this.userPageData.number = resp.data.number + 1\r\n this.userPageData.size = resp.data.size\r\n this.userPageData.totalPages = resp.data.totalPages\r\n this.userPageData.totalElements = resp.data.totalElements\r\n }\r\n })\r\n },\r\n onClickShowAddGroupMemberDrawer() {\r\n this.isShowAddGroupMemberDrawer = true\r\n this.fetchUsers()\r\n },\r\n onGroupMemberAdd(userId, role) {\r\n const body = {\r\n userId: userId,\r\n role: role\r\n }\r\n const groupId = this.$route.params.groupId\r\n addGroupMember(groupId, body).then(resp => {\r\n if (!resp.errCode) {\r\n this.$message.success(\"添加成功\")\r\n this.userPageData.data.filter(u => u.id == userId).forEach(u => {\r\n u.inGroupIds.push(this.groupId)\r\n })\r\n this.fetchGroupMembers()\r\n }\r\n })\r\n },\r\n onUserPageSizeChange(currentSize) {\r\n if (currentSize) {\r\n this.userPageQuery.size = currentSize\r\n this.fetchUsers()\r\n }\r\n },\r\n // ========== project domain ===========\r\n fetchGroupProjects() {\r\n if (this.projectFilter.databaseType == '') {\r\n this.projectFilter.databaseType = null\r\n }\r\n listProjects(this.projectFilter).then(resp => {\r\n if (!resp.errCode) {\r\n this.projectPageData.data = resp.data.content\r\n this.projectPageData.number = resp.data.number + 1\r\n this.projectPageData.size = resp.data.size\r\n this.projectPageData.totalPages = resp.data.totalPages\r\n this.projectPageData.totalElements = resp.data.totalElements\r\n }\r\n })\r\n },\r\n onProjectDatabaseTypeClear() {\r\n this.projectFilter.databaseType = null\r\n },\r\n onProjectQuery() {\r\n this.projectFilter.page = 0\r\n this.fetchGroupProjects()\r\n },\r\n onProjectListCurrentPageChange(currentPage) {\r\n if (currentPage && (currentPage -1) != this.projectFilter.page) {\r\n this.projectFilter.page = currentPage - 1\r\n this.fetchGroupProjects()\r\n }\r\n },\r\n onProjectDelete(id) {\r\n this.$confirm('确认删除该项目?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n deleteProjectById(this.groupId, id).then(resp => {\r\n if (!resp.errCode) {\r\n ElMessage({\r\n showClose: true,\r\n message: '删除成功',\r\n type: 'success',\r\n duration: 3 * 1000\r\n });\r\n this.onProjectQuery()\r\n }\r\n })\r\n })\r\n },\r\n onAddProjectFavorite(project) {\r\n addFavorite(project.id).then(resp => {\r\n if(!resp.errCode) {\r\n this.$message.success(\"关注成功\")\r\n project.isFavorite=true\r\n }\r\n })\r\n },\r\n onRemoveProjectFavorite(project) {\r\n removeFavorite(project.id).then(resp => {\r\n if(!resp.errCode) {\r\n this.$message.success(\"取消成功\")\r\n project.isFavorite=false\r\n }\r\n })\r\n },\r\n toEditProject(row) {\r\n getProjectById(row.id).then(resp => {\r\n this.projectForm = resp.data\r\n this.isShowProjectEditDialog = true\r\n })\r\n },\r\n toCreateProject() {\r\n const groupId = this.$route.params.groupId\r\n this.projectForm = {\r\n id: null,\r\n name: null,\r\n description: null,\r\n groupId: groupId,\r\n dataSource: {\r\n username: null,\r\n databaseType: null,\r\n databaseName: null,\r\n password: null,\r\n url: null,\r\n properties: []\r\n },\r\n projectSyncRule: {\r\n isAutoSync: false,\r\n autoSyncCron: null,\r\n ignoreTableNameRegexes: [],\r\n ignoreColumnNameRegexes: []\r\n }\r\n }\r\n this.isShowProjectEditDialog = true\r\n },\r\n toDocumentPage(project) {\r\n const groupId = this.$route.params.groupId\r\n const projectId = project.id\r\n this.$router.push({\r\n path: \"/groups/\" + groupId + \"/projects/\" + projectId + \"/documents\",\r\n query: { projectName: project.name }\r\n })\r\n },\r\n\r\n // project operation logs\r\n fetchProjectOperationLogs(currentPage) {\r\n if (currentPage) {\r\n this.projectOperationLogPageQuery.page = currentPage - 1\r\n } else {\r\n this.projectOperationLogPageQuery.page = null\r\n }\r\n listOperationLogs(this.projectOperationLogPageQuery).then(resp => {\r\n if (!resp.errCode) {\r\n this.projectOperationLogPageData.data = resp.data.content\r\n this.projectOperationLogPageData.number = resp.data.number + 1\r\n this.projectOperationLogPageData.size = resp.data.size\r\n this.projectOperationLogPageData.totalPages = resp.data.totalPages\r\n this.projectOperationLogPageData.totalElements = resp.data.totalElements\r\n }\r\n })\r\n },\r\n onProjectOperationLogCurrentPageChange(currentPage) {\r\n if (currentPage && (currentPage -1) != this.projectOperationLogPageQuery.page) {\r\n this.projectOperationLogPageQuery.page = currentPage - 1\r\n this.fetchProjectOperationLogs(currentPage)\r\n }\r\n },\r\n toProjectOperationLogDrawer(project) {\r\n this.projectOperationLogPageQuery.involveProjectId = project.id\r\n this.fetchProjectOperationLogs()\r\n this.isShowProjectOperationLogDrawer = true\r\n },\r\n \r\n // project form domain\r\n onProjectFormSave(){\r\n this.$refs.projectFormRulesRef.validate((valid) => {\r\n if(!valid) {\r\n this.$message.error('请填写表单必填项')\r\n return false\r\n } \r\n\r\n if (!this.projectForm.id && !this.projectForm.dataSource.password) {\r\n this.$message.error('请填写数据库连接密码')\r\n return false\r\n }\r\n\r\n createOrUpdateProject(this.projectForm).then(resp => {\r\n if (!resp.errCode) {\r\n this.$message.success('保存成功')\r\n this.fetchGroupProjects()\r\n this.isShowProjectEditDialog = false\r\n }\r\n return true;\r\n })\r\n })\r\n },\r\n onProjectFormCancel(){\r\n this.isShowProjectEditDialog = false\r\n },\r\n\r\n addDataSourceProperty(){\r\n this.projectForm.dataSource.properties.push({key:\"\", value:\"\"})\r\n },\r\n\r\n removeDataSourceProperty(index){\r\n this.projectForm.dataSource.properties.splice(index, 1)\r\n },\r\n\r\n addIgnoreTableName(){\r\n this.projectForm.projectSyncRule.ignoreTableNameRegexes.push(\"\")\r\n },\r\n\r\n removeIgnoreTableName(index) {\r\n this.projectForm.projectSyncRule.ignoreTableNameRegexes.splice(index, 1)\r\n },\r\n\r\n addIgnoreColumnName(){\r\n this.projectForm.projectSyncRule.ignoreColumnNameRegexes.push(\"\")\r\n },\r\n\r\n removeIgnoreColumnName(index){\r\n this.projectForm.projectSyncRule.ignoreColumnNameRegexes.splice(index, 1)\r\n },\r\n\r\n onTestConnection(){\r\n this.loading.testConnection = true\r\n this.$refs.projectFormRulesRef.validate((valid) => {\r\n if(!valid) {\r\n this.$message.error('请填写表单必填项')\r\n this.loading.testConnection = false\r\n return false\r\n } \r\n\r\n if (!this.projectForm.id && !this.projectForm.dataSource.password) {\r\n this.$message.error('请填写数据库连接密码')\r\n this.loading.testConnection = false\r\n return false\r\n }\r\n const request = {\r\n projectId: this.projectForm.id,\r\n databaseType: this.projectForm.dataSource.databaseType,\r\n databaseName: this.projectForm.dataSource.databaseName,\r\n username: this.projectForm.dataSource.username,\r\n password: this.projectForm.dataSource.password,\r\n url: this.projectForm.dataSource.url,\r\n properties: this.projectForm.dataSource.properties\r\n }\r\n testConnection(request).then(resp => {\r\n if (!resp.errCode) {\r\n this.testConnectionState.success = true\r\n this.testConnectionState.buttonType = 'success'\r\n this.$message.success('连接成功')\r\n } else {\r\n this.testConnectionState.success = false\r\n this.testConnectionState.buttonType = 'danger'\r\n }\r\n this.testConnectionState.isTest = true\r\n this.testConnectionState.message = resp.errMessage\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n this.$message.error('连接超时请稍后再试')\r\n this.testConnectionState.message = '连接超时请稍后再试'\r\n this.testConnectionState.buttonType = 'danger'\r\n this.testConnectionState.success = false\r\n })\r\n .finally(() => this.loading.testConnection = false)\r\n })\r\n \r\n }\r\n }\r\n}\r\n</script>","import { render } from \"./GroupDashboard.vue?vue&type=template&id=3726aeb3\"\nimport script from \"./GroupDashboard.vue?vue&type=script&lang=js\"\nexport * from \"./GroupDashboard.vue?vue&type=script&lang=js\"\n\nimport \"./GroupDashboard.vue?vue&type=style&index=0&id=3726aeb3&lang=css\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["base","simples","deleteDatabaseType","id","axios","createDatabaseType","body","updateDatabaseType","listSimples","listPage","filter","params","listGroups","pageQuery","getGroup","createOrUpdateGroup","updateGroup","createGroup","deleteGroup","listGroupMembers","groupId","addGroupMember","removeGroupMember","userId","updateGroupMemberRole","role","listOperationLogs","listProjects","parameters","getProjectById","createOrUpdateProject","request","updateProject","createProject","testConnection","groupProjectBase","deleteProjectById","listUsers","enableUser","disableUser","getByUserId","createUser","renewPassword","addSysOwnerTo","removeSysOwnerFrom","updatePassword","updateNickname","listFavorites","removeFavorite","projectId","addFavorite","_createElementVNode","_createBlock","_component_el_tabs","_createVNode","_component_el_tab_pane","label","_component_el_row","gutter","_component_el_col","span","_component_el_tooltip","content","placement","_component_el_button","type","style","icon","onClick","$options","$data","_component_el_input","onChange","nameContains","$event","placeholder","databaseNameContains","_component_el_select","onClear","databaseType","clearable","_createElementBlock","_Fragment","_renderList","item","_component_el_option","key","value","_component_el_table","data","border","_component_el_table_column","prop","fixed","resizable","scope","_component_el_link","underline","row","isFavorite","_component_el_icon","_component_star_filled","_toDisplayString","name","width","_component_database_icon","align","isAutoSync","_component_el_tag","autoSyncCron","_hoisted_2","_component_el_dropdown","dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","size","_component_arrow_down","_component_el_pagination","layout","currentPage","number","totalPages","onCurrentChange","_component_el_dialog","center","_component_el_form","model","rules","ref","_hoisted_10","_component_el_form_item","description","_hoisted_11","dataSource","username","password","_ctx","url","databaseName","properties","index","trim","length","isTest","plain","circle","buttonType","success","_component_check","_component_close","loading","message","_hoisted_16","_component_el_space","wrap","_component_el_switch","projectSyncRule","ignoreTableNameRegexes","offset","ignoreColumnNameRegexes","_component_el_divider","_component_el_drawer","title","isSuccess","_hoisted_25","_hoisted_27","_hoisted_29","_hoisted_30","operationResponse","errMessage","nicknameOrUsernameOrEmailContains","effect","nickname","direction","_component_el_affix","position","target","onSizeChange","enabled","_hoisted_35","_hoisted_37","_hoisted_39","_hoisted_41","isShowProjectEditDialog","isShowAddGroupMemberDrawer","isShowProjectOperationLogDrawer","projectPageData","totalElements","projectFilter","page","groupMemberPageData","groupMemberFilter","userPageQuery","userPageData","projectForm","projectFormRules","required","trigger","testConnectionState","projectOperationLogPageData","projectOperationLogPageQuery","involveProjectId","module","databaseTypes","roleTypes","mounted","then","resp","this","created","$route","$watch","deep","fetchGroupProjects","fetchGroupMembers","methods","formatRoleName","jsonData","onGroupRoleFilterClear","onGroupMemberQuery","onGroupMemberCurrentPageChange","onGroupMemberRemove","$confirm","confirmButtonText","cancelButtonText","errCode","$message","u","forEach","idx","inGroupIds","indexOf","splice","onGroupMemberRoleUpdate","user","roleDesc","isInGroup","some","fetchUsers","onClickShowAddGroupMemberDrawer","onGroupMemberAdd","push","onUserPageSizeChange","currentSize","onProjectDatabaseTypeClear","onProjectQuery","onProjectListCurrentPageChange","onProjectDelete","ElMessage","showClose","duration","onAddProjectFavorite","project","onRemoveProjectFavorite","toEditProject","toCreateProject","toDocumentPage","$router","path","query","projectName","fetchProjectOperationLogs","onProjectOperationLogCurrentPageChange","toProjectOperationLogDrawer","onProjectFormSave","$refs","projectFormRulesRef","validate","valid","error","onProjectFormCancel","addDataSourceProperty","removeDataSourceProperty","addIgnoreTableName","removeIgnoreTableName","addIgnoreColumnName","removeIgnoreColumnName","onTestConnection","catch","err","console","log","finally","__exports__","render"],"sourceRoot":""}