|
|
|
@ -8,43 +8,64 @@
|
|
|
|
|
<el-option key="路径" label="路径" value="路径"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则类型" prop="ruleType" size="mini">
|
|
|
|
|
<el-select v-model="vm.ruleType" clearable size="mini" filterable placeholder="请输入规则类型">
|
|
|
|
|
<el-option key="反向代理" label="反向代理" value="反向代理"></el-option>
|
|
|
|
|
<el-option key="负载均衡" label="负载均衡" value="负载均衡"></el-option>
|
|
|
|
|
<el-option key="正向代理" label="正向代理" value="正向代理"></el-option>
|
|
|
|
|
<el-option key="文件代理" label="文件代理" value="文件代理"></el-option>
|
|
|
|
|
<el-option key="端口转发" label="端口转发" value="端口转发"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则标题" prop="ruleTitle" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleTitle" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则标题"></el-input>
|
|
|
|
|
<el-input v-model="vm.ruleTitle" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则标题"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则标题" prop="ruleTitleLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleTitleLike" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则标题模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则标题" prop="ruleTitleLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleTitleLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则标题模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则名称" prop="ruleName" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleName" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则名称"></el-input>
|
|
|
|
|
<el-input v-model="vm.ruleName" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则名称"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则名称" prop="ruleNameLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleNameLike" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则名称模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则名称" prop="ruleNameLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleNameLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则名称模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则属值" prop="ruleValue" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleValue" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则属值"></el-input>
|
|
|
|
|
<el-input v-model="vm.ruleValue" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则属值"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则属值" prop="ruleValueLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleValueLike" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则属值模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则属值" prop="ruleValueLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleValueLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则属值模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="默认属值" prop="valueDefault" size="mini">
|
|
|
|
|
<el-input v-model="vm.valueDefault" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入默认属值"></el-input>
|
|
|
|
|
<el-input v-model="vm.valueDefault" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入默认属值"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="属值正则" prop="valueRegex" size="mini">
|
|
|
|
|
<el-input v-model="vm.valueRegex" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入属值正则"></el-input>
|
|
|
|
|
<el-input v-model="vm.valueRegex" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入属值正则"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则描述" prop="ruleNoteLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleNoteLike" @keyup.enter.native="onSearch" clearable size="mini"
|
|
|
|
|
placeholder="请输入规则描述模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则描述" prop="ruleNoteLike" size="mini">
|
|
|
|
|
<el-input v-model="vm.ruleNoteLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则描述模糊查询"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="开始日期" prop="startDate" size="mini">
|
|
|
|
|
<el-date-picker v-model="vm.startDate" clearable size="mini" placeholder="请输入开始日期" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
|
|
|
|
|
<el-date-picker v-model="vm.startDate" clearable size="mini" placeholder="请输入开始日期" type="datetime"
|
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="结束日期" prop="endDate" size="mini">
|
|
|
|
|
<el-date-picker v-model="vm.endDate" clearable size="mini" placeholder="请输入结束日期" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
|
|
|
|
|
<el-date-picker v-model="vm.endDate" clearable size="mini" placeholder="请输入结束日期" type="datetime"
|
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item size="mini">
|
|
|
|
|
<el-button-group>
|
|
|
|
|
<el-button type="primary" size="mini" icon="el-icon-search" @click="onSearch">搜索</el-button>
|
|
|
|
|
<el-button type="warning" size="mini" icon="el-icon-refresh-left" @click="onReset('vm')">重置</el-button>
|
|
|
|
|
<el-button type="warning" size="mini" icon="el-icon-refresh-left" @click="onReset('vm')">重置
|
|
|
|
|
</el-button>
|
|
|
|
|
</el-button-group>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
@ -62,23 +83,23 @@
|
|
|
|
|
</el-button-group>
|
|
|
|
|
|
|
|
|
|
<el-button-group style="float: right;">
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/template")>
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/template")>
|
|
|
|
|
<el-tooltip effect="dark" content="Excel导入模板下载" placement="bottom">
|
|
|
|
|
<el-button size="mini" icon="el-icon-date" @click="onTemplate"></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
</#if>
|
|
|
|
|
</#if>
|
|
|
|
|
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/imports")>
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/imports")>
|
|
|
|
|
<el-tooltip effect="dark" content="Excel导入" placement="bottom">
|
|
|
|
|
<el-button size="mini" icon="el-icon-upload2" @click="onImport"></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
</#if>
|
|
|
|
|
</#if>
|
|
|
|
|
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/exports")>
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/exports")>
|
|
|
|
|
<el-tooltip effect="dark" content="Excel导出" placement="bottom">
|
|
|
|
|
<el-button size="mini" icon="el-icon-download" @click="onExport"></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
</#if>
|
|
|
|
|
</#if>
|
|
|
|
|
|
|
|
|
|
<el-tooltip effect="dark" content="刷新" placement="bottom">
|
|
|
|
|
<el-button size="mini" icon="el-icon-refresh" @click="onFind"></el-button>
|
|
|
|
@ -115,6 +136,19 @@
|
|
|
|
|
<el-tag size="mini" v-if="scope.row.ruleFor == '路径'">路径</el-tag>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
align="center"
|
|
|
|
|
min-width="100"
|
|
|
|
|
prop="ruleType"
|
|
|
|
|
label="规则类型">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-tag size="mini" v-if="scope.row.ruleType == '反向代理'">反向代理</el-tag>
|
|
|
|
|
<el-tag size="mini" v-if="scope.row.ruleType == '负载均衡'">负载均衡</el-tag>
|
|
|
|
|
<el-tag size="mini" v-if="scope.row.ruleType == '正向代理'">正向代理</el-tag>
|
|
|
|
|
<el-tag size="mini" v-if="scope.row.ruleType == '文件代理'">文件代理</el-tag>
|
|
|
|
|
<el-tag size="mini" v-if="scope.row.ruleType == '端口转发'">端口转发</el-tag>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
align="center"
|
|
|
|
|
min-width="180"
|
|
|
|
@ -150,6 +184,12 @@
|
|
|
|
|
label="属值正则"
|
|
|
|
|
show-overflow-tooltip>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
align="center"
|
|
|
|
|
min-width="80"
|
|
|
|
|
prop="valueMax"
|
|
|
|
|
label="最大数量">
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
align="center"
|
|
|
|
|
min-width="180"
|
|
|
|
@ -170,12 +210,12 @@
|
|
|
|
|
label="操作">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<wb-table-ops :arg="scope.row">
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/update")>
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/update")>
|
|
|
|
|
<wb-table-op slot="menu" icon="el-icon-edit" @click="onEdit">编辑</wb-table-op>
|
|
|
|
|
</#if>
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/delete")>
|
|
|
|
|
</#if>
|
|
|
|
|
<#if token.hasRes("/ajax/admin/rules/delete")>
|
|
|
|
|
<wb-table-op slot="menu" icon="el-icon-delete" @click="onDelete">删除</wb-table-op>
|
|
|
|
|
</#if>
|
|
|
|
|
</#if>
|
|
|
|
|
</wb-table-ops>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
@ -214,16 +254,27 @@
|
|
|
|
|
:label-position="'right'">
|
|
|
|
|
<el-form-item label="规则目标" prop="ruleFor" size="mini">
|
|
|
|
|
<el-select v-model="form.ruleFor" clearable size="mini" filterable placeholder="请输入规则目标">
|
|
|
|
|
<el-option key="全局" label="全局" value="全局"></el-option>
|
|
|
|
|
<el-option key="主机" label="主机" value="主机"></el-option>
|
|
|
|
|
<el-option key="路径" label="路径" value="路径"></el-option>
|
|
|
|
|
<el-option key="全局" label="全局" value="全局"></el-option>
|
|
|
|
|
<el-option key="主机" label="主机" value="主机"></el-option>
|
|
|
|
|
<el-option key="路径" label="路径" value="路径"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则标题" prop="ruleTitle" size="mini">
|
|
|
|
|
<el-form-item label="规则类型" prop="ruleType" size="mini">
|
|
|
|
|
<el-select v-model="form.ruleType" clearable size="mini" filterable placeholder="请输入规则类型">
|
|
|
|
|
<el-option key="反向代理" label="反向代理" value="反向代理"></el-option>
|
|
|
|
|
<el-option key="负载均衡" label="负载均衡" value="负载均衡"></el-option>
|
|
|
|
|
<el-option key="正向代理" label="正向代理" value="正向代理"></el-option>
|
|
|
|
|
<el-option key="文件代理" label="文件代理" value="文件代理"></el-option>
|
|
|
|
|
<el-option key="端口转发" label="端口转发" value="端口转发"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则标题" prop="ruleTitle" size="mini" class="full">
|
|
|
|
|
<el-input v-model="form.ruleTitle"
|
|
|
|
|
rows="3"
|
|
|
|
|
clearable
|
|
|
|
|
size="mini"
|
|
|
|
|
maxlength="100"
|
|
|
|
|
type="textarea"
|
|
|
|
|
show-word-limit
|
|
|
|
|
placeholder="请输入规则标题"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
@ -267,6 +318,20 @@
|
|
|
|
|
show-word-limit
|
|
|
|
|
placeholder="请输入属值正则"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="最大数量" prop="valueMax" size="mini">
|
|
|
|
|
<el-input class="group" v-model="form.valueMax" type="number" clearable size="mini"
|
|
|
|
|
placeholder="请输入最大数量" :min="-2147483648" :max="2147483647" :step="1" step-strictly>
|
|
|
|
|
<template slot="append">
|
|
|
|
|
<el-popover
|
|
|
|
|
placement="top-start"
|
|
|
|
|
width="200"
|
|
|
|
|
trigger="hover"
|
|
|
|
|
content="指定域中该属性可配置次数,【0】为不限制">
|
|
|
|
|
<i slot="reference" class="el-icon-warning-outline" style="color: #fff"></i>
|
|
|
|
|
</el-popover>
|
|
|
|
|
</template>
|
|
|
|
|
</el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="规则描述" prop="ruleNote" size="mini" class="full">
|
|
|
|
|
<el-input v-model="form.ruleNote"
|
|
|
|
|
rows="10"
|
|
|
|
@ -294,6 +359,7 @@
|
|
|
|
|
target: 'rules',
|
|
|
|
|
vm: {//条件及分页参数
|
|
|
|
|
ruleFor: null,
|
|
|
|
|
ruleType: null,
|
|
|
|
|
ruleTitle: null,
|
|
|
|
|
ruleTitleLike: null,
|
|
|
|
|
ruleName: null,
|
|
|
|
@ -308,40 +374,54 @@
|
|
|
|
|
pageNumber: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
totalCount: 0,
|
|
|
|
|
sortKey:'CREATE_TIME',
|
|
|
|
|
sortType:'DESC'
|
|
|
|
|
sortKey: 'CREATE_TIME',
|
|
|
|
|
sortType: 'DESC'
|
|
|
|
|
},
|
|
|
|
|
form: {//待提交表单
|
|
|
|
|
formTitle: "",
|
|
|
|
|
formShow: false,
|
|
|
|
|
id: null,
|
|
|
|
|
ruleFor: null,
|
|
|
|
|
ruleType: null,
|
|
|
|
|
ruleTitle: null,
|
|
|
|
|
ruleName: null,
|
|
|
|
|
ruleValue: null,
|
|
|
|
|
valueDefault: null,
|
|
|
|
|
valueRegex: null,
|
|
|
|
|
valueMax: null,
|
|
|
|
|
ruleNote: null,
|
|
|
|
|
rowVersion: null
|
|
|
|
|
},
|
|
|
|
|
formRules: {
|
|
|
|
|
ruleFor: [
|
|
|
|
|
{required: true, message: '规则目标不能为空', trigger: 'blur'},
|
|
|
|
|
],
|
|
|
|
|
ruleType: [
|
|
|
|
|
{required: true, message: '规则类型不能为空', trigger: 'blur'},
|
|
|
|
|
],
|
|
|
|
|
ruleTitle: [
|
|
|
|
|
{required: true, message: '规则标题不能为空', trigger: 'blur'},
|
|
|
|
|
{min: 1, max: 100, message: '规则标题长度在 1 到 100 个字符', trigger: 'blur'}
|
|
|
|
|
],
|
|
|
|
|
ruleName: [
|
|
|
|
|
{required: true, message: '规则名称不能为空', trigger: 'blur'},
|
|
|
|
|
{min: 1, max: 100, message: '规则名称长度在 1 到 100 个字符', trigger: 'blur'}
|
|
|
|
|
],
|
|
|
|
|
ruleValue: [
|
|
|
|
|
{required: true, message: '规则属值不能为空', trigger: 'blur'},
|
|
|
|
|
{min: 1, max: 100, message: '规则属值长度在 1 到 100 个字符', trigger: 'blur'}
|
|
|
|
|
],
|
|
|
|
|
valueDefault: [
|
|
|
|
|
{required: true, message: '默认属值不能为空', trigger: 'blur'},
|
|
|
|
|
{min: 1, max: 100, message: '默认属值长度在 1 到 100 个字符', trigger: 'blur'}
|
|
|
|
|
],
|
|
|
|
|
valueRegex: [
|
|
|
|
|
{required: true, message: '属值正则不能为空', trigger: 'blur'},
|
|
|
|
|
{min: 1, max: 100, message: '属值正则长度在 1 到 100 个字符', trigger: 'blur'}
|
|
|
|
|
],
|
|
|
|
|
valueMax: [
|
|
|
|
|
{required: true, message: '最大数量不能为空', trigger: 'blur'},
|
|
|
|
|
],
|
|
|
|
|
ruleNote: [
|
|
|
|
|
{min: 1, max: 500, message: '规则描述长度在 1 到 500 个字符', trigger: 'blur'}
|
|
|
|
|
],
|
|
|
|
@ -353,11 +433,13 @@
|
|
|
|
|
this.form.formShow = true;
|
|
|
|
|
this.form.id = "";
|
|
|
|
|
this.form.ruleFor = "";
|
|
|
|
|
this.form.ruleType = "";
|
|
|
|
|
this.form.ruleTitle = "";
|
|
|
|
|
this.form.ruleName = "";
|
|
|
|
|
this.form.ruleValue = "";
|
|
|
|
|
this.form.valueDefault = "";
|
|
|
|
|
this.form.valueRegex = "";
|
|
|
|
|
this.form.valueMax = "";
|
|
|
|
|
this.form.ruleNote = "";
|
|
|
|
|
},
|
|
|
|
|
onEdit: function (item) {
|
|
|
|
@ -365,11 +447,13 @@
|
|
|
|
|
this.form.formShow = true;
|
|
|
|
|
this.form.id = item.id;
|
|
|
|
|
this.form.ruleFor = item.ruleFor;
|
|
|
|
|
this.form.ruleType = item.ruleType;
|
|
|
|
|
this.form.ruleTitle = item.ruleTitle;
|
|
|
|
|
this.form.ruleName = item.ruleName;
|
|
|
|
|
this.form.ruleValue = item.ruleValue;
|
|
|
|
|
this.form.valueDefault = item.valueDefault;
|
|
|
|
|
this.form.valueRegex = item.valueRegex;
|
|
|
|
|
this.form.valueMax = item.valueMax;
|
|
|
|
|
this.form.ruleNote = item.ruleNote;
|
|
|
|
|
this.form.rowVersion = item.rowVersion;
|
|
|
|
|
}
|
|
|
|
|