安全组相关代码优化.
This commit is contained in:
@@ -31,11 +31,11 @@ export function createGroup(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function updateGroup(data) {
|
||||
export function updateGroup(query) {
|
||||
return request({
|
||||
url: `/security/group/update`,
|
||||
method: 'post',
|
||||
data
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
@@ -58,22 +58,6 @@ export function updateGroupEnableStatus(id, enable) {
|
||||
})
|
||||
}
|
||||
|
||||
export function enableGroup(query) {
|
||||
return request({
|
||||
url: '/security/group/enable',
|
||||
method: 'post',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function disableGroup(query) {
|
||||
return request({
|
||||
url: '/security/group/disable',
|
||||
method: 'post',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchRuleList(query) {
|
||||
return request({
|
||||
url: '/security/rule/list',
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<div class="app-container calendar-list-container">
|
||||
<div class="filter-container">
|
||||
<el-input v-model="listQuery.name" style="width:145px;margin-right:10px" placeholder="请输入名称" />
|
||||
<el-input v-model="listQuery.description" style="width:145px;margin-right:10px" placeholder="请输入描述" />
|
||||
<el-select v-model="listQuery.enable" placeholder="请选择启用状态" clearable style="width:145px;margin-right:10px">
|
||||
<el-option v-for="item in selectObj.statusOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
@@ -119,34 +120,34 @@
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :title="$t('table.securityGroupBindPortMapping')+'---'+forBindProtMappingSecurityGroup.name+'安全组'" :visible.sync="dialogBindPortMappingVisible" width="90%">
|
||||
<el-table :key='tableKey' :data="portMappingList" v-loading="listLoading" element-loading-text="给我一点时间" border fit align="center" width="100%"
|
||||
<el-table :key='tableKey' :data="portMappingList" v-loading="listLoading" element-loading-text="给我一点时间" border width="100%"
|
||||
highlight-current-row style="width: 100%">
|
||||
<el-table-column align="center" :label="$t('table.id')" width="50">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.id }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" :label="$t('table.licenseName')" width="130">
|
||||
<el-table-column align="center" :label="$t('table.licenseName')">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.licenseName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" :label="$t('table.protocalName')" width="100">
|
||||
<el-table-column align="center" :label="$t('table.protocalName')" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.protocal }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" :label="$t('table.domainName')" width="200">
|
||||
<el-table-column align="center" :label="$t('table.domainName')">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.domain }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" :label="$t('table.serverPort')" width="80">
|
||||
<el-table-column align="center" :label="$t('table.serverPort')" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.serverPort }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" :label="$t('table.proxyClient')" width="120">
|
||||
<el-table-column align="center" :label="$t('table.proxyClient')" width="200">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.clientIp }}:{{ scope.row.clientPort }}</span>
|
||||
</template>
|
||||
@@ -156,12 +157,12 @@
|
||||
<span>{{ scope.row.description }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column class-name="status-col" :label="$t('table.enableStatus')" width="100">
|
||||
<el-table-column class-name="status-col" :label="$t('table.enableStatus')" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="scope.row.enable | statusFilter">{{ scope.row.enable | statusName }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" :label="$t('table.actions')" width="120" class-name="small-padding fixed-width">
|
||||
<el-table-column align="center" :label="$t('table.actions')" width="150" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" size="mini" v-if="!scope.row.securityGroupId" @click="handleBind(scope.row)">{{$t('table.bind')}}</el-button>
|
||||
<el-button type="danger" size="mini" v-if="scope.row.securityGroupId && scope.row.securityGroupId == forBindProtMappingSecurityGroup.id" @click="handleUnbind(scope.row)">{{$t('table.unbind')}}</el-button>
|
||||
@@ -204,6 +205,7 @@ import LinkPopover from '../../components/Link/linkPopover'
|
||||
current: 1,
|
||||
size: 10,
|
||||
name: undefined,
|
||||
description: undefined,
|
||||
enable: undefined
|
||||
},
|
||||
listLoading: true,
|
||||
@@ -381,7 +383,7 @@ import LinkPopover from '../../components/Link/linkPopover'
|
||||
})
|
||||
},
|
||||
handleDelete(row) {
|
||||
deleteGroup(row.id).then(response => {
|
||||
deleteGroup({groupId: row.id}).then(response => {
|
||||
if (response.data.code === 0) {
|
||||
this.$notify({
|
||||
title: '成功',
|
||||
|
||||
+2
@@ -72,6 +72,8 @@ public class SecurityController {
|
||||
@Post
|
||||
@Mapping("/group/delete")
|
||||
public void deleteGroup(Integer groupId) {
|
||||
ParamCheckUtil.checkNotNull(groupId, "groupId");
|
||||
|
||||
groupService.deleteGroup(groupId);
|
||||
}
|
||||
|
||||
|
||||
+9
@@ -1,6 +1,7 @@
|
||||
package org.dromara.neutrinoproxy.server.controller.req.system;
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.neutrinoproxy.server.constant.SecurityRulePassTypeEnum;
|
||||
|
||||
/**
|
||||
* @author: wen.y
|
||||
@@ -9,5 +10,13 @@ import lombok.Data;
|
||||
@Data
|
||||
public class SecurityGroupListReq {
|
||||
private String name;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* 通过类型
|
||||
*/
|
||||
private SecurityRulePassTypeEnum defaultPassType;
|
||||
private Integer enable;
|
||||
}
|
||||
|
||||
+4
@@ -73,6 +73,10 @@ public class SecurityGroupService {
|
||||
//描述字段为模糊查询,在应用层处理,否则sqlite不支持
|
||||
req.setName("%" + req.getName() + "%");
|
||||
}
|
||||
if (StringUtils.isNotEmpty(req.getDescription())) {
|
||||
//描述字段为模糊查询,在应用层处理,否则sqlite不支持
|
||||
req.setDescription("%" + req.getDescription() + "%");
|
||||
}
|
||||
Page<SecurityGroupDO> page = new Page<>(pageQuery.getCurrent(), pageQuery.getSize());
|
||||
List<SecurityGroupDO> list = securityGroupMapper.selectByCondition(page, req);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
<if test="req.name != null and req.name != '' ">
|
||||
AND sg.name like #{req.name}
|
||||
</if>
|
||||
<if test="req.description != null and req.description != '' ">
|
||||
AND sg.description like #{req.description}
|
||||
</if>
|
||||
<if test="req.defaultPassType != null">
|
||||
AND sg.default_pass_type like #{req.defaultPassType}
|
||||
</if>
|
||||
<if test="req.enable != null">
|
||||
AND sg.enable like #{req.enable}
|
||||
</if>
|
||||
|
||||
Reference in New Issue
Block a user