You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
4.7 KiB
138 lines
4.7 KiB
<?php |
|
/** |
|
* @copyright ©2018 浙江禾匠信息科技 |
|
* @author Lu Wei |
|
* @link http://www.zjhejiang.com/ |
|
* Created by IntelliJ IDEA |
|
* Date Time: 2018/10/23 14:12 |
|
*/ |
|
$this->title = '站点授权信息'; |
|
?> |
|
<style> |
|
.container { |
|
max-width: 800px; |
|
margin: 20px auto; |
|
} |
|
|
|
.card-header { |
|
font-weight: bold; |
|
} |
|
|
|
.info-row { |
|
margin: 15px 0; |
|
} |
|
|
|
.row-label { |
|
display: inline-block; |
|
min-width: 80px; |
|
} |
|
|
|
.ip-item { |
|
display: inline-block; |
|
margin-right: 20px; |
|
} |
|
</style> |
|
<div id="app"> |
|
<div class="container"> |
|
<el-card shadow="never"> |
|
<div slot="header" class="clearfix"> |
|
<span class="card-header"><?= $this->title ?></span> |
|
</div> |
|
<div> |
|
<?php if ($code == 0): ?> |
|
<div class="info-row"> |
|
<span class="row-label">授权状态</span> |
|
<span style="color: #67C23A">已授权</span> |
|
</div> |
|
<div class="info-row"> |
|
<span class="row-label">站点名称</span> |
|
<span><?= $data['host']['name'] ?></span> |
|
</div> |
|
<div class="info-row"> |
|
<span class="row-label">授权站点</span> |
|
<span> |
|
<?= $data['host']['protocol'] . $data['host']['domain'] ?> |
|
<el-button type="text" @click="testSite" :loading="loading">云服务检测</el-button> |
|
<template v-if="siteTestResult !== null"> |
|
<span v-if="siteTestResult" style="color: #67C23A">云服务正常</span> |
|
<span v-else style="color: #F56C6C">云服务出错,<a href="javascript:" |
|
@click="showSiteTestDetail">查看详情</a></span> |
|
</template> |
|
</span> |
|
</div> |
|
<div class="info-row"> |
|
<span class="row-label">授权IP(<?= count($data['host']['host_ips']) ?>)</span> |
|
<span> |
|
<?php foreach ($data['host']['host_ips'] as $item): ?> |
|
<span class="ip-item"><?= $item['ip'] ?></span> |
|
<?php endforeach; ?> |
|
</span> |
|
</div> |
|
<?php else: ?> |
|
<div class="info-row"> |
|
<div class="info-row"> |
|
<span class="row-label">授权状态</span> |
|
<span style="color: #F56C6C">未授权</span> |
|
</div> |
|
<span class="row-label">授权状态</span> |
|
<span><?= $msg ?></span> |
|
</div> |
|
<?php endif; ?> |
|
</div> |
|
</el-card> |
|
</div> |
|
</div> |
|
<script> |
|
const app = new Vue({ |
|
el: '#app', |
|
data() { |
|
return { |
|
loading: false, |
|
siteTestResult: null, |
|
siteTestDetail: null, |
|
}; |
|
}, |
|
created() { |
|
}, |
|
methods: { |
|
testSite() { |
|
this.loading = true; |
|
this.siteTestResult = null; |
|
this.siteTestDetail = null; |
|
client({ |
|
url: '<?=$remoteTestSiteUrl?>', |
|
method: 'post', |
|
data: { |
|
url: '<?=$localTestSiteUrl?>', |
|
} |
|
}).then(e => { |
|
this.loading = false; |
|
if (e.data.code === 0) { |
|
this.siteTestResult = true; |
|
} else if (e.data.code === 1) { |
|
this.siteTestResult = false; |
|
this.siteTestDetail = e.data.data; |
|
} else { |
|
this.siteTestResult = false; |
|
this.siteTestDetail = e; |
|
} |
|
}); |
|
}, |
|
showSiteTestDetail() { |
|
let content = ''; |
|
if (this.siteTestDetail.desc) { |
|
content += `<div>${this.siteTestDetail.desc}</div>`; |
|
content += `<div>预期返回: ${this.siteTestDetail.expect}</div>`; |
|
content += `<div>实际返回: ${this.siteTestDetail.body}</div>`; |
|
} else if (this.siteTestDetail) { |
|
content += `<div>${this.siteTestDetail}</div>`; |
|
} else { |
|
content = '连接云服务器出错。'; |
|
} |
|
this.$alert(content, '云服务检测结果:', { |
|
dangerouslyUseHTMLString: true |
|
}); |
|
}, |
|
}, |
|
}); |
|
</script>
|
|
|