mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	删除不需要的文件
This commit is contained in:
		@@ -1,7 +0,0 @@
 | 
			
		||||
<first-menu>
 | 
			
		||||
    <!--<menu-item href="/clusters/monitors" code="index">任务</menu-item>-->
 | 
			
		||||
    <!--<menu-item href="/clusters/monitors/logs" code="log">日志</menu-item>-->
 | 
			
		||||
    <menu-item href="/clusters/monitors/reporters" code="reporter">终端</menu-item>
 | 
			
		||||
    <menu-item href="/clusters/monitors/groups" code="group">分组</menu-item>
 | 
			
		||||
    <menu-item href="/clusters/monitors/settings" code="setting">设置</menu-item>
 | 
			
		||||
</first-menu>
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
{$layout "layout_popup"}
 | 
			
		||||
 | 
			
		||||
<h3>创建分组</h3>
 | 
			
		||||
<form class="ui form" data-tea-action="$" data-tea-success="success">
 | 
			
		||||
    <csrf-token></csrf-token>
 | 
			
		||||
    <table class="ui table definition selectable">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class="title">分组名称</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <input type="text" name="name" maxlength="50" ref="focus"/>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <submit-btn></submit-btn>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
{$layout "layout_popup"}
 | 
			
		||||
 | 
			
		||||
<h3>修改分组</h3>
 | 
			
		||||
<form class="ui form" data-tea-action="$" data-tea-success="success">
 | 
			
		||||
    <csrf-token></csrf-token>
 | 
			
		||||
    <input type="hidden" name="groupId" :value="group.id"/>
 | 
			
		||||
    <table class="ui table definition selectable">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class="title">分组名称</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <input type="text" name="name" maxlength="50" ref="focus" v-model="group.name"/>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <submit-btn></submit-btn>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "../menu"}
 | 
			
		||||
 | 
			
		||||
<second-menu>
 | 
			
		||||
    <menu-item @click.prevent="createGroup">[添加分组]</menu-item>
 | 
			
		||||
</second-menu>
 | 
			
		||||
 | 
			
		||||
<p class="comment" v-if="groups.length == 0">暂时还没有分组。</p>
 | 
			
		||||
<table class="ui table selectable celled" v-if="groups.length > 0">
 | 
			
		||||
    <thead>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <th>分组名称</th>
 | 
			
		||||
            <th class="two wide">操作</th>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </thead>
 | 
			
		||||
    <tr v-for="group in groups">
 | 
			
		||||
        <td>{{group.name}}</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <a href="" @click.prevent="updateGroup(group.id)">修改</a>  
 | 
			
		||||
            <a href="" @click.prevent="deleteGroup(group.id)">删除</a>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.createGroup = function () {
 | 
			
		||||
		teaweb.popup(".createPopup", {
 | 
			
		||||
			callback: function () {
 | 
			
		||||
				teaweb.success("保存成功", function () {
 | 
			
		||||
					teaweb.reload()
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.updateGroup = function (groupId) {
 | 
			
		||||
		teaweb.popup(".group.updatePopup?groupId=" + groupId, {
 | 
			
		||||
			callback: function () {
 | 
			
		||||
				teaweb.success("保存成功", function () {
 | 
			
		||||
					teaweb.reload()
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.deleteGroup = function (groupId) {
 | 
			
		||||
		teaweb.confirm("确定要删除此分组吗?", function () {
 | 
			
		||||
			this.$post(".group.delete")
 | 
			
		||||
				.params({
 | 
			
		||||
					groupId: groupId
 | 
			
		||||
				})
 | 
			
		||||
				.refresh()
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
@@ -1,60 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "menu"}
 | 
			
		||||
 | 
			
		||||
<div class="margin"></div>
 | 
			
		||||
 | 
			
		||||
<form class="ui form" method="get" action="/clusters/monitors">
 | 
			
		||||
    <div class="ui fields inline">
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            集群:
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <select class="ui dropdown" name="clusterId" v-model="clusterId">
 | 
			
		||||
                <option v-for="cluster in clusters" :value="cluster.id">{{cluster.name}}</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <button class="ui button" type="submit">查看</button>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
<p class="comment" v-if="tasks.length == 0">暂时还没有任务。</p>
 | 
			
		||||
 | 
			
		||||
<table class="ui table selectable celled" v-if="tasks.length > 0">
 | 
			
		||||
    <thead>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <th>节点</th>
 | 
			
		||||
            <th>IP</th>
 | 
			
		||||
            <th class="one wide">端口</th>
 | 
			
		||||
            <th>综合延时</th>
 | 
			
		||||
            <th>综合级别</th>
 | 
			
		||||
            <th>综合连通率</th>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </thead>
 | 
			
		||||
    <tr v-for="task in tasks">
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="task.node.id > 0">{{task.node.name}}<link-icon :href="'/clusters/cluster/node?nodeId=' + task.node.id + '&clusterId=' + clusterId"></link-icon></span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            {{task.ip}}<link-icon :href="'/clusters/ip-addrs/addr?addrId=' + task.addr.id"></link-icon>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="task.port > 0">{{task.port}}</span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="task.costMs > 0" :class="task.color">{{task.costMs}}ms</span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span :class="task.color">{{task.levelName}}</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="task.connectivity > 0" :class="task.color">{{task.connectivity}}%</span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<div class="page" v-html="page"></div>
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.tasks.forEach(function (v) {
 | 
			
		||||
		switch (v.level) {
 | 
			
		||||
			case "good":
 | 
			
		||||
				v.color = "green"
 | 
			
		||||
				break
 | 
			
		||||
			case "normal":
 | 
			
		||||
				v.color = "blue"
 | 
			
		||||
				break
 | 
			
		||||
			case "bad":
 | 
			
		||||
				v.color = "orange"
 | 
			
		||||
				break
 | 
			
		||||
			case "broken":
 | 
			
		||||
				v.color = "red"
 | 
			
		||||
				break
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
})
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "menu"}
 | 
			
		||||
@@ -1,47 +0,0 @@
 | 
			
		||||
{$layout "layout_popup"}
 | 
			
		||||
 | 
			
		||||
<h3>添加终端</h3>
 | 
			
		||||
<form class="ui form" data-tea-success="success" data-tea-action="$">
 | 
			
		||||
    <csrf-token></csrf-token>
 | 
			
		||||
    <table class="ui table definition selectable">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class="title">终端名称 *</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <input type="text" name="name" maxlength="50" ref="focus"/>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>所属分组</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <report-node-groups-selector></report-node-groups-selector>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td colspan="2"><more-options-indicator></more-options-indicator></td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tbody v-show="moreOptionsVisible">
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>区域</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <input type="text" name="location" maxlength="50"/>
 | 
			
		||||
                    <p class="comment">终端所在地域。</p>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>网络提供商</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <input type="text" name="isp" maxlength="50"/>
 | 
			
		||||
                    <p class="comment">终端所属网络供应商。</p>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>允许的终端IP</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <values-box name="allowIPs"></values-box>
 | 
			
		||||
                    <p class="comment">如果不为空,则只有这些IP才能连接API。支持单个IP、CIDR格式的IP段和IP1-IP2这样的IP段。</p>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
        </tbody>
 | 
			
		||||
    </table>
 | 
			
		||||
    <submit-btn></submit-btn>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -1,77 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "../menu"}
 | 
			
		||||
 | 
			
		||||
<second-menu>
 | 
			
		||||
    <menu-item @click.prevent="createReporter">[添加终端]</menu-item>
 | 
			
		||||
</second-menu>
 | 
			
		||||
 | 
			
		||||
<form class="ui form" method="get" action="/clusters/monitors/reporters">
 | 
			
		||||
    <div class="ui fields inline">
 | 
			
		||||
        <div class="ui field" v-if="groups.length > 0">
 | 
			
		||||
            <select class="ui dropdown auto-width" name="groupId" v-model="groupId">
 | 
			
		||||
                <option value="0">[全部分组]</option>
 | 
			
		||||
                <option v-for="group in groups" :value="group.id">{{group.name}}</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <input type="text" name="keyword" v-model="keyword" placeholder="名称、地域、IP..."/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <button class="ui button" type="submit">搜索</button>
 | 
			
		||||
             
 | 
			
		||||
            <a href="/clusters/monitors/reporters" v-if="groupId > 0 || keyword.length > 0">[清除条件]</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p class="comment" v-if="reporters.length == 0">暂时还没有终端。</p>
 | 
			
		||||
 | 
			
		||||
<table class="ui table selectable celled" v-if="reporters.length > 0">
 | 
			
		||||
    <thead>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <th>终端名称</th>
 | 
			
		||||
            <th>区域</th>
 | 
			
		||||
            <th>网络提供商</th>
 | 
			
		||||
            <th>当前IP</th>
 | 
			
		||||
            <th class="one wide">状态</th>
 | 
			
		||||
            <th class="two op">操作</th>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </thead>
 | 
			
		||||
    <tr v-for="reporter in reporters">
 | 
			
		||||
        <td>
 | 
			
		||||
            <a :href="Tea.url('.reporter', {reporterId: reporter.id})"><keyword :v-word="keyword">{{reporter.name}}</keyword></a>
 | 
			
		||||
            <div v-if="reporter.groups.length > 0">
 | 
			
		||||
                <grey-label v-for="group in reporter.groups">{{group.name}}</grey-label>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div v-if="reporter.shouldUpgrade">
 | 
			
		||||
                <span class="red small" title="需要升级">v{{reporter.status.buildVersion}} -> v{{reporter.newVersion}}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="reporter.location.length > 0"><keyword :v-word="keyword">{{reporter.location}}</keyword></span>
 | 
			
		||||
            <span v-else-if="reporter.status.location.length > 0" class="grey"><keyword :v-word="keyword">{{reporter.status.location}}</keyword></span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="reporter.isp.length > 0"><keyword :v-word="keyword">{{reporter.isp}}</keyword></span>
 | 
			
		||||
            <span v-else-if="reporter.status.isp.length > 0" class="grey"><keyword :v-word="keyword">{{reporter.status.isp}}</keyword></span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="reporter.status.ip.length > 0"><keyword :v-word="keyword">{{reporter.status.ip}}</keyword></span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="!reporter.isOn" class="red">禁用</span>
 | 
			
		||||
            <span v-else-if="!reporter.isActive" class="red">离线</span>
 | 
			
		||||
            <span v-else class="green">在线</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <a :href="Tea.url('.reporter', {reporterId: reporter.id})">详情</a>  
 | 
			
		||||
            <a href="" @click.prevent="deleteReporter(reporter.id)">删除</a>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<div class="page" v-html="page"></div>
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.createReporter = function () {
 | 
			
		||||
		teaweb.popup(".createPopup", {
 | 
			
		||||
			callback: function () {
 | 
			
		||||
				teaweb.success("保存成功", function () {
 | 
			
		||||
					teaweb.reload()
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.deleteReporter = function (reporterId) {
 | 
			
		||||
		teaweb.confirm("确定要删除此终端吗?", function () {
 | 
			
		||||
			this.$post(".reporter.delete")
 | 
			
		||||
				.params({
 | 
			
		||||
					reporterId: reporterId
 | 
			
		||||
				})
 | 
			
		||||
				.success(function () {
 | 
			
		||||
					teaweb.success("删除成功", function () {
 | 
			
		||||
						teaweb.reload()
 | 
			
		||||
					})
 | 
			
		||||
				})
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
@@ -1,8 +0,0 @@
 | 
			
		||||
<first-menu>
 | 
			
		||||
    <menu-item href="/clusters/monitors/reporters">所有终端</menu-item>
 | 
			
		||||
    <span class="disabled item">|</span>
 | 
			
		||||
    <menu-item :href="'/clusters/monitors/reporters/reporter?reporterId=' + reporter.id" code="reporter">"{{reporter.name}}"详情</menu-item>
 | 
			
		||||
    <menu-item :href="'/clusters/monitors/reporters/reporter/results?reporterId=' + reporter.id" code="result">监控结果</menu-item>
 | 
			
		||||
    <menu-item :href="'/clusters/monitors/reporters/reporter/logs?reporterId=' + reporter.id" code="log">运行日志</menu-item>
 | 
			
		||||
    <menu-item :href="'/clusters/monitors/reporters/reporter/update?reporterId=' + reporter.id" code="update">修改</menu-item>
 | 
			
		||||
</first-menu>
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "/code_editor"}
 | 
			
		||||
{$template "reporter_menu"}
 | 
			
		||||
 | 
			
		||||
<table class="ui table definition selectable">
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td class="title">终端名称</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            {{reporter.name}}
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>状态</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="!reporter.isOn" class="red">禁用</span>
 | 
			
		||||
            <span v-else-if="!reporter.isActive" class="red">离线</span>
 | 
			
		||||
            <span v-else class="green">在线</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>所属分组</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <div v-if="reporter.groups.length > 0">
 | 
			
		||||
                <span v-for="group in reporter.groups" class="ui label basic tiny">{{group.name}}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span v-else class="disabled">全部分组</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>区域</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="reporter.location.length > 0">{{reporter.location}}</span>
 | 
			
		||||
            <span v-else-if="reporter.status.location.length > 0" class="grey">{{reporter.status.location}}</span>
 | 
			
		||||
            <span v-else class="disabled">没有设置</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>网络提供商</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="reporter.isp.length > 0">{{reporter.isp}}</span>
 | 
			
		||||
            <span v-else-if="reporter.status.isp.length > 0" class="grey">{{reporter.status.isp}}</span>
 | 
			
		||||
            <span v-else class="disabled">没有设置</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>允许的终端IP</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <div v-if="reporter.allowIPs != null && reporter.allowIPs.length > 0">
 | 
			
		||||
                <span v-for="ip in reporter.allowIPs" class="ui label tiny basic">{{ip}}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span v-else class="disabled">没有设置</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr v-if="reporter.status.buildVersion.length > 0">
 | 
			
		||||
        <td>版本号</td>
 | 
			
		||||
        <td>v{{reporter.status.buildVersion}}</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<h4>安装信息</h4>
 | 
			
		||||
<table class="ui table definition selectable">
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td class="title">节点ID</td>
 | 
			
		||||
        <td>{{reporter.uniqueId}}</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>节点Secret</td>
 | 
			
		||||
        <td>{{reporter.secret}}</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>配置文件</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            configs/api_reporter.yaml 
 | 
			
		||||
            <download-link :v-element="'rpc-code'" :v-file="'api_reporter.yaml'">[下载]</download-link >
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <td>配置内容</td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <source-code-box id="rpc-code" type="text/yaml">rpc.endpoints: [ {{apiEndpoints}} ]
 | 
			
		||||
nodeId: "{{reporter.uniqueId}}"
 | 
			
		||||
secret: "{{reporter.secret}}"</source-code-box>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
@@ -1,52 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "reporter_menu"}
 | 
			
		||||
{$template "/datepicker"}
 | 
			
		||||
 | 
			
		||||
<div class="margin"></div>
 | 
			
		||||
 | 
			
		||||
<form method="get" :action="Tea.url('$')" class="ui form" autocomplete="off">
 | 
			
		||||
    <input type="hidden" name="reporterId" :value="reporter.id"/>
 | 
			
		||||
    <div class="ui fields inline">
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <input type="text" name="dayFrom" placeholder="开始日期" v-model="dayFrom" value="" style="width:8em" id="day-from-picker"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <input type="text" name="dayTo" placeholder="结束日期" v-model="dayTo" value="" style="width:8em" id="day-to-picker"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <select class="ui dropdown" name="level" v-model="level">
 | 
			
		||||
                <option value="">[级别]</option>
 | 
			
		||||
                <option value="error">错误</option>
 | 
			
		||||
                <option value="warning">警告</option>
 | 
			
		||||
                <option value="info">信息</option>
 | 
			
		||||
                <option value="success">成功</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <input type="text" name="keyword" style="width:10em" v-model="keyword" placeholder="关键词"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <button type="submit" class="ui button">查询</button>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field" v-if="dayFrom.length > 0 || dayTo.length > 0 || keyword.length > 0 || level.length > 0">
 | 
			
		||||
            <a :href="Tea.url('.logs', { reporterId:reporter.id })">[清除条件]</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
<p class="comment" v-if="logs.length == 0">暂时还没有日志。</p>
 | 
			
		||||
 | 
			
		||||
<table class="ui table selectable" v-if="logs.length > 0">
 | 
			
		||||
    <thead>
 | 
			
		||||
        <tr>
 | 
			
		||||
 | 
			
		||||
        </tr>
 | 
			
		||||
    </thead>
 | 
			
		||||
    <tr v-for="log in logs">
 | 
			
		||||
        <td>
 | 
			
		||||
            <node-log-row :v-log="log" :v-keyword="keyword"></node-log-row>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<div class="page" v-html="page"></div>
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.$delay(function () {
 | 
			
		||||
		teaweb.datepicker("day-from-picker")
 | 
			
		||||
		teaweb.datepicker("day-to-picker")
 | 
			
		||||
	})
 | 
			
		||||
})
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "reporter_menu"}
 | 
			
		||||
 | 
			
		||||
<div class="ui margin"></div>
 | 
			
		||||
<form class="ui form" action="/clusters/monitors/reporters/reporter/results">
 | 
			
		||||
    <input type="hidden" name="reporterId" :value="reporter.id"/>
 | 
			
		||||
    <div class="ui fields inline">
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <select class="ui dropdown" name="level" v-model="level">
 | 
			
		||||
                <option value="">[级别]</option>
 | 
			
		||||
                <option v-for="level in levels" :value="level.code">{{level.name}}</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <button class="ui button" type="submit">搜索</button>  
 | 
			
		||||
            <a :href="Tea.url('$', {reporterId: reporter.id})" v-if="level.length > 0">[清除条件]</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
<p class="comment" v-if="results.length == 0">暂时还没有监控结果。</p>
 | 
			
		||||
<table class="ui table celled selectable" v-if="results.length > 0">
 | 
			
		||||
    <thead>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <th class="two wide">类型</th>
 | 
			
		||||
            <th class="two wide">检测时间</th>
 | 
			
		||||
            <th class="four wide">对象</th>
 | 
			
		||||
            <th class="one wide">级别</th>
 | 
			
		||||
            <th class="two wide">耗时</th>
 | 
			
		||||
            <th>错误信息</th>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </thead>
 | 
			
		||||
    <tr v-for="result in results">
 | 
			
		||||
        <td>{{result.typeName}}</td>
 | 
			
		||||
        <td>{{result.updatedTime}}</td>
 | 
			
		||||
        <td>{{result.targetDesc}}
 | 
			
		||||
            <span v-if="result.type == 'ipAddr'"><link-icon :href="'/clusters/ip-addrs/addr?addrId=' + result.targetId"></link-icon></span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span :class="result.color">{{result.levelName}}</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="result.isOk" :class="result.color">{{result.costMs}}ms</span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
            <span v-if="!result.isOk" class="red">{{result.error}}</span>
 | 
			
		||||
            <span v-else class="disabled">-</span>
 | 
			
		||||
        </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<div class="page" v-html="page"></div>
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.results.forEach(function (v) {
 | 
			
		||||
		switch (v.level) {
 | 
			
		||||
			case "good":
 | 
			
		||||
				v.color = "green"
 | 
			
		||||
				break
 | 
			
		||||
			case "normal":
 | 
			
		||||
				v.color = "blue"
 | 
			
		||||
				break
 | 
			
		||||
			case "bad":
 | 
			
		||||
				v.color = "orange"
 | 
			
		||||
				break
 | 
			
		||||
			case "broken":
 | 
			
		||||
				v.color = "red"
 | 
			
		||||
				break
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
})
 | 
			
		||||
@@ -1,54 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "reporter_menu"}
 | 
			
		||||
 | 
			
		||||
<form class="ui form" data-tea-success="success" data-tea-action="$">
 | 
			
		||||
    <csrf-token></csrf-token>
 | 
			
		||||
    <input type="hidden" name="reporterId" :value="reporter.id"/>
 | 
			
		||||
    <table class="ui table definition selectable">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class="title">终端名称 *</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <input type="text" name="name" maxlength="50" ref="focus" v-model="reporter.name"/>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>所属分组</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <report-node-groups-selector :v-group-ids="reporter.groupIds"></report-node-groups-selector>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td colspan="2"><more-options-indicator></more-options-indicator></td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tbody v-show="moreOptionsVisible">
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>区域</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <input type="text" name="location" maxlength="50" v-model="reporter.location"/>
 | 
			
		||||
                    <p class="comment">终端所在地域。</p>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>网络提供商</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <input type="text" name="isp" maxlength="50" v-model="reporter.isp"/>
 | 
			
		||||
                    <p class="comment">终端所属网络供应商。</p>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>允许的终端IP</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <values-box name="allowIPs" :values="reporter.allowIPs"></values-box>
 | 
			
		||||
                    <p class="comment">如果不为空,则只有这些IP才能连接API。支持单个IP、CIDR格式的IP段和IP1-IP2这样的IP段。</p>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td>是否启用</td>
 | 
			
		||||
                <td>
 | 
			
		||||
                    <checkbox name="isOn" v-model="reporter.isOn"></checkbox>
 | 
			
		||||
                </td>
 | 
			
		||||
            </tr>
 | 
			
		||||
        </tbody>
 | 
			
		||||
    </table>
 | 
			
		||||
    <submit-btn></submit-btn>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.success = NotifySuccess("保存成功", Tea.url(".", {reporterId: this.reporter.id}))
 | 
			
		||||
})
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "../menu"}
 | 
			
		||||
 | 
			
		||||
<form class="ui form" data-tea-action="$" data-tea-success="success">
 | 
			
		||||
    <csrf-token></csrf-token>
 | 
			
		||||
    <table class="ui table definition selectable">
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class="title">提醒连通性阈值</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <div class="ui input right labeled">
 | 
			
		||||
                    <input type="text" maxlength="4" size="2" name="minNotifyConnectivity" v-model="setting.minNotifyConnectivity"/>
 | 
			
		||||
                    <span class="ui label">%</span>
 | 
			
		||||
                </div>
 | 
			
		||||
                <p class="comment">取值0到100,当单个被监控对象连通性低于此值时(不包含此值)发送消息提醒。<span v-if="setting.minNotifyConnectivity == 100">100%表示只要有任何访问异常的情形都会发送提醒。</span></p>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td>通知URL</td>
 | 
			
		||||
            <td>
 | 
			
		||||
                <input type="text" name="notifyWebHookURL" maxlength="1000" v-model="setting.notifyWebHookURL" placeholder="https://..."/>
 | 
			
		||||
                <p class="comment">当达到连通性阈值时将监控对象的信息发送到此URL上。</p>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <submit-btn></submit-btn>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.success = NotifyReloadSuccess("保存成功")
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user