325 lines
14 KiB
Plaintext
325 lines
14 KiB
Plaintext
|
||
|
||
@using Hncore.Pass.Vpn.Domain
|
||
@using Hncore.Infrastructure.Extension
|
||
@using Hncore.Pass.Vpn.Service
|
||
@inject ProductService m_ProductService
|
||
@model List<ProductRouteEntity>
|
||
@{
|
||
var pid = this.Context.Request.GetInt("ProductId");
|
||
var product = ViewData["products"] as List<ProductEntity>;
|
||
var currentProduct =(await m_ProductService.GetById(pid)) ?? new ProductEntity();
|
||
|
||
var lineTotalCount = Model.Count;
|
||
var lineCount = Model.Where(m=>m.Status== "正常").Count();
|
||
}
|
||
<style>
|
||
.blueLine img {
|
||
display: inline !important;
|
||
}
|
||
</style>
|
||
<div id="app">
|
||
<div class="container-fluid softBg">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div style="float: left;" class="col-lg-3 zxbz">
|
||
<img src="~/img/img_xinalu.png">
|
||
</div>
|
||
<div style="float: left;" class="col-lg-5 searchInput">
|
||
<span style="float: left;width:10%;margin-top:60px;height:40px;line-height:200%" class="input-group-addon">全部</span>
|
||
<input style="float: left;width:90%;margin-top:60px;border: none;border-radius:0px" class="form-control" v-on:keyup.13="search_all()" type="text" v-model="search_all_data" name="KeyWord" placeholder="输入地区/名称/服务器" />
|
||
</div>
|
||
<div class="col-lg-2 searchBtn text-left">
|
||
<button v-on:click="search_all()" class="btn btn-search">搜索全部</button>
|
||
</div>
|
||
<div class="col-lg-2">
|
||
<span class="btnZhilian cursor"><a asp-index="" asp-controller="article" asp-route-Catalog="4" style="color:white"><img src="~/img/zhilian.png">直连教程</a></span>
|
||
</div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col-lg-3">
|
||
|
||
</div>
|
||
<div class="col-lg-9">
|
||
<p class="hot"><img src="~/img/shuju.png">实时总线路:{{count}}条<img src="~/img/shuju.png">实时可用线路:{{use_count}}条 所有线路均支持:【电脑/安卓/苹果】【IP/L2TP/SSTP】</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="container">
|
||
<p style="text-align: center;font-size: 25px;color:red;">*****公告*****</p>
|
||
<p style="text-align: center;font-size: 20px;">*聚IP商城全线服务器都已更新,可显示实时维护状态及服务器负载情况*</p>
|
||
<a style="margin-left: 45%;" href="/linelist/index2" class="btn btn-primary">*查看老版本服务器*</a>
|
||
<p style="text-align: center;font-size: 20px;">*温馨提示:请尽快替换使用新版服务器,老版因不能实时更新维护状态,将于12月1号停止维护*</p>
|
||
<p class="xianluIntro" style="text-align: center;font-size: 25px;">*线路表和账号必须为同一产品才能使用。</p>
|
||
<div class="xianlu">
|
||
@foreach (var item in product.Where(m => m.Id != 3 && m.Id != 7 && m.Id != 9))
|
||
{
|
||
<div v-on:click="select_product(@item.Id)" id="product-@item.Id" class="item @(item.Id==pid?"blueLine":"")" a-pid="@item.Id" a-name="@item.Name">
|
||
<span>@item.Name</span><img src="~/img/check.png">
|
||
</div>
|
||
}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-2 miyao">
|
||
<p><img src="~/img/miyao.png"> L2TP密钥:<b style="color:red;">{{l2tp}}</b></p>
|
||
<p><img src="~/img/dk.png"> SSTP端口:<b style="color:red;">{{sstp}}</b></p>
|
||
</div>
|
||
<div class="col-lg-10">
|
||
<span style="float: left;width:10%;height:34px;line-height:150%" class="input-group-addon">{{search_field}}</span>
|
||
<input style="width:40%" v-on:keyup.13="search_product()" type="text" v-model="search_product_data" name="KeyWord" class="searchDq" placeholder="输入地区/名称/服务器" />
|
||
<button v-on:click="search_product()" class="btn btn-primary">搜索当前线路表</button>
|
||
<span class="daochu" v-on:click="export_data()" ><img src="~/img/excel.png">导出Excel</span>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="container" >
|
||
<table class="table table-striped xianluTable" style="margin-bottom: 10px;">
|
||
<tr>
|
||
<th>产品</th>
|
||
<th>城市</th>
|
||
<th>运营商</th>
|
||
<th>服务器域名</th>
|
||
<th>IP量</th>
|
||
<th>实时带宽</th>
|
||
<th>维护状态</th>
|
||
<th>负载状态</th>
|
||
</tr>
|
||
|
||
<tr v-for="site in table_data" :style="(site.online=='故障')?'color:#ec5656;':''">
|
||
<td>{{site.name}}</td>
|
||
<td colspan="7" v-if="!site.nasname" style="color:#339933;font-weight:bold;">{{site.city}}</td>
|
||
<td v-if="site.nasname">{{site.city}}</td>
|
||
<td v-if="site.nasname">{{site.supply}}</td>
|
||
<td v-if="site.nasname">{{site.nasname}}</td>
|
||
<td v-if="site.nasname">{{site.ip}}</td>
|
||
<td v-if="site.nasname">{{site.daikuan}}</td>
|
||
<td v-if="site.nasname">{{site.online}}</td>
|
||
<td v-if="site.nasname">{{site.status}}</td>
|
||
</tr>
|
||
</table>
|
||
<div v-if="!is_all && (product_id == 0)" class="text-center" style="margin-bottom: 20px;">
|
||
<button @@click="get_index_data()" type="button" class="btn btn-link" style="font-size:25px;">
|
||
------------------------------------------更多
|
||
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-chevron-double-down" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||
<path fill-rule="evenodd" d="M1.646 6.646a.5.5 0 0 1 .708 0L8 12.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/>
|
||
<path fill-rule="evenodd" d="M1.646 2.646a.5.5 0 0 1 .708 0L8 8.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/>
|
||
</svg>
|
||
------------------------------------------
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script src="~/js/vue.js"></script>
|
||
<script type="text/javascript">
|
||
|
||
var app = new Vue({
|
||
el: '#app',
|
||
data: {
|
||
table_data: [],
|
||
search_all_data: '',
|
||
search_product_data:'',
|
||
product_id:0,
|
||
l2tp:'',
|
||
search_field:'全部',
|
||
sstp:'',
|
||
count:0,
|
||
use_count:0,
|
||
all_data: [],
|
||
is_all: false
|
||
},
|
||
computed: {
|
||
|
||
},
|
||
watch: {
|
||
|
||
},
|
||
created: function () {
|
||
this.select_product(0);
|
||
},
|
||
methods: {
|
||
select_product(ProductId){
|
||
this.product_id = ProductId;
|
||
let datalist = [];
|
||
let count = 0;
|
||
let use_count = 0;
|
||
$("div").removeClass("blueLine");
|
||
$("#product-"+ProductId).addClass("blueLine");
|
||
switch(ProductId){
|
||
case 2:
|
||
this.l2tp = '123';
|
||
this.search_field = '讯连IP';
|
||
this.sstp = '1500';
|
||
break;
|
||
case 4:
|
||
this.l2tp = '123456';
|
||
this.search_field = '金瑞IP';
|
||
this.sstp = '4438';
|
||
break;
|
||
case 5:
|
||
this.l2tp = 'ipdd';
|
||
this.search_field = '老鹰IP';
|
||
this.sstp = '4430';
|
||
break;
|
||
case 6:
|
||
this.l2tp = '123';
|
||
this.search_field = '先锋IP';
|
||
this.sstp = '6665';
|
||
break;
|
||
case 10:
|
||
this.l2tp = '88';
|
||
this.search_field = '无限-单窗口单ip';
|
||
this.sstp = '';
|
||
break;
|
||
case 13:
|
||
this.l2tp = '123456';
|
||
this.search_field = '极客IP';
|
||
this.sstp = '4433';
|
||
break;
|
||
case 17:
|
||
this.l2tp = '123456';
|
||
this.search_field = '西瓜IP';
|
||
this.sstp = '4433';
|
||
break;
|
||
case 14:
|
||
this.l2tp = '91ip';
|
||
this.search_field = '天天IP';
|
||
this.sstp = '4430';
|
||
break;
|
||
case 15:
|
||
this.l2tp = '66';
|
||
this.search_field = '共享IP';
|
||
this.sstp = '888';
|
||
break;
|
||
case 16:
|
||
this.l2tp = '8899';
|
||
this.search_field = '实惠IP';
|
||
this.sstp = '不支持';
|
||
break;
|
||
case 1:
|
||
this.l2tp = '888888';
|
||
this.search_field = '强子IP';
|
||
this.sstp = '1500';
|
||
break;
|
||
case 8:
|
||
this.l2tp = '88';
|
||
this.search_field = '星星IP';
|
||
this.sstp = '6666';
|
||
break;
|
||
}
|
||
$.ajax({
|
||
type: 'GET',
|
||
url: 'http://php-api.juip.com/script/linedata/display.php?product=' + ProductId,
|
||
dataType: "json",
|
||
async:false,
|
||
success: function (res) {
|
||
datalist = res.data;
|
||
count = res.count;
|
||
use_count = res.use_count;
|
||
}
|
||
});
|
||
if (ProductId == 0){
|
||
this.all_data = datalist;
|
||
let now_data = [];
|
||
for (let i = 0;i<50;i++){
|
||
now_data[i] = datalist[i];
|
||
}
|
||
this.table_data = now_data;
|
||
} else {
|
||
this.table_data = datalist;
|
||
}
|
||
this.count = count;
|
||
if(ProductId != 16){
|
||
this.use_count = use_count;
|
||
} else {
|
||
this.use_count = count;
|
||
}
|
||
},
|
||
get_index_data(){
|
||
this.table_data = this.all_data;
|
||
this.is_all = true;
|
||
},
|
||
search_all(){
|
||
this.is_all = true;
|
||
if(!this.search_all_data){
|
||
this.select_product(0);
|
||
return;
|
||
}
|
||
$.ajax({
|
||
type: 'GET',
|
||
url: 'http://php-api.juip.com/script/linedata/search.php?type=1&info=' + this.search_all_data,
|
||
dataType: "json",
|
||
async:false,
|
||
success: function (res) {
|
||
datalist = res.data;
|
||
}
|
||
});
|
||
this.table_data = datalist;
|
||
},
|
||
search_product(){
|
||
if(!this.search_product_data){
|
||
this.select_product(this.product_id);
|
||
return;
|
||
}
|
||
$.ajax({
|
||
type: 'GET',
|
||
url: 'http://php-api.juip.com/script/linedata/search.php?type=0&productid='+this.product_id+'&info=' + this.search_product_data,
|
||
dataType: "json",
|
||
async:false,
|
||
success: function (res) {
|
||
datalist = res.data;
|
||
}
|
||
});
|
||
this.table_data = datalist;
|
||
},
|
||
export_data(){
|
||
switch(this.product_id){
|
||
case 0:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/all.csv';
|
||
break;
|
||
case 2:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xunlian.csv';
|
||
break;
|
||
case 4:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/jinrui.csv';
|
||
break;
|
||
case 5:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/laoying.csv';
|
||
break;
|
||
case 6:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xianfeng.csv';
|
||
break;
|
||
case 10:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/wuxian.csv';
|
||
break;
|
||
case 13:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/jike.csv';
|
||
break;
|
||
case 14:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/tiantian.csv';
|
||
break;
|
||
case 15:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/gongxiang.csv';
|
||
break;
|
||
case 16:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/shihui.csv';
|
||
break;
|
||
case 1:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/qiangzi.csv';
|
||
break;
|
||
case 8:
|
||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xingxing.csv';
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
})
|
||
</script>
|