忽略dll文件git
This commit is contained in:
@@ -1,149 +1,149 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 zxbz">
|
||||
<img src="~/img/img_news.png">
|
||||
</div>
|
||||
<div class="col-lg-6 searchInput">
|
||||
<input type="text" name="KeyWord" />
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</div>
|
||||
<div class="col-lg-3 searchBtn text-left">
|
||||
<button type="submit" class="btn btn-search">立即搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid conBg">
|
||||
<div class="container">
|
||||
<div class="fourModel">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/img/ios.png"></a></p>
|
||||
<p>苹果手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="4"><img src="~/img/az.png"></a></p>
|
||||
<p>安卓手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="5"><img src="~/img/mnq.png"></a></p>
|
||||
<p>安卓模拟器教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="6"><img src="~/img/pc.png"></a></p>
|
||||
<p>Windows电脑教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="21"><img src="~/img/pc.png"></a></p>
|
||||
<p>MAC电脑教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="10"><img src="~/img/pc.png"></a></p>
|
||||
<p>软路由教程</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mylist">
|
||||
<ul class="nav nav-tabs newsList" role="tablist">
|
||||
<li role="presentation" class="@(type==1?"active":"")"><a href="?Catalog=1"><img src="~/img/tab1.png">聚头条</a></li>
|
||||
<li role="presentation" class="@(type==2?"active":"")"><a href="?Catalog=2"> <img src="~/img/tab2.png">优惠活动</a></li>
|
||||
<li role="presentation" class="@(type==3?"active":"")"><a href="?Catalog=3"><img src="~/img/tab3.png">常见问题</a></li>
|
||||
<li role="presentation" class="@(type==4?"active":"")"><a href="?Catalog=4"><img src="~/img/tab4.png">新手教程</a></li>
|
||||
@*<li role="presentation" class="@(type==0?"active":"")"><a href="?Catalog=0"><img src="~/img/tab4.png">全部</a></li>*@
|
||||
|
||||
</ul>
|
||||
<div class="tab-content listcon">
|
||||
<div role="tabpanel" class="tab-pane active" id="home">
|
||||
<ul class="listUl">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
@item.Title
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.CreateTime.ToString("yyyy.MM.dd")
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">@item.SubTitle</p>
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">查看全文→</a></p>
|
||||
</li>
|
||||
}
|
||||
|
||||
@*<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>*@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
@*<ul class="pagination">
|
||||
<li class="page-item"><a class="page-link" href="#">上一页</a></li>
|
||||
<li class="page-item"><a class="page-link fenyeActive" href="#">1</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">下一页</a></li>
|
||||
</ul>*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 zxbz">
|
||||
<img src="~/img/img_news.png">
|
||||
</div>
|
||||
<div class="col-lg-6 searchInput">
|
||||
<input type="text" name="KeyWord" />
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</div>
|
||||
<div class="col-lg-3 searchBtn text-left">
|
||||
<button type="submit" class="btn btn-search">立即搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid conBg">
|
||||
<div class="container">
|
||||
<div class="fourModel">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/img/ios.png"></a></p>
|
||||
<p>苹果手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="4"><img src="~/img/az.png"></a></p>
|
||||
<p>安卓手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="5"><img src="~/img/mnq.png"></a></p>
|
||||
<p>安卓模拟器教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="6"><img src="~/img/pc.png"></a></p>
|
||||
<p>Windows电脑教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="21"><img src="~/img/pc.png"></a></p>
|
||||
<p>MAC电脑教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="10"><img src="~/img/pc.png"></a></p>
|
||||
<p>软路由教程</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mylist">
|
||||
<ul class="nav nav-tabs newsList" role="tablist">
|
||||
<li role="presentation" class="@(type==1?"active":"")"><a href="?Catalog=1"><img src="~/img/tab1.png">聚头条</a></li>
|
||||
<li role="presentation" class="@(type==2?"active":"")"><a href="?Catalog=2"> <img src="~/img/tab2.png">优惠活动</a></li>
|
||||
<li role="presentation" class="@(type==3?"active":"")"><a href="?Catalog=3"><img src="~/img/tab3.png">常见问题</a></li>
|
||||
<li role="presentation" class="@(type==4?"active":"")"><a href="?Catalog=4"><img src="~/img/tab4.png">新手教程</a></li>
|
||||
@*<li role="presentation" class="@(type==0?"active":"")"><a href="?Catalog=0"><img src="~/img/tab4.png">全部</a></li>*@
|
||||
|
||||
</ul>
|
||||
<div class="tab-content listcon">
|
||||
<div role="tabpanel" class="tab-pane active" id="home">
|
||||
<ul class="listUl">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
@item.Title
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.CreateTime.ToString("yyyy.MM.dd")
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">@item.SubTitle</p>
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">查看全文→</a></p>
|
||||
</li>
|
||||
}
|
||||
|
||||
@*<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
如何查看IP代理地址是否启动成功?
|
||||
</div>
|
||||
<div class="item">
|
||||
2020.1.1
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字概要文字</p>
|
||||
<p><a href="#">查看全文→</a></p>
|
||||
</li>*@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
@*<ul class="pagination">
|
||||
<li class="page-item"><a class="page-link" href="#">上一页</a></li>
|
||||
<li class="page-item"><a class="page-link fenyeActive" href="#">1</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">2</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item"><a class="page-link" href="#">下一页</a></li>
|
||||
</ul>*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,77 +1,77 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 zxbz">
|
||||
<img src="~/img/img_news.png">
|
||||
</div>
|
||||
<div class="col-lg-6 searchInput">
|
||||
<input type="text" name="KeyWord" />
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</div>
|
||||
<div class="col-lg-3 searchBtn text-left">
|
||||
<button type="submit" class="btn btn-search">立即搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid conBg">
|
||||
<div class="container">
|
||||
<div class="fourModel">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/img/ios.png"></a></p>
|
||||
<p>苹果手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="4"><img src="~/img/az.png"></a></p>
|
||||
<p>安卓手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="5"><img src="~/img/mnq.png"></a></p>
|
||||
<p>安卓模拟器教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="6"><img src="~/img/pc.png"></a></p>
|
||||
<p>Windows电脑教程</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mylist">
|
||||
<div class="tab-content listcon">
|
||||
<div role="tabpanel" class="tab-pane active">
|
||||
<ul class="listUl">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
@item.Title
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.CreateTime.ToString("yyyy.MM.dd")
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">@item.SubTitle</p>
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">查看全文→</a></p>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 zxbz">
|
||||
<img src="~/img/img_news.png">
|
||||
</div>
|
||||
<div class="col-lg-6 searchInput">
|
||||
<input type="text" name="KeyWord" />
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</div>
|
||||
<div class="col-lg-3 searchBtn text-left">
|
||||
<button type="submit" class="btn btn-search">立即搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid conBg">
|
||||
<div class="container">
|
||||
<div class="fourModel">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/img/ios.png"></a></p>
|
||||
<p>苹果手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="4"><img src="~/img/az.png"></a></p>
|
||||
<p>安卓手机教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="5"><img src="~/img/mnq.png"></a></p>
|
||||
<p>安卓模拟器教程</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="6"><img src="~/img/pc.png"></a></p>
|
||||
<p>Windows电脑教程</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mylist">
|
||||
<div class="tab-content listcon">
|
||||
<div role="tabpanel" class="tab-pane active">
|
||||
<ul class="listUl">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li>
|
||||
<div class="newsTit">
|
||||
<div class="item">
|
||||
@item.Title
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.CreateTime.ToString("yyyy.MM.dd")
|
||||
</div>
|
||||
</div>
|
||||
<p class="gaiyao">@item.SubTitle</p>
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">查看全文→</a></p>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,77 +1,77 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model ArticleInfoMode
|
||||
@{
|
||||
|
||||
}
|
||||
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 zxbz">
|
||||
<img src="~/img/img_news.png">
|
||||
</div>
|
||||
<div class="col-lg-6 searchInput">
|
||||
<input type="text" name="KeyWord" />
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</div>
|
||||
<div class="col-lg-3 searchBtn text-left">
|
||||
<button type="submit" class="btn btn-search">立即搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid newsCon">
|
||||
<div class="container">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="#">教程&咨询</a></li>
|
||||
@*<li><a href="#" class="active">华连头条</a></li>*@
|
||||
</ol>
|
||||
</div>
|
||||
<div class="container articleTit">
|
||||
<h3>@Model.Info.Title</h3>
|
||||
<p class="grayText">@Model.Info.CreateTime.ToString("yyyy.MM.dd")</p>
|
||||
</div>
|
||||
@if(@Model.Info.Id == 3){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1>视频教程</h1>
|
||||
<video controls="controls" height="500" name="media"><source src="http://mp4.juip.com/%E8%8B%B9%E6%9E%9C%E6%89%8B%E6%9C%BA%E6%95%99%E7%A8%8B.mp4" type="video/mp4"></video>
|
||||
</div>
|
||||
}
|
||||
@if(@Model.Info.Id == 4){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1>视频教程</h1>
|
||||
<video controls="controls" height="500" name="media"><source src="http://mp4.juip.com/%E5%AE%89%E5%8D%93%E6%89%8B%E6%9C%BA%E6%95%99%E7%A8%8B.mp4" type="video/mp4"></video>
|
||||
</div>
|
||||
}
|
||||
@if(@Model.Info.Id == 5){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1>视频教程</h1>
|
||||
<video controls="controls" height="500" name="media"><source src="http://mp4.juip.com/%E6%A8%A1%E6%8B%9F%E5%99%A8%E6%95%99%E7%A8%8B.mp4" type="video/mp4"></video>
|
||||
</div>
|
||||
}
|
||||
<div class="container articleCon">
|
||||
@*<img src="img/wenzhangpeitu.png">*@
|
||||
@Html.Raw(Model.Info.Content)
|
||||
</div>
|
||||
<div class="container preNext">
|
||||
<div class="row">
|
||||
@if (Model.Prev != null)
|
||||
{
|
||||
<div class="col-lg-6 text-left">
|
||||
上一条:<a asp-action="info" asp-controller="article" asp-route-Id="@Model.Prev.Id">@Model.Prev.Title</a>
|
||||
</div>
|
||||
}
|
||||
@if (Model.Next != null)
|
||||
{
|
||||
<div class="col-lg-6 text-right">
|
||||
下一条:<a asp-action="info" asp-controller="article" asp-route-Id="@Model.Next.Id">@Model.Next.Title</a>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model ArticleInfoMode
|
||||
@{
|
||||
|
||||
}
|
||||
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 zxbz">
|
||||
<img src="~/img/img_news.png">
|
||||
</div>
|
||||
<div class="col-lg-6 searchInput">
|
||||
<input type="text" name="KeyWord" />
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</div>
|
||||
<div class="col-lg-3 searchBtn text-left">
|
||||
<button type="submit" class="btn btn-search">立即搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid newsCon">
|
||||
<div class="container">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="#">教程&咨询</a></li>
|
||||
@*<li><a href="#" class="active">华连头条</a></li>*@
|
||||
</ol>
|
||||
</div>
|
||||
<div class="container articleTit">
|
||||
<h3>@Model.Info.Title</h3>
|
||||
<p class="grayText">@Model.Info.CreateTime.ToString("yyyy.MM.dd")</p>
|
||||
</div>
|
||||
@if(@Model.Info.Id == 3){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1>视频教程</h1>
|
||||
<video controls="controls" height="500" name="media"><source src="http://mp4.juip.com/%E8%8B%B9%E6%9E%9C%E6%89%8B%E6%9C%BA%E6%95%99%E7%A8%8B.mp4" type="video/mp4"></video>
|
||||
</div>
|
||||
}
|
||||
@if(@Model.Info.Id == 4){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1>视频教程</h1>
|
||||
<video controls="controls" height="500" name="media"><source src="http://mp4.juip.com/%E5%AE%89%E5%8D%93%E6%89%8B%E6%9C%BA%E6%95%99%E7%A8%8B.mp4" type="video/mp4"></video>
|
||||
</div>
|
||||
}
|
||||
@if(@Model.Info.Id == 5){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1>视频教程</h1>
|
||||
<video controls="controls" height="500" name="media"><source src="http://mp4.juip.com/%E6%A8%A1%E6%8B%9F%E5%99%A8%E6%95%99%E7%A8%8B.mp4" type="video/mp4"></video>
|
||||
</div>
|
||||
}
|
||||
<div class="container articleCon">
|
||||
@*<img src="img/wenzhangpeitu.png">*@
|
||||
@Html.Raw(Model.Info.Content)
|
||||
</div>
|
||||
<div class="container preNext">
|
||||
<div class="row">
|
||||
@if (Model.Prev != null)
|
||||
{
|
||||
<div class="col-lg-6 text-left">
|
||||
上一条:<a asp-action="info" asp-controller="article" asp-route-Id="@Model.Prev.Id">@Model.Prev.Title</a>
|
||||
</div>
|
||||
}
|
||||
@if (Model.Next != null)
|
||||
{
|
||||
<div class="col-lg-6 text-right">
|
||||
下一条:<a asp-action="info" asp-controller="article" asp-route-Id="@Model.Next.Id">@Model.Next.Title</a>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
|
||||
<div class="container-fluid tAd">
|
||||
<a href="#taobaodian"> <img src="~/img/tBanner.png"></a>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid tintro text-center" style="font-size:18px">
|
||||
<p>您付款后并未直接开通账号,因系统无法判定您是新开账号还是续费,也无法判定您想定制什么账号和密码。</p>
|
||||
<p>所以会把您付款金额充进官网,然后在官网新开账号或是续费,用余额支付即可。</p>
|
||||
<p>当然您也可以付款后联系我们帮您开通或续费。</p>
|
||||
</div>
|
||||
|
||||
<div class="container tPeitu">
|
||||
<img src="~/img/peitu.png">
|
||||
</div>
|
||||
|
||||
<div class="container ttishi text-center" style="font-size: 20px;">
|
||||
——以下店铺任选一个,在淘宝所需金额,系统将自动为您充值,下单时收货人的手机号要与官网会员号一致——
|
||||
</div>
|
||||
<div class="container" id="taobaodian">
|
||||
<div class="row tlink">
|
||||
<div class="col-lg-4">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.1.14.37.74175197C4nNeX&id=623503691377" target="_blank"><img src="~/img/t1.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<a href="https://shop466932443.taobao.com/search.htm?spm=a1z10.1-c.0.0.2feb535aiwF0iN&search=y&orderType=hotsell_desc" target="_blank"><img src="~/img/t2.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-16678284713.15.13c8364aciVbN7&id=624222057325" target="_blank"><img src="~/img/t3.png"></a>
|
||||
</div>
|
||||
@*<div class="col-lg-3">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.28.72145f8bwi5F1r&id=613389354570&abbucket=4" target="_blank"><img src="~/img/t4.png"></a>
|
||||
</div>*@
|
||||
</div>
|
||||
|
||||
<div class="container-fluid tAd">
|
||||
<a href="#taobaodian"> <img src="~/img/tBanner.png"></a>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid tintro text-center" style="font-size:18px">
|
||||
<p>您付款后并未直接开通账号,因系统无法判定您是新开账号还是续费,也无法判定您想定制什么账号和密码。</p>
|
||||
<p>所以会把您付款金额充进官网,然后在官网新开账号或是续费,用余额支付即可。</p>
|
||||
<p>当然您也可以付款后联系我们帮您开通或续费。</p>
|
||||
</div>
|
||||
|
||||
<div class="container tPeitu">
|
||||
<img src="~/img/peitu.png">
|
||||
</div>
|
||||
|
||||
<div class="container ttishi text-center" style="font-size: 20px;">
|
||||
——以下店铺任选一个,在淘宝所需金额,系统将自动为您充值,下单时收货人的手机号要与官网会员号一致——
|
||||
</div>
|
||||
<div class="container" id="taobaodian">
|
||||
<div class="row tlink">
|
||||
<div class="col-lg-4">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.1.14.37.74175197C4nNeX&id=623503691377" target="_blank"><img src="~/img/t1.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<a href="https://shop466932443.taobao.com/search.htm?spm=a1z10.1-c.0.0.2feb535aiwF0iN&search=y&orderType=hotsell_desc" target="_blank"><img src="~/img/t2.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-16678284713.15.13c8364aciVbN7&id=624222057325" target="_blank"><img src="~/img/t3.png"></a>
|
||||
</div>
|
||||
@*<div class="col-lg-3">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.28.72145f8bwi5F1r&id=613389354570&abbucket=4" target="_blank"><img src="~/img/t4.png"></a>
|
||||
</div>*@
|
||||
</div>
|
||||
</div>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@using Hncore.Infrastructure.Common
|
||||
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@using Hncore.Infrastructure.Common
|
||||
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
|
||||
@@ -1,384 +1,384 @@
|
||||
|
||||
|
||||
@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>
|
||||
<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&& m.Id != 20&& m.Id != 21))
|
||||
{
|
||||
<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">
|
||||
<p class="col-lg-12" style="background-color: #FFFF00; color:#FF0033;text-align:center;margin-bottom:30px;">{{search_field}} ------线路表API接口(每5分钟更新一次,禁止频繁访问!):http://php-api.juip.com/script/linedata/display.php?product={{product_id}}</p>
|
||||
<div style="color: red;line-height:50%;" v-if="product_id ==1|| product_id==2">
|
||||
<p style="text-align:center;">
|
||||
<span style="font-size: 20px;color:#FF0033;">{{search_field}}</span> 用服务器地址直连用户请注意:
|
||||
</p>
|
||||
<p>因电信联通机房限制此协议,会存在个别地区直连无法连接,电脑客户端和安卓APP不受影响。</p>
|
||||
<p v-if="product_id ==1">解决方法:IP账号后边输入:@@特征码,例如您的IP账号为zx1234,要用sstp直连温州的,那账号框就输入:zx1234@zjwz,服务器输入任意一个全国混拨的服务器,则会连接到温州。</p>
|
||||
<p v-if="product_id==2">解决方法:IP账号后边输入:@@特征码,例如您的IP账号为zx1234,要用sstp直连三亚的,那账号框就输入:zx1234@hnsy,服务器输入任意一个全国混拨的服务器,则会连接到三亚。</p>
|
||||
</div>
|
||||
<div style="color: #CC3333;line-height:50%;text-align:center;font-size:20px;" v-if="product_id ==19">
|
||||
<p>该产品切记一定要指定一下地区,不然会没有网络</p>
|
||||
</div>
|
||||
<div style="color: red;line-height:50%;text-align:center;font-size:20px;" v-if="product_id ==22">
|
||||
<p>静态线路里面名称不带‘宽带’字样的线路ip是相对固定不变的。</p>
|
||||
<p>只要线路名称里面带“宽带”两个字的是完全模拟家庭宽带网络的线路,和家庭宽度网络一样一般1-2天不等自动换一次ip</p>
|
||||
</div>
|
||||
</div>
|
||||
<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 v-if="product_id ==19">剩余拨数</th>
|
||||
<th v-else="product_id ==19">运营商</th>
|
||||
<th>服务器域名</th>
|
||||
<th>IP量</th>
|
||||
<th>实时带宽</th>
|
||||
<th>维护状态</th>
|
||||
<th v-if="product_id ==1|| product_id==2">特征码</th>
|
||||
<th v-else="product_id ==1|| product_id==2">负载状态</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 = '123';
|
||||
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 = '1234';
|
||||
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 = '8899';
|
||||
this.search_field = '蘑菇IP';
|
||||
this.sstp = '4430';
|
||||
break;
|
||||
case 22:
|
||||
this.l2tp = '888888';
|
||||
this.search_field = '火狐IP';
|
||||
this.sstp = '5908';
|
||||
break;
|
||||
|
||||
case 23:
|
||||
this.l2tp = '888888';
|
||||
this.search_field = '云牛IP';
|
||||
this.sstp = '5908';
|
||||
break;
|
||||
case 25:
|
||||
this.l2tp = '888888';
|
||||
this.search_field = '强子静态IP';
|
||||
this.sstp = '1500';
|
||||
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 17:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xigua.csv';
|
||||
break;
|
||||
case 18:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/mogu.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;
|
||||
case 17:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xigua.csv';
|
||||
break;
|
||||
case 18:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/mogu.csv';
|
||||
break;
|
||||
case 22:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/huohu.csv';
|
||||
break;
|
||||
case 23:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/yunniu.csv';
|
||||
break;
|
||||
case 25:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/qiangzijt.csv';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@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>
|
||||
<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&& m.Id != 20&& m.Id != 21))
|
||||
{
|
||||
<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">
|
||||
<p class="col-lg-12" style="background-color: #FFFF00; color:#FF0033;text-align:center;margin-bottom:30px;">{{search_field}} ------线路表API接口(每5分钟更新一次,禁止频繁访问!):http://php-api.juip.com/script/linedata/display.php?product={{product_id}}</p>
|
||||
<div style="color: red;line-height:50%;" v-if="product_id ==1|| product_id==2">
|
||||
<p style="text-align:center;">
|
||||
<span style="font-size: 20px;color:#FF0033;">{{search_field}}</span> 用服务器地址直连用户请注意:
|
||||
</p>
|
||||
<p>因电信联通机房限制此协议,会存在个别地区直连无法连接,电脑客户端和安卓APP不受影响。</p>
|
||||
<p v-if="product_id ==1">解决方法:IP账号后边输入:@@特征码,例如您的IP账号为zx1234,要用sstp直连温州的,那账号框就输入:zx1234@zjwz,服务器输入任意一个全国混拨的服务器,则会连接到温州。</p>
|
||||
<p v-if="product_id==2">解决方法:IP账号后边输入:@@特征码,例如您的IP账号为zx1234,要用sstp直连三亚的,那账号框就输入:zx1234@hnsy,服务器输入任意一个全国混拨的服务器,则会连接到三亚。</p>
|
||||
</div>
|
||||
<div style="color: #CC3333;line-height:50%;text-align:center;font-size:20px;" v-if="product_id ==19">
|
||||
<p>该产品切记一定要指定一下地区,不然会没有网络</p>
|
||||
</div>
|
||||
<div style="color: red;line-height:50%;text-align:center;font-size:20px;" v-if="product_id ==22">
|
||||
<p>静态线路里面名称不带‘宽带’字样的线路ip是相对固定不变的。</p>
|
||||
<p>只要线路名称里面带“宽带”两个字的是完全模拟家庭宽带网络的线路,和家庭宽度网络一样一般1-2天不等自动换一次ip</p>
|
||||
</div>
|
||||
</div>
|
||||
<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 v-if="product_id ==19">剩余拨数</th>
|
||||
<th v-else="product_id ==19">运营商</th>
|
||||
<th>服务器域名</th>
|
||||
<th>IP量</th>
|
||||
<th>实时带宽</th>
|
||||
<th>维护状态</th>
|
||||
<th v-if="product_id ==1|| product_id==2">特征码</th>
|
||||
<th v-else="product_id ==1|| product_id==2">负载状态</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 = '123';
|
||||
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 = '1234';
|
||||
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 = '8899';
|
||||
this.search_field = '蘑菇IP';
|
||||
this.sstp = '4430';
|
||||
break;
|
||||
case 22:
|
||||
this.l2tp = '888888';
|
||||
this.search_field = '火狐IP';
|
||||
this.sstp = '5908';
|
||||
break;
|
||||
|
||||
case 23:
|
||||
this.l2tp = '888888';
|
||||
this.search_field = '云牛IP';
|
||||
this.sstp = '5908';
|
||||
break;
|
||||
case 25:
|
||||
this.l2tp = '888888';
|
||||
this.search_field = '强子静态IP';
|
||||
this.sstp = '1500';
|
||||
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 17:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xigua.csv';
|
||||
break;
|
||||
case 18:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/mogu.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;
|
||||
case 17:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/xigua.csv';
|
||||
break;
|
||||
case 18:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/mogu.csv';
|
||||
break;
|
||||
case 22:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/huohu.csv';
|
||||
break;
|
||||
case 23:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/yunniu.csv';
|
||||
break;
|
||||
case 25:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/qiangzijt.csv';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1,292 +1,292 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p => p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<style>
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
clear: both
|
||||
}
|
||||
|
||||
.main-page {
|
||||
margin: 0 auto;
|
||||
width: 1170px;
|
||||
padding-bottom:50px;
|
||||
}
|
||||
|
||||
.main-page .left {
|
||||
width:15%;
|
||||
border-right: 1px #ccc solid;
|
||||
margin-top: 25px;
|
||||
padding-right:10px;
|
||||
}
|
||||
|
||||
.main-page .left, .main-page .right {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.main-page .nav-back {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.main-page .nav {
|
||||
position: relative;
|
||||
margin-top: -300px;
|
||||
width: 136px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-family: "微软雅黑";
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.main-page .nav div {
|
||||
height: 47px;
|
||||
line-height: 47px;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.main-page .nav div.on {
|
||||
background: #0c215d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.main-page .right {
|
||||
width: 85%;
|
||||
height: 800px;
|
||||
|
||||
}
|
||||
|
||||
.main-page .content {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.contentNew {
|
||||
border:none;
|
||||
}
|
||||
.youhuiNew {
|
||||
font-size:14px;
|
||||
border:none;
|
||||
text-align:center;
|
||||
padding:5px 0;
|
||||
color:red;
|
||||
}
|
||||
.mtop {
|
||||
margin-top:30px;
|
||||
}
|
||||
</style>
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
@*新布局*@
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="main-page">
|
||||
<div class="left">
|
||||
<div class="nav-back"></div>
|
||||
<div class="nav">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="contentNew">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
@*<img src="/@item.Product.Image">*@
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhuiNew mtop">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhuiNew">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var packageBox = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(packageBox).show();
|
||||
$(el).addClass("on");
|
||||
$(el).siblings().removeClass("on");
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".productItem").click(function () {
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".check").show();
|
||||
//$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
|
||||
@*<script type="text/javascript">
|
||||
$(".main-page .nav div").mouseenter(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).mouseleave(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).click(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
var l = -(index * 800);
|
||||
$(".main-page .nav div").removeClass("on");
|
||||
$(".main-page .nav div").eq(index).addClass("on");
|
||||
$(".main-page .content .con-ggh:eq(0)").stop().animate({ "margin-top": l }, 500);
|
||||
});
|
||||
</script>*@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p => p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<style>
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
clear: both
|
||||
}
|
||||
|
||||
.main-page {
|
||||
margin: 0 auto;
|
||||
width: 1170px;
|
||||
padding-bottom:50px;
|
||||
}
|
||||
|
||||
.main-page .left {
|
||||
width:15%;
|
||||
border-right: 1px #ccc solid;
|
||||
margin-top: 25px;
|
||||
padding-right:10px;
|
||||
}
|
||||
|
||||
.main-page .left, .main-page .right {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.main-page .nav-back {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.main-page .nav {
|
||||
position: relative;
|
||||
margin-top: -300px;
|
||||
width: 136px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-family: "微软雅黑";
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.main-page .nav div {
|
||||
height: 47px;
|
||||
line-height: 47px;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.main-page .nav div.on {
|
||||
background: #0c215d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.main-page .right {
|
||||
width: 85%;
|
||||
height: 800px;
|
||||
|
||||
}
|
||||
|
||||
.main-page .content {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.contentNew {
|
||||
border:none;
|
||||
}
|
||||
.youhuiNew {
|
||||
font-size:14px;
|
||||
border:none;
|
||||
text-align:center;
|
||||
padding:5px 0;
|
||||
color:red;
|
||||
}
|
||||
.mtop {
|
||||
margin-top:30px;
|
||||
}
|
||||
</style>
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
@*新布局*@
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="main-page">
|
||||
<div class="left">
|
||||
<div class="nav-back"></div>
|
||||
<div class="nav">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="contentNew">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
@*<img src="/@item.Product.Image">*@
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhuiNew mtop">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhuiNew">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var packageBox = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(packageBox).show();
|
||||
$(el).addClass("on");
|
||||
$(el).siblings().removeClass("on");
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".productItem").click(function () {
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".check").show();
|
||||
//$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
|
||||
@*<script type="text/javascript">
|
||||
$(".main-page .nav div").mouseenter(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).mouseleave(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).click(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
var l = -(index * 800);
|
||||
$(".main-page .nav div").removeClass("on");
|
||||
$(".main-page .nav div").eq(index).addClass("on");
|
||||
$(".main-page .content .con-ggh:eq(0)").stop().animate({ "margin-top": l }, 500);
|
||||
});
|
||||
</script>*@
|
||||
}
|
||||
@@ -1,197 +1,197 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p=>p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
<!-- con -->
|
||||
<div class="container">
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="cpshow">
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="item" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">
|
||||
<p class="cpimg"><img src="@P(item.Product.Image)" /></p>
|
||||
<p>@item.Product.Name</p>
|
||||
<img src="~/img/check.png" class="check">
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- form -->
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
<img src="/@item.Product.Image">
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
@*<p>·不限速,网速最高可达50兆</p>
|
||||
<p>·支持手机,电脑,模拟器</p>
|
||||
<p>·200多个城市+全国混波量ip千万级</p>
|
||||
<p>·带宽6-10兆</p>
|
||||
<p>·断开再链接换ip</p>*@
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhui">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhui">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var el_box = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(el_box).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".check").show();
|
||||
$(el).siblings().find(".check").hide();
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".cpshow .item").click(function () {
|
||||
$(this).addClass("kuang");
|
||||
$(this).siblings().removeClass("kuang");
|
||||
$(this).find(".check").show();
|
||||
$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p=>p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
<!-- con -->
|
||||
<div class="container">
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="cpshow">
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="item" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">
|
||||
<p class="cpimg"><img src="@P(item.Product.Image)" /></p>
|
||||
<p>@item.Product.Name</p>
|
||||
<img src="~/img/check.png" class="check">
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- form -->
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
<img src="/@item.Product.Image">
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
@*<p>·不限速,网速最高可达50兆</p>
|
||||
<p>·支持手机,电脑,模拟器</p>
|
||||
<p>·200多个城市+全国混波量ip千万级</p>
|
||||
<p>·带宽6-10兆</p>
|
||||
<p>·断开再链接换ip</p>*@
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhui">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhui">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var el_box = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(el_box).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".check").show();
|
||||
$(el).siblings().find(".check").hide();
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".cpshow .item").click(function () {
|
||||
$(this).addClass("kuang");
|
||||
$(this).siblings().removeClass("kuang");
|
||||
$(this).find(".check").show();
|
||||
$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,178 +1,178 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductEntity>
|
||||
@{
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<p class="simg"><img src="~/img/img_soft.png"></p>
|
||||
<p class="sintro">软件和账户必须为同一产品才能使用</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-right">
|
||||
<a href="#" class="jiaocheng">使用教程→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="soft">
|
||||
@foreach (var item in Model.Where(m=>m.Sort!=1000 && m.Id!=12 && m.Id!=21 && m.OnLine==1).OrderBy(m => m.Sort))
|
||||
{
|
||||
<div class="sitem">
|
||||
<div class="smodel">
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
无极-共享独享通用
|
||||
</div>
|
||||
} else {
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
@item.Name
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="@item.PcClientDownloadUrl"> <button type="button" class="btn btn-sdefault">Windows</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl))
|
||||
{
|
||||
<div class="item" >
|
||||
<a href="@item.DroidDownloadUrl"> <button type="button" class="btn btn-sdefault">安卓APP</button></a>
|
||||
</div>
|
||||
<hr>
|
||||
}
|
||||
@if (item.Id != 3 && item.Id != 7 && item.Id != 9 && item.Id != 12 && item.Id != 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="@item.SimulatorDownloadUrl"> <button type="button" class="btn btn-sdefault">SSTP客户端</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E5%AE%89%E5%8D%93-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.apk"> <button type="button" class="btn btn-sdefault">无极安卓<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E7%94%B5%E8%84%91-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.exe"> <button type="button" class="btn btn-sdefault">无极电脑<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<div class="item">
|
||||
<a id="ios_cc"> <button type="button" class="btn btn-sdefault">扫描下载<br>苹果客户端</button></a>
|
||||
</div>
|
||||
|
||||
<div id="qrcode_s">
|
||||
|
||||
</div>
|
||||
}
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
通用版
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E9%80%9A%E7%94%A8%E5%8A%A8%E6%80%81IP%E7%99%BB%E5%BD%95%E5%99%A8.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">通用版电脑拨号器</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sitem">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
代理商专用客户端
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%20-%20%E4%BB%A3%E7%90%86%E7%89%88.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-安卓</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E4%BB%A3%E7%90%86%E7%89%88%203.5.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-安卓</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">迅连IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">讯连IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E7%81%AB%E7%8B%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%98%9F%E6%98%9FIP%E7%94%B5%E8%84%91%E7%AB%AF-4.10%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">星星IP-电脑端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">蘑菇IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.syssuper.com:8000/soft/huohupubnet.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.ipsoft365.com:8000/soft/yunniupubdtip.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-安卓端</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
$("#ios_cc").hover(function(){
|
||||
$("#qrcode_s").html('');
|
||||
new QRCode(document.getElementById("qrcode_s"), {
|
||||
text: 'https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437',
|
||||
width : 500,
|
||||
height : 500
|
||||
});
|
||||
},function(){
|
||||
$("#qrcode_s").html('');
|
||||
});
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductEntity>
|
||||
@{
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<p class="simg"><img src="~/img/img_soft.png"></p>
|
||||
<p class="sintro">软件和账户必须为同一产品才能使用</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-right">
|
||||
<a href="#" class="jiaocheng">使用教程→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="soft">
|
||||
@foreach (var item in Model.Where(m=>m.Sort!=1000 && m.Id!=12 && m.Id!=21 && m.OnLine==1).OrderBy(m => m.Sort))
|
||||
{
|
||||
<div class="sitem">
|
||||
<div class="smodel">
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
无极-共享独享通用
|
||||
</div>
|
||||
} else {
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
@item.Name
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="@item.PcClientDownloadUrl"> <button type="button" class="btn btn-sdefault">Windows</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl))
|
||||
{
|
||||
<div class="item" >
|
||||
<a href="@item.DroidDownloadUrl"> <button type="button" class="btn btn-sdefault">安卓APP</button></a>
|
||||
</div>
|
||||
<hr>
|
||||
}
|
||||
@if (item.Id != 3 && item.Id != 7 && item.Id != 9 && item.Id != 12 && item.Id != 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="@item.SimulatorDownloadUrl"> <button type="button" class="btn btn-sdefault">SSTP客户端</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E5%AE%89%E5%8D%93-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.apk"> <button type="button" class="btn btn-sdefault">无极安卓<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E7%94%B5%E8%84%91-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.exe"> <button type="button" class="btn btn-sdefault">无极电脑<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<div class="item">
|
||||
<a id="ios_cc"> <button type="button" class="btn btn-sdefault">扫描下载<br>苹果客户端</button></a>
|
||||
</div>
|
||||
|
||||
<div id="qrcode_s">
|
||||
|
||||
</div>
|
||||
}
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
通用版
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E9%80%9A%E7%94%A8%E5%8A%A8%E6%80%81IP%E7%99%BB%E5%BD%95%E5%99%A8.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">通用版电脑拨号器</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sitem">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
代理商专用客户端
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%20-%20%E4%BB%A3%E7%90%86%E7%89%88.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-安卓</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E4%BB%A3%E7%90%86%E7%89%88%203.5.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-安卓</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">迅连IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">讯连IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E7%81%AB%E7%8B%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%98%9F%E6%98%9FIP%E7%94%B5%E8%84%91%E7%AB%AF-4.10%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">星星IP-电脑端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">蘑菇IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.syssuper.com:8000/soft/huohupubnet.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.ipsoft365.com:8000/soft/yunniupubdtip.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-安卓端</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
$("#ios_cc").hover(function(){
|
||||
$("#qrcode_s").html('');
|
||||
new QRCode(document.getElementById("qrcode_s"), {
|
||||
text: 'https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437',
|
||||
width : 500,
|
||||
height : 500
|
||||
});
|
||||
},function(){
|
||||
$("#qrcode_s").html('');
|
||||
});
|
||||
</script>
|
||||
@@ -1,150 +1,150 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Infrastructure.Common
|
||||
@model PackageInfoResponse
|
||||
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
|
||||
@{
|
||||
ViewData["Title"] = "领取试用";
|
||||
var t = this.Context.Request.GetInt("t");
|
||||
var randomPwd = ValidateCodeHelper.MakeNumCode(3).ToLower();
|
||||
var randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
while (m_AccountService.Exist(m => m.Account == randomAccount))
|
||||
{
|
||||
randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
}
|
||||
}
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.tip {
|
||||
color: red;
|
||||
text-align: center
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
@*<div class="item">
|
||||
<p class="selectPhoto"> <img src="/@Model.Product.Image"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>*@
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">0元</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a asp-action="index" asp-controller="product">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 试用 -->
|
||||
<div class="container biaodan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-right shuruname">
|
||||
<p>IP账号名称:</p>
|
||||
<p>IP账号密码:</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left shuru">
|
||||
<p><input type="text" name="" id="account" value="@randomAccount" /></p>
|
||||
<p><input type="text" name="" id="pwd" value="@randomPwd" /></p>
|
||||
<div class="btnlingqu">
|
||||
<div class="item cishu">
|
||||
剩余试用次数<span style="color:red">@(Model.RestTimes)</span>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<a href='http://www.juip.com/User/Index' class="item tip"></a>
|
||||
</div>
|
||||
<div class="item tijiao lingqu">
|
||||
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
|
||||
{
|
||||
<button type="button" class="btn btn-primary" onclick="create()">领取试用</button>
|
||||
}
|
||||
@if (Model.Package.Status == 0)
|
||||
{
|
||||
<span class="tip">
|
||||
该产品暂不能测试
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@*<div class="col-lg-5 text-left">
|
||||
<p class="tishi chongfu">*此用户名重复,请重新输入</p>
|
||||
</div>*@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
function create() {
|
||||
var data = {
|
||||
ProductId:@(Model.Product.Id),
|
||||
PackageId: @(Model.Package.Id),
|
||||
Account: $('#account').val(),
|
||||
Pwd: $('#pwd').val()
|
||||
};
|
||||
if (data.Account == '' || data.Pwd == '') {
|
||||
$(".tip").text("账户和密码不能为空");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/api/course/v1/productaccount/CreateTestAccount',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
alert("领取成功")
|
||||
window.location.href = "/user/myaccounts";
|
||||
} else {
|
||||
$(".tip").text(res.Message);
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Infrastructure.Common
|
||||
@model PackageInfoResponse
|
||||
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
|
||||
@{
|
||||
ViewData["Title"] = "领取试用";
|
||||
var t = this.Context.Request.GetInt("t");
|
||||
var randomPwd = ValidateCodeHelper.MakeNumCode(3).ToLower();
|
||||
var randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
while (m_AccountService.Exist(m => m.Account == randomAccount))
|
||||
{
|
||||
randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
}
|
||||
}
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.tip {
|
||||
color: red;
|
||||
text-align: center
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
@*<div class="item">
|
||||
<p class="selectPhoto"> <img src="/@Model.Product.Image"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>*@
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">0元</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a asp-action="index" asp-controller="product">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 试用 -->
|
||||
<div class="container biaodan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-right shuruname">
|
||||
<p>IP账号名称:</p>
|
||||
<p>IP账号密码:</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left shuru">
|
||||
<p><input type="text" name="" id="account" value="@randomAccount" /></p>
|
||||
<p><input type="text" name="" id="pwd" value="@randomPwd" /></p>
|
||||
<div class="btnlingqu">
|
||||
<div class="item cishu">
|
||||
剩余试用次数<span style="color:red">@(Model.RestTimes)</span>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<a href='http://www.juip.com/User/Index' class="item tip"></a>
|
||||
</div>
|
||||
<div class="item tijiao lingqu">
|
||||
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
|
||||
{
|
||||
<button type="button" class="btn btn-primary" onclick="create()">领取试用</button>
|
||||
}
|
||||
@if (Model.Package.Status == 0)
|
||||
{
|
||||
<span class="tip">
|
||||
该产品暂不能测试
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@*<div class="col-lg-5 text-left">
|
||||
<p class="tishi chongfu">*此用户名重复,请重新输入</p>
|
||||
</div>*@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
function create() {
|
||||
var data = {
|
||||
ProductId:@(Model.Product.Id),
|
||||
PackageId: @(Model.Package.Id),
|
||||
Account: $('#account').val(),
|
||||
Pwd: $('#pwd').val()
|
||||
};
|
||||
if (data.Account == '' || data.Pwd == '') {
|
||||
$(".tip").text("账户和密码不能为空");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/api/course/v1/productaccount/CreateTestAccount',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
alert("领取成功")
|
||||
window.location.href = "/user/myaccounts";
|
||||
} else {
|
||||
$(".tip").text(res.Message);
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,444 +1,444 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@model PackageInfoResponse
|
||||
@inject UserService m_UserService
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
userEntity = await m_UserService.GetById(user.Id);
|
||||
}
|
||||
}
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$('.spinner .btn:first-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) + 1);
|
||||
});
|
||||
$('.spinner .btn:last-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) - 1);
|
||||
});
|
||||
|
||||
$(".dan").addClass("cu");
|
||||
$(".dan").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".pi").removeClass("cu");
|
||||
$(".t1").show();
|
||||
$(".t2").hide();
|
||||
});
|
||||
$(".pi").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".dan").removeClass("cu");
|
||||
$(".t1").hide();
|
||||
$(".t2").show();
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
<vc:pay-ok></vc:pay-ok>
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
@if(Model.Package.Price < 60 && (Model.Package.Id == 64||Model.Package.Id == 1004)){
|
||||
<p class="zongjia"><span>60.00</span>元</p>
|
||||
} else {
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a href="javascript:history.go(-1)">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="app">
|
||||
<!-- con -->
|
||||
<div class="container zhuce">
|
||||
<div class="reg_tab">
|
||||
<div class="item dan active_dan">
|
||||
续费
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container t1">
|
||||
<form action="~/product/CreateOrder" method="post" id="accountForm">
|
||||
<input type="hidden" name="PackageId" value="@Model.Package.Id" />
|
||||
<input type="hidden" name="OrderType" value="1" />
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品账号:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Account" value="" v-model="OneBuyModel.Account" disabled />
|
||||
<p class="jinggao" id="sAccountTip"></p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left warnText">
|
||||
<sapn class="grayText">支持10位以内字母,数字</sapn>
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品密码:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Pwd" v-model="OneBuyModel.Pwd" />
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">支持6位以内字母,数字</span>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
连接数:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="buchang">
|
||||
<div class="item">
|
||||
{{OneBuyModel.ConnectCount}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
选择优惠券:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<div class="dropdown">
|
||||
<select name="" class="btn btn-default dropdown-toggle" v-model="OneBuyModel.CouponId">
|
||||
<option value="0">请选择优惠券</option>
|
||||
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">淘宝每次下单获得优惠券</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
余额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
|
||||
<a href="/User/Index">前往充值</a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
支付方式:
|
||||
</div>
|
||||
<div class="col-lg-4 zhifufangshi">
|
||||
<input id="zhifubaopay_s1" type="radio" name="OPayType" value="100" checked v-model="OneBuyModel.OPayType"> <img src="~/img/zfb.png"><label for="zhifubaopay_s1">支付宝支付</label>
|
||||
<input id="weixinpay_s1" type="radio" name="OPayType" value="70" v-model="OneBuyModel.OPayType"> <img src="~/img/wx.png"><label for="weixinpay_s1">微信支付</label>
|
||||
<input id="UseAccountAmount_s1" type="radio" name="OPayType" value="1" v-model="OneBuyModel.UseAccountAmount"> <label for="UseAccountAmount_s1">余额支付</label>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
总金额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span class="blueText">{{TotalAmount}}</span>元
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
应付款:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span style="font-size: 30px;font-weight: bold;">{{PayAmount}}</span>元
|
||||
<span>{{auto_discount_text}}</span>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="ijiao-tip" style="color:red">{{Tip}}</p>
|
||||
<p class="tijiao"><button class="btn btn-primary pay-botton" type="button" v-on:click="onePay">确认支付</button></p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 支付弹窗开始 -->
|
||||
<div class="payMask">
|
||||
<div class="payCon">
|
||||
<img src="~/img/close.png" class="payClose" v-on:click="close">
|
||||
<p class="payTit"><img src="~/img/wx.png">微信支付 | 收银台</p>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 text-center">
|
||||
@*<p>订单将在25分钟后关闭,请及时付款</p>*@
|
||||
<p>
|
||||
@*<img id="wxPayQr" src="img/ewm.png">*@
|
||||
<div id="qrcode" style="width:200px;height:200px"></div>
|
||||
</p>
|
||||
@*<p>二维码已经失效,请刷新后重新扫码支付</p>*@
|
||||
</div>
|
||||
<div class="col-lg-6 text-left leftBorder">
|
||||
<p>新开订单</p>
|
||||
<p class="payPrice">¥<span>{{OrderInfo.OtherPayAmount}}</span></p>
|
||||
<p>收款方:聚IP</p>
|
||||
<p>下单时间:<span>{{OrderInfo.CreateTime}}</span></p>
|
||||
<p>订单号:<span>{{OrderInfo.OrderNo}}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 支付弹窗结束 -->
|
||||
|
||||
<div id="aliPayBox" style="display:none"></div>
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
var productId =@(Model.Product.Id);
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
auto_discount_text:'',
|
||||
payHandler: null,
|
||||
Tip:'',
|
||||
RestAmount: @(userEntity.RestAmount),
|
||||
Coupons: [],
|
||||
SelectCoupon: {},
|
||||
OrderInfo: {},
|
||||
OneBuyModel: {
|
||||
Price:@(Model.Package.Price),
|
||||
PackageId:@(Model.Package.Id),
|
||||
OrderType: @ViewBag.orderType,
|
||||
Account: '@ViewBag.accounts',
|
||||
CouponAmount: 0,
|
||||
Pwd: '',
|
||||
ConnectCount: @(ViewBag.ConnectCount),
|
||||
CouponId: 0,
|
||||
UseAccountAmount: 0,
|
||||
OPayType: 100,
|
||||
PayChannel:50,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
TotalAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
|
||||
//西瓜极客优惠券
|
||||
if((@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004) && @(Model.Package.Price)<60){
|
||||
total = this.OneBuyModel.ConnectCount * 60.00 * count
|
||||
}
|
||||
return total.toFixed(2);
|
||||
},
|
||||
PayAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
|
||||
total= total < 0 ? 0 : total;
|
||||
total = parseFloat(total.toFixed(2));
|
||||
|
||||
//最低价
|
||||
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
|
||||
if(total<min_cost){
|
||||
total = min_cost;
|
||||
}
|
||||
|
||||
return total.toFixed(2);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'OneBuyModel.CouponId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
if( this.OneBuyModel.CouponId == 10000000){
|
||||
return;
|
||||
}
|
||||
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
|
||||
for (var i = 0; i < this.Coupons.length; i++) {
|
||||
var item = this.Coupons[i];
|
||||
if (totalAmount < item.AllowMinAmount) {
|
||||
continue;
|
||||
}
|
||||
if (item.Id == newValue) {
|
||||
if (item.CouponType == 1) {//满减
|
||||
this.OneBuyModel.CouponAmount = item.CouponValue;
|
||||
} else {
|
||||
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
|
||||
if($(".sname").text() == '天卡'){
|
||||
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
|
||||
} else {
|
||||
alert('非天卡无效');
|
||||
this.OneBuyModel.CouponId = '0';
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
'OneBuyModel.OPayType': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
this.OneBuyModel.UseAccountAmount = false;
|
||||
this.OneBuyModel.PayChannel = newValue == 70 ? 30 : 50;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.getCoupons();
|
||||
},
|
||||
created () {
|
||||
this.OneBuyModel.CouponId = 10000000
|
||||
},
|
||||
methods: {
|
||||
getCoupons: function () {
|
||||
var that = this;
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
if(@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004){
|
||||
var coupon_json = {
|
||||
"Coupon":{
|
||||
"Id":10000000,
|
||||
"Name":"极客-西瓜-满减劵",
|
||||
}
|
||||
}
|
||||
res.Data.push(coupon_json);
|
||||
}
|
||||
that.Coupons = res.Data.map(m => m.Coupon);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onePay: function () {
|
||||
$(".pay-botton").hide();
|
||||
if (this.OneBuyModel.UseAccountAmount) {
|
||||
if (this.RestAmount < this.PayAmount){
|
||||
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
|
||||
} else {
|
||||
this.RestAmount = this.RestAmount - this.PayAmount;
|
||||
}
|
||||
}
|
||||
var that = this;
|
||||
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
|
||||
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
|
||||
showPayWait();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/product/CreateOrder',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(this.OneBuyModel),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
hidePayWait();
|
||||
if (res.Data == "00") {
|
||||
alert("续费成功");
|
||||
} else {
|
||||
that.payCallback(res.Data)
|
||||
that.isPay(res.Data.OrderInfo.OrderNo);
|
||||
}
|
||||
} else {
|
||||
//that.Tip = res.Message;
|
||||
tipPayWait(res.Message);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
payCallback: function (data) {
|
||||
this.OrderInfo = data.OrderInfo;
|
||||
var payType = this.OrderInfo.PayType;
|
||||
if (payType == 70) {
|
||||
$(".payMask").show();
|
||||
$('#qrcode').qrcode(data.PayData);
|
||||
} else if (payType == 100) {
|
||||
$("#aliPayBox").html(data.PayData);
|
||||
}
|
||||
},
|
||||
isPay: function (orderNo) {
|
||||
var that = this;
|
||||
this.payHandler = setInterval(function () {
|
||||
var url = '/product/IsPay?orderNo=' + orderNo;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000 && res.Data == 1) {
|
||||
clearInterval(that.payHandler);
|
||||
$(".payMask").hide();
|
||||
showPayOk();
|
||||
//window.location.href = "/user/myaccounts";
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 3000)
|
||||
},
|
||||
close() {
|
||||
clearInterval(this.payHandler);
|
||||
$('.payMask').hide();
|
||||
$('#qrcode').empty();
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@model PackageInfoResponse
|
||||
@inject UserService m_UserService
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
userEntity = await m_UserService.GetById(user.Id);
|
||||
}
|
||||
}
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$('.spinner .btn:first-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) + 1);
|
||||
});
|
||||
$('.spinner .btn:last-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) - 1);
|
||||
});
|
||||
|
||||
$(".dan").addClass("cu");
|
||||
$(".dan").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".pi").removeClass("cu");
|
||||
$(".t1").show();
|
||||
$(".t2").hide();
|
||||
});
|
||||
$(".pi").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".dan").removeClass("cu");
|
||||
$(".t1").hide();
|
||||
$(".t2").show();
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
<vc:pay-ok></vc:pay-ok>
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
@if(Model.Package.Price < 60 && (Model.Package.Id == 64||Model.Package.Id == 1004)){
|
||||
<p class="zongjia"><span>60.00</span>元</p>
|
||||
} else {
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a href="javascript:history.go(-1)">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="app">
|
||||
<!-- con -->
|
||||
<div class="container zhuce">
|
||||
<div class="reg_tab">
|
||||
<div class="item dan active_dan">
|
||||
续费
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container t1">
|
||||
<form action="~/product/CreateOrder" method="post" id="accountForm">
|
||||
<input type="hidden" name="PackageId" value="@Model.Package.Id" />
|
||||
<input type="hidden" name="OrderType" value="1" />
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品账号:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Account" value="" v-model="OneBuyModel.Account" disabled />
|
||||
<p class="jinggao" id="sAccountTip"></p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left warnText">
|
||||
<sapn class="grayText">支持10位以内字母,数字</sapn>
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品密码:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Pwd" v-model="OneBuyModel.Pwd" />
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">支持6位以内字母,数字</span>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
连接数:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="buchang">
|
||||
<div class="item">
|
||||
{{OneBuyModel.ConnectCount}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
选择优惠券:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<div class="dropdown">
|
||||
<select name="" class="btn btn-default dropdown-toggle" v-model="OneBuyModel.CouponId">
|
||||
<option value="0">请选择优惠券</option>
|
||||
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">淘宝每次下单获得优惠券</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
余额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
|
||||
<a href="/User/Index">前往充值</a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
支付方式:
|
||||
</div>
|
||||
<div class="col-lg-4 zhifufangshi">
|
||||
<input id="zhifubaopay_s1" type="radio" name="OPayType" value="100" checked v-model="OneBuyModel.OPayType"> <img src="~/img/zfb.png"><label for="zhifubaopay_s1">支付宝支付</label>
|
||||
<input id="weixinpay_s1" type="radio" name="OPayType" value="70" v-model="OneBuyModel.OPayType"> <img src="~/img/wx.png"><label for="weixinpay_s1">微信支付</label>
|
||||
<input id="UseAccountAmount_s1" type="radio" name="OPayType" value="1" v-model="OneBuyModel.UseAccountAmount"> <label for="UseAccountAmount_s1">余额支付</label>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
总金额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span class="blueText">{{TotalAmount}}</span>元
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
应付款:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span style="font-size: 30px;font-weight: bold;">{{PayAmount}}</span>元
|
||||
<span>{{auto_discount_text}}</span>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="ijiao-tip" style="color:red">{{Tip}}</p>
|
||||
<p class="tijiao"><button class="btn btn-primary pay-botton" type="button" v-on:click="onePay">确认支付</button></p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 支付弹窗开始 -->
|
||||
<div class="payMask">
|
||||
<div class="payCon">
|
||||
<img src="~/img/close.png" class="payClose" v-on:click="close">
|
||||
<p class="payTit"><img src="~/img/wx.png">微信支付 | 收银台</p>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 text-center">
|
||||
@*<p>订单将在25分钟后关闭,请及时付款</p>*@
|
||||
<p>
|
||||
@*<img id="wxPayQr" src="img/ewm.png">*@
|
||||
<div id="qrcode" style="width:200px;height:200px"></div>
|
||||
</p>
|
||||
@*<p>二维码已经失效,请刷新后重新扫码支付</p>*@
|
||||
</div>
|
||||
<div class="col-lg-6 text-left leftBorder">
|
||||
<p>新开订单</p>
|
||||
<p class="payPrice">¥<span>{{OrderInfo.OtherPayAmount}}</span></p>
|
||||
<p>收款方:聚IP</p>
|
||||
<p>下单时间:<span>{{OrderInfo.CreateTime}}</span></p>
|
||||
<p>订单号:<span>{{OrderInfo.OrderNo}}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 支付弹窗结束 -->
|
||||
|
||||
<div id="aliPayBox" style="display:none"></div>
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
var productId =@(Model.Product.Id);
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
auto_discount_text:'',
|
||||
payHandler: null,
|
||||
Tip:'',
|
||||
RestAmount: @(userEntity.RestAmount),
|
||||
Coupons: [],
|
||||
SelectCoupon: {},
|
||||
OrderInfo: {},
|
||||
OneBuyModel: {
|
||||
Price:@(Model.Package.Price),
|
||||
PackageId:@(Model.Package.Id),
|
||||
OrderType: @ViewBag.orderType,
|
||||
Account: '@ViewBag.accounts',
|
||||
CouponAmount: 0,
|
||||
Pwd: '',
|
||||
ConnectCount: @(ViewBag.ConnectCount),
|
||||
CouponId: 0,
|
||||
UseAccountAmount: 0,
|
||||
OPayType: 100,
|
||||
PayChannel:50,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
TotalAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
|
||||
//西瓜极客优惠券
|
||||
if((@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004) && @(Model.Package.Price)<60){
|
||||
total = this.OneBuyModel.ConnectCount * 60.00 * count
|
||||
}
|
||||
return total.toFixed(2);
|
||||
},
|
||||
PayAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
|
||||
total= total < 0 ? 0 : total;
|
||||
total = parseFloat(total.toFixed(2));
|
||||
|
||||
//最低价
|
||||
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
|
||||
if(total<min_cost){
|
||||
total = min_cost;
|
||||
}
|
||||
|
||||
return total.toFixed(2);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'OneBuyModel.CouponId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
if( this.OneBuyModel.CouponId == 10000000){
|
||||
return;
|
||||
}
|
||||
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
|
||||
for (var i = 0; i < this.Coupons.length; i++) {
|
||||
var item = this.Coupons[i];
|
||||
if (totalAmount < item.AllowMinAmount) {
|
||||
continue;
|
||||
}
|
||||
if (item.Id == newValue) {
|
||||
if (item.CouponType == 1) {//满减
|
||||
this.OneBuyModel.CouponAmount = item.CouponValue;
|
||||
} else {
|
||||
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
|
||||
if($(".sname").text() == '天卡'){
|
||||
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
|
||||
} else {
|
||||
alert('非天卡无效');
|
||||
this.OneBuyModel.CouponId = '0';
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
'OneBuyModel.OPayType': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
this.OneBuyModel.UseAccountAmount = false;
|
||||
this.OneBuyModel.PayChannel = newValue == 70 ? 30 : 50;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.getCoupons();
|
||||
},
|
||||
created () {
|
||||
this.OneBuyModel.CouponId = 10000000
|
||||
},
|
||||
methods: {
|
||||
getCoupons: function () {
|
||||
var that = this;
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
if(@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004){
|
||||
var coupon_json = {
|
||||
"Coupon":{
|
||||
"Id":10000000,
|
||||
"Name":"极客-西瓜-满减劵",
|
||||
}
|
||||
}
|
||||
res.Data.push(coupon_json);
|
||||
}
|
||||
that.Coupons = res.Data.map(m => m.Coupon);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onePay: function () {
|
||||
$(".pay-botton").hide();
|
||||
if (this.OneBuyModel.UseAccountAmount) {
|
||||
if (this.RestAmount < this.PayAmount){
|
||||
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
|
||||
} else {
|
||||
this.RestAmount = this.RestAmount - this.PayAmount;
|
||||
}
|
||||
}
|
||||
var that = this;
|
||||
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
|
||||
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
|
||||
showPayWait();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/product/CreateOrder',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(this.OneBuyModel),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
hidePayWait();
|
||||
if (res.Data == "00") {
|
||||
alert("续费成功");
|
||||
} else {
|
||||
that.payCallback(res.Data)
|
||||
that.isPay(res.Data.OrderInfo.OrderNo);
|
||||
}
|
||||
} else {
|
||||
//that.Tip = res.Message;
|
||||
tipPayWait(res.Message);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
payCallback: function (data) {
|
||||
this.OrderInfo = data.OrderInfo;
|
||||
var payType = this.OrderInfo.PayType;
|
||||
if (payType == 70) {
|
||||
$(".payMask").show();
|
||||
$('#qrcode').qrcode(data.PayData);
|
||||
} else if (payType == 100) {
|
||||
$("#aliPayBox").html(data.PayData);
|
||||
}
|
||||
},
|
||||
isPay: function (orderNo) {
|
||||
var that = this;
|
||||
this.payHandler = setInterval(function () {
|
||||
var url = '/product/IsPay?orderNo=' + orderNo;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000 && res.Data == 1) {
|
||||
clearInterval(that.payHandler);
|
||||
$(".payMask").hide();
|
||||
showPayOk();
|
||||
//window.location.href = "/user/myaccounts";
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 3000)
|
||||
},
|
||||
close() {
|
||||
clearInterval(this.payHandler);
|
||||
$('.payMask').hide();
|
||||
$('#qrcode').empty();
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
}
|
||||
@@ -1,35 +1,35 @@
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model ViewComponents.PagerModel
|
||||
@{
|
||||
Model.PageIndex= Model.PageIndex == 0 ? 1 : Model.PageIndex;
|
||||
var q = this.Context.Request.Remove("PageIndex");
|
||||
if (string.IsNullOrEmpty(q))
|
||||
{
|
||||
q = "?";
|
||||
}
|
||||
else
|
||||
{
|
||||
q = "?"+ q + "&";
|
||||
}
|
||||
}
|
||||
|
||||
@if (Model.TotalPage > 1)
|
||||
{
|
||||
<ul class="pagination">
|
||||
@if (Model.PageIndex > 1)
|
||||
{
|
||||
string href = $"{q}PageIndex={Model.PageIndex - 1}";
|
||||
<li class="page-item"><a class="page-link" href="@href">上一页</a></li>
|
||||
}
|
||||
@for (var i = 1; i <= Model.TotalPage; i++)
|
||||
{
|
||||
<li class="page-item"><a class="page-link @(Model.PageIndex==i?"fenyeActive2":"")" href="@(q)PageIndex=@i">@i</a></li>
|
||||
|
||||
}
|
||||
@if (Model.PageIndex < Model.TotalPage)
|
||||
{
|
||||
string href = $"{q}PageIndex={Model.PageIndex + 1}";
|
||||
<li class="page-item"><a class="page-link" href="@href">下一页</a></li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model ViewComponents.PagerModel
|
||||
@{
|
||||
Model.PageIndex= Model.PageIndex == 0 ? 1 : Model.PageIndex;
|
||||
var q = this.Context.Request.Remove("PageIndex");
|
||||
if (string.IsNullOrEmpty(q))
|
||||
{
|
||||
q = "?";
|
||||
}
|
||||
else
|
||||
{
|
||||
q = "?"+ q + "&";
|
||||
}
|
||||
}
|
||||
|
||||
@if (Model.TotalPage > 1)
|
||||
{
|
||||
<ul class="pagination">
|
||||
@if (Model.PageIndex > 1)
|
||||
{
|
||||
string href = $"{q}PageIndex={Model.PageIndex - 1}";
|
||||
<li class="page-item"><a class="page-link" href="@href">上一页</a></li>
|
||||
}
|
||||
@for (var i = 1; i <= Model.TotalPage; i++)
|
||||
{
|
||||
<li class="page-item"><a class="page-link @(Model.PageIndex==i?"fenyeActive2":"")" href="@(q)PageIndex=@i">@i</a></li>
|
||||
|
||||
}
|
||||
@if (Model.PageIndex < Model.TotalPage)
|
||||
{
|
||||
string href = $"{q}PageIndex={Model.PageIndex + 1}";
|
||||
<li class="page-item"><a class="page-link" href="@href">下一页</a></li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
|
||||
<style>
|
||||
/* 支付成功弹窗开始 */
|
||||
.paylayer {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
width: 360px;
|
||||
height: 500px;
|
||||
top: 50%;
|
||||
margin-top: -200px;
|
||||
left: 50%;
|
||||
margin-left: -180px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.plTop img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.plFour {
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.plFour img {
|
||||
width: 90%;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.plClose {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 10px;
|
||||
z-index: 999;
|
||||
}
|
||||
/* 支付成功弹窗结束 */
|
||||
</style>
|
||||
|
||||
<!-- 支付成功弹窗开始 -->
|
||||
<div class="paylayer">
|
||||
<img src="~/img/close.png" class="plClose">
|
||||
<div class="plTop">
|
||||
<img src="~/img/payBg.png">
|
||||
</div>
|
||||
<div class="row plFour">
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="MyAccounts" asp-controller="User"> <img src="~/img/pl1.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="Index" asp-controller="LineList"> <img src="~/img/pl2.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="index" asp-controller="article" asp-route-Catalog="4"> <img src="~/img/pl3.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="soft" asp-controller="Product"> <img src="~/img/pl4.png"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(".plClose").on("click", function () { $(".paylayer").hide(); $(".popmask").hide() })
|
||||
function showPayOk() {
|
||||
$(".popmask").show()
|
||||
$(".paylayer").show();
|
||||
}
|
||||
</script>
|
||||
<!-- 支付成功弹窗结束 -->
|
||||
|
||||
<style>
|
||||
/* 支付成功弹窗开始 */
|
||||
.paylayer {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
width: 360px;
|
||||
height: 500px;
|
||||
top: 50%;
|
||||
margin-top: -200px;
|
||||
left: 50%;
|
||||
margin-left: -180px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.plTop img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.plFour {
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.plFour img {
|
||||
width: 90%;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.plClose {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 10px;
|
||||
z-index: 999;
|
||||
}
|
||||
/* 支付成功弹窗结束 */
|
||||
</style>
|
||||
|
||||
<!-- 支付成功弹窗开始 -->
|
||||
<div class="paylayer">
|
||||
<img src="~/img/close.png" class="plClose">
|
||||
<div class="plTop">
|
||||
<img src="~/img/payBg.png">
|
||||
</div>
|
||||
<div class="row plFour">
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="MyAccounts" asp-controller="User"> <img src="~/img/pl1.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="Index" asp-controller="LineList"> <img src="~/img/pl2.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="index" asp-controller="article" asp-route-Catalog="4"> <img src="~/img/pl3.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<a asp-action="soft" asp-controller="Product"> <img src="~/img/pl4.png"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(".plClose").on("click", function () { $(".paylayer").hide(); $(".popmask").hide() })
|
||||
function showPayOk() {
|
||||
$(".popmask").show()
|
||||
$(".paylayer").show();
|
||||
}
|
||||
</script>
|
||||
<!-- 支付成功弹窗结束 -->
|
||||
|
||||
@@ -1,79 +1,79 @@
|
||||
|
||||
<style>
|
||||
/* 支付等待弹窗开始 */
|
||||
.paywait {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
width: 360px;
|
||||
height: 500px;
|
||||
top: 50%;
|
||||
margin-top: -200px;
|
||||
left: 50%;
|
||||
margin-left: -180px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.plTop img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.plFour {
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.plFour img {
|
||||
width: 90%;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.plClose {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 10px;
|
||||
z-index: 999;
|
||||
}
|
||||
.errorTip{
|
||||
margin-top:30px;
|
||||
color:red;
|
||||
}
|
||||
/* 支付等待弹窗结束 */
|
||||
</style>
|
||||
|
||||
<!-- 支付等待 -->
|
||||
<div class="paywait">
|
||||
<img src="~/img/close.png" class="plClose">
|
||||
<div class="plTop">
|
||||
<img src="~/img/paywait.png">
|
||||
</div>
|
||||
<div class="row plFour">
|
||||
<div class="col-lg-12 text-center loadingBox">
|
||||
<img src="~/img/loading.gif" style="width:100px;height:20px">
|
||||
<p>账号检测中请耐心等待</p>
|
||||
</div>
|
||||
<div class="col-lg-12 text-center errorTip">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
function showPayWait() {
|
||||
$(".popmask").show()
|
||||
$(".paywait").show();
|
||||
$(".loadingBox").show();
|
||||
$(".errorTip").text("");
|
||||
}
|
||||
function hidePayWait() {
|
||||
$(".popmask").hide()
|
||||
$(".paywait").hide();
|
||||
}
|
||||
function tipPayWait(info) {
|
||||
showPayWait();
|
||||
$(".loadingBox").hide();
|
||||
$(".errorTip").text(info)
|
||||
}
|
||||
$(".plClose").on("click", function () { hidePayWait() })
|
||||
</script>
|
||||
<!-- 支付等待弹窗结束 -->
|
||||
|
||||
<style>
|
||||
/* 支付等待弹窗开始 */
|
||||
.paywait {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
width: 360px;
|
||||
height: 500px;
|
||||
top: 50%;
|
||||
margin-top: -200px;
|
||||
left: 50%;
|
||||
margin-left: -180px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.plTop img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.plFour {
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.plFour img {
|
||||
width: 90%;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.plClose {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 10px;
|
||||
z-index: 999;
|
||||
}
|
||||
.errorTip{
|
||||
margin-top:30px;
|
||||
color:red;
|
||||
}
|
||||
/* 支付等待弹窗结束 */
|
||||
</style>
|
||||
|
||||
<!-- 支付等待 -->
|
||||
<div class="paywait">
|
||||
<img src="~/img/close.png" class="plClose">
|
||||
<div class="plTop">
|
||||
<img src="~/img/paywait.png">
|
||||
</div>
|
||||
<div class="row plFour">
|
||||
<div class="col-lg-12 text-center loadingBox">
|
||||
<img src="~/img/loading.gif" style="width:100px;height:20px">
|
||||
<p>账号检测中请耐心等待</p>
|
||||
</div>
|
||||
<div class="col-lg-12 text-center errorTip">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
function showPayWait() {
|
||||
$(".popmask").show()
|
||||
$(".paywait").show();
|
||||
$(".loadingBox").show();
|
||||
$(".errorTip").text("");
|
||||
}
|
||||
function hidePayWait() {
|
||||
$(".popmask").hide()
|
||||
$(".paywait").hide();
|
||||
}
|
||||
function tipPayWait(info) {
|
||||
showPayWait();
|
||||
$(".loadingBox").hide();
|
||||
$(".errorTip").text(info)
|
||||
}
|
||||
$(".plClose").on("click", function () { hidePayWait() })
|
||||
</script>
|
||||
<!-- 支付等待弹窗结束 -->
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
@model ErrorViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Error";
|
||||
}
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
||||
@if (Model.ShowRequestId)
|
||||
{
|
||||
<p>
|
||||
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||
</p>
|
||||
}
|
||||
|
||||
<h3>Development Mode</h3>
|
||||
<p>
|
||||
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||
</p>
|
||||
<p>
|
||||
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||
It can result in displaying sensitive information from exceptions to end users.
|
||||
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||
and restarting the app.
|
||||
</p>
|
||||
@model ErrorViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Error";
|
||||
}
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
||||
@if (Model.ShowRequestId)
|
||||
{
|
||||
<p>
|
||||
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||
</p>
|
||||
}
|
||||
|
||||
<h3>Development Mode</h3>
|
||||
<p>
|
||||
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||
</p>
|
||||
<p>
|
||||
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||
It can result in displaying sensitive information from exceptions to end users.
|
||||
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||
and restarting the app.
|
||||
</p>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
@using Microsoft.AspNetCore.Http.Features
|
||||
|
||||
@{
|
||||
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
|
||||
var showBanner = !consentFeature?.CanTrack ?? false;
|
||||
var cookieString = consentFeature?.CreateConsentCookie();
|
||||
}
|
||||
|
||||
@if (showBanner)
|
||||
{
|
||||
<div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
|
||||
Use this space to summarize your privacy and cookie use policy. <a asp-area="" asp-controller="Home" asp-action="Privacy">Learn More</a>.
|
||||
<button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
|
||||
<span aria-hidden="true">Accept</span>
|
||||
</button>
|
||||
</div>
|
||||
<script>
|
||||
(function () {
|
||||
var button = document.querySelector("#cookieConsent button[data-cookie-string]");
|
||||
button.addEventListener("click", function (event) {
|
||||
document.cookie = button.dataset.cookieString;
|
||||
}, false);
|
||||
})();
|
||||
</script>
|
||||
}
|
||||
@using Microsoft.AspNetCore.Http.Features
|
||||
|
||||
@{
|
||||
var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
|
||||
var showBanner = !consentFeature?.CanTrack ?? false;
|
||||
var cookieString = consentFeature?.CreateConsentCookie();
|
||||
}
|
||||
|
||||
@if (showBanner)
|
||||
{
|
||||
<div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
|
||||
Use this space to summarize your privacy and cookie use policy. <a asp-area="" asp-controller="Home" asp-action="Privacy">Learn More</a>.
|
||||
<button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
|
||||
<span aria-hidden="true">Accept</span>
|
||||
</button>
|
||||
</div>
|
||||
<script>
|
||||
(function () {
|
||||
var button = document.querySelector("#cookieConsent button[data-cookie-string]");
|
||||
button.addEventListener("click", function (event) {
|
||||
document.cookie = button.dataset.cookieString;
|
||||
}, false);
|
||||
})();
|
||||
</script>
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,203 +1,203 @@
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@{
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
string currentPath = this.Context.Request.Path.ToString().ToLower();
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>聚IP JUIP.COM</title>
|
||||
<link rel="stylesheet" type="text/css" href="~/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/css/base.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/css/swiper.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/css/animate.min.css" />
|
||||
<link href="~/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
|
||||
<script src="~/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/moment-with-locales.js"></script>
|
||||
<script src="~/js/bootstrap-datetimepicker.min.js"></script>
|
||||
|
||||
<script src="~/js/vue.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/jquery.qrcode.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
// 侧边栏
|
||||
//$(".on_q").click(function () {
|
||||
// $(".side_q").toggle();
|
||||
//});
|
||||
|
||||
$(".item_on_q").mouseover(function () {
|
||||
$(".side_q").stop().show();
|
||||
});
|
||||
$(".item_on_q").mouseleave(function () {
|
||||
$(".side_q").stop().hide();
|
||||
});
|
||||
|
||||
//$(".on_wx").click(function () {
|
||||
// $(".side_kefu").toggle();
|
||||
//});
|
||||
|
||||
$(".item_on_wx").mouseover(function () {
|
||||
$(".side_kefu").stop().fadeIn();
|
||||
});
|
||||
$(".item_on_wx").mouseleave(function () {
|
||||
$(".side_kefu").stop().fadeOut();
|
||||
});
|
||||
|
||||
$(".on_gzh").mouseover(function () {
|
||||
$(".side_gzh").stop().fadeIn();
|
||||
});
|
||||
$(".on_gzh").mouseleave(function () {
|
||||
$(".side_gzh").stop().fadeOut();
|
||||
});
|
||||
|
||||
$(".on_tel").mouseover(function () {
|
||||
$(".side_tel").stop().fadeIn();
|
||||
});
|
||||
$(".on_tel").mouseleave(function () {
|
||||
$(".side_tel").stop().fadeOut();
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sideBar">
|
||||
|
||||
<div class="item item_on_q">
|
||||
<a href="https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true" target="_blank">
|
||||
<img src="~/img/qq.png" class="on_q"> <div class="kefu_tit">QQ</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="item item_on_wx">
|
||||
<a href="https://work.weixin.qq.com/kfid/kfc458bc58e79e5093f" style="color: #0862fe;">
|
||||
<img src="~/img/weixin.png" class="on_wx"><div class="kefu_tit">微信</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/img/gzh.png" class="on_gzh"><div class="kefu_tit">公众号</div>
|
||||
<div class="side_gzh">
|
||||
<p><img src="~/img/ewm.png"></p>
|
||||
<p style="color:#f90">实时响应 在线时间 8:30-23:00</p>
|
||||
<p style="color:#f90">关注公众号可获取免费的到期提醒服务</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/img/tel.png" class="on_tel"><div class="kefu_tit">电话</div>
|
||||
<div class="side_tel">
|
||||
<p><b>400 800 9925</b></p>
|
||||
<p>实时接通</p>
|
||||
<p>电话值班时间 8:30-23:00</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="#top"><img src="~/img/top.png"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid nav nav_buy">
|
||||
<div class="row">
|
||||
<div class="col-lg-2 col-md-2 logo">
|
||||
<a href="#"><img src="~/img/logo.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-10 col-md-10">
|
||||
<ul class="navList navList_buy pull-right">
|
||||
<li><a href="/">首页</a></li>
|
||||
<li><a href="/product/index">产品购买 <span style="color: red;">活动</span></a></li>
|
||||
<li><a href="/LineList/index" ">IP线路表</a></li>
|
||||
<li><a href="/product/soft">软件下载</a></li>
|
||||
<li><a href="/article/index">教程&咨询</a></li>
|
||||
<li><a href="/product/routeros">软路由购买</a></li>
|
||||
<li><a href="http://vps.juip.com" style="color: red;">动态VPS</a></li>
|
||||
<li>
|
||||
<div class="item" style="display: inline-block;margin-right:20px;">
|
||||
<a asp-action="index" style="border-radius:25px;background-color:#FF9900;padding:5px;" asp-controller="user">个人中心</a>
|
||||
</div>
|
||||
<div class="item" style="display: inline-block;">
|
||||
<a asp-action="LoginOut" asp-controller="user">退出登录</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- main -->
|
||||
<div class="container-fluid clearMargin">
|
||||
<div class="col-lg-2 leftArea">
|
||||
<div class="leftBar">
|
||||
<div class="item @(currentPath=="/user/index"?"active_b":"")">
|
||||
<img src="~/img/p1.png"><a href="/user/index">个人中心</a>
|
||||
</div>
|
||||
|
||||
<div class="item @(currentPath=="/user/myaccounts"?"active_b":"")">
|
||||
<img src="~/img/p4.png"><a href="/user/myaccounts">IP账号管理</a>
|
||||
</div>
|
||||
|
||||
<div class="item @(currentPath=="/user/mymoney"?"active_b":"")">
|
||||
<img src="~/img/p3.png"><a href="/user/mymoney">资金明细</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/rosorder"?"active_b":"")">
|
||||
<img src="~/img/p2.png"><a href="/user/rosorder">软路由订单</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/myorders"?"active_b":"")">
|
||||
<img src="~/img/p2.png"><a href="/user/myorders">订单管理</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/myrefundorders"?"active_b":"")">
|
||||
<img src="~/img/p3.png"><a href="/user/myrefundorders">退货订单管理</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/mycoupons"?"active_b":"")">
|
||||
<img src="~/img/p5.png"><a href="/user/mycoupons">我的优惠券 <span style="background-color: red;" class="badge" id="coupon_num"></span></a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/cashout"?"active_b":"")">
|
||||
<span class="glyphicon glyphicon-jpy" style="padding: 10px;"></span><a href="/user/cashout">提现管理</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-10 rightCon">
|
||||
@RenderBody()
|
||||
</div>
|
||||
</div>
|
||||
@* <script id="qd28521381485d6faa97edf5ad07d7e159f6cb902af0" src="https://wp.qiye.qq.com/qidian/2852138148/5d6faa97edf5ad07d7e159f6cb902af0" charset="utf-8" async defer></script> *@
|
||||
|
||||
<div data-toggle="popovers" data-html="true" data-content="<p><a style='color: #0862fe;' href='https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true' target='_blank'>
|
||||
<img src='/img/q.png'> QQ在线客服
|
||||
</a><p><a href='https://work.weixin.qq.com/kfid/kfc458bc58e79e5093f' style='color: #0862fe;'><img src='/img/weixin.png' style='background-color:green;width:1.5em;'> 微信在线客服</a></p>" data-placement="top" class="row" id="djkf" style="background-color: white; width:255px;height:85px;position: fixed;z-index: 2000000000;bottom: 200px;right: 0px;cursor:pointer;">
|
||||
<style>
|
||||
.top{
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
<div class="col-xs-4" style="padding:0;">
|
||||
<img width="85" src="http://p.qpic.cn/qidian_pic/2852138148/2020071743d6537e611d9ff953f27cbb7430dbe7/0"/>
|
||||
</div>
|
||||
<div class="col-xs-8 " style="padding:0;">
|
||||
<h4><span class="glyphicon glyphicon-user" style="padding:10px 0 0 25px;color:#12b7f5;"></span>在线咨询</h4>
|
||||
<p class="text-center">服务时间 8:30-23:00</p>
|
||||
</div>
|
||||
<script>$(function () { $("[data-toggle='popovers']").popover(); });</script>
|
||||
</div>
|
||||
<script>
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
$("#coupon_num").text(res.Data.length);
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@RenderSection("Scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@{
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
string currentPath = this.Context.Request.Path.ToString().ToLower();
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>聚IP JUIP.COM</title>
|
||||
<link rel="stylesheet" type="text/css" href="~/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/css/base.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/css/swiper.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/css/animate.min.css" />
|
||||
<link href="~/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
|
||||
<script src="~/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/moment-with-locales.js"></script>
|
||||
<script src="~/js/bootstrap-datetimepicker.min.js"></script>
|
||||
|
||||
<script src="~/js/vue.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/js/jquery.qrcode.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
// 侧边栏
|
||||
//$(".on_q").click(function () {
|
||||
// $(".side_q").toggle();
|
||||
//});
|
||||
|
||||
$(".item_on_q").mouseover(function () {
|
||||
$(".side_q").stop().show();
|
||||
});
|
||||
$(".item_on_q").mouseleave(function () {
|
||||
$(".side_q").stop().hide();
|
||||
});
|
||||
|
||||
//$(".on_wx").click(function () {
|
||||
// $(".side_kefu").toggle();
|
||||
//});
|
||||
|
||||
$(".item_on_wx").mouseover(function () {
|
||||
$(".side_kefu").stop().fadeIn();
|
||||
});
|
||||
$(".item_on_wx").mouseleave(function () {
|
||||
$(".side_kefu").stop().fadeOut();
|
||||
});
|
||||
|
||||
$(".on_gzh").mouseover(function () {
|
||||
$(".side_gzh").stop().fadeIn();
|
||||
});
|
||||
$(".on_gzh").mouseleave(function () {
|
||||
$(".side_gzh").stop().fadeOut();
|
||||
});
|
||||
|
||||
$(".on_tel").mouseover(function () {
|
||||
$(".side_tel").stop().fadeIn();
|
||||
});
|
||||
$(".on_tel").mouseleave(function () {
|
||||
$(".side_tel").stop().fadeOut();
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sideBar">
|
||||
|
||||
<div class="item item_on_q">
|
||||
<a href="https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true" target="_blank">
|
||||
<img src="~/img/qq.png" class="on_q"> <div class="kefu_tit">QQ</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="item item_on_wx">
|
||||
<a href="https://work.weixin.qq.com/kfid/kfc458bc58e79e5093f" style="color: #0862fe;">
|
||||
<img src="~/img/weixin.png" class="on_wx"><div class="kefu_tit">微信</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/img/gzh.png" class="on_gzh"><div class="kefu_tit">公众号</div>
|
||||
<div class="side_gzh">
|
||||
<p><img src="~/img/ewm.png"></p>
|
||||
<p style="color:#f90">实时响应 在线时间 8:30-23:00</p>
|
||||
<p style="color:#f90">关注公众号可获取免费的到期提醒服务</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/img/tel.png" class="on_tel"><div class="kefu_tit">电话</div>
|
||||
<div class="side_tel">
|
||||
<p><b>400 800 9925</b></p>
|
||||
<p>实时接通</p>
|
||||
<p>电话值班时间 8:30-23:00</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="#top"><img src="~/img/top.png"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid nav nav_buy">
|
||||
<div class="row">
|
||||
<div class="col-lg-2 col-md-2 logo">
|
||||
<a href="#"><img src="~/img/logo.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-10 col-md-10">
|
||||
<ul class="navList navList_buy pull-right">
|
||||
<li><a href="/">首页</a></li>
|
||||
<li><a href="/product/index">产品购买 <span style="color: red;">活动</span></a></li>
|
||||
<li><a href="/LineList/index" ">IP线路表</a></li>
|
||||
<li><a href="/product/soft">软件下载</a></li>
|
||||
<li><a href="/article/index">教程&咨询</a></li>
|
||||
<li><a href="/product/routeros">软路由购买</a></li>
|
||||
<li><a href="http://vps.juip.com" style="color: red;">动态VPS</a></li>
|
||||
<li>
|
||||
<div class="item" style="display: inline-block;margin-right:20px;">
|
||||
<a asp-action="index" style="border-radius:25px;background-color:#FF9900;padding:5px;" asp-controller="user">个人中心</a>
|
||||
</div>
|
||||
<div class="item" style="display: inline-block;">
|
||||
<a asp-action="LoginOut" asp-controller="user">退出登录</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- main -->
|
||||
<div class="container-fluid clearMargin">
|
||||
<div class="col-lg-2 leftArea">
|
||||
<div class="leftBar">
|
||||
<div class="item @(currentPath=="/user/index"?"active_b":"")">
|
||||
<img src="~/img/p1.png"><a href="/user/index">个人中心</a>
|
||||
</div>
|
||||
|
||||
<div class="item @(currentPath=="/user/myaccounts"?"active_b":"")">
|
||||
<img src="~/img/p4.png"><a href="/user/myaccounts">IP账号管理</a>
|
||||
</div>
|
||||
|
||||
<div class="item @(currentPath=="/user/mymoney"?"active_b":"")">
|
||||
<img src="~/img/p3.png"><a href="/user/mymoney">资金明细</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/rosorder"?"active_b":"")">
|
||||
<img src="~/img/p2.png"><a href="/user/rosorder">软路由订单</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/myorders"?"active_b":"")">
|
||||
<img src="~/img/p2.png"><a href="/user/myorders">订单管理</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/myrefundorders"?"active_b":"")">
|
||||
<img src="~/img/p3.png"><a href="/user/myrefundorders">退货订单管理</a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/mycoupons"?"active_b":"")">
|
||||
<img src="~/img/p5.png"><a href="/user/mycoupons">我的优惠券 <span style="background-color: red;" class="badge" id="coupon_num"></span></a>
|
||||
</div>
|
||||
<div class="item @(currentPath=="/user/cashout"?"active_b":"")">
|
||||
<span class="glyphicon glyphicon-jpy" style="padding: 10px;"></span><a href="/user/cashout">提现管理</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-10 rightCon">
|
||||
@RenderBody()
|
||||
</div>
|
||||
</div>
|
||||
@* <script id="qd28521381485d6faa97edf5ad07d7e159f6cb902af0" src="https://wp.qiye.qq.com/qidian/2852138148/5d6faa97edf5ad07d7e159f6cb902af0" charset="utf-8" async defer></script> *@
|
||||
|
||||
<div data-toggle="popovers" data-html="true" data-content="<p><a style='color: #0862fe;' href='https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true' target='_blank'>
|
||||
<img src='/img/q.png'> QQ在线客服
|
||||
</a><p><a href='https://work.weixin.qq.com/kfid/kfc458bc58e79e5093f' style='color: #0862fe;'><img src='/img/weixin.png' style='background-color:green;width:1.5em;'> 微信在线客服</a></p>" data-placement="top" class="row" id="djkf" style="background-color: white; width:255px;height:85px;position: fixed;z-index: 2000000000;bottom: 200px;right: 0px;cursor:pointer;">
|
||||
<style>
|
||||
.top{
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
<div class="col-xs-4" style="padding:0;">
|
||||
<img width="85" src="http://p.qpic.cn/qidian_pic/2852138148/2020071743d6537e611d9ff953f27cbb7430dbe7/0"/>
|
||||
</div>
|
||||
<div class="col-xs-8 " style="padding:0;">
|
||||
<h4><span class="glyphicon glyphicon-user" style="padding:10px 0 0 25px;color:#12b7f5;"></span>在线咨询</h4>
|
||||
<p class="text-center">服务时间 8:30-23:00</p>
|
||||
</div>
|
||||
<script>$(function () { $("[data-toggle='popovers']").popover(); });</script>
|
||||
</div>
|
||||
<script>
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
$("#coupon_num").text(res.Data.length);
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@RenderSection("Scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<environment include="Development">
|
||||
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
|
||||
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
|
||||
</environment>
|
||||
<environment exclude="Development">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"
|
||||
asp-fallback-src="~/lib/jquery-validation/dist/jquery.validate.min.js"
|
||||
asp-fallback-test="window.jQuery && window.jQuery.validator"
|
||||
crossorigin="anonymous"
|
||||
integrity="sha256-F6h55Qw6sweK+t7SiOJX+2bpSAa3b/fnlrVCJvmEj1A=">
|
||||
</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"
|
||||
asp-fallback-src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
|
||||
asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive"
|
||||
crossorigin="anonymous"
|
||||
integrity="sha256-9GycpJnliUjJDVDqP0UEu/bsm9U+3dnQUH8+3W10vkY=">
|
||||
</script>
|
||||
</environment>
|
||||
<environment include="Development">
|
||||
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
|
||||
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
|
||||
</environment>
|
||||
<environment exclude="Development">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"
|
||||
asp-fallback-src="~/lib/jquery-validation/dist/jquery.validate.min.js"
|
||||
asp-fallback-test="window.jQuery && window.jQuery.validator"
|
||||
crossorigin="anonymous"
|
||||
integrity="sha256-F6h55Qw6sweK+t7SiOJX+2bpSAa3b/fnlrVCJvmEj1A=">
|
||||
</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"
|
||||
asp-fallback-src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
|
||||
asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive"
|
||||
crossorigin="anonymous"
|
||||
integrity="sha256-9GycpJnliUjJDVDqP0UEu/bsm9U+3dnQUH8+3W10vkY=">
|
||||
</script>
|
||||
</environment>
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div id="app">
|
||||
<table class="table">
|
||||
<caption>提现管理</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>用户</th>
|
||||
<th>提现金额</th>
|
||||
<th>提现理由</th>
|
||||
<th>支付宝账号</th>
|
||||
<th>备注</th>
|
||||
<th>状态</th>
|
||||
<th>提现时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="info in tableData">
|
||||
<td>{{info.username}}</td>
|
||||
<td>{{info.money}}</td>
|
||||
<td>{{info.reason}}</td>
|
||||
<td>{{info.alipay_account}}</td>
|
||||
<td>{{info.remark}}</td>
|
||||
<td>{{info.status}}</td>
|
||||
<td>{{info.create_time}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
var vm = new Vue({
|
||||
el:'#app',
|
||||
data:{
|
||||
tableData: [],
|
||||
},
|
||||
created:function(){
|
||||
this.post();
|
||||
},
|
||||
methods:{
|
||||
post:function(){
|
||||
var param = [];
|
||||
let cashOutData = {
|
||||
cookie:document.cookie
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/order/CashOutIndex/getData',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(cashOutData),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
param = res.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.tableData = param;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div id="app">
|
||||
<table class="table">
|
||||
<caption>提现管理</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>用户</th>
|
||||
<th>提现金额</th>
|
||||
<th>提现理由</th>
|
||||
<th>支付宝账号</th>
|
||||
<th>备注</th>
|
||||
<th>状态</th>
|
||||
<th>提现时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="info in tableData">
|
||||
<td>{{info.username}}</td>
|
||||
<td>{{info.money}}</td>
|
||||
<td>{{info.reason}}</td>
|
||||
<td>{{info.alipay_account}}</td>
|
||||
<td>{{info.remark}}</td>
|
||||
<td>{{info.status}}</td>
|
||||
<td>{{info.create_time}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
var vm = new Vue({
|
||||
el:'#app',
|
||||
data:{
|
||||
tableData: [],
|
||||
},
|
||||
created:function(){
|
||||
this.post();
|
||||
},
|
||||
methods:{
|
||||
post:function(){
|
||||
var param = [];
|
||||
let cashOutData = {
|
||||
cookie:document.cookie
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/order/CashOutIndex/getData',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(cashOutData),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
param = res.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.tableData = param;
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,15 @@
|
||||
@{
|
||||
ViewData["Title"] = "登录";
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
loginCallback = function () {
|
||||
window.location.href="/"
|
||||
}
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
</script>
|
||||
}
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "登录";
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
loginCallback = function () {
|
||||
window.location.href="/"
|
||||
}
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
</script>
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,53 +1,53 @@
|
||||
@using Hncore.Pass.Sells.Model
|
||||
@model List<UserCouponModel>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="col-lg-3">
|
||||
<div class="quan">
|
||||
@if (item.Coupon.CouponType == ECouponType.Discount)
|
||||
{
|
||||
<span class="couponPrice">@(item.Coupon.CouponValue)折</span><span class="couponName">@item.Coupon.Name</span>
|
||||
}
|
||||
@if (item.Coupon.CouponType == ECouponType.Minus)
|
||||
{
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">@(item.Coupon.CouponValue)</span><span class="couponName">@item.Coupon.Name</span>
|
||||
</div>
|
||||
}
|
||||
<div class="item">
|
||||
使用规则:@(item.Coupon.AllowMinAmount > 0 ? $"满{item.Coupon.AllowMinAmount}元可用" : "无限制")
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:@(item.Orgin.StartTime.Value.ToString("yyyy.MM.dd"))-@(item.Orgin.EndTime.Value.ToString("yyyy.MM.dd"))
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径: @item.Orgin.Remark
|
||||
</div>
|
||||
<div class="item">
|
||||
@(item.IsUsed?"已使用":"未使用")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@*<div class="col-lg-3">
|
||||
<div class="quan gray">
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">3</span><span class="couponName">优惠券名称</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
使用规则:无限制
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:<span>2020.1.1-2020.2.3</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径;淘宝下单赠送
|
||||
</div>
|
||||
<div class="item">
|
||||
已使用
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
@using Hncore.Pass.Sells.Model
|
||||
@model List<UserCouponModel>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="col-lg-3">
|
||||
<div class="quan">
|
||||
@if (item.Coupon.CouponType == ECouponType.Discount)
|
||||
{
|
||||
<span class="couponPrice">@(item.Coupon.CouponValue)折</span><span class="couponName">@item.Coupon.Name</span>
|
||||
}
|
||||
@if (item.Coupon.CouponType == ECouponType.Minus)
|
||||
{
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">@(item.Coupon.CouponValue)</span><span class="couponName">@item.Coupon.Name</span>
|
||||
</div>
|
||||
}
|
||||
<div class="item">
|
||||
使用规则:@(item.Coupon.AllowMinAmount > 0 ? $"满{item.Coupon.AllowMinAmount}元可用" : "无限制")
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:@(item.Orgin.StartTime.Value.ToString("yyyy.MM.dd"))-@(item.Orgin.EndTime.Value.ToString("yyyy.MM.dd"))
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径: @item.Orgin.Remark
|
||||
</div>
|
||||
<div class="item">
|
||||
@(item.IsUsed?"已使用":"未使用")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@*<div class="col-lg-3">
|
||||
<div class="quan gray">
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">3</span><span class="couponName">优惠券名称</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
使用规则:无限制
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:<span>2020.1.1-2020.2.3</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径;淘宝下单赠送
|
||||
</div>
|
||||
<div class="item">
|
||||
已使用
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
@@ -1,242 +1,242 @@
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
|
||||
Func<string, string> cut = word =>
|
||||
{
|
||||
if (word.Length > 15)
|
||||
return word.Substring(0, 15) + "...";
|
||||
return word;
|
||||
};
|
||||
}
|
||||
<style>
|
||||
.tipBox {
|
||||
position: absolute;
|
||||
padding:10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #fff;
|
||||
width: 260px;
|
||||
min-height:100px;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="toolsBar" id="app">
|
||||
|
||||
<div class="item">
|
||||
日期筛选:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.OrderType" style="height:35px;">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KeyWord" placeholder="账号" class="bianhao" /><button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>单价</th>
|
||||
<th>总连接数</th>
|
||||
<th>账号</th>
|
||||
<th>订单金额</th>
|
||||
<th>优惠券</th>
|
||||
<th>实付金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@(item.ConnectCount*item.AccountCount)</td>
|
||||
<td class="@(item.Accounts.Length>15?"cutTip":"")">
|
||||
@cut(item.Accounts)
|
||||
<div class="tipBox">@item.Accounts</div>
|
||||
</td>
|
||||
<td>@item.OrderAmount</td>
|
||||
<td>@item.CouponAmount</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
|
||||
$(".cutTip").mouseover(function () {
|
||||
$(this).children().last().show();
|
||||
}).mouseleave(function () {
|
||||
$(this).children().last().hide();
|
||||
})
|
||||
});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
OrderType:0,
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
KeyWord:'',
|
||||
BTime: '@this.Context.Request.Get("BTime")',
|
||||
ETime: '@this.Context.Request.Get("ETime")',
|
||||
},
|
||||
oneAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd:""
|
||||
},
|
||||
mutilAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd: "",
|
||||
StartNum: 0,
|
||||
Count:0
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
|
||||
Func<string, string> cut = word =>
|
||||
{
|
||||
if (word.Length > 15)
|
||||
return word.Substring(0, 15) + "...";
|
||||
return word;
|
||||
};
|
||||
}
|
||||
<style>
|
||||
.tipBox {
|
||||
position: absolute;
|
||||
padding:10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #fff;
|
||||
width: 260px;
|
||||
min-height:100px;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="toolsBar" id="app">
|
||||
|
||||
<div class="item">
|
||||
日期筛选:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.OrderType" style="height:35px;">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KeyWord" placeholder="账号" class="bianhao" /><button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>单价</th>
|
||||
<th>总连接数</th>
|
||||
<th>账号</th>
|
||||
<th>订单金额</th>
|
||||
<th>优惠券</th>
|
||||
<th>实付金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@(item.ConnectCount*item.AccountCount)</td>
|
||||
<td class="@(item.Accounts.Length>15?"cutTip":"")">
|
||||
@cut(item.Accounts)
|
||||
<div class="tipBox">@item.Accounts</div>
|
||||
</td>
|
||||
<td>@item.OrderAmount</td>
|
||||
<td>@item.CouponAmount</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
|
||||
$(".cutTip").mouseover(function () {
|
||||
$(this).children().last().show();
|
||||
}).mouseleave(function () {
|
||||
$(this).children().last().hide();
|
||||
})
|
||||
});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
OrderType:0,
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
KeyWord:'',
|
||||
BTime: '@this.Context.Request.Get("BTime")',
|
||||
ETime: '@this.Context.Request.Get("ETime")',
|
||||
},
|
||||
oneAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd:""
|
||||
},
|
||||
mutilAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd: "",
|
||||
StartNum: 0,
|
||||
Count:0
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1,205 +1,205 @@
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div class="toolsBar" id="app">
|
||||
<div class="item">
|
||||
日期:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" name="BTime" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" name="ETime" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0" selected >全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KewWord" placeholder="账号" class="bianhao" />
|
||||
<button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>账号</th>
|
||||
<th>连接数</th>
|
||||
<th>退款时长</th>
|
||||
<th>退款单价</th>
|
||||
<th>实付金额</th>
|
||||
<th>退款金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.Accounts</td>
|
||||
<td>@item.ConnectCount</td>
|
||||
<td>@item.DayCount</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
<td>@item.RefundAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
Keyword:'',
|
||||
BTime: '',
|
||||
ETime: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
selectFn: function (e) {
|
||||
console.log(e.target.value) // 选择项的value
|
||||
},
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
}
|
||||
}
|
||||
})
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
//退款
|
||||
$(".btn-refund").on('click', function () {
|
||||
var accounts = [];
|
||||
$.each($('input:checkbox:checked'), function () {
|
||||
accounts.push($(this).val())
|
||||
});
|
||||
if (accounts.length == 0) { alert('请选择账号'); return; }
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/order/Refund?account=' + accounts[0],
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
alert('退款成功')
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div class="toolsBar" id="app">
|
||||
<div class="item">
|
||||
日期:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" name="BTime" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" name="ETime" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0" selected >全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KewWord" placeholder="账号" class="bianhao" />
|
||||
<button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>账号</th>
|
||||
<th>连接数</th>
|
||||
<th>退款时长</th>
|
||||
<th>退款单价</th>
|
||||
<th>实付金额</th>
|
||||
<th>退款金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.Accounts</td>
|
||||
<td>@item.ConnectCount</td>
|
||||
<td>@item.DayCount</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
<td>@item.RefundAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
Keyword:'',
|
||||
BTime: '',
|
||||
ETime: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
selectFn: function (e) {
|
||||
console.log(e.target.value) // 选择项的value
|
||||
},
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
}
|
||||
}
|
||||
})
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
//退款
|
||||
$(".btn-refund").on('click', function () {
|
||||
var accounts = [];
|
||||
$.each($('input:checkbox:checked'), function () {
|
||||
accounts.push($(this).val())
|
||||
});
|
||||
if (accounts.length == 0) { alert('请选择账号'); return; }
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/order/Refund?account=' + accounts[0],
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
alert('退款成功')
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@using Home
|
||||
@using Home.Models
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
@using Home
|
||||
@using Home.Models
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
@addTagHelper *, Host
|
||||
@@ -1,3 +1,3 @@
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user