区域设置中增加节点快速设置区域的功能

This commit is contained in:
GoEdgeLab
2022-10-20 15:11:26 +08:00
parent 71567af989
commit 349b27f2f1
9 changed files with 303 additions and 3 deletions

View File

@@ -0,0 +1,4 @@
<first-menu>
<menu-item href="." code="index">区域</menu-item>
<menu-item href=".nodes" code="node">节点</menu-item>
</first-menu>

View File

@@ -1,4 +1,5 @@
{$layout}
{$template "menu"}
<second-menu>
<menu-item @click.prevent="createRegion()">[创建区域]</menu-item>
@@ -20,7 +21,9 @@
<tbody v-for="region in regions" :v-id="region.id">
<tr>
<td style="text-align: center;"><i class="icon bars handle grey"></i> </td>
<td :class="{disabled: !region.isOn}">{{region.name}}</td>
<td :class="{disabled: !region.isOn}">
<a :href="'/clusters/regions/nodes?regionId=' + region.id">{{region.name}}</a>
</td>
<td>
<span v-if="region.description.length > 0">{{region.description}}</span>
<span v-else class="disabled">-</span>

View File

@@ -0,0 +1,58 @@
{$layout}
{$template "menu"}
<form class="ui form" method="get" action="/clusters/regions/nodes" v-show="regions.length > 0">
<div class="margin"></div>
<div class="ui fields inline">
<div class="ui field">
<select class="ui dropdown" name="regionId" v-model="regionId">
<option value="0">[所有区域]</option>
<option v-for="region in regions" :value="region.id">{{region.name}}</option>
</select>
</div>
<div class="ui field">
<button type="submit" class="ui button">搜索</button>
&nbsp;
<a href="/clusters/regions/nodes" v-if="regionId > 0">[清除条件]</a>
</div>
</div>
</form>
<div v-if="nodes.length == 0">
<p class="comment"><span v-if="regionId > 0">当前区域下</span>暂时还没有节点。</p>
</div>
<div v-if="nodes.length > 0">
<div class="margin"></div>
<table class="ui table selectable celled">
<thead>
<tr>
<th>节点</th>
<th style="width: 30%">集群</th>
<th style="width: 30%">区域</th>
<th class="one op">操作</th>
</tr>
</thead>
<tr v-for="node in nodes" v-if="node.cluster != null">
<td>
<link-icon :href="'/clusters/cluster/node/detail?clusterId=' + node.cluster.id + '&nodeId=' + node.id">{{node.name}}</link-icon>
</td>
<td>
<span v-if="node.cluster != null">{{node.cluster.name}}</span>
<span v-else class="disabled">-</span>
</td>
<td>
<span v-if="node.region != null">{{node.region.name}}</span>
<span v-else class="disabled">尚未设置</span>
</td>
<td>
<a href="" v-if="node.region == null" @click.prevent="updateNodeRegion(node)">设置</a>
<a href="" v-if="node.region != null" @click.prevent="updateNodeRegion(node)">修改</a>
</td>
</tr>
</table>
<p class="comment" v-if="hasNodesWithoutRegion">已经将未设置区域的节点排在了表格最前面。</p>
<page-box></page-box>
</div>

View File

@@ -0,0 +1,12 @@
Tea.context(function () {
this.updateNodeRegion = function (node) {
let nodeId = node.id
let regionId = (node.region ? node.region.id : 0)
teaweb.popup(Tea.url(".updateNodeRegionPopup", { nodeId: nodeId, regionId: regionId }), {
callback: function () {
teaweb.successRefresh("保存成功")
}
})
}
})

View File

@@ -0,0 +1,28 @@
{$layout "layout_popup"}
<h3 v-if="region.id > 0">修改节点区域</h3>
<h3 v-if="region == null || region.id == 0">设置节点区域</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<csrf-token></csrf-token>
<input type="hidden" name="nodeId" :value="node.id"/>
<table class="ui table definition selectable">
<tr>
<td class="title">节点</td>
<td>{{node.name}}</td>
</tr>
<tr>
<td>区域 *</td>
<td>
<select class="ui dropdown auto-width" name="regionId" v-model="region.id">
<option value="0">[选择区域]</option>
<option v-for="r in regions" :value="r.id">{{r.name}}</option>
</select>
</td>
</tr>
</table>
<submit-btn></submit-btn>
</form>