Files
juipnet/Host/Views/LineList/Index.cshtml
“wanyongkang” 1cb9f37ee4 蘑菇线路表
2021-01-27 14:33:21 +08:00

330 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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;
case 18:
this.l2tp = '123456';
this.search_field = '蘑菇IP';
this.sstp = '4430';
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>