Commit a9f41329 by inrgihc

优化交互使用问题

parent 348a78b6
docs/images/005.PNG

68.7 KB | W: | H:

docs/images/005.PNG

76.1 KB | W: | H:

docs/images/005.PNG
docs/images/005.PNG
docs/images/005.PNG
docs/images/005.PNG
  • 2-up
  • Swipe
  • Onion skin
......@@ -25,12 +25,17 @@ public class ParamValue extends BaseParam {
@ApiModelProperty("Object类型的子元素及值")
private List<BaseParamValue> children;
@ApiModelProperty("参数值")
@ApiModelProperty("非数组参数值")
private String value;
@ApiModelProperty("数组参数值")
private List<String> arrayValues;
@Data
public static class BaseParamValue extends BaseParam {
private String value;
private List<String> arrayValues;
}
}
......@@ -21,6 +21,7 @@ import java.security.CodeSource;
import java.security.ProtectionDomain;
import java.util.Enumeration;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
......@@ -39,7 +40,8 @@ public final class PomVersionUtils {
private static final Map<String, String> persistCache = new ConcurrentHashMap<>();
public static String getCachedProjectVersion() {
return persistCache.computeIfAbsent(PREFIX, key -> getProjectVersion());
String versionStr = persistCache.computeIfAbsent(PREFIX, key -> getProjectVersion());
return Optional.ofNullable(versionStr).orElse("1.0.0");
}
private static String getProjectVersion() {
......
......@@ -12,7 +12,6 @@ package com.gitee.sqlrest.core.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gitee.sqlrest.common.enums.ExecuteEngineEnum;
import com.gitee.sqlrest.common.enums.HttpMethodEnum;
import com.gitee.sqlrest.common.enums.OnOffEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.sql.Timestamp;
......@@ -30,6 +29,18 @@ public class ApiAssignmentBaseResponse {
@ApiModelProperty("API配置名称")
private String name;
@ApiModelProperty("模块ID")
private Long moduleId;
@ApiModelProperty("模块名称")
private String moduleName;
@ApiModelProperty("授权分组ID")
private Long groupId;
@ApiModelProperty("授权分组名称")
private String groupName;
@ApiModelProperty("API请求方法:GET, HEAD, PUT, POST, DELETE")
private HttpMethodEnum method;
......
package com.gitee.sqlrest.core.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("模块接口树")
public class ApiModuleAssignments extends EntityIdNameResponse {
@ApiModelProperty("接口列表")
private List<SelectedEntityIdName> children;
}
package com.gitee.sqlrest.core.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@ApiModel("客户端应用列表搜索")
public class AppClientSearchRequest extends EntitySearchRequest {
@ApiModelProperty("分组ID")
private Long groupId;
}
package com.gitee.sqlrest.core.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SelectedEntityIdName {
@ApiModelProperty("ID编号")
private Long id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("是否选中")
private Boolean selected;
}
......@@ -10,6 +10,7 @@
package com.gitee.sqlrest.core.filter;
import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.thread.ExecutorBuilder;
import cn.hutool.json.JSONUtil;
import com.gitee.sqlrest.common.consts.Constants;
import com.gitee.sqlrest.common.dto.ResultEntity;
......@@ -32,6 +33,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import javax.annotation.Resource;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
......@@ -50,6 +52,11 @@ import org.springframework.stereotype.Component;
@Component
public class AuthenticationFilter implements Filter {
private static final ExecutorService alarmExecutor = ExecutorBuilder.create()
.setCorePoolSize(Runtime.getRuntime().availableProcessors())
.useArrayBlockingQueue(4096)
.build();
@Resource
private ApiAssignmentDao apiAssignmentDao;
@Resource
......@@ -150,7 +157,8 @@ public class AuthenticationFilter implements Filter {
final long accessTime = accessRecordEntity.getDuration();
final int httpStatus = response.getStatus();
accessRecordEntity.setDuration(System.currentTimeMillis() - accessRecordEntity.getDuration());
CompletableFuture.runAsync(() -> finishRecord(apiConfigEntity, accessRecordEntity, httpStatus, accessTime));
CompletableFuture
.runAsync(() -> finishRecord(apiConfigEntity, accessRecordEntity, httpStatus, accessTime), alarmExecutor);
}
}
......
......@@ -53,6 +53,9 @@ public class ApiGroupService {
@Transactional(rollbackFor = Exception.class)
public void deleteGroup(Long id) {
if (id.equals(1L)) {
throw new CommonException(ResponseErrorCode.ERROR_INVALID_ARGUMENT, "forbid delete group which id is 1");
}
if (apiAssignmentDao.existsGroupById(id)) {
throw new CommonException(ResponseErrorCode.ERROR_RESOURCE_ALREADY_USED, "used by api config");
}
......
......@@ -12,11 +12,18 @@ package com.gitee.sqlrest.core.service;
import com.gitee.sqlrest.common.dto.PageResult;
import com.gitee.sqlrest.common.exception.CommonException;
import com.gitee.sqlrest.common.exception.ResponseErrorCode;
import com.gitee.sqlrest.core.dto.ApiModuleAssignments;
import com.gitee.sqlrest.core.dto.EntitySearchRequest;
import com.gitee.sqlrest.core.dto.SelectedEntityIdName;
import com.gitee.sqlrest.persistence.dao.ApiAssignmentDao;
import com.gitee.sqlrest.persistence.dao.ApiModuleDao;
import com.gitee.sqlrest.persistence.entity.ApiModuleEntity;
import com.gitee.sqlrest.persistence.entity.ModuleAssignmentEntity;
import com.gitee.sqlrest.persistence.util.PageUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
......@@ -63,4 +70,27 @@ public class ApiModuleService {
request.getSize()
);
}
public List<ApiModuleAssignments> moduleTree(Long groupId) {
Map<Long, List<ModuleAssignmentEntity>> moduleIdListMap = apiAssignmentDao.getModuleAssignments()
.stream().collect(Collectors.groupingBy(ModuleAssignmentEntity::getModuleId));
List<ApiModuleAssignments> results = new ArrayList<>(moduleIdListMap.size());
for (Map.Entry<Long, List<ModuleAssignmentEntity>> entry : moduleIdListMap.entrySet()) {
ModuleAssignmentEntity first = entry.getValue().get(0);
ApiModuleAssignments module = new ApiModuleAssignments();
module.setId(first.getModuleId());
module.setName(first.getModuleName());
module.setChildren(
entry.getValue().stream()
.map(one ->
SelectedEntityIdName.builder()
.id(one.getAssigmentId())
.name(String.format("[%d]%s", one.getAssigmentId(), one.getAssigmentName()))
.selected(one.getGroupId().equals(groupId))
.build())
.collect(Collectors.toList()));
results.add(module);
}
return results;
}
}
......@@ -15,7 +15,6 @@ import com.gitee.sqlrest.cache.CacheFactory;
import com.gitee.sqlrest.common.consts.Constants;
import com.gitee.sqlrest.common.dto.AccessToken;
import com.gitee.sqlrest.common.dto.PageResult;
import com.gitee.sqlrest.common.enums.AliveTimeEnum;
import com.gitee.sqlrest.common.enums.DurationTimeEnum;
import com.gitee.sqlrest.common.enums.ExpireTimeEnum;
import com.gitee.sqlrest.common.exception.CommonException;
......@@ -24,8 +23,8 @@ import com.gitee.sqlrest.common.util.TokenUtils;
import com.gitee.sqlrest.core.dto.AppClientDetailResponse;
import com.gitee.sqlrest.core.dto.AppClientGroupRequest;
import com.gitee.sqlrest.core.dto.AppClientSaveRequest;
import com.gitee.sqlrest.core.dto.AppClientSearchRequest;
import com.gitee.sqlrest.core.dto.EntityIdNameResponse;
import com.gitee.sqlrest.core.dto.EntitySearchRequest;
import com.gitee.sqlrest.persistence.dao.AppClientDao;
import com.gitee.sqlrest.persistence.entity.AppClientEntity;
import com.gitee.sqlrest.persistence.util.PageUtils;
......@@ -83,9 +82,9 @@ public class AppClientService {
}
}
public PageResult<AppClientDetailResponse> searchList(EntitySearchRequest request) {
public PageResult<AppClientDetailResponse> searchList(AppClientSearchRequest request) {
Supplier<List<AppClientDetailResponse>> method = () -> {
List<AppClientEntity> list = appClientDao.listAll(request.getSearchText());
List<AppClientEntity> list = appClientDao.listAll(request.getSearchText(), request.getGroupId());
return list.stream().map(appClientEntity -> {
AppClientDetailResponse response = new AppClientDetailResponse();
BeanUtil.copyProperties(appClientEntity, response);
......
......@@ -58,7 +58,7 @@ public class OverviewService {
public PageResult<ApiAccessLogBasicResponse> pageByApiId(Long apiId, Integer page, Integer size) {
Map<String, String> map = SpringUtil.getBean(AppClientDao.class)
.listAll(null).stream()
.listAll().stream()
.collect(
Collectors.toMap(
AppClientEntity::getAppKey,
......
......@@ -42,7 +42,7 @@ public class ClientTokenService {
public void init() {
long currentTimestamp = getCurrentTimestamp();
try {
for (AppClientEntity appClient : appClientDao.listAll(null)) {
for (AppClientEntity appClient : appClientDao.listAll()) {
appClient.setAppSecret("******");
if (StringUtils.isNotBlank(appClient.getAccessToken())) {
AccessToken clientToken = AccessToken.builder()
......
......@@ -187,6 +187,9 @@ export default {
for (let sql of this.tabSqls) {
this.addTab(sql)
}
if (this.editableTabs.length === 0) {
this.addTab("")
}
},
setTableHints: function (newVal) {
this.cmOptions.hintOptions.tables = newVal
......
......@@ -2,6 +2,8 @@
<div class="user-dropdown-wrap">
<el-dropdown>
<div class="user-dropdown-photo">
当前版本号:
<el-tag size="medium">{{ version }}</el-tag>
<span class="user-dropdown-text">
{{ nickname }}({{username}})
<i class="el-icon-caret-bottom"></i>
......@@ -30,12 +32,14 @@ export default {
data () {
return {
username: "",
nickname: ""
nickname: "",
version: "1.0.0"
};
},
created () {
this.username = window.sessionStorage.getItem("username");
this.nickname = window.sessionStorage.getItem("realname");
this.version = window.sessionStorage.getItem("version");
},
methods: {
hadleLogout () {
......
......@@ -580,19 +580,6 @@
:with-header="true">
<el-card>
<el-row>
<el-col>
<div style="float: right; padding: 0px">
<el-button type="primary"
size="mini"
icon="el-icon-arrow-down"
v-if="!isOnlyShowDetail"
@click="handleAddDebugParams">
添加入参
</el-button>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-table :data="debugParams"
:header-cell-style="{background:'#eef1f6',color:'#606266'}"
......@@ -605,6 +592,7 @@
min-width="35%">
<template slot-scope="scope">
<el-input v-model="scope.row.name"
:disabled="true"
type="string"> </el-input>
</template>
</el-table-column>
......@@ -621,27 +609,17 @@
</template>
</el-table-column>
<el-table-column label="数组"
min-width="25%">
min-width="10%">
<template slot-scope="scope">
<el-select v-model="scope.row.isArray"
:disabled="true">
<el-option label='是'
:value=true></el-option>
<el-option label='否'
:value=false></el-option>
</el-select>
<el-checkbox v-model="scope.row.isArray"
:disabled="true"></el-checkbox>
</template>
</el-table-column>
<el-table-column label="必填"
min-width="25%">
min-width="10%">
<template slot-scope="scope">
<el-select v-model="scope.row.required"
:disabled="true">
<el-option label='是'
:value=true></el-option>
<el-option label='否'
:value=false></el-option>
</el-select>
<el-checkbox v-model="scope.row.required"
:disabled="true"></el-checkbox>
</template>
</el-table-column>
<el-table-column label="描述"
......@@ -653,16 +631,37 @@
</template>
</el-table-column>
<el-table-column label="值"
min-width="25%">
min-width="50%">
<template slot-scope="scope">
<el-input v-model="scope.row.value"
:disabled="scope.row.type=='OBJECT'"
type="string"></el-input>
<div v-if="scope.row.isArray">
<el-row v-if="scope.row.type=='OBJECT'">
<el-input v-model="scope.row.value"
:disabled="true"
type="string"></el-input>
</el-row>
<el-row v-else
:gutter="24">
<div style="display: inline-flex;justify-content: center;"
v-for="(arrayItemValue,arrayItemIndex) in scope.row.arrayValues"
:key="arrayItemIndex">
<el-col :span="4"><button @click="delArrayValuesItem(scope.row.arrayValues,arrayItemIndex)">-</button></el-col>
<el-col :span="16"><el-input v-model="scope.row.arrayValues[arrayItemIndex]"
:disabled="scope.row.type=='OBJECT'"
type="string"></el-input></el-col>
</div>
<el-col :span="4"><button @click="addArrayValuesItem(scope.row)">+</button></el-col>
</el-row>
</div>
<div v-else>
<el-input v-model="scope.row.value"
:disabled="scope.row.type=='OBJECT'"
type="string"></el-input>
</div>
</template>
</el-table-column>
<el-table-column label="操作"
v-if="!isOnlyShowDetail"
min-width="25%">
min-width="15%">
<template slot-scope="scope">
<el-link icon="el-icon-delete"
@click="deleteDebugParamsItem(scope.$index)"></el-link>
......@@ -673,12 +672,17 @@
</el-row>
<el-row>
<el-col>
<el-tooltip effect="dark"
content="暂不支持对象数组的入参调试功能,但接口支持对象数组入参"
placement="bottom">
<i class='el-icon-question' />
</el-tooltip>
<div style="float: right; padding: 25px">
<el-button type="primary"
size="mini"
icon="el-icon-arrow-left"
@click="handleExecuteDebug">
执行
执行调试
</el-button>
</div>
</el-col>
......@@ -1606,6 +1610,13 @@ export default {
} else {
this.debugParams = []
this.inputParams.forEach(item => {
if (item.children && item.children.length > 0) {
for (let it of item.children) {
if (!it.arrayValues) {
Vue.set(it, 'arrayValues', []);
}
}
}
this.debugParams.push(
{
id: item.id,
......@@ -1616,6 +1627,7 @@ export default {
defaultValue: item.defaultValue,
remark: item.remark,
value: null,
arrayValues: [],
children: item.children
},
)
......@@ -1623,23 +1635,15 @@ export default {
this.showDebugDrawer = true
}
},
handleAddDebugParams: function () {
this.debugParams.push(
{
id: this.uuid(),
name: '',
type: 'LONG',
isArray: true,
required: true,
defaultValue: '',
remark: null,
value: null,
},
)
},
deleteDebugParamsItem: function (index) {
this.debugParams.splice(index, 1);
},
addArrayValuesItem: function (row) {
row.arrayValues.push('');
},
delArrayValuesItem: function (array, index) {
array.splice(index, 1);
},
handleExecuteDebug: function () {
var sqls = []
if (this.createParam.engine === 'SQL') {
......@@ -1856,6 +1860,10 @@ export default {
display: flex;
flex-direction: row;
}
/deep/.el-table .cell .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
background-color: #1464dd;
border-color: #f4f5f8;
}
.debug-console-log-text {
white-space: pre-line;
}
......
......@@ -103,7 +103,15 @@
<el-table-column prop="path"
label="接口路径"
show-overflow-tooltip
min-width="20%"></el-table-column>
min-width="15%"></el-table-column>
<el-table-column prop="moduleName"
label="模块"
show-overflow-tooltip
min-width="10%"></el-table-column>
<el-table-column prop="groupName"
label="授权分组"
show-overflow-tooltip
min-width="10%"></el-table-column>
<el-table-column label="引擎"
min-width="10%">
<template slot-scope="scope">
......
......@@ -89,6 +89,15 @@ export default {
window.sessionStorage.setItem('token', res.data.data.accessToken);
window.sessionStorage.setItem('username', this.ruleForm2.username);
window.sessionStorage.setItem('realname', res.data.data.realName);
this.$http.get("/sqlrest/manager/api/v1/health/version").then(
res => {
if (0 === res.data.code) {
window.sessionStorage.setItem('version', res.data.data);
}
}
);
this.$router.push({
path: '/dashboard'
});
......
......@@ -4,6 +4,17 @@
<div class="client-list-top">
<div class="left-search-input-group">
<div class="left-search-input">
<el-select v-model="groupId"
size="mini"
@change="searchByKeyword"
:clearable="true"
style="width:200px"
placeholder="选择授权分组">
<el-option v-for="(item,index) in groups"
:key="index"
:label="item.name"
:value="item.id"></el-option>
</el-select>
<el-input placeholder="请输入名称关键字搜索"
size="mini"
v-model="keyword"
......@@ -234,6 +245,7 @@ export default {
data () {
return {
loading: true,
groupId: null,
keyword: null,
lists: [],
currentPage: 1,
......@@ -296,6 +308,7 @@ export default {
},
url: "/sqlrest/manager/api/v1/client/list",
data: JSON.stringify({
groupId: this.groupId,
searchText: this.keyword,
page: this.currentPage,
size: this.pageSize
......@@ -472,6 +485,7 @@ export default {
},
created () {
this.loadData();
this.loadAllGroups();
}
};
</script>
......@@ -500,7 +514,7 @@ export default {
justify-content: space-between;
}
.left-search-input {
width: 300px;
width: 80%;
margin-right: auto;
margin: 10px 5px;
}
......
......@@ -44,12 +44,18 @@
<template slot-scope="scope">
<el-button-group>
<el-button size="small"
type="danger"
icon="el-icon-document"
@click="handleRelation(scope.$index, scope.row)"
round>关联</el-button>
<el-button size="small"
type="warning"
icon="el-icon-edit"
@click="handleUpdate(scope.$index, scope.row)"
round>编辑</el-button>
<el-button size="small"
type="success"
v-if="scope.row.id!==1"
icon="el-icon-delete"
@click="handleDelete(scope.$index, scope.row)"
round>删除</el-button>
......@@ -119,12 +125,40 @@
@click="handleSave">确 定</el-button>
</div>
</el-dialog>
<el-dialog title="修改关联信息"
:visible.sync="relationFormVisible"
:showClose="false"
:before-close="handleClose">
<el-alert title="取消勾选后执行修改操作时,被取消勾选项将被修改关联到id=1的“默认分组”中."
type="warning"
show-icon>
</el-alert>
<el-tree :data="moduleAssignments"
:show-checkbox="true"
ref="relationTree"
node-key="id"
:default-checked-keys="initCheckedKeys"
highlight-current
:props="defaultProps">
</el-tree>
<div slot="footer"
class="dialog-footer">
<el-button type="primary"
@click="relationFormVisible = false">关 闭</el-button>
<el-button type="danger"
v-if="currentGroupId!==1"
@click="handleRelationSave">修 改</el-button>
</div>
</el-dialog>
</el-card>
</div>
</template>
<script>
import qs from "qs";
import Vue from "vue";
export default {
name: "group",
......@@ -157,10 +191,31 @@ export default {
]
},
createFormVisible: false,
updateFormVisible: false
updateFormVisible: false,
relationFormVisible: false,
moduleAssignments: [],
initCheckedKeys: [],
currentGroupId: 0,
defaultProps: {
children: 'children',
label: 'name'
}
}
},
methods: {
uuid: function () {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
},
loadData: function () {
this.$http({
method: "POST",
......@@ -237,6 +292,48 @@ export default {
}
});
},
handleRelation: function (index, row) {
this.moduleAssignments = [];
this.$http.get(
"/sqlrest/manager/api/v1/module/moduleTree/" + row.id
).then(res => {
if (0 === res.data.code) {
this.initCheckedKeys = [];
this.currentGroupId = row.id;
this.moduleAssignments = res.data.data;
for (let item of this.moduleAssignments) {
Vue.set(item, 'id', this.uuid());
if (item.children) {
for (let one of item.children) {
//Vue.set(one, 'disabled', true);
if (one.selected) {
this.initCheckedKeys.push(one.id);
}
}
}
}
}
});
this.relationFormVisible = true;
},
handleRelationSave: function () {
let checkedKeys = this.$refs.relationTree.getCheckedKeys(true);
this.$http({
method: "POST",
headers: {
'Content-Type': 'application/json'
},
url: "/sqlrest/manager/api/v1/assignment/group/" + this.currentGroupId,
data: checkedKeys
}).then(res => {
if (0 === res.data.code) {
this.relationFormVisible = false;
this.$message("修改关联信息成功.");
} else {
alert("修改失败:" + res.data.message);
}
});
},
handleUpdate: function (index, row) {
this.updateform = JSON.parse(JSON.stringify(row));
this.updateFormVisible = true;
......
......@@ -25,6 +25,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
......@@ -131,6 +132,13 @@ public class ApiAssignmentController {
return apiAssignmentService.listAll(request);
}
@ApiOperation(value = "批量更新授权组")
@PostMapping(value = "/group/{groupId}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultEntity updateGroup(@PathVariable("groupId") Long groupId, @RequestBody List<Long> ids) {
apiAssignmentService.updateGroup(groupId, ids);
return ResultEntity.success();
}
@ApiOperation(value = "开放")
@PutMapping(value = "/open/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultEntity makeOpen(@PathVariable("id") Long id, @RequestParam("open") Boolean open) {
......
......@@ -12,16 +12,19 @@ package com.gitee.sqlrest.manager.controller;
import com.gitee.sqlrest.common.consts.Constants;
import com.gitee.sqlrest.common.dto.PageResult;
import com.gitee.sqlrest.common.dto.ResultEntity;
import com.gitee.sqlrest.core.dto.ApiModuleAssignments;
import com.gitee.sqlrest.core.dto.EntitySearchRequest;
import com.gitee.sqlrest.core.service.ApiModuleService;
import com.gitee.sqlrest.persistence.entity.ApiModuleEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import javax.annotation.Resource;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -64,4 +67,10 @@ public class ApiModuleController {
public PageResult<ApiModuleEntity> listAll(@RequestBody EntitySearchRequest request) {
return apiModuleService.listAll(request);
}
@ApiOperation(value = "模块接口树")
@GetMapping(value = "/moduleTree/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultEntity moduleTree(@PathVariable("id") Long groupId) {
return ResultEntity.success(apiModuleService.moduleTree(groupId));
}
}
......@@ -15,8 +15,8 @@ import com.gitee.sqlrest.common.dto.ResultEntity;
import com.gitee.sqlrest.core.dto.AppClientDetailResponse;
import com.gitee.sqlrest.core.dto.AppClientGroupRequest;
import com.gitee.sqlrest.core.dto.AppClientSaveRequest;
import com.gitee.sqlrest.core.dto.AppClientSearchRequest;
import com.gitee.sqlrest.core.dto.EntityIdNameResponse;
import com.gitee.sqlrest.core.dto.EntitySearchRequest;
import com.gitee.sqlrest.core.service.AppClientService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -56,7 +56,7 @@ public class AppClientController {
@ApiOperation(value = "客户端应用列表")
@PostMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
public PageResult<AppClientDetailResponse> searchList(@RequestBody EntitySearchRequest request) {
public PageResult<AppClientDetailResponse> searchList(@RequestBody AppClientSearchRequest request) {
return appClientService.searchList(request);
}
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>SQLREST工具</title><link href=/static/css/app.a0d428dcff1407fb55c58a847b2839b3.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.52df910f8eccdd2a9197.js></script><script type=text/javascript src=/static/js/vendor.a6ebeac16c85a178c5e7.js></script><script type=text/javascript src=/static/js/app.e892e4af016c82ce3f40.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>SQLREST工具</title><link href=/static/css/app.5726987273062328780d7103d770c730.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.1c71f09d3dc37e748c1c.js></script><script type=text/javascript src=/static/js/vendor.a6ebeac16c85a178c5e7.js></script><script type=text/javascript src=/static/js/app.2c1ec8f3a08d363c1c13.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([15],{"+sv1":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var c={data:function(){return{}},components:{common:n("u2+N").a},methods:{},created:function(){}},o={render:function(){var t=this.$createElement;return(this._self._c||t)("common",{attrs:{isOnlyShowDetail:!0}})},staticRenderFns:[]};var a=n("VU/8")(c,o,!1,function(t){n("Htdc")},"data-v-d65c96a6",null);e.default=a.exports},Htdc:function(t,e){}});
//# sourceMappingURL=15.d80f5cf2fd51d72b22ea.js.map
\ No newline at end of file
webpackJsonp([16],{"+sv1":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var c={data:function(){return{}},components:{common:n("u2+N").a},methods:{},created:function(){}},o={render:function(){var t=this.$createElement;return(this._self._c||t)("common",{attrs:{isOnlyShowDetail:!0}})},staticRenderFns:[]};var a=n("VU/8")(c,o,!1,function(t){n("Htdc")},"data-v-d65c96a6",null);e.default=a.exports},Htdc:function(t,e){}});
//# sourceMappingURL=16.9a6082d7311beb531ffe.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///src/views/interface/detail.vue","webpack:///./src/views/interface/detail.vue?d651","webpack:///./src/views/interface/detail.vue"],"names":["detail","data","components","common","methods","created","interface_detail","render","_h","this","$createElement","_self","_c","attrs","isOnlyShowDetail","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"4GAQAA,GACAC,KADA,WAEA,UAGAC,YAAAC,iBAAA,GACAC,WAEAC,QARA,cCLeC,GADEC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAAkD,OAA/DD,KAAuCE,MAAAC,IAAAJ,GAAwB,UAAoBK,OAAOC,kBAAA,MAEnGC,oBCCjB,IAcAC,EAdyBC,EAAQ,OAcjCC,CACElB,EACAM,GATF,EAVA,SAAAa,GACEF,EAAQ,SAaV,kBAEA,MAUeG,EAAA,QAAAJ,EAAiB","file":"static/js/15.d80f5cf2fd51d72b22ea.js","sourcesContent":["<template>\r\n <common :isOnlyShowDetail=\"true\">\r\n </common>\r\n</template>\r\n\r\n<script>\r\nimport common from '@/views/interface/common'\r\n\r\nexport default {\r\n data () {\r\n return {\r\n }\r\n },\r\n components: { common },\r\n methods: {\r\n },\r\n created () {\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\n\n\n// WEBPACK FOOTER //\n// src/views/interface/detail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('common',{attrs:{\"isOnlyShowDetail\":true}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-d65c96a6\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/interface/detail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-d65c96a6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./detail.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./detail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./detail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d65c96a6\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./detail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-d65c96a6\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/interface/detail.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///src/views/interface/detail.vue","webpack:///./src/views/interface/detail.vue?d651","webpack:///./src/views/interface/detail.vue"],"names":["detail","data","components","common","methods","created","interface_detail","render","_h","this","$createElement","_self","_c","attrs","isOnlyShowDetail","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"4GAQAA,GACAC,KADA,WAEA,UAGAC,YAAAC,iBAAA,GACAC,WAEAC,QARA,cCLeC,GADEC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAAkD,OAA/DD,KAAuCE,MAAAC,IAAAJ,GAAwB,UAAoBK,OAAOC,kBAAA,MAEnGC,oBCCjB,IAcAC,EAdyBC,EAAQ,OAcjCC,CACElB,EACAM,GATF,EAVA,SAAAa,GACEF,EAAQ,SAaV,kBAEA,MAUeG,EAAA,QAAAJ,EAAiB","file":"static/js/16.9a6082d7311beb531ffe.js","sourcesContent":["<template>\r\n <common :isOnlyShowDetail=\"true\">\r\n </common>\r\n</template>\r\n\r\n<script>\r\nimport common from '@/views/interface/common'\r\n\r\nexport default {\r\n data () {\r\n return {\r\n }\r\n },\r\n components: { common },\r\n methods: {\r\n },\r\n created () {\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\n\n\n// WEBPACK FOOTER //\n// src/views/interface/detail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('common',{attrs:{\"isOnlyShowDetail\":true}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-d65c96a6\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/interface/detail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-d65c96a6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./detail.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./detail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./detail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d65c96a6\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./detail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-d65c96a6\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/interface/detail.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
\ No newline at end of file
webpackJsonp([16],{"7dhh":function(e,t){},DuIM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o={data:function(){return{}},components:{common:n("u2+N").a},methods:{},created:function(){}},c={render:function(){var e=this.$createElement;return(this._self._c||e)("common",{attrs:{isOnlyShowDetail:!1}})},staticRenderFns:[]};var r=n("VU/8")(o,c,!1,function(e){n("7dhh")},"data-v-be8f54dc",null);t.default=r.exports}});
//# sourceMappingURL=16.2ca69ffb53da98b61da4.js.map
\ No newline at end of file
webpackJsonp([17],{"7dhh":function(e,t){},DuIM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o={data:function(){return{}},components:{common:n("u2+N").a},methods:{},created:function(){}},c={render:function(){var e=this.$createElement;return(this._self._c||e)("common",{attrs:{isOnlyShowDetail:!1}})},staticRenderFns:[]};var r=n("VU/8")(o,c,!1,function(e){n("7dhh")},"data-v-be8f54dc",null);t.default=r.exports}});
//# sourceMappingURL=17.ca3a537c0792f7b8e00f.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///src/views/interface/update.vue","webpack:///./src/views/interface/update.vue?acfa","webpack:///./src/views/interface/update.vue"],"names":["update","data","components","common","methods","created","interface_update","render","_h","this","$createElement","_self","_c","attrs","isOnlyShowDetail","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"iIAQAA,GACAC,KADA,WAEA,UAGAC,YAAAC,iBAAA,GACAC,WAEAC,QARA,cCLeC,GADEC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAAkD,OAA/DD,KAAuCE,MAAAC,IAAAJ,GAAwB,UAAoBK,OAAOC,kBAAA,MAEnGC,oBCCjB,IAcAC,EAdyBC,EAAQ,OAcjCC,CACElB,EACAM,GATF,EAVA,SAAAa,GACEF,EAAQ,SAaV,kBAEA,MAUeG,EAAA,QAAAJ,EAAiB","file":"static/js/16.2ca69ffb53da98b61da4.js","sourcesContent":["<template>\r\n <common :isOnlyShowDetail=\"false\">\r\n </common>\r\n</template>\r\n\r\n<script>\r\nimport common from '@/views/interface/common'\r\n\r\nexport default {\r\n data () {\r\n return {\r\n }\r\n },\r\n components: { common },\r\n methods: {\r\n },\r\n created () {\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\n\n\n// WEBPACK FOOTER //\n// src/views/interface/update.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('common',{attrs:{\"isOnlyShowDetail\":false}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-be8f54dc\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/interface/update.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-be8f54dc\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./update.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./update.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./update.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-be8f54dc\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./update.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-be8f54dc\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/interface/update.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///src/views/interface/update.vue","webpack:///./src/views/interface/update.vue?acfa","webpack:///./src/views/interface/update.vue"],"names":["update","data","components","common","methods","created","interface_update","render","_h","this","$createElement","_self","_c","attrs","isOnlyShowDetail","staticRenderFns","Component","__webpack_require__","normalizeComponent","ssrContext","__webpack_exports__"],"mappings":"iIAQAA,GACAC,KADA,WAEA,UAGAC,YAAAC,iBAAA,GACAC,WAEAC,QARA,cCLeC,GADEC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAAkD,OAA/DD,KAAuCE,MAAAC,IAAAJ,GAAwB,UAAoBK,OAAOC,kBAAA,MAEnGC,oBCCjB,IAcAC,EAdyBC,EAAQ,OAcjCC,CACElB,EACAM,GATF,EAVA,SAAAa,GACEF,EAAQ,SAaV,kBAEA,MAUeG,EAAA,QAAAJ,EAAiB","file":"static/js/17.ca3a537c0792f7b8e00f.js","sourcesContent":["<template>\r\n <common :isOnlyShowDetail=\"false\">\r\n </common>\r\n</template>\r\n\r\n<script>\r\nimport common from '@/views/interface/common'\r\n\r\nexport default {\r\n data () {\r\n return {\r\n }\r\n },\r\n components: { common },\r\n methods: {\r\n },\r\n created () {\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\n\n\n// WEBPACK FOOTER //\n// src/views/interface/update.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('common',{attrs:{\"isOnlyShowDetail\":false}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-be8f54dc\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/interface/update.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-be8f54dc\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./update.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./update.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./update.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-be8f54dc\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./update.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-be8f54dc\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/interface/update.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}
\ No newline at end of file
webpackJsonp([19],{Lgzm:function(e,t){},"T+/8":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});r("mw3O");var a={data:function(){return{logining:!1,ruleForm2:{username:"",password:""},rules2:{username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]},checked:!1}},created:function(){var e=this;document.onkeydown=function(t){13==window.event.keyCode&&e.handleSubmit(t)}},methods:{handleSubmit:function(){var e=this;this.$refs.ruleForm2.validate(function(t){t&&e.$http({method:"POST",url:"/user/login",data:{username:e.ruleForm2.username,password:e.ruleForm2.password}}).then(function(t){0===t.data.code?(e.logining=!0,window.sessionStorage.setItem("token",t.data.data.accessToken),window.sessionStorage.setItem("username",e.ruleForm2.username),window.sessionStorage.setItem("realname",t.data.data.realName),e.$http.get("/sqlrest/manager/api/v1/health/version").then(function(e){0===e.data.code&&window.sessionStorage.setItem("version",e.data.data)}),e.$router.push({path:"/dashboard"})):(e.logining=!1,e.$message(t.data.message))})})}}},s={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"login-container"},[r("el-form",{ref:"ruleForm2",staticClass:"demo-ruleForm login-page",attrs:{model:e.ruleForm2,rules:e.rules2,"status-icon":"","label-position":"left","label-width":"0px"}},[r("h3",{staticClass:"title",attrs:{align:"center"}},[e._v("系统登录")]),e._v(" "),r("el-form-item",{attrs:{prop:"username"}},[r("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"用户名"},model:{value:e.ruleForm2.username,callback:function(t){e.$set(e.ruleForm2,"username",t)},expression:"ruleForm2.username"}})],1),e._v(" "),r("el-form-item",{attrs:{prop:"password"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},model:{value:e.ruleForm2.password,callback:function(t){e.$set(e.ruleForm2,"password",t)},expression:"ruleForm2.password"}})],1),e._v(" "),r("el-form-item",{staticStyle:{width:"100%"}},[r("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary",loading:e.logining},on:{click:e.handleSubmit,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleSubmit(t)}}},[e._v("登录")])],1)],1)],1)},staticRenderFns:[]};var o=r("VU/8")(a,s,!1,function(e){r("Lgzm")},"data-v-7564e1a8",null);t.default=o.exports}});
//# sourceMappingURL=19.492e3884353940300fa9.js.map
\ No newline at end of file
webpackJsonp([2],{"4er+":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a={name:"asideBarItem",props:{router:{type:Object}},components:{},data:function(){return{}},computed:{},watch:{},methods:{hasChildrenAndShow:function(t){return!t.hidden&&t.hasOwnProperty("children")},saveActivePath:function(t){this.$emit("setActivePath",t)}},created:function(){},mounted:function(){}},r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"asideBarItem-container"},[t.hasChildrenAndShow(t.router)?n("el-submenu",{attrs:{index:t.router.path}},[n("template",{slot:"title"},[n("i",{class:t.router.icon}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v(t._s(t.router.name))])]),t._v(" "),t._l(t.router.children,function(t,e){return n("asideBarItem",{key:t.path,attrs:{router:t}})})],2):n("el-menu-item",{key:t.router.path,attrs:{index:t.router.path},on:{click:function(e){return t.saveActivePath(t.router.path)}}},[n("i",{class:t.router.icon}),t._v(" "),n("span",[t._v(t._s(t.router.name))])])],1)},staticRenderFns:[]};var i={name:"asideBar",components:{asideBarItem:n("VU/8")(a,r,!1,function(t){n("ASLc")},"data-v-645f620a",null).exports},data:function(){return{collapsed:!1,initActivePath:"/dashboard"}},computed:{routers:function(){return this.$router.options.routes[0].children}},watch:{},methods:{showBarItem:function(t){return!t.hidden},handleOpen:function(t,e){},handleClose:function(t,e){},updateCollapse:function(t){this.collapsed=t},setActivePath:function(t){this.initActivePath=t,window.sessionStorage.setItem("activePath",t)},getActivePath:function(){return window.sessionStorage.getItem("activePath")}},created:function(){this.initActivePath=this.getActivePath()},mounted:function(){}},s={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"aside-container"},[n("el-row",{staticClass:"tac"},[n("el-col",{attrs:{span:24}},[n("el-menu",{attrs:{router:!0,"unique-opened":"","background-color":"#001529","text-color":"rgb(191, 203, 217)","active-text-color":"#ffffff",collapse:t.collapsed,"default-active":t.initActivePath},on:{open:t.handleOpen,close:t.handleClose}},t._l(t.routers,function(e){return t.showBarItem(e)?n("asideBarItem",{key:e.path,attrs:{router:e},on:{setActivePath:t.setActivePath}}):t._e()}),1)],1)],1)],1)},staticRenderFns:[]};var o={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{"separator-class":"el-icon-arrow-right"}},[n("transition-group",t._l(t.levelList,function(e,a){return e.name?n("el-breadcrumb-item",{key:e.path},["noredirect"===e.redirect||a==t.levelList.length-1?n("span",{staticClass:"no-redirect"},[t._v(t._s(e.name))]):n("router-link",{attrs:{to:e.redirect||e.path}},[t._v(t._s(e.name))])],1):t._e()}),1)],1)},staticRenderFns:[]};var c={data:function(){return{username:"",nickname:""}},created:function(){this.username=window.sessionStorage.getItem("username"),this.nickname=window.sessionStorage.getItem("realname")},methods:{hadleLogout:function(){window.sessionStorage.clear(),this.$http({method:"GET",url:"/user/logout"}),this.$router.push("/login")}},destroyed:function(){window.sessionStorage.setItem("activePath","/")}},l={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"user-dropdown-wrap"},[a("el-dropdown",[a("div",{staticClass:"user-dropdown-photo"},[a("span",{staticClass:"user-dropdown-text"},[t._v("\n "+t._s(t.nickname)+"("+t._s(t.username)+")\n "),a("i",{staticClass:"el-icon-caret-bottom"})]),t._v(" "),a("img",{attrs:{src:n("BQ5I"),alt:"user"}})]),t._v(" "),a("el-dropdown-menu",{attrs:{solt:"dropdown"}},[a("el-dropdown-item",[a("router-link",{attrs:{to:"/user/self"}},[a("i",{staticClass:"el-icon-s-custom"}),t._v("个人信息\n ")])],1),t._v(" "),a("el-dropdown-item",{attrs:{divided:""}},[a("a",{on:{click:function(e){return t.hadleLogout()}}},[a("i",{staticClass:"el-icon-switch-button"}),t._v("退出登录\n ")])])],1)],1)],1)},staticRenderFns:[]};var u={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"viewer-container"},[e("router-view")],1)},staticRenderFns:[]};var d={name:"home",components:{asideBar:n("VU/8")(i,s,!1,function(t){n("GWYl")},"data-v-1dde93fa",null).exports,breadcrumb:n("VU/8")({name:"breadcrumb",data:function(){return{levelList:[]}},created:function(){this.getBreadcrumb()},watch:{$route:function(){this.getBreadcrumb()}},methods:{getBreadcrumb:function(){var t=this.$route.matched.filter(function(t){return t.name});this.levelList=t}}},o,!1,function(t){n("Yuwj")},"data-v-a2157ea2",null).exports,userDropdown:n("VU/8")(c,l,!1,function(t){n("8vZS")},"data-v-0a6f0f66",null).exports,viewMain:n("VU/8")({name:"viewer",components:{},data:function(){return{}},computed:{},watch:{},methods:{},created:function(){},mounted:function(){}},u,!1,function(t){n("mWqL")},"data-v-7b74460c",null).exports},data:function(){return{title:"SQLREST",isCollapse:null}},computed:{},watch:{},methods:{handleToggleCollapse:function(){var t=!this.isCollapse;this.isCollapse=t,this.$refs.asideBar.updateCollapse(t)}},created:function(){},mounted:function(){}},A={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-container",{staticClass:"index-container"},[a("el-aside",{attrs:{width:t.isCollapse?"64px":"250px"}},[a("div",{staticClass:"title"},[a("img",{attrs:{src:n("7Otq")}}),t._v(" "),t.isCollapse?t._e():a("span",{staticClass:"title-text"},[t._v(t._s(t.title))])]),t._v(" "),a("asideBar",{ref:"asideBar"})],1),t._v(" "),a("el-main",[a("el-header",[a("div",{staticClass:"collapse",on:{click:t.handleToggleCollapse}},[t.isCollapse?a("i",{staticClass:"el-icon-s-unfold"}):a("i",{staticClass:"el-icon-s-fold"})]),t._v(" "),a("breadcrumb"),t._v(" "),a("userDropdown")],1),t._v(" "),a("viewMain")],1)],1)},staticRenderFns:[]};var h=n("VU/8")(d,A,!1,function(t){n("z9t0")},"data-v-4972070e",null);e.default=h.exports},"7Otq":function(t,e,n){t.exports=n.p+"static/img/logo.a674d30.png"},"8vZS":function(t,e){},ASLc:function(t,e){},BQ5I:function(t,e){t.exports="data:image/jpeg;base64,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"},GWYl:function(t,e){},Yuwj:function(t,e){},mWqL:function(t,e){},z9t0:function(t,e){}});
//# sourceMappingURL=2.140338f6a5528feea1a3.js.map
\ No newline at end of file
webpackJsonp([21],{"T+/8":function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});r("mw3O");var a={data:function(){return{logining:!1,ruleForm2:{username:"",password:""},rules2:{username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]},checked:!1}},created:function(){var e=this;document.onkeydown=function(t){13==window.event.keyCode&&e.handleSubmit(t)}},methods:{handleSubmit:function(){var e=this;this.$refs.ruleForm2.validate(function(t){t&&e.$http({method:"POST",url:"/user/login",data:{username:e.ruleForm2.username,password:e.ruleForm2.password}}).then(function(t){0===t.data.code?(e.logining=!0,window.sessionStorage.setItem("token",t.data.data.accessToken),window.sessionStorage.setItem("username",e.ruleForm2.username),window.sessionStorage.setItem("realname",t.data.data.realName),e.$router.push({path:"/dashboard"})):(e.logining=!1,e.$message(t.data.message))})})}}},s={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"login-container"},[r("el-form",{ref:"ruleForm2",staticClass:"demo-ruleForm login-page",attrs:{model:e.ruleForm2,rules:e.rules2,"status-icon":"","label-position":"left","label-width":"0px"}},[r("h3",{staticClass:"title",attrs:{align:"center"}},[e._v("系统登录")]),e._v(" "),r("el-form-item",{attrs:{prop:"username"}},[r("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"用户名"},model:{value:e.ruleForm2.username,callback:function(t){e.$set(e.ruleForm2,"username",t)},expression:"ruleForm2.username"}})],1),e._v(" "),r("el-form-item",{attrs:{prop:"password"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},model:{value:e.ruleForm2.password,callback:function(t){e.$set(e.ruleForm2,"password",t)},expression:"ruleForm2.password"}})],1),e._v(" "),r("el-form-item",{staticStyle:{width:"100%"}},[r("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary",loading:e.logining},on:{click:e.handleSubmit,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleSubmit(t)}}},[e._v("登录")])],1)],1)],1)},staticRenderFns:[]};var o=r("VU/8")(a,s,!1,function(e){r("VdEY")},"data-v-1b5aac28",null);t.default=o.exports},VdEY:function(e,t){}});
//# sourceMappingURL=21.5952cc009e9eb6c25dfc.js.map
\ No newline at end of file
webpackJsonp([25],{cGhg:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a("BO1k"),i=a.n(r),n=a("mvHQ"),o=a.n(n),l=a("mw3O"),s=a.n(l),d=a("7+uW"),c={name:"group",components:{},data:function(){return{loading:!0,lists:[],tableData:[],currentPageNum:1,currentPageSize:10,totalItemCount:0,searchText:"",createform:{title:""},updateform:{id:0,title:""},rules:{name:[{required:!0,message:"名称不能为空",trigger:"blur"}]},createFormVisible:!1,updateFormVisible:!1,relationFormVisible:!1,moduleAssignments:[],initCheckedKeys:[],currentGroupId:0,defaultProps:{children:"children",label:"name"}}},methods:{uuid:function(){for(var e=[],t=0;t<36;t++)e[t]="0123456789abcdef".substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]="0123456789abcdef".substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var a=e.join("");return a},loadData:function(){var e=this;this.$http({method:"POST",headers:{"Content-Type":"application/json"},url:"/sqlrest/manager/api/v1/group/listAll",data:o()({page:this.currentPageNum,size:this.currentPageSize,searchText:this.searchText})}).then(function(t){0===t.data.code?(e.totalItemCount=t.data.pagination.total,e.tableData=t.data.data):alert("加载数据失败:"+t.data.message)})},handleClose:function(e){},handleDelete:function(e,t){var a=this;this.$confirm("此操作将此分组ID="+t.id+"删除么, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){a.$http.delete("/sqlrest/manager/api/v1/group/delete/"+t.id).then(function(e){0===e.data.code?a.loadData():alert("删除失败:"+e.data.message)})})},addGroup:function(){this.createFormVisible=!0,this.createform={}},handleCreate:function(){var e=this;this.$refs.createform.validate(function(t){t?e.$http({method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},url:"/sqlrest/manager/api/v1/group/create",data:s.a.stringify({name:e.createform.name})}).then(function(t){0===t.data.code?(e.createFormVisible=!1,e.$message("添加成功"),e.createform={},e.loadData()):alert("添加失败:"+t.data.message)}):alert("请检查输入")})},handleRelation:function(e,t){var a=this;this.moduleAssignments=[],this.$http.get("/sqlrest/manager/api/v1/module/moduleTree/"+t.id).then(function(e){if(0===e.data.code){a.initCheckedKeys=[],a.currentGroupId=t.id,a.moduleAssignments=e.data.data;var r=!0,n=!1,o=void 0;try{for(var l,s=i()(a.moduleAssignments);!(r=(l=s.next()).done);r=!0){var c=l.value;if(d.default.set(c,"id",a.uuid()),c.children){var u=!0,m=!1,h=void 0;try{for(var p,f=i()(c.children);!(u=(p=f.next()).done);u=!0){var v=p.value;v.selected&&a.initCheckedKeys.push(v.id)}}catch(e){m=!0,h=e}finally{try{!u&&f.return&&f.return()}finally{if(m)throw h}}}}}catch(e){n=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw o}}}}),this.relationFormVisible=!0},handleRelationSave:function(){var e=this,t=this.$refs.relationTree.getCheckedKeys(!0);this.$http({method:"POST",headers:{"Content-Type":"application/json"},url:"/sqlrest/manager/api/v1/assignment/group/"+this.currentGroupId,data:t}).then(function(t){0===t.data.code?(e.relationFormVisible=!1,e.$message("修改关联信息成功.")):alert("修改失败:"+t.data.message)})},handleUpdate:function(e,t){this.updateform=JSON.parse(o()(t)),this.updateFormVisible=!0},handleSave:function(){var e=this;this.$refs.updateform.validate(function(t){t?e.$http({method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},url:"/sqlrest/manager/api/v1/group/update/"+e.updateform.id,data:s.a.stringify({name:e.updateform.name})}).then(function(t){0===t.data.code?(e.updateFormVisible=!1,e.$message("修改成功"),e.loadData(),e.updateform={}):alert("修改失败:"+t.data.message)}):alert("请检查输入")})},handleSizeChange:function(e){this.currentPageSize=e,this.loadData()},handleCurrentChange:function(e){this.currentPageNum=e,this.loadData()},searchByKeyword:function(){this.currentPage=1,this.loadData()}},mounted:function(){this.loadData()}},u={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("el-card",[a("div",{staticClass:"group-list-top"},[a("div",{staticClass:"left-search-input-group"},[a("div",{staticClass:"left-search-input"},[a("el-input",{staticStyle:{width:"300px"},attrs:{placeholder:"请输入名称关键字搜索",size:"mini",clearable:!0},on:{change:e.searchByKeyword},model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}})],1)]),e._v(" "),a("div",{staticClass:"right-add-button-group"},[a("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-document-add"},on:{click:e.addGroup}},[e._v("添加")])],1)]),e._v(" "),a("el-table",{attrs:{"header-cell-style":{background:"#eef1f6",color:"#606266"},data:e.tableData,size:"small",border:""}},[a("el-table-column",{attrs:{prop:"id",label:"编号","min-width":"5%"}}),e._v(" "),a("el-table-column",{attrs:{prop:"name",label:"分组名称","show-overflow-tooltip":"","min-width":"20%"}}),e._v(" "),a("el-table-column",{attrs:{prop:"createTime",label:"创建时间","min-width":"20%"}}),e._v(" "),a("el-table-column",{attrs:{prop:"updateTime",label:"更新时间","show-overflow-tooltip":"","min-width":"20%"}}),e._v(" "),a("el-table-column",{attrs:{label:"操作","min-width":"35%"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-button-group",[a("el-button",{attrs:{size:"small",type:"danger",icon:"el-icon-document",round:""},on:{click:function(a){return e.handleRelation(t.$index,t.row)}}},[e._v("关联")]),e._v(" "),a("el-button",{attrs:{size:"small",type:"warning",icon:"el-icon-edit",round:""},on:{click:function(a){return e.handleUpdate(t.$index,t.row)}}},[e._v("编辑")]),e._v(" "),1!==t.row.id?a("el-button",{attrs:{size:"small",type:"success",icon:"el-icon-delete",round:""},on:{click:function(a){return e.handleDelete(t.$index,t.row)}}},[e._v("删除")]):e._e()],1)]}}])})],1),e._v(" "),a("div",{staticClass:"page",attrs:{align:"right"}},[a("el-pagination",{attrs:{"current-page":e.currentPageNum,"page-sizes":[5,10,20,40],"page-size":e.currentPageSize,layout:"total, sizes, prev, pager, next, jumper",total:e.totalItemCount},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),e._v(" "),a("el-dialog",{attrs:{title:"添加信息",visible:e.createFormVisible,showClose:!1,"before-close":e.handleClose},on:{"update:visible":function(t){e.createFormVisible=t}}},[a("el-form",{ref:"createform",attrs:{model:e.createform,size:"mini","status-icon":"",rules:e.rules}},[a("el-form-item",{staticStyle:{width:"85%"},attrs:{label:"分组名称","label-width":"120px",required:!0,prop:"name"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:e.createform.name,callback:function(t){e.$set(e.createform,"name",t)},expression:"createform.name"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.createFormVisible=!1}}},[e._v("取 消")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:e.handleCreate}},[e._v("确 定")])],1)],1),e._v(" "),a("el-dialog",{attrs:{title:"修改信息",visible:e.updateFormVisible,showClose:!1,"before-close":e.handleClose},on:{"update:visible":function(t){e.updateFormVisible=t}}},[a("el-form",{ref:"updateform",attrs:{model:e.updateform,size:"mini","status-icon":"",rules:e.rules}},[a("el-form-item",{staticStyle:{width:"85%"},attrs:{label:"分组名称","label-width":"120px",required:!0,prop:"name"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:e.updateform.name,callback:function(t){e.$set(e.updateform,"name",t)},expression:"updateform.name"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.updateFormVisible=!1}}},[e._v("取 消")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:e.handleSave}},[e._v("确 定")])],1)],1),e._v(" "),a("el-dialog",{attrs:{title:"修改关联信息",visible:e.relationFormVisible,showClose:!1,"before-close":e.handleClose},on:{"update:visible":function(t){e.relationFormVisible=t}}},[a("el-alert",{attrs:{title:"取消勾选后执行修改操作时,被取消勾选项将被修改关联到id=1的“默认分组”中.",type:"warning","show-icon":""}}),e._v(" "),a("el-tree",{ref:"relationTree",attrs:{data:e.moduleAssignments,"show-checkbox":!0,"node-key":"id","default-checked-keys":e.initCheckedKeys,"highlight-current":"",props:e.defaultProps}}),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:function(t){e.relationFormVisible=!1}}},[e._v("关 闭")]),e._v(" "),1!==e.currentGroupId?a("el-button",{attrs:{type:"danger"},on:{click:e.handleRelationSave}},[e._v("修 改")]):e._e()],1)],1)],1)],1)},staticRenderFns:[]};var m=a("VU/8")(c,u,!1,function(e){a("mg82")},"data-v-11582402",null);t.default=m.exports},mg82:function(e,t){}});
//# sourceMappingURL=25.b0986b0eaecd37184d01.js.map
\ No newline at end of file
webpackJsonp([25],{HvOu:function(e,t){},cGhg:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a("mvHQ"),o=a.n(r),i=a("mw3O"),n=a.n(i),l={name:"group",components:{},data:function(){return{loading:!0,lists:[],tableData:[],currentPageNum:1,currentPageSize:10,totalItemCount:0,searchText:"",createform:{title:""},updateform:{id:0,title:""},rules:{name:[{required:!0,message:"名称不能为空",trigger:"blur"}]},createFormVisible:!1,updateFormVisible:!1}},methods:{loadData:function(){var e=this;this.$http({method:"POST",headers:{"Content-Type":"application/json"},url:"/sqlrest/manager/api/v1/group/listAll",data:o()({page:this.currentPageNum,size:this.currentPageSize,searchText:this.searchText})}).then(function(t){0===t.data.code?(e.totalItemCount=t.data.pagination.total,e.tableData=t.data.data):alert("加载数据失败:"+t.data.message)})},handleClose:function(e){},handleDelete:function(e,t){var a=this;this.$confirm("此操作将此分组ID="+t.id+"删除么, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){a.$http.delete("/sqlrest/manager/api/v1/group/delete/"+t.id).then(function(e){0===e.data.code?a.loadData():alert("删除失败:"+e.data.message)})})},addGroup:function(){this.createFormVisible=!0,this.createform={}},handleCreate:function(){var e=this;this.$refs.createform.validate(function(t){t?e.$http({method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},url:"/sqlrest/manager/api/v1/group/create",data:n.a.stringify({name:e.createform.name})}).then(function(t){0===t.data.code?(e.createFormVisible=!1,e.$message("添加成功"),e.createform={},e.loadData()):alert("添加失败:"+t.data.message)}):alert("请检查输入")})},handleUpdate:function(e,t){this.updateform=JSON.parse(o()(t)),this.updateFormVisible=!0},handleSave:function(){var e=this;this.$refs.updateform.validate(function(t){t?e.$http({method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},url:"/sqlrest/manager/api/v1/group/update/"+e.updateform.id,data:n.a.stringify({name:e.updateform.name})}).then(function(t){0===t.data.code?(e.updateFormVisible=!1,e.$message("修改成功"),e.loadData(),e.updateform={}):alert("修改失败:"+t.data.message)}):alert("请检查输入")})},handleSizeChange:function(e){this.currentPageSize=e,this.loadData()},handleCurrentChange:function(e){this.currentPageNum=e,this.loadData()},searchByKeyword:function(){this.currentPage=1,this.loadData()}},mounted:function(){this.loadData()}},s={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("el-card",[a("div",{staticClass:"group-list-top"},[a("div",{staticClass:"left-search-input-group"},[a("div",{staticClass:"left-search-input"},[a("el-input",{staticStyle:{width:"300px"},attrs:{placeholder:"请输入名称关键字搜索",size:"mini",clearable:!0},on:{change:e.searchByKeyword},model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}})],1)]),e._v(" "),a("div",{staticClass:"right-add-button-group"},[a("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-document-add"},on:{click:e.addGroup}},[e._v("添加")])],1)]),e._v(" "),a("el-table",{attrs:{"header-cell-style":{background:"#eef1f6",color:"#606266"},data:e.tableData,size:"small",border:""}},[a("el-table-column",{attrs:{prop:"id",label:"编号","min-width":"5%"}}),e._v(" "),a("el-table-column",{attrs:{prop:"name",label:"分组名称","show-overflow-tooltip":"","min-width":"20%"}}),e._v(" "),a("el-table-column",{attrs:{prop:"createTime",label:"创建时间","min-width":"20%"}}),e._v(" "),a("el-table-column",{attrs:{prop:"updateTime",label:"更新时间","show-overflow-tooltip":"","min-width":"20%"}}),e._v(" "),a("el-table-column",{attrs:{label:"操作","min-width":"35%"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-button-group",[a("el-button",{attrs:{size:"small",type:"warning",icon:"el-icon-edit",round:""},on:{click:function(a){return e.handleUpdate(t.$index,t.row)}}},[e._v("编辑")]),e._v(" "),a("el-button",{attrs:{size:"small",type:"success",icon:"el-icon-delete",round:""},on:{click:function(a){return e.handleDelete(t.$index,t.row)}}},[e._v("删除")])],1)]}}])})],1),e._v(" "),a("div",{staticClass:"page",attrs:{align:"right"}},[a("el-pagination",{attrs:{"current-page":e.currentPageNum,"page-sizes":[5,10,20,40],"page-size":e.currentPageSize,layout:"total, sizes, prev, pager, next, jumper",total:e.totalItemCount},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),e._v(" "),a("el-dialog",{attrs:{title:"添加信息",visible:e.createFormVisible,showClose:!1,"before-close":e.handleClose},on:{"update:visible":function(t){e.createFormVisible=t}}},[a("el-form",{ref:"createform",attrs:{model:e.createform,size:"mini","status-icon":"",rules:e.rules}},[a("el-form-item",{staticStyle:{width:"85%"},attrs:{label:"分组名称","label-width":"120px",required:!0,prop:"name"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:e.createform.name,callback:function(t){e.$set(e.createform,"name",t)},expression:"createform.name"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.createFormVisible=!1}}},[e._v("取 消")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:e.handleCreate}},[e._v("确 定")])],1)],1),e._v(" "),a("el-dialog",{attrs:{title:"修改信息",visible:e.updateFormVisible,showClose:!1,"before-close":e.handleClose},on:{"update:visible":function(t){e.updateFormVisible=t}}},[a("el-form",{ref:"updateform",attrs:{model:e.updateform,size:"mini","status-icon":"",rules:e.rules}},[a("el-form-item",{staticStyle:{width:"85%"},attrs:{label:"分组名称","label-width":"120px",required:!0,prop:"name"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:e.updateform.name,callback:function(t){e.$set(e.updateform,"name",t)},expression:"updateform.name"}})],1)],1),e._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.updateFormVisible=!1}}},[e._v("取 消")]),e._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:e.handleSave}},[e._v("确 定")])],1)],1)],1)],1)},staticRenderFns:[]};var c=a("VU/8")(l,s,!1,function(e){a("HvOu")},"data-v-062d93ce",null);t.default=c.exports}});
//# sourceMappingURL=25.e85f7ab22c459c102670.js.map
\ No newline at end of file
webpackJsonp([27],{"4/hK":function(n,e){},"6Wpa":function(n,e){},NHnr:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=t("//Fk"),i=t.n(o),r=t("7+uW"),c={render:function(){var n=this.$createElement,e=this._self._c||n;return e("div",{staticClass:"body-wrapper"},[e("router-view")],1)},staticRenderFns:[]};var l=t("VU/8")({name:"App"},c,!1,function(n){t("z/cX")},"data-v-c3654c36",null).exports,a=t("/ocq");r.default.use(a.a);var u=new a.a({routes:[{path:"/",name:"首页",component:function(){return t.e(2).then(t.bind(null,"4er+"))},redirect:"/dashboard",children:[{path:"/dashboard",name:"概览",icon:"el-icon-menu",component:function(){return t.e(11).then(t.bind(null,"ARoL"))}},{path:"/datasource",name:"连接配置",icon:"el-icon-coin",component:function(){return t.e(10).then(t.bind(null,"WGg6"))},children:[{path:"/datasource/driver",name:"驱动配置",icon:"el-icon-help",component:function(){return t.e(3).then(t.bind(null,"uOvO"))}},{path:"/datasource/list",name:"连接管理",icon:"el-icon-bank-card",component:function(){return Promise.all([t.e(0),t.e(5)]).then(t.bind(null,"U0nr"))}}]},{path:"/setting",name:"系统设置",icon:"el-icon-s-tools",component:function(){return t.e(6).then(t.bind(null,"VlR1"))},children:[{path:"/setting/group",name:"授权分组",icon:"el-icon-tickets",component:function(){return Promise.all([t.e(0),t.e(25)]).then(t.bind(null,"cGhg"))}},{path:"/setting/client",name:"客户应用",icon:"el-icon-pie-chart",component:function(){return Promise.all([t.e(0),t.e(20)]).then(t.bind(null,"i2vO"))}},{path:"/setting/firewall",name:"访问控制",icon:"el-icon-notebook-2",component:function(){return Promise.all([t.e(0),t.e(14)]).then(t.bind(null,"n/J7"))}},{path:"/setting/alarm",name:"告警配置",icon:"el-icon-message-solid",component:function(){return Promise.all([t.e(0),t.e(22)]).then(t.bind(null,"tq0o"))}},{path:"/setting/topology",name:"拓扑结构",icon:"el-icon-link",component:function(){return Promise.all([t.e(0),t.e(12)]).then(t.bind(null,"aSAZ"))}}]},{path:"/interface",name:"接口开发",icon:"el-icon-edit-outline",component:function(){return t.e(9).then(t.bind(null,"zsKB"))},children:[{path:"/interface/module",name:"模块配置",icon:"el-icon-folder",component:function(){return Promise.all([t.e(0),t.e(18)]).then(t.bind(null,"BOPB"))}},{path:"/interface/list",name:"接口配置",icon:"el-icon-refrigerator",component:function(){return Promise.all([t.e(0),t.e(19)]).then(t.bind(null,"6PtB"))}}]},{path:"/service",name:"接口仓库",icon:"el-icon-school",component:function(){return t.e(7).then(t.bind(null,"JpB7"))},children:[{path:"/service/interface",name:"服务接口",icon:"el-icon-lightning",component:function(){return Promise.all([t.e(0),t.e(13)]).then(t.bind(null,"vvPu"))}}]},{path:"/mcp",name:"MCP服务",icon:"el-icon-s-promotion",component:function(){return t.e(8).then(t.bind(null,"BVcr"))},children:[{path:"/mcp/client",name:"令牌配置",icon:"el-icon-s-platform",component:function(){return Promise.all([t.e(0),t.e(17)]).then(t.bind(null,"+79G"))}},{path:"/mcp/tool",name:"工具配置",icon:"el-icon-setting",component:function(){return Promise.all([t.e(0),t.e(24)]).then(t.bind(null,"kmMP"))}}]},{path:"/aboutme",name:"关于系统",icon:"el-icon-s-custom",component:function(){return t.e(1).then(t.bind(null,"AEfp"))}},{path:"/user/self",name:"个人中心",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(4)]).then(t.bind(null,"nqIE"))}},{path:"/interface/create",name:"创建任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(23)]).then(t.bind(null,"5fz/"))}},{path:"/interface/update",name:"修改任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(16)]).then(t.bind(null,"DuIM"))}},{path:"/interface/detail",name:"查看任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(15)]).then(t.bind(null,"+sv1"))}}]},{path:"/login",name:"登录",component:function(){return Promise.all([t.e(0),t.e(21)]).then(t.bind(null,"T+/8"))}}]}),p=t("mtWM"),m=t.n(p).a.create();m.interceptors.request.use(function(n){return n.url=""+n.url,n});var s=m,d=t("zL8q"),h=t.n(d),f=(t("muQq"),t("6Wpa"),t("zuxR"),t("tvR6"),t("XLwt")),b=t("E5Az"),P=t.n(b),g=(t("4/hK"),t("R0ti")),v=t.n(g);r.default.use(P.a),r.default.use(s),r.default.use(h.a),r.default.use(v.a),r.default.prototype.$http=s,r.default.config.productionTip=!1,r.default.prototype.$echarts=f,s.interceptors.request.use(function(n){var e=sessionStorage.getItem("token");return e&&(n.headers.Authorization="Bearer "+e),n},function(n){return i.a.reject(n)}),s.interceptors.response.use(function(n){return!n.data||401!==n.data.code&&403!==n.data.code&&404!==n.data.code||u.push({path:"/login"}),n},function(n){return i.a.reject(n.response)}),new r.default({el:"#app",router:u,components:{App:l},template:"<App/>"})},muQq:function(n,e){},tvR6:function(n,e){},"z/cX":function(n,e){},zuxR:function(n,e){}},["NHnr"]);
//# sourceMappingURL=app.e892e4af016c82ce3f40.js.map
\ No newline at end of file
webpackJsonp([27],{"4/hK":function(n,e){},"6Wpa":function(n,e){},NHnr:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=t("//Fk"),i=t.n(o),r=t("7+uW"),c={render:function(){var n=this.$createElement,e=this._self._c||n;return e("div",{staticClass:"body-wrapper"},[e("router-view")],1)},staticRenderFns:[]};var l=t("VU/8")({name:"App"},c,!1,function(n){t("z/cX")},"data-v-c3654c36",null).exports,a=t("/ocq");r.default.use(a.a);var u=new a.a({routes:[{path:"/",name:"首页",component:function(){return t.e(2).then(t.bind(null,"4er+"))},redirect:"/dashboard",children:[{path:"/dashboard",name:"概览",icon:"el-icon-menu",component:function(){return t.e(11).then(t.bind(null,"ARoL"))}},{path:"/datasource",name:"连接配置",icon:"el-icon-coin",component:function(){return t.e(10).then(t.bind(null,"WGg6"))},children:[{path:"/datasource/driver",name:"驱动配置",icon:"el-icon-help",component:function(){return t.e(3).then(t.bind(null,"uOvO"))}},{path:"/datasource/list",name:"连接管理",icon:"el-icon-bank-card",component:function(){return Promise.all([t.e(0),t.e(5)]).then(t.bind(null,"U0nr"))}}]},{path:"/setting",name:"系统设置",icon:"el-icon-s-tools",component:function(){return t.e(6).then(t.bind(null,"VlR1"))},children:[{path:"/setting/group",name:"授权分组",icon:"el-icon-tickets",component:function(){return Promise.all([t.e(0),t.e(25)]).then(t.bind(null,"cGhg"))}},{path:"/setting/client",name:"客户应用",icon:"el-icon-pie-chart",component:function(){return Promise.all([t.e(0),t.e(21)]).then(t.bind(null,"i2vO"))}},{path:"/setting/firewall",name:"访问控制",icon:"el-icon-notebook-2",component:function(){return Promise.all([t.e(0),t.e(14)]).then(t.bind(null,"n/J7"))}},{path:"/setting/alarm",name:"告警配置",icon:"el-icon-message-solid",component:function(){return Promise.all([t.e(0),t.e(22)]).then(t.bind(null,"tq0o"))}},{path:"/setting/topology",name:"拓扑结构",icon:"el-icon-link",component:function(){return Promise.all([t.e(0),t.e(12)]).then(t.bind(null,"aSAZ"))}}]},{path:"/interface",name:"接口开发",icon:"el-icon-edit-outline",component:function(){return t.e(9).then(t.bind(null,"zsKB"))},children:[{path:"/interface/module",name:"模块配置",icon:"el-icon-folder",component:function(){return Promise.all([t.e(0),t.e(20)]).then(t.bind(null,"BOPB"))}},{path:"/interface/list",name:"接口配置",icon:"el-icon-refrigerator",component:function(){return Promise.all([t.e(0),t.e(15)]).then(t.bind(null,"6PtB"))}}]},{path:"/service",name:"接口仓库",icon:"el-icon-school",component:function(){return t.e(7).then(t.bind(null,"JpB7"))},children:[{path:"/service/interface",name:"服务接口",icon:"el-icon-lightning",component:function(){return Promise.all([t.e(0),t.e(13)]).then(t.bind(null,"vvPu"))}}]},{path:"/mcp",name:"MCP服务",icon:"el-icon-s-promotion",component:function(){return t.e(8).then(t.bind(null,"BVcr"))},children:[{path:"/mcp/client",name:"令牌配置",icon:"el-icon-s-platform",component:function(){return Promise.all([t.e(0),t.e(18)]).then(t.bind(null,"+79G"))}},{path:"/mcp/tool",name:"工具配置",icon:"el-icon-setting",component:function(){return Promise.all([t.e(0),t.e(24)]).then(t.bind(null,"kmMP"))}}]},{path:"/aboutme",name:"关于系统",icon:"el-icon-s-custom",component:function(){return t.e(1).then(t.bind(null,"AEfp"))}},{path:"/user/self",name:"个人中心",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(4)]).then(t.bind(null,"nqIE"))}},{path:"/interface/create",name:"创建任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(23)]).then(t.bind(null,"5fz/"))}},{path:"/interface/update",name:"修改任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(17)]).then(t.bind(null,"DuIM"))}},{path:"/interface/detail",name:"查看任务",hidden:!0,component:function(){return Promise.all([t.e(0),t.e(16)]).then(t.bind(null,"+sv1"))}}]},{path:"/login",name:"登录",component:function(){return Promise.all([t.e(0),t.e(19)]).then(t.bind(null,"T+/8"))}}]}),p=t("mtWM"),m=t.n(p).a.create();m.interceptors.request.use(function(n){return n.url=""+n.url,n});var s=m,d=t("zL8q"),h=t.n(d),f=(t("muQq"),t("6Wpa"),t("zuxR"),t("tvR6"),t("XLwt")),b=t("E5Az"),P=t.n(b),g=(t("4/hK"),t("R0ti")),v=t.n(g);r.default.use(P.a),r.default.use(s),r.default.use(h.a),r.default.use(v.a),r.default.prototype.$http=s,r.default.config.productionTip=!1,r.default.prototype.$echarts=f,s.interceptors.request.use(function(n){var e=sessionStorage.getItem("token");return e&&(n.headers.Authorization="Bearer "+e),n},function(n){return i.a.reject(n)}),s.interceptors.response.use(function(n){return!n.data||401!==n.data.code&&403!==n.data.code&&404!==n.data.code||u.push({path:"/login"}),n},function(n){return i.a.reject(n.response)}),new r.default({el:"#app",router:u,components:{App:l},template:"<App/>"})},muQq:function(n,e){},tvR6:function(n,e){},"z/cX":function(n,e){},zuxR:function(n,e){}},["NHnr"]);
//# sourceMappingURL=app.2c1ec8f3a08d363c1c13.js.map
\ No newline at end of file
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(n,a,f){for(var o,d,b,i=0,u=[];i<n.length;i++)d=n[i],r[d]&&u.push(r[d][0]),r[d]=0;for(o in a)Object.prototype.hasOwnProperty.call(a,o)&&(e[o]=a[o]);for(c&&c(n,a,f);u.length;)u.shift()();if(f)for(i=0;i<f.length;i++)b=t(t.s=f[i]);return b};var n={},r={28:0};function t(c){if(n[c])return n[c].exports;var r=n[c]={i:c,l:!1,exports:{}};return e[c].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.e=function(e){var c=r[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var n=new Promise(function(n,t){c=r[e]=[n,t]});c[2]=n;var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,t.nc&&f.setAttribute("nonce",t.nc),f.src=t.p+"static/js/"+e+"."+{0:"1568a674c1e79dfd061d",1:"3d620b6c7ae0e58281bc",2:"81f052b9451eeaa2ec45",3:"776d791724a8de12ff9e",4:"f8494b8dd039413f79c8",5:"404ff5302fc6ee181ee9",6:"8f85de06573e2a5f9562",7:"061807fe4716131f26f8",8:"c4a2e9952c298efc080c",9:"313072ac394fc9349d2f",10:"0591dbe3e75f89e4c00e",11:"9ccf6e8ba19ce146e66b",12:"d26d5fe93a45bd5c6eaa",13:"bfc06db76836c228f491",14:"b74db4e8e5c2f13b4c43",15:"d8a7cd9843e13fa1b5eb",16:"9a6082d7311beb531ffe",17:"ca3a537c0792f7b8e00f",18:"5096122498e2cfe23bfa",19:"492e3884353940300fa9",20:"7ac0693f49a00ab51b3e",21:"1056a6edefc50b64f16b",22:"0a5f684edcb8df816a5d",23:"93251b045354cc966a59",24:"61c786230b6da7b9ddc7",25:"b0986b0eaecd37184d01"}[e]+".js";var o=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(o);var c=r[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),r[e]=void 0)}return f.onerror=f.onload=d,a.appendChild(f),n},t.m=e,t.c=n,t.d=function(e,c,n){t.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(c,"a",c),c},t.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},t.p="/",t.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.1c71f09d3dc37e748c1c.js.map
\ No newline at end of file
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(a,t,f){for(var o,d,i,u=0,b=[];u<a.length;u++)d=a[u],n[d]&&b.push(n[d][0]),n[d]=0;for(o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);for(c&&c(a,t,f);b.length;)b.shift()();if(f)for(u=0;u<f.length;u++)i=r(r.s=f[u]);return i};var a={},n={28:0};function r(c){if(a[c])return a[c].exports;var n=a[c]={i:c,l:!1,exports:{}};return e[c].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var c=n[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var a=new Promise(function(a,r){c=n[e]=[a,r]});c[2]=a;var t=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,r.nc&&f.setAttribute("nonce",r.nc),f.src=r.p+"static/js/"+e+"."+{0:"067f6a1af8c2636542e3",1:"7acdf4fa190624b33517",2:"140338f6a5528feea1a3",3:"776d791724a8de12ff9e",4:"f8494b8dd039413f79c8",5:"404ff5302fc6ee181ee9",6:"8f85de06573e2a5f9562",7:"061807fe4716131f26f8",8:"c4a2e9952c298efc080c",9:"313072ac394fc9349d2f",10:"0591dbe3e75f89e4c00e",11:"9ccf6e8ba19ce146e66b",12:"d26d5fe93a45bd5c6eaa",13:"bfc06db76836c228f491",14:"b74db4e8e5c2f13b4c43",15:"d80f5cf2fd51d72b22ea",16:"2ca69ffb53da98b61da4",17:"64a6906a4b77392d43c7",18:"bb8da82a2138ed7b18a8",19:"a2c24b3aee6af674aa30",20:"1272deb68d764581e1ab",21:"5952cc009e9eb6c25dfc",22:"0a5f684edcb8df816a5d",23:"93251b045354cc966a59",24:"61c786230b6da7b9ddc7",25:"e85f7ab22c459c102670"}[e]+".js";var o=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(o);var c=n[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return f.onerror=f.onload=d,t.appendChild(f),a},r.m=e,r.c=a,r.d=function(e,c,a){r.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:a})},r.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(c,"a",c),c},r.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},r.p="/",r.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.52df910f8eccdd2a9197.js.map
\ No newline at end of file
......@@ -13,12 +13,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.gitee.sqlrest.common.enums.HttpMethodEnum;
import com.gitee.sqlrest.persistence.entity.ApiAssignmentEntity;
import com.gitee.sqlrest.persistence.entity.ModuleAssignmentEntity;
import com.gitee.sqlrest.persistence.mapper.ApiAssignmentMapper;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@Repository
......@@ -60,6 +62,21 @@ public class ApiAssignmentDao {
return apiAssignmentMapper.selectBatchIds(ids);
}
public List<ModuleAssignmentEntity> getModuleAssignments(){
return apiAssignmentMapper.getModuleAssignments();
}
public void resetGroupByGroupId(Long groupId) {
apiAssignmentMapper.resetGroup(groupId);
}
public void updateGroup(Long groupId, List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {
return;
}
apiAssignmentMapper.updateGroup(groupId, ids);
}
public void updateStatus(Long id, Boolean onOff) {
ApiAssignmentEntity assignmentEntity = apiAssignmentMapper.selectById(id);
if (null != assignmentEntity) {
......
......@@ -31,6 +31,10 @@ public class ApiGroupDao {
return apiGroupMapper.selectById(id);
}
public List<ApiGroupEntity> listAll() {
return listAll(null);
}
public List<ApiGroupEntity> listAll(String searchText) {
return apiGroupMapper.selectList(
Wrappers.<ApiGroupEntity>lambdaQuery()
......
......@@ -34,6 +34,20 @@ public class AppClientDao {
appClientMapper.insert(appClientEntity);
}
public List<AppClientEntity> listAll() {
return listAll(null);
}
public List<AppClientEntity> listAll(String searchText, Long groupId) {
if (null == groupId) {
return listAll(searchText);
}
if (null != searchText) {
searchText = "%" + searchText + "%";
}
return appClientMapper.searchAppClient(searchText, groupId);
}
public List<AppClientEntity> listAll(String searchText) {
return appClientMapper.selectList(
Wrappers.<AppClientEntity>lambdaQuery()
......
package com.gitee.sqlrest.persistence.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ModuleAssignmentEntity {
private Long moduleId;
private String moduleName;
private Long assigmentId;
private String assigmentName;
private Long groupId;
}
......@@ -11,7 +11,34 @@ package com.gitee.sqlrest.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gitee.sqlrest.persistence.entity.ApiAssignmentEntity;
import com.gitee.sqlrest.persistence.entity.ModuleAssignmentEntity;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
public interface ApiAssignmentMapper extends BaseMapper<ApiAssignmentEntity> {
@Select("<script>"
+ "SELECT "
+ " a.id as assigment_id,"
+ " a.name as assigment_name,"
+ " a.group_id as group_id,"
+ " a.module_id as module_id,"
+ " m.name as module_name "
+ "FROM SQLREST_API_ASSIGNMENT a "
+ "LEFT JOIN SQLREST_API_MODULE m on a.module_id = m.id"
+ "</script>")
List<ModuleAssignmentEntity> getModuleAssignments();
@Update("UPDATE SQLREST_API_ASSIGNMENT SET group_id = 1 WHERE group_id=#{groupId}")
void resetGroup(@Param("groupId") Long groupId);
@Update("<script>"
+ "UPDATE SQLREST_API_ASSIGNMENT SET group_id = #{groupId} WHERE id in "
+ "<foreach collection='ids' item='item' open='(' separator=',' close=')'> "
+ " #{item} "
+ "</foreach>"
+ "</script>")
void updateGroup(@Param("groupId") Long groupId, @Param("ids") List<Long> ids);
}
......@@ -11,7 +11,19 @@ package com.gitee.sqlrest.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gitee.sqlrest.persistence.entity.AppClientEntity;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface AppClientMapper extends BaseMapper<AppClientEntity> {
@Select("<script>"
+ " SELECT * FROM SQLREST_APP_CLIENT "
+ " WHERE id in(SELECT client_id FROM SQLREST_CLIENT_GROUP WHERE group_id = #{groupId} )"
+ "<if test='searchText != null and searchText.length()>0 '>"
+ " AND name like #{searchText,jdbcType=VARCHAR} "
+ "</if>"
+ " ORDER BY create_time desc "
+ "</script>")
List<AppClientEntity> searchAppClient(@Param("searchText") String searchText, @Param("groupId") Long groupId);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment