自定义线路增加区域之间关系设置

This commit is contained in:
GoEdgeLab
2022-12-06 22:32:32 +08:00
parent b59a8ebc56
commit 07cd615d8f

View File

@@ -26,7 +26,8 @@ Vue.component("ns-route-ranges-box", {
// region // region
regions: [], regions: [],
regionType: "country" regionType: "country",
regionConnector: "OR"
} }
}, },
methods: { methods: {
@@ -68,6 +69,7 @@ Vue.component("ns-route-ranges-box", {
this.isAdding = false this.isAdding = false
this.regions = [] this.regions = []
this.regionType = "country" this.regionType = "country"
this.regionConnector = "OR"
this.isReverse = false this.isReverse = false
}, },
confirmIPRange: function () { confirmIPRange: function () {
@@ -131,6 +133,7 @@ Vue.component("ns-route-ranges-box", {
} }
this.ranges.push({ this.ranges.push({
type: "region", type: "region",
connector: this.regionConnector,
params: { params: {
regions: this.regions, regions: this.regions,
isReverse: this.isReverse isReverse: this.isReverse
@@ -362,10 +365,24 @@ Vue.component("ns-route-ranges-box", {
<span class="red" v-if="range.params.isReverse">[排除]</span> <span class="red" v-if="range.params.isReverse">[排除]</span>
<span v-if="range.type == 'ipRange'">IP范围</span> <span v-if="range.type == 'ipRange'">IP范围</span>
<span v-if="range.type == 'cidr'">CIDR</span> <span v-if="range.type == 'cidr'">CIDR</span>
<span v-if="range.type == 'region'">区域:</span> <span v-if="range.type == 'region'"></span>
<span v-if="range.type == 'ipRange'">{{range.params.ipFrom}} - {{range.params.ipTo}}</span> <span v-if="range.type == 'ipRange'">{{range.params.ipFrom}} - {{range.params.ipTo}}</span>
<span v-if="range.type == 'cidr'">{{range.params.cidr}}</span> <span v-if="range.type == 'cidr'">{{range.params.cidr}}</span>
<span v-if="range.type == 'region'"><span v-for="(region, index) in range.params.regions">{{region.name}}<span v-if="index < range.params.regions.length - 1"></span></span></span> <span v-if="range.type == 'region'">
<span v-for="(region, index) in range.params.regions">
<span v-if="region.type == 'country'">国家/地区</span>
<span v-if="region.type == 'province'">省份</span>
<span v-if="region.type == 'city'">城市</span>
<span v-if="region.type == 'provider'">ISP</span>
{{region.name}}
<span v-if="index < range.params.regions.length - 1" class="grey">
&nbsp;
<span v-if="range.connector == 'OR' || range.connector == '' || range.connector == null">或</span>
<span v-if="range.connector == 'AND'">且</span>
&nbsp;
</span>
</span>
</span>
&nbsp; <a href="" title="删除" @click.prevent="remove(index)"><i class="icon remove small"></i></a> &nbsp; <a href="" title="删除" @click.prevent="remove(index)"><i class="icon remove small"></i></a>
</div> </div>
<div class="ui divider"></div> <div class="ui divider"></div>
@@ -488,9 +505,21 @@ Vue.component("ns-route-ranges-box", {
<tr> <tr>
<td>已添加</td> <td>已添加</td>
<td> <td>
<div v-for="(region, index) in regions" class="ui label small basic"> <span v-for="(region, index) in regions">
{{region.name}} <a href="" title="删除" @click.prevent="removeRegion(index)"><i class="icon remove small"></i></a> <span class="ui label small basic">
</div> <span v-if="region.type == 'country'">国家/地区</span>
<span v-if="region.type == 'province'">省份</span>
<span v-if="region.type == 'city'">城市</span>
<span v-if="region.type == 'provider'">ISP</span>
{{region.name}} <a href="" title="删除" @click.prevent="removeRegion(index)"><i class="icon remove small"></i></a>
</span>
<span v-if="index < regions.length - 1" class="grey">
&nbsp;
<span v-if="regionConnector == 'OR' || regionConnector == ''">或</span>
<span v-if="regionConnector == 'AND'">且</span>
&nbsp;
</span>
</span>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -526,6 +555,17 @@ Vue.component("ns-route-ranges-box", {
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<td>区域之间关系</td>
<td>
<select class="ui dropdown auto-width" v-model="regionConnector">
<option value="OR">或</option>
<option value="AND">且</option>
</select>
<p class="comment" v-if="regionConnector == 'OR'">匹配所选任一区域即认为匹配成功。</p>
<p class="comment" v-if="regionConnector == 'AND'">匹配所有所选区域才认为匹配成功。</p>
</td>
</tr>
<tr> <tr>
<td>排除</td> <td>排除</td>
<td> <td>