忽略dll文件git
This commit is contained in:
@@ -1,68 +1,68 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
|
||||
<div class="quanjushousuo">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<p><input type="text" name="KeyWord" placeholder="请输入问题关键词" /><button type="submit" class="btnOrange">搜索全部</button></p>
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="jiaocheng">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/m/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="~/m/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="~/m/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="~/m/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="newsList">
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
|
||||
<li role="presentation" class="@(type==1?"active":"")"><a href="?Catalog=1">聚IP头条</a></li>
|
||||
<li role="presentation" class="@(type==2?"active":"")"><a href="?Catalog=2">优惠活动</a></li>
|
||||
<li role="presentation" class="@(type==3?"active":"")"><a href="?Catalog=3">常见问题</a></li>
|
||||
<li role="presentation" class="@(type==4?"active":"")"><a href="?Catalog=4">新手教程</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="home">
|
||||
<ul class="news">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">@item.Title</a><span>@item.CreateTime.ToString("yyyy.MM.dd")</span></li>
|
||||
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
@*<div role="tabpanel" class="tab-pane" id="profile">2</div>
|
||||
<div role="tabpanel" class="tab-pane" id="messages">3</div>
|
||||
<div role="tabpanel" class="tab-pane" id="settings">4</div>*@
|
||||
</div>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
|
||||
<div class="quanjushousuo">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<p><input type="text" name="KeyWord" placeholder="请输入问题关键词" /><button type="submit" class="btnOrange">搜索全部</button></p>
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="jiaocheng">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/m/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="~/m/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="~/m/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="~/m/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="newsList">
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
|
||||
<li role="presentation" class="@(type==1?"active":"")"><a href="?Catalog=1">聚IP头条</a></li>
|
||||
<li role="presentation" class="@(type==2?"active":"")"><a href="?Catalog=2">优惠活动</a></li>
|
||||
<li role="presentation" class="@(type==3?"active":"")"><a href="?Catalog=3">常见问题</a></li>
|
||||
<li role="presentation" class="@(type==4?"active":"")"><a href="?Catalog=4">新手教程</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="home">
|
||||
<ul class="news">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">@item.Title</a><span>@item.CreateTime.ToString("yyyy.MM.dd")</span></li>
|
||||
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
@*<div role="tabpanel" class="tab-pane" id="profile">2</div>
|
||||
<div role="tabpanel" class="tab-pane" id="messages">3</div>
|
||||
<div role="tabpanel" class="tab-pane" id="settings">4</div>*@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
|
||||
<div class="quanjushousuo">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<p><input type="text" name="KeyWord" placeholder="请输入问题关键词" /><button type="submit" class="btnOrange">搜索全部</button></p>
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="jiaocheng">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/m/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="~/m/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="~/m/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="~/m/img/pc.png"></a></p>
|
||||
<p>windows电脑教程</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="newsList">
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active">
|
||||
<ul class="news">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">@item.Title</a><span>@item.CreateTime.ToString("yyyy.MM.dd")</span></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model PageData<ArticleEntity>
|
||||
@{
|
||||
var type = this.Context.Request.GetInt("Catalog");
|
||||
}
|
||||
|
||||
<div class="quanjushousuo">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<p><input type="text" name="KeyWord" placeholder="请输入问题关键词" /><button type="submit" class="btnOrange">搜索全部</button></p>
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="jiaocheng">
|
||||
<div class="item">
|
||||
<p><a asp-action="info" asp-controller="article" asp-route-id="3"><img src="~/m/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="~/m/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="~/m/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="~/m/img/pc.png"></a></p>
|
||||
<p>windows电脑教程</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="newsList">
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active">
|
||||
<ul class="news">
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id">@item.Title</a><span>@item.CreateTime.ToString("yyyy.MM.dd")</span></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,44 +1,44 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model ArticleInfoMode
|
||||
@{
|
||||
|
||||
}
|
||||
<div class="quanjushousuo">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<p><input type="text" name="KeyWord" placeholder="请输入问题关键词" /><button type="submit" class="btnOrange">搜索全部</button></p>
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="lujing">
|
||||
<a href="/">首页</a>><span>@Model.Info.CatalogId.GetEnumDisplayName()</span>
|
||||
</div>
|
||||
<div class="lineBar">
|
||||
|
||||
</div>
|
||||
<div class="dmain">
|
||||
<p class="dtit">@Model.Info.Title</p>
|
||||
@if(@Model.Info.Id == 3){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1 style="font-size: 2em;">视频教程</h1>
|
||||
<video controls="controls" height="70%" 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 style="font-size: 2em;">视频教程</h1>
|
||||
<video controls="controls" height="70%" 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 style="font-size: 2em;">视频教程</h1>
|
||||
<video controls="controls" height="70%" 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>
|
||||
}
|
||||
<p class="dtime grayText">@Model.Info.CreateTime.ToString("yyyy.MM.dd")</p>
|
||||
<p class="dcon">
|
||||
@Html.Raw(Model.Info.Content)
|
||||
</p>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model ArticleInfoMode
|
||||
@{
|
||||
|
||||
}
|
||||
<div class="quanjushousuo">
|
||||
<form asp-action="Search" asp-controller="Article" method="get">
|
||||
<p><input type="text" name="KeyWord" placeholder="请输入问题关键词" /><button type="submit" class="btnOrange">搜索全部</button></p>
|
||||
<p class="hot">搜索热词:<span>账号无法登录</span><span>如何充值</span></p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="lujing">
|
||||
<a href="/">首页</a>><span>@Model.Info.CatalogId.GetEnumDisplayName()</span>
|
||||
</div>
|
||||
<div class="lineBar">
|
||||
|
||||
</div>
|
||||
<div class="dmain">
|
||||
<p class="dtit">@Model.Info.Title</p>
|
||||
@if(@Model.Info.Id == 3){
|
||||
<div class="container" style="text-align: center;">
|
||||
<h1 style="font-size: 2em;">视频教程</h1>
|
||||
<video controls="controls" height="70%" 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 style="font-size: 2em;">视频教程</h1>
|
||||
<video controls="controls" height="70%" 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 style="font-size: 2em;">视频教程</h1>
|
||||
<video controls="controls" height="70%" 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>
|
||||
}
|
||||
<p class="dtime grayText">@Model.Info.CreateTime.ToString("yyyy.MM.dd")</p>
|
||||
<p class="dcon">
|
||||
@Html.Raw(Model.Info.Content)
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
<div class="container-fluid tAd">
|
||||
<img src="~/img/tBanner.png">
|
||||
</div>
|
||||
|
||||
<div class="container-fluid taobao_tintro text-center">
|
||||
<p>您可通过淘宝付款,系统自动赠送1元无限制优惠券。</p>
|
||||
<p>购买任意套餐都可以使用(相当于天卡半价),每隔30天可参加一次即得1张。</p>
|
||||
</div>
|
||||
|
||||
<div class="container tPeitu">
|
||||
<img src="~/img/peitu.png">
|
||||
</div>
|
||||
|
||||
<div class="container ttishi text-center">
|
||||
—— 为方便充值及开通,请选择自己需要的产品的对应店铺 ——
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row tlink">
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.8.5a165f8bWrye7I&id=537279953649&abbucket=4
|
||||
" target="_blank"><img src="~/img/t1.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.8.5a165f8b9jMT39&id=557842664450&abbucket=4
|
||||
" target="_blank"><img src="~/img/t2.png"></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row tlink">
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.8.5a165f8b9jMT39&id=557842664450&abbucket=4
|
||||
" target="_blank"><img src="~/img/t3.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<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">
|
||||
<img src="~/img/tBanner.png">
|
||||
</div>
|
||||
|
||||
<div class="container-fluid taobao_tintro text-center">
|
||||
<p>您可通过淘宝付款,系统自动赠送1元无限制优惠券。</p>
|
||||
<p>购买任意套餐都可以使用(相当于天卡半价),每隔30天可参加一次即得1张。</p>
|
||||
</div>
|
||||
|
||||
<div class="container tPeitu">
|
||||
<img src="~/img/peitu.png">
|
||||
</div>
|
||||
|
||||
<div class="container ttishi text-center">
|
||||
—— 为方便充值及开通,请选择自己需要的产品的对应店铺 ——
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row tlink">
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.8.5a165f8bWrye7I&id=537279953649&abbucket=4
|
||||
" target="_blank"><img src="~/img/t1.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.8.5a165f8b9jMT39&id=557842664450&abbucket=4
|
||||
" target="_blank"><img src="~/img/t2.png"></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row tlink">
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<a href="https://item.taobao.com/item.htm?spm=a230r.7195193.1997079397.8.5a165f8b9jMT39&id=557842664450&abbucket=4
|
||||
" target="_blank"><img src="~/img/t3.png"></a>
|
||||
</div>
|
||||
<div class="col-lg-3 col-xs-6 col-sm-6">
|
||||
<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>
|
||||
@@ -1,400 +1,400 @@
|
||||
@model List<ProductModel>
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer
|
||||
@using Hncore.Pass.Vpn.Service
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@inject ArticleService m_ArticleService
|
||||
@inject IConfiguration m_Configuration
|
||||
@{
|
||||
ViewData["Title"] = "聚IP JUIP.COM-千万动态ip切换,自建机房ip代理覆盖全国,多款市面热销产品";
|
||||
Layout = "_Layout";
|
||||
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
|
||||
var articleNews = await m_ArticleService.GetTop(12, ArticleCatalog.Top);
|
||||
var activityNews = await m_ArticleService.GetTop(12, ArticleCatalog.Activity);
|
||||
var helpsNews = await m_ArticleService.GetTop(12, ArticleCatalog.Help);
|
||||
var QANews = await m_ArticleService.GetTop(12, ArticleCatalog.QA);
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
var epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
|
||||
var countStr = epoch.ToString().Substring(0, 8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
.swiper-container-youshi .swiper-slide-active{
|
||||
background:rgba(0,0,0.8);
|
||||
}
|
||||
.notice {
|
||||
position: fixed;
|
||||
width: 90%;
|
||||
height: auto;
|
||||
left: 27%;
|
||||
top: 27%;
|
||||
margin-left: -200px;
|
||||
margin-top: -160px;
|
||||
z-index: 3;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 6px 8px 6px #ccc;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
padding: 30px;
|
||||
z-index: 10000000;
|
||||
}
|
||||
.notice p{
|
||||
font-size: 25px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div style="display: none;">
|
||||
<h1>自动换ip软件有什么用?使用换ip软件的好处让你想不到</h1>
|
||||
|
||||
<p>许多业内人士人经常使用“换ip的软件”和“动态代理ip”这两个词。有时我们的计算机容易受到攻击。在这种情况下,将突出显示IP地址更改工具的作用。它可以保护我们的计算机地址免受攻击。或者,一些技术合作伙伴在自己的爬虫项目中使用此类换ip的软件时,也会使用此类换ip的软件。换ip的软件的很大效果是可以隐藏实际ip地址。</p>
|
||||
<p>许多朋友需要这项技术来保护计算机的安全。你能改一下ip地址吗?答案是肯定的,但操作相当麻烦,因此生成了动态ip代理软件。您可以找到要更改的ip代理服务器,例如我们的动态IP代理。</p>
|
||||
<h1>如何为动态IP选择软件?需要考虑哪些方面?</h1>
|
||||
<p>首先,必须确保换ip的软件合法、合规,并且IP地址也是合法的。换ip的软件是一种已获得批准证书的软件,在全国主要城市拥有大量动态IP节点。第二,换ip的软件稳定也很重要。您使用的动态代理IP就是您的使用,它可以很好地确保您的Internet网络的稳定性。</p>
|
||||
<p>最后,让客户放心的售后服务也不容忽视。换ip的软件甚至客户服务和售后都是技术性的,为客户提供比较好的方式。因此,在购买相关换ip的软件时,我们必须擦亮眼睛,选择更多。</p>
|
||||
<h2>换ip的软件优势:</h2>
|
||||
<p>1.换ip的软件技术:资深程序员精心设计每个功能,并不断更新和改进。</p>
|
||||
<p>2.换ip的软件强大:功能全面强大,不断开发更多功能,换ip的软件及时升级!</p>
|
||||
<p>3.换ip的软件使用方便:均采用人性化设计,智能化管理。只要我们能操作计算机,我们就能操作我们的软件。此外,我们还有一个换ip的软件教程。我们可以在阅读后操作换ip的软件!</p>
|
||||
<p>4.换ip的软件四个保证:持续发展保证、技术服务保证、问题整改保证、真正授权保证!让您的网络推广完全无忧!</p>
|
||||
<p>5.换ip的软件简单方便:动态固态IP地址一键刷新,一键批量测速,自由选择全国线路,自由选择全球ip代理和本地ip代理,一键快速连接ip软件!</p>
|
||||
|
||||
<h1>动态ip代理软件有什么特点?选哪家动态ip代理软件公司更好?</h1>
|
||||
|
||||
<p>合格的动态ip代理有哪些特点?目前,市场上有很多动态IP软件,质量参差不齐。合格动态ip代理的特点是什么?IP是一个网民的地址。有时网民需要多次更换IP。此时,需要动态IP更改软件。</p>
|
||||
<p>动态ip代理非常适合注册、验证、投票、运行号码、挂断、在线赚钱、推广、微信、微博、QQ、YY、QT、电子邮件、声誉、手机、PV等!</p>
|
||||
<p>动态ip代理比较明显的功能是自动更改IP地址,智能分配IP,并在每次断开和重新连接时自动更改IP。它具有IP容量大、速度快、稳定性高、安全性高等特点。您不必担心IP复制。</p>
|
||||
<p>网络上有许多动态IP代理软件。从众多的动态IP代理软件中选择合适的软件是非常重要的。如何找到比较合适的动态IP代理服务提供商?</p>
|
||||
<p>1.动态IP代理还取决于它能否提供完美的服务。如果买后没有人进行售后服务,使用中就会出现问题,无处可寻,所以完善的售后服务也很重要。</p>
|
||||
<p>2.好的动态IP代理取决于IP的来源。如果在互联网上直接扫描IP,质量很差,使用时会发生冲突。因此,最好使用自建服务器的代理,这样获得的动态IP代理非常稳定。</p>
|
||||
<p>这样,我相信您可以找到适合自己使用的动态IP代理资源。动态IP代理软件更安全、更快。动态IP代理是你网络工作的好帮手!</p>
|
||||
|
||||
<h1>如何电脑换ip软件让网站达到盈利的目的?</h1>
|
||||
<p>IP地址是互联网接入的基本条件。我们都是通过IP地址上网的。计算机只有一个固定的IP地址。然而,长期使用IP地址是非常不安全的,并且会导致很多安全风险。</p>
|
||||
<p>互联网上存在一定的风险。用户在互联网上浏览网页时会留下自己的信息。这些信息大部分是私人信息。如果个人信息被恶意的人窃取,这是非常危险的。因此,必须加强网站的安全性能。只有这样,才能保证用户的信息安全。熟悉互联网技术的人会定期更换IP,因为他们知道将个人信息留在互联网上非常不安全,可能会被犯罪分子窃取,这也会危及他们自己的财产,因此他们必须经常更换。</p>
|
||||
<p>确保个人信息安全的常用方法是自动更换IP地址。有许多电脑换ip软件可以在Internet上使用。除了确保我们的信息安全,电脑换ip软件也可以用来赚取一些利润。</p>
|
||||
<p>现在很多人会自己开发一个网站。开发一个网站并不难。在学习了这个方法之后,它非常简单。我们可以在互联网上看到各种各样的网站。这些网站中有些是由公司存档的,有些是由个人存档的。这些网站可以为人们提供很多信息。电脑换ip软件方法是获得更多的浏览量。只要你的观点上升,这意味着这个网站特别受欢迎。在这个时候,你可以在网站上做一些广告,或者用广告费赚一些钱。然而,赚钱的前提是网站可以有浏览量。只有好的网站才能吸引人,现在人们对网站的要求越来越高。糟糕的网页无法吸引人。只有想出一些方法,这些网页才能继续发展。</p>
|
||||
<p>很多人会使用电脑换ip软件来实现web代理。Web代理有很多优点。它不仅可以保护用户的安全上网,而且可以提高上网速度。用户在上网时非常关注个人隐私保护。他们不希望自己的个人隐私被泄露,因此只有一个安全的网站才能让他们感到放心,在使用电脑换ip软件后,网站变得更加封闭。整个网络使用一个IP,这是最安全的,不会有安全风险。使用代理IP软件后,您会发现网站上的信息根本没有泄露,用户在浏览网页时会更加轻松。即使他们输入了一些个人信息,也没关系。如果网站继续这样发展,它将获得更多的收入。电脑换ip软件,只需点击,自动切换,快速更换,无需网卡,IP地址可以随意更改!</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="banner">
|
||||
<div class="buttonList">
|
||||
<div class="item">
|
||||
<a asp-action="soft" asp-controller="product"> <button type="button" class="btnBlue">客户端下载</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="linelist"> <button type="button" class="btnBlue">IP线路表</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="product"> <button type="button" class="btnOrange">免费试用</button></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="titProducts">
|
||||
<p>PRODUCTS</p>
|
||||
<p>产品介绍</p>
|
||||
</div>
|
||||
<div class="conProducts">
|
||||
<!-- Swiper -->
|
||||
<div class="swiper-container">
|
||||
<div class="swiper-wrapper">
|
||||
@foreach (var item in Model.Where(m => m.Sort != 1000))
|
||||
{
|
||||
<div class="swiper-slide">
|
||||
<div class="productCard">
|
||||
@*<div class="item">
|
||||
<img src="@P(item.Image)" />
|
||||
</div>*@
|
||||
<div class="item pName">
|
||||
@item.Name
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.Profile
|
||||
</div>
|
||||
<div class="item showLine">
|
||||
|
||||
<a asp-action="index" asp-controller="linelist" asp-route-ProductId="@item.Id">查看线路表→</a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="product" asp-route-id="@item.Id"><button type="button" class="btnBlue">测试与购买</button></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<!-- Add Arrows -->
|
||||
<div class="swiper-button-next"></div>
|
||||
<div class="swiper-button-prev"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="youshi">
|
||||
<!-- Swiper -->
|
||||
<div class="swiper-container-youshi">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide" style="background-image:url(./m/img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y1.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
全网产品最多IP库最大
|
||||
</div>
|
||||
<div class="item">
|
||||
旗下有强子IP,老鹰IP,先锋IP,星星IP等十几种动态IP,多产品组合畅享IP库翻倍,可用IP超1亿
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y2.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
全设备全协议支持
|
||||
</div>
|
||||
<div class="item">
|
||||
支持安卓,iOS,电脑,windows,linux等系统。支持IP,L2TP,SSTP等协议
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y3.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
用户独享宽带
|
||||
</div>
|
||||
<div class="item">
|
||||
一号一拨绝不超拨,快速切换平均带宽6-10兆,最高可达50兆
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y4.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
价低质优,免费测试
|
||||
</div>
|
||||
<div class="item">
|
||||
全自营机房一手资源,价低质优,量大可联系客服获取最低价
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y5.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
专属产品定制
|
||||
</div>
|
||||
<div class="item">
|
||||
支持定制独立服务器,可针对特定的项目需求定制专用产品
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y6.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
专业的服务团队
|
||||
</div>
|
||||
<div class="item">
|
||||
资深售前售后1对1指导,7*24小时实时响应,竭诚为您服务
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Add Pagination -->
|
||||
<div class="swiper-pagination"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="map">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="use">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="titProducts">
|
||||
<p>INFORMATION</p>
|
||||
<p>教程&咨询</p>
|
||||
</div>
|
||||
<div class="newsList">
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">聚IP头条</a></li>
|
||||
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">常见问题</a></li>
|
||||
<li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">新手教程</a></li>
|
||||
<li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">优惠活动</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="home">
|
||||
<ul class="news">
|
||||
@foreach (var item in articleNews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="profile">
|
||||
<ul class="news">
|
||||
@foreach (var item in activityNews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="messages">
|
||||
<ul class="news">
|
||||
@foreach (var item in QANews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="settings">
|
||||
<ul class="news">
|
||||
@foreach (var item in helpsNews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="qixia">
|
||||
<p>旗下产品</p>
|
||||
<ul>
|
||||
@foreach (var item in Model.Where(m => m.Sort != 1000))
|
||||
{
|
||||
<li><a asp-action="index" asp-controller="product" asp-route-id="@item.Id">@item.Name</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="linkus" style="display: block;">
|
||||
<div class="item">
|
||||
<p>联系我们</p>
|
||||
<p>企业电话:400 800 9925</p>
|
||||
<p>客服QQ:800101003</p>
|
||||
<p>客服微信-售前:</p>
|
||||
<img width="300px" src="~/img/kf_sq.jpg?123"><br>
|
||||
<p>客服微信-售后:</p>
|
||||
<img width="300px" src="~/img/kf_sh.jpg?1231">
|
||||
<p>工作时间:周一到周日8:30-23:00</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>大客户/商务合作</p>
|
||||
<p>电话/微信:177 9666 8888</p>
|
||||
<p>QQ:70177252</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ewm">
|
||||
<p><img src="~/m/img/ewm.png"></p>
|
||||
<p class="banquan">copyright 2020 聚IP JUIP.COM 版权所有</p>
|
||||
</div>
|
||||
|
||||
<div class="notice">
|
||||
|
||||
|
||||
<div style="font-size: 15px;">
|
||||
<p style="margin-top: 0px;text-align:center;width:100%;margin-bottom: 10px;color:red;background-color:#FFFF00;">公告</p>
|
||||
|
||||
<div style="color: red;text-align:center;">
|
||||
<p>杜绝电信诈骗及任何违法行为</p>
|
||||
<p>所有IP产品已记录日志,均保留6个月以上</p>
|
||||
<p>发现违法行为直接提交网监部门处理</p>
|
||||
</div>
|
||||
<p style="margin-top: 10px;font-weight:bold;text-align:center;">聚IP兔年新春复工助力活动:</p>
|
||||
<div style="padding-left: 20px;">
|
||||
@* <p>1.动态IP一毛钱一天,每用户限一次~</p> *@
|
||||
<p>1.新上蘑菇IP,周卡送1天,月卡送5天,双月卡送1个月,多买多送~</p>
|
||||
<p>2.其他产品均有<span style="color: red;font-size:1.5em;font-weight:bold;">7.5</span>折活动~</p>
|
||||
<p>3.需求5个以上可联系客服设置优惠折扣!</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p >
|
||||
<a style="margin-left: 200%;margin-top:20px;cursor:pointer;font-size:25px;" onclick="know()" type="button" class="btn btn-primary" >我知道了</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#myTabs a').click(function (e) {
|
||||
e.preventDefault()
|
||||
$(this).tab('show')
|
||||
})
|
||||
//var alert_info = "聚IP春节公告:\n1,春节不打烊,自助购买24小时正常运行,仅2月10日至2月18日人工在线时间为:早10点到晚22点,在此期间联系人工请尽量联系企业Q号,号码为800101003,其他联系方式可能回复不及时,紧急联系电话为4008009925转1号线。\n2,请勿相信外界谣言,聚IP始终保持诚信经营,对用户负责到底,更不会出现跑路的情况!\n3,12月10日-12月25日期间,公司无人工客服在线,给您造成不便,敬请谅解,为表达歉意,因此公司特推出动态IP 一毛钱一天,有史以来最大的折扣和赠送力度!\n4,并保证最低价,买贵双倍退差价。同时聚IP将继续为您提供优质的服务!\n5,无人工值守期间,极客IP大约一周无法使用,其他产品都运行正常,使用极客IP的客户可联系客服补时间。若使用除极客外的其他产品,因无人工客服给您造成影响,可联系客服说明情况,我们将根据情况给您适当的补偿!\n祝各位用户万事顺利,生意兴隆,新年快乐!!";
|
||||
//alert(alert_info);
|
||||
</script>
|
||||
<!-- Initialize Swiper -->
|
||||
<script>
|
||||
var swiper = new Swiper('.swiper-container', {
|
||||
slidesPerView: 3,
|
||||
spaceBetween: 30,
|
||||
slidesPerGroup: 1,
|
||||
loop: false,
|
||||
loopFillGroupWithBlank: true,
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
clickable: true,
|
||||
},
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev',
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var swiper = new Swiper('.swiper-container-youshi', {
|
||||
effect: 'coverflow',
|
||||
grabCursor: true,
|
||||
centeredSlides: true,
|
||||
slidesPerView: 'auto',
|
||||
coverflowEffect: {
|
||||
rotate: 50,
|
||||
stretch: 0,
|
||||
depth: 100,
|
||||
modifier: 1,
|
||||
slideShadows: true,
|
||||
},
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
},
|
||||
});
|
||||
|
||||
$('.notice').hide();
|
||||
@* self.setTimeout(function(){ *@
|
||||
$('.notice').show();
|
||||
@* },3000) *@
|
||||
function know() {
|
||||
$('.notice').hide();
|
||||
}
|
||||
</script>
|
||||
@model List<ProductModel>
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer
|
||||
@using Hncore.Pass.Vpn.Service
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@inject ArticleService m_ArticleService
|
||||
@inject IConfiguration m_Configuration
|
||||
@{
|
||||
ViewData["Title"] = "聚IP JUIP.COM-千万动态ip切换,自建机房ip代理覆盖全国,多款市面热销产品";
|
||||
Layout = "_Layout";
|
||||
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
|
||||
var articleNews = await m_ArticleService.GetTop(12, ArticleCatalog.Top);
|
||||
var activityNews = await m_ArticleService.GetTop(12, ArticleCatalog.Activity);
|
||||
var helpsNews = await m_ArticleService.GetTop(12, ArticleCatalog.Help);
|
||||
var QANews = await m_ArticleService.GetTop(12, ArticleCatalog.QA);
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
var epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
|
||||
var countStr = epoch.ToString().Substring(0, 8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
.swiper-container-youshi .swiper-slide-active{
|
||||
background:rgba(0,0,0.8);
|
||||
}
|
||||
.notice {
|
||||
position: fixed;
|
||||
width: 90%;
|
||||
height: auto;
|
||||
left: 27%;
|
||||
top: 27%;
|
||||
margin-left: -200px;
|
||||
margin-top: -160px;
|
||||
z-index: 3;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 6px 8px 6px #ccc;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
padding: 30px;
|
||||
z-index: 10000000;
|
||||
}
|
||||
.notice p{
|
||||
font-size: 25px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div style="display: none;">
|
||||
<h1>自动换ip软件有什么用?使用换ip软件的好处让你想不到</h1>
|
||||
|
||||
<p>许多业内人士人经常使用“换ip的软件”和“动态代理ip”这两个词。有时我们的计算机容易受到攻击。在这种情况下,将突出显示IP地址更改工具的作用。它可以保护我们的计算机地址免受攻击。或者,一些技术合作伙伴在自己的爬虫项目中使用此类换ip的软件时,也会使用此类换ip的软件。换ip的软件的很大效果是可以隐藏实际ip地址。</p>
|
||||
<p>许多朋友需要这项技术来保护计算机的安全。你能改一下ip地址吗?答案是肯定的,但操作相当麻烦,因此生成了动态ip代理软件。您可以找到要更改的ip代理服务器,例如我们的动态IP代理。</p>
|
||||
<h1>如何为动态IP选择软件?需要考虑哪些方面?</h1>
|
||||
<p>首先,必须确保换ip的软件合法、合规,并且IP地址也是合法的。换ip的软件是一种已获得批准证书的软件,在全国主要城市拥有大量动态IP节点。第二,换ip的软件稳定也很重要。您使用的动态代理IP就是您的使用,它可以很好地确保您的Internet网络的稳定性。</p>
|
||||
<p>最后,让客户放心的售后服务也不容忽视。换ip的软件甚至客户服务和售后都是技术性的,为客户提供比较好的方式。因此,在购买相关换ip的软件时,我们必须擦亮眼睛,选择更多。</p>
|
||||
<h2>换ip的软件优势:</h2>
|
||||
<p>1.换ip的软件技术:资深程序员精心设计每个功能,并不断更新和改进。</p>
|
||||
<p>2.换ip的软件强大:功能全面强大,不断开发更多功能,换ip的软件及时升级!</p>
|
||||
<p>3.换ip的软件使用方便:均采用人性化设计,智能化管理。只要我们能操作计算机,我们就能操作我们的软件。此外,我们还有一个换ip的软件教程。我们可以在阅读后操作换ip的软件!</p>
|
||||
<p>4.换ip的软件四个保证:持续发展保证、技术服务保证、问题整改保证、真正授权保证!让您的网络推广完全无忧!</p>
|
||||
<p>5.换ip的软件简单方便:动态固态IP地址一键刷新,一键批量测速,自由选择全国线路,自由选择全球ip代理和本地ip代理,一键快速连接ip软件!</p>
|
||||
|
||||
<h1>动态ip代理软件有什么特点?选哪家动态ip代理软件公司更好?</h1>
|
||||
|
||||
<p>合格的动态ip代理有哪些特点?目前,市场上有很多动态IP软件,质量参差不齐。合格动态ip代理的特点是什么?IP是一个网民的地址。有时网民需要多次更换IP。此时,需要动态IP更改软件。</p>
|
||||
<p>动态ip代理非常适合注册、验证、投票、运行号码、挂断、在线赚钱、推广、微信、微博、QQ、YY、QT、电子邮件、声誉、手机、PV等!</p>
|
||||
<p>动态ip代理比较明显的功能是自动更改IP地址,智能分配IP,并在每次断开和重新连接时自动更改IP。它具有IP容量大、速度快、稳定性高、安全性高等特点。您不必担心IP复制。</p>
|
||||
<p>网络上有许多动态IP代理软件。从众多的动态IP代理软件中选择合适的软件是非常重要的。如何找到比较合适的动态IP代理服务提供商?</p>
|
||||
<p>1.动态IP代理还取决于它能否提供完美的服务。如果买后没有人进行售后服务,使用中就会出现问题,无处可寻,所以完善的售后服务也很重要。</p>
|
||||
<p>2.好的动态IP代理取决于IP的来源。如果在互联网上直接扫描IP,质量很差,使用时会发生冲突。因此,最好使用自建服务器的代理,这样获得的动态IP代理非常稳定。</p>
|
||||
<p>这样,我相信您可以找到适合自己使用的动态IP代理资源。动态IP代理软件更安全、更快。动态IP代理是你网络工作的好帮手!</p>
|
||||
|
||||
<h1>如何电脑换ip软件让网站达到盈利的目的?</h1>
|
||||
<p>IP地址是互联网接入的基本条件。我们都是通过IP地址上网的。计算机只有一个固定的IP地址。然而,长期使用IP地址是非常不安全的,并且会导致很多安全风险。</p>
|
||||
<p>互联网上存在一定的风险。用户在互联网上浏览网页时会留下自己的信息。这些信息大部分是私人信息。如果个人信息被恶意的人窃取,这是非常危险的。因此,必须加强网站的安全性能。只有这样,才能保证用户的信息安全。熟悉互联网技术的人会定期更换IP,因为他们知道将个人信息留在互联网上非常不安全,可能会被犯罪分子窃取,这也会危及他们自己的财产,因此他们必须经常更换。</p>
|
||||
<p>确保个人信息安全的常用方法是自动更换IP地址。有许多电脑换ip软件可以在Internet上使用。除了确保我们的信息安全,电脑换ip软件也可以用来赚取一些利润。</p>
|
||||
<p>现在很多人会自己开发一个网站。开发一个网站并不难。在学习了这个方法之后,它非常简单。我们可以在互联网上看到各种各样的网站。这些网站中有些是由公司存档的,有些是由个人存档的。这些网站可以为人们提供很多信息。电脑换ip软件方法是获得更多的浏览量。只要你的观点上升,这意味着这个网站特别受欢迎。在这个时候,你可以在网站上做一些广告,或者用广告费赚一些钱。然而,赚钱的前提是网站可以有浏览量。只有好的网站才能吸引人,现在人们对网站的要求越来越高。糟糕的网页无法吸引人。只有想出一些方法,这些网页才能继续发展。</p>
|
||||
<p>很多人会使用电脑换ip软件来实现web代理。Web代理有很多优点。它不仅可以保护用户的安全上网,而且可以提高上网速度。用户在上网时非常关注个人隐私保护。他们不希望自己的个人隐私被泄露,因此只有一个安全的网站才能让他们感到放心,在使用电脑换ip软件后,网站变得更加封闭。整个网络使用一个IP,这是最安全的,不会有安全风险。使用代理IP软件后,您会发现网站上的信息根本没有泄露,用户在浏览网页时会更加轻松。即使他们输入了一些个人信息,也没关系。如果网站继续这样发展,它将获得更多的收入。电脑换ip软件,只需点击,自动切换,快速更换,无需网卡,IP地址可以随意更改!</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="banner">
|
||||
<div class="buttonList">
|
||||
<div class="item">
|
||||
<a asp-action="soft" asp-controller="product"> <button type="button" class="btnBlue">客户端下载</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="linelist"> <button type="button" class="btnBlue">IP线路表</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="product"> <button type="button" class="btnOrange">免费试用</button></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="titProducts">
|
||||
<p>PRODUCTS</p>
|
||||
<p>产品介绍</p>
|
||||
</div>
|
||||
<div class="conProducts">
|
||||
<!-- Swiper -->
|
||||
<div class="swiper-container">
|
||||
<div class="swiper-wrapper">
|
||||
@foreach (var item in Model.Where(m => m.Sort != 1000))
|
||||
{
|
||||
<div class="swiper-slide">
|
||||
<div class="productCard">
|
||||
@*<div class="item">
|
||||
<img src="@P(item.Image)" />
|
||||
</div>*@
|
||||
<div class="item pName">
|
||||
@item.Name
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.Profile
|
||||
</div>
|
||||
<div class="item showLine">
|
||||
|
||||
<a asp-action="index" asp-controller="linelist" asp-route-ProductId="@item.Id">查看线路表→</a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="product" asp-route-id="@item.Id"><button type="button" class="btnBlue">测试与购买</button></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<!-- Add Arrows -->
|
||||
<div class="swiper-button-next"></div>
|
||||
<div class="swiper-button-prev"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="youshi">
|
||||
<!-- Swiper -->
|
||||
<div class="swiper-container-youshi">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide" style="background-image:url(./m/img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y1.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
全网产品最多IP库最大
|
||||
</div>
|
||||
<div class="item">
|
||||
旗下有强子IP,老鹰IP,先锋IP,星星IP等十几种动态IP,多产品组合畅享IP库翻倍,可用IP超1亿
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y2.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
全设备全协议支持
|
||||
</div>
|
||||
<div class="item">
|
||||
支持安卓,iOS,电脑,windows,linux等系统。支持IP,L2TP,SSTP等协议
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y3.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
用户独享宽带
|
||||
</div>
|
||||
<div class="item">
|
||||
一号一拨绝不超拨,快速切换平均带宽6-10兆,最高可达50兆
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y4.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
价低质优,免费测试
|
||||
</div>
|
||||
<div class="item">
|
||||
全自营机房一手资源,价低质优,量大可联系客服获取最低价
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y5.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
专属产品定制
|
||||
</div>
|
||||
<div class="item">
|
||||
支持定制独立服务器,可针对特定的项目需求定制专用产品
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-slide" style="background-image:url(./img/youshi-bg.png)">
|
||||
<div class="youshiList">
|
||||
<div class="item">
|
||||
<img src="~/m/img/y6.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
专业的服务团队
|
||||
</div>
|
||||
<div class="item">
|
||||
资深售前售后1对1指导,7*24小时实时响应,竭诚为您服务
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Add Pagination -->
|
||||
<div class="swiper-pagination"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="map">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="use">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="titProducts">
|
||||
<p>INFORMATION</p>
|
||||
<p>教程&咨询</p>
|
||||
</div>
|
||||
<div class="newsList">
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">聚IP头条</a></li>
|
||||
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">常见问题</a></li>
|
||||
<li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">新手教程</a></li>
|
||||
<li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">优惠活动</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="home">
|
||||
<ul class="news">
|
||||
@foreach (var item in articleNews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="profile">
|
||||
<ul class="news">
|
||||
@foreach (var item in activityNews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="messages">
|
||||
<ul class="news">
|
||||
@foreach (var item in QANews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="settings">
|
||||
<ul class="news">
|
||||
@foreach (var item in helpsNews)
|
||||
{
|
||||
<li><a asp-action="info" asp-controller="article" asp-route-id="@item.Id"><span>@item.CreateTime.ToString("yyyy.MM.dd")</span>@item.Title</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="qixia">
|
||||
<p>旗下产品</p>
|
||||
<ul>
|
||||
@foreach (var item in Model.Where(m => m.Sort != 1000))
|
||||
{
|
||||
<li><a asp-action="index" asp-controller="product" asp-route-id="@item.Id">@item.Name</a></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="linkus" style="display: block;">
|
||||
<div class="item">
|
||||
<p>联系我们</p>
|
||||
<p>企业电话:400 800 9925</p>
|
||||
<p>客服QQ:800101003</p>
|
||||
<p>客服微信-售前:</p>
|
||||
<img width="300px" src="~/img/kf_sq.jpg?123"><br>
|
||||
<p>客服微信-售后:</p>
|
||||
<img width="300px" src="~/img/kf_sh.jpg?1231">
|
||||
<p>工作时间:周一到周日8:30-23:00</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>大客户/商务合作</p>
|
||||
<p>电话/微信:177 9666 8888</p>
|
||||
<p>QQ:70177252</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ewm">
|
||||
<p><img src="~/m/img/ewm.png"></p>
|
||||
<p class="banquan">copyright 2020 聚IP JUIP.COM 版权所有</p>
|
||||
</div>
|
||||
|
||||
<div class="notice">
|
||||
|
||||
|
||||
<div style="font-size: 15px;">
|
||||
<p style="margin-top: 0px;text-align:center;width:100%;margin-bottom: 10px;color:red;background-color:#FFFF00;">公告</p>
|
||||
|
||||
<div style="color: red;text-align:center;">
|
||||
<p>杜绝电信诈骗及任何违法行为</p>
|
||||
<p>所有IP产品已记录日志,均保留6个月以上</p>
|
||||
<p>发现违法行为直接提交网监部门处理</p>
|
||||
</div>
|
||||
<p style="margin-top: 10px;font-weight:bold;text-align:center;">聚IP兔年新春复工助力活动:</p>
|
||||
<div style="padding-left: 20px;">
|
||||
@* <p>1.动态IP一毛钱一天,每用户限一次~</p> *@
|
||||
<p>1.新上蘑菇IP,周卡送1天,月卡送5天,双月卡送1个月,多买多送~</p>
|
||||
<p>2.其他产品均有<span style="color: red;font-size:1.5em;font-weight:bold;">7.5</span>折活动~</p>
|
||||
<p>3.需求5个以上可联系客服设置优惠折扣!</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p >
|
||||
<a style="margin-left: 200%;margin-top:20px;cursor:pointer;font-size:25px;" onclick="know()" type="button" class="btn btn-primary" >我知道了</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('#myTabs a').click(function (e) {
|
||||
e.preventDefault()
|
||||
$(this).tab('show')
|
||||
})
|
||||
//var alert_info = "聚IP春节公告:\n1,春节不打烊,自助购买24小时正常运行,仅2月10日至2月18日人工在线时间为:早10点到晚22点,在此期间联系人工请尽量联系企业Q号,号码为800101003,其他联系方式可能回复不及时,紧急联系电话为4008009925转1号线。\n2,请勿相信外界谣言,聚IP始终保持诚信经营,对用户负责到底,更不会出现跑路的情况!\n3,12月10日-12月25日期间,公司无人工客服在线,给您造成不便,敬请谅解,为表达歉意,因此公司特推出动态IP 一毛钱一天,有史以来最大的折扣和赠送力度!\n4,并保证最低价,买贵双倍退差价。同时聚IP将继续为您提供优质的服务!\n5,无人工值守期间,极客IP大约一周无法使用,其他产品都运行正常,使用极客IP的客户可联系客服补时间。若使用除极客外的其他产品,因无人工客服给您造成影响,可联系客服说明情况,我们将根据情况给您适当的补偿!\n祝各位用户万事顺利,生意兴隆,新年快乐!!";
|
||||
//alert(alert_info);
|
||||
</script>
|
||||
<!-- Initialize Swiper -->
|
||||
<script>
|
||||
var swiper = new Swiper('.swiper-container', {
|
||||
slidesPerView: 3,
|
||||
spaceBetween: 30,
|
||||
slidesPerGroup: 1,
|
||||
loop: false,
|
||||
loopFillGroupWithBlank: true,
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
clickable: true,
|
||||
},
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev',
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var swiper = new Swiper('.swiper-container-youshi', {
|
||||
effect: 'coverflow',
|
||||
grabCursor: true,
|
||||
centeredSlides: true,
|
||||
slidesPerView: 'auto',
|
||||
coverflowEffect: {
|
||||
rotate: 50,
|
||||
stretch: 0,
|
||||
depth: 100,
|
||||
modifier: 1,
|
||||
slideShadows: true,
|
||||
},
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
},
|
||||
});
|
||||
|
||||
$('.notice').hide();
|
||||
@* self.setTimeout(function(){ *@
|
||||
$('.notice').show();
|
||||
@* },3000) *@
|
||||
function know() {
|
||||
$('.notice').hide();
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,377 +1,377 @@
|
||||
@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();
|
||||
}
|
||||
<div id="app">
|
||||
<div class="quanjushousuo">
|
||||
<p><input type="text" v-model="search_all_data" name="KeyWord" placeholder="输入地区/名称/服务器" id="KeyWord" /><button type="submit" v-on:click="search_all()" class="btnOrange">搜索全部</button></p>
|
||||
<p><img src="~/m/img/shuju.png"> 实时总线路:{{ count }}条 <img src="~/m/img/shuju.png"> 实时可用线路:{{ use_count }}条</p>
|
||||
<p>所有线路均支持:【电脑/安卓/苹果】【IP/L2TP/SSTP】</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="zhilian">
|
||||
<div class="item">
|
||||
<span class="btnZhilian">
|
||||
<a asp-index="" asp-controller="article" asp-route-Catalog="4"><img src="~/m/img/zhilian.png">直连教程</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="grayText" style="font-size: 25px;">线路表与账号必须为同一产品才能使用</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="color: red;" 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: red;text-align:center;font-size:20px;" v-if="product_id ==22">
|
||||
<p>静态线路里面名称不带‘宽带’字样的线路ip是相对固定不变的。</p>
|
||||
<p>只要线路名称里面带“宽带”两个字的是完全模拟家庭宽带网络的线路,和家庭宽度网络一样一般1-2天不等自动换一次ip</p>
|
||||
</div>
|
||||
|
||||
<div class="lineBar"></div>
|
||||
|
||||
<div class="cpList">
|
||||
<ul>
|
||||
@foreach (var item in product.Where(m => m.Id != 3 && m.Id != 7 && m.Id != 9&& m.Id != 20&& m.Id != 21))
|
||||
{
|
||||
<li v-on:click="select_product(@item.Id)" id="product-@item.Id" class="item @(item.Id==pid?"cpActive":"")" a-pid="@item.Id" a-name="@item.Name">@item.Name</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="dangqianshousuo">
|
||||
<p>
|
||||
<input type="hidden" name="ProductId" id="ProductId" value="@pid" />
|
||||
<input type="text" v-model="search_product_data" name="KeyWord" placeholder="输入地区/名称/服务器" id="KeyWord" />
|
||||
<button v-on:click="search_product()" type="submit" class="btnBlue">搜索当前</button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="daochu">
|
||||
<div class="item">
|
||||
<p><img src="~/m/img/miyao.png"> L2TP密钥:{{l2tp}}</p>
|
||||
<p><img src="~/m/img/dk.png"> SSTP端口:{{sstp}}</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span v-on:click="export_data()"><img src="~/m/img/excel.png"> 导出Excel</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tableTit">
|
||||
<div class="item">
|
||||
地区
|
||||
</div>
|
||||
<div class="item">
|
||||
<span v-if="product_id ==19">剩余拨数:</span>
|
||||
<span v-else="product_id ==19">运营商:</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
服务器域名
|
||||
</div>
|
||||
<div class="item">
|
||||
详情
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cityData" v-for="site in table_data" :style="(site.online=='故障')?'color:#ec5656;':''">
|
||||
<div class="item" v-if="site.online==null" style="color:#993399">{{site.city}}</div>
|
||||
<div class="item" v-if="site.online!=null">{{site.city}}</div>
|
||||
<div class="item">{{site.supply}}</div>
|
||||
<div class="item">{{site.nasname}}</div>
|
||||
<div class="item">
|
||||
<button type="button" v-on:click="detail(site)" class="btnDetail">详情</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 弹窗详情 -->
|
||||
<div class="layerTable">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>产品:</td>
|
||||
<td>{{info.name}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>城市:</td>
|
||||
<td>{{info.city}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td v-if="product_id ==19">剩余拨数:</td>
|
||||
<td v-else="product_id ==19">运营商:</td>
|
||||
<td>{{info.supply}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>服务器域名:</td>
|
||||
<td>{{info.nasname}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IP量:</td>
|
||||
<td>{{info.ip}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>实时带宽:</td>
|
||||
<td>{{info.daikuan}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>维护状态:</td>
|
||||
<td>{{info.online}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@* <td>负载状态:</td> *@
|
||||
<td v-if="product_id ==1|| product_id==2">特征码:</td>
|
||||
<td v-else="product_id ==1|| product_id==2">负载状态:</td>
|
||||
<td>{{info.status}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div v-on:click="back()" class="back">
|
||||
<img src="~/m/img/arrowback.png"> 返回列表
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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:'',
|
||||
info: {},
|
||||
count:'0',
|
||||
use_count:'0',
|
||||
},
|
||||
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;
|
||||
$("li").removeClass("cpActive");
|
||||
$("#product-"+ProductId).addClass("cpActive");
|
||||
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;
|
||||
}
|
||||
});
|
||||
this.table_data = datalist;
|
||||
this.count = count;
|
||||
this.use_count = use_count;
|
||||
},
|
||||
search_all(){
|
||||
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 19:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/huohu.csv';
|
||||
break;
|
||||
case 25:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/qiangzijt.csv';
|
||||
break;
|
||||
}
|
||||
},
|
||||
detail(r){
|
||||
$(".layerTable").show();
|
||||
this.info= r;
|
||||
},
|
||||
back(){
|
||||
$(".layerTable").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
</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();
|
||||
}
|
||||
<div id="app">
|
||||
<div class="quanjushousuo">
|
||||
<p><input type="text" v-model="search_all_data" name="KeyWord" placeholder="输入地区/名称/服务器" id="KeyWord" /><button type="submit" v-on:click="search_all()" class="btnOrange">搜索全部</button></p>
|
||||
<p><img src="~/m/img/shuju.png"> 实时总线路:{{ count }}条 <img src="~/m/img/shuju.png"> 实时可用线路:{{ use_count }}条</p>
|
||||
<p>所有线路均支持:【电脑/安卓/苹果】【IP/L2TP/SSTP】</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="zhilian">
|
||||
<div class="item">
|
||||
<span class="btnZhilian">
|
||||
<a asp-index="" asp-controller="article" asp-route-Catalog="4"><img src="~/m/img/zhilian.png">直连教程</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="grayText" style="font-size: 25px;">线路表与账号必须为同一产品才能使用</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="color: red;" 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: red;text-align:center;font-size:20px;" v-if="product_id ==22">
|
||||
<p>静态线路里面名称不带‘宽带’字样的线路ip是相对固定不变的。</p>
|
||||
<p>只要线路名称里面带“宽带”两个字的是完全模拟家庭宽带网络的线路,和家庭宽度网络一样一般1-2天不等自动换一次ip</p>
|
||||
</div>
|
||||
|
||||
<div class="lineBar"></div>
|
||||
|
||||
<div class="cpList">
|
||||
<ul>
|
||||
@foreach (var item in product.Where(m => m.Id != 3 && m.Id != 7 && m.Id != 9&& m.Id != 20&& m.Id != 21))
|
||||
{
|
||||
<li v-on:click="select_product(@item.Id)" id="product-@item.Id" class="item @(item.Id==pid?"cpActive":"")" a-pid="@item.Id" a-name="@item.Name">@item.Name</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="dangqianshousuo">
|
||||
<p>
|
||||
<input type="hidden" name="ProductId" id="ProductId" value="@pid" />
|
||||
<input type="text" v-model="search_product_data" name="KeyWord" placeholder="输入地区/名称/服务器" id="KeyWord" />
|
||||
<button v-on:click="search_product()" type="submit" class="btnBlue">搜索当前</button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="daochu">
|
||||
<div class="item">
|
||||
<p><img src="~/m/img/miyao.png"> L2TP密钥:{{l2tp}}</p>
|
||||
<p><img src="~/m/img/dk.png"> SSTP端口:{{sstp}}</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span v-on:click="export_data()"><img src="~/m/img/excel.png"> 导出Excel</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tableTit">
|
||||
<div class="item">
|
||||
地区
|
||||
</div>
|
||||
<div class="item">
|
||||
<span v-if="product_id ==19">剩余拨数:</span>
|
||||
<span v-else="product_id ==19">运营商:</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
服务器域名
|
||||
</div>
|
||||
<div class="item">
|
||||
详情
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cityData" v-for="site in table_data" :style="(site.online=='故障')?'color:#ec5656;':''">
|
||||
<div class="item" v-if="site.online==null" style="color:#993399">{{site.city}}</div>
|
||||
<div class="item" v-if="site.online!=null">{{site.city}}</div>
|
||||
<div class="item">{{site.supply}}</div>
|
||||
<div class="item">{{site.nasname}}</div>
|
||||
<div class="item">
|
||||
<button type="button" v-on:click="detail(site)" class="btnDetail">详情</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 弹窗详情 -->
|
||||
<div class="layerTable">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>产品:</td>
|
||||
<td>{{info.name}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>城市:</td>
|
||||
<td>{{info.city}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td v-if="product_id ==19">剩余拨数:</td>
|
||||
<td v-else="product_id ==19">运营商:</td>
|
||||
<td>{{info.supply}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>服务器域名:</td>
|
||||
<td>{{info.nasname}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IP量:</td>
|
||||
<td>{{info.ip}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>实时带宽:</td>
|
||||
<td>{{info.daikuan}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>维护状态:</td>
|
||||
<td>{{info.online}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@* <td>负载状态:</td> *@
|
||||
<td v-if="product_id ==1|| product_id==2">特征码:</td>
|
||||
<td v-else="product_id ==1|| product_id==2">负载状态:</td>
|
||||
<td>{{info.status}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div v-on:click="back()" class="back">
|
||||
<img src="~/m/img/arrowback.png"> 返回列表
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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:'',
|
||||
info: {},
|
||||
count:'0',
|
||||
use_count:'0',
|
||||
},
|
||||
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;
|
||||
$("li").removeClass("cpActive");
|
||||
$("#product-"+ProductId).addClass("cpActive");
|
||||
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;
|
||||
}
|
||||
});
|
||||
this.table_data = datalist;
|
||||
this.count = count;
|
||||
this.use_count = use_count;
|
||||
},
|
||||
search_all(){
|
||||
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 19:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/huohu.csv';
|
||||
break;
|
||||
case 25:
|
||||
self.location.href='http://php-api.juip.com/script/linedata/data/download/qiangzijt.csv';
|
||||
break;
|
||||
}
|
||||
},
|
||||
detail(r){
|
||||
$(".layerTable").show();
|
||||
this.info= r;
|
||||
},
|
||||
back(){
|
||||
$(".layerTable").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1,431 +1,431 @@
|
||||
@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 defaultPackage = 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}";
|
||||
}
|
||||
@* <div class="cpBanner">
|
||||
<img src="~/m/img/cpBanner.png">
|
||||
</div> *@
|
||||
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:360px;">
|
||||
|
||||
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
|
||||
<div class="col-md-8 " style="padding-top:1.5%;">
|
||||
<h2 >十余种全网知名旗舰产品低价热销</h2>
|
||||
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
|
||||
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
|
||||
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单,每次下单都会随机赠送优惠券,最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款 <span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
|
||||
</div>
|
||||
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
|
||||
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
|
||||
<h2>联系客服设置优惠价</h2>
|
||||
<a target="_blank" 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"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cpNav">
|
||||
<div class="item">
|
||||
<ul class="nav nav-tabs cpName" role="tablist">
|
||||
<li >
|
||||
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>动态独享IP<span class="glyphicon glyphicon-arrow-down"></span></a>
|
||||
</li>
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
if(item.Product.Id == 18) {
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;"><span style="color: red;font-weight:bold;">送 </span>@item.Product.Name<span style="color: #f64e3d;font-weight:bold;float:right;padding-right: 5px;">8折</span></a>
|
||||
</li>
|
||||
} else if(item.Product.Id == 14) {
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" id="p14" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name</a>
|
||||
</li>
|
||||
}
|
||||
else if(item.Product.Id == 22) {
|
||||
<li >
|
||||
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>静态IP<span class="glyphicon glyphicon-arrow-down"></span></a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
|
||||
</li>
|
||||
}
|
||||
else if(item.Product.Id == 21) {
|
||||
|
||||
<li >
|
||||
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>单窗口单IP<span class="glyphicon glyphicon-arrow-down"></span></a>
|
||||
</li>
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
|
||||
</li>
|
||||
} else {
|
||||
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<script>
|
||||
$("#select-7").on('click',function(){
|
||||
alert('请注意!无尽IP仅供电脑端使用!');
|
||||
});
|
||||
|
||||
$("#select-19").on('click',function(){
|
||||
alert('本产品为独享,每个账号对应一个宽带拨号,永不超载,保证了网速及稳定性。使用时只需设置这个唯一的服务器:1.hhip.vip,在账号列表中点击切换地区即可任意组合自己需要的地区。本产品灵活便捷,欢迎选购!');
|
||||
});
|
||||
</script>
|
||||
<div class="item">
|
||||
<div class="tab-content">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div role="tabpanel" class="tab-pane @(item.Product.Id==defaultProduct.Id?"active":"")" id="@item.Product.Id">
|
||||
<p class="texing">@item.Product.Name</p>
|
||||
<ul class="texingList">
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<li>·@str</li>
|
||||
}
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
|
||||
$(".p_type").hide();
|
||||
$("#p14").click(function () {
|
||||
$(".type14").show();
|
||||
for (var i=1034;i<1046;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
});
|
||||
function ttzhizun() {
|
||||
$("#package-89").show();
|
||||
$("#package-69").show();
|
||||
$("#package-70").show();
|
||||
$("#package-71").show();
|
||||
$("#package-1022").show();
|
||||
$("#package-1023").show();
|
||||
for (var i=1034;i<1046;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
|
||||
$(".ttzx").css('background-color','#FF9900');
|
||||
$(".ttgj").css('background-color','white');
|
||||
$(".ttpt").css('background-color','white');
|
||||
}
|
||||
function ttgaoji() {
|
||||
$(".ttgj").css('background-color','#FF9900');
|
||||
$(".ttzx").css('background-color','white');
|
||||
$(".ttpt").css('background-color','white');
|
||||
$("#package-89").hide();
|
||||
$("#package-69").hide();
|
||||
$("#package-70").hide();
|
||||
$("#package-71").hide();
|
||||
$("#package-1022").hide();
|
||||
$("#package-1023").hide();
|
||||
for (var i=1040;i<1046;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1034;i<1040;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
function ttputong() {
|
||||
$(".ttpt").css('background-color','#FF9900');
|
||||
$(".ttzx").css('background-color','white');
|
||||
$(".ttgj").css('background-color','white');
|
||||
$("#package-89").hide();
|
||||
$("#package-69").hide();
|
||||
$("#package-70").hide();
|
||||
$("#package-71").hide();
|
||||
$("#package-1022").hide();
|
||||
$("#package-1023").hide();
|
||||
for (var i=1040;i<1046;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1034;i<1040;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
|
||||
var wjdxtype = 1;
|
||||
function wjdxphone() {
|
||||
$("#dxaz").css('background-color','#FF9900');
|
||||
$("#dxdn").css('background-color','white');
|
||||
wjdxtype = 1;
|
||||
for (var i=1048;i<1051;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1051;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
wjdxphone();
|
||||
|
||||
function wjdxpc() {
|
||||
$("#dxaz").css('background-color','white');
|
||||
$("#dxdn").css('background-color','#FF9900');
|
||||
wjdxtype = 2;
|
||||
for (var i=1048;i<1054;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1057;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1054;i<1057;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
function wjdxpt() {
|
||||
|
||||
$("#dxpt").css('background-color','#FF9900');
|
||||
$("#dxgj").css('background-color','white');
|
||||
if (wjdxtype == 1) {
|
||||
for (var i=1051;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1048;i<1051;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
} else if (wjdxtype == 2) {
|
||||
for (var i=1048;i<1054;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1054;i<1057;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1057;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
function wjdxgj() {
|
||||
|
||||
$("#dxpt").css('background-color','white');
|
||||
$("#dxgj").css('background-color','#FF9900');
|
||||
if (wjdxtype == 1) {
|
||||
for (var i=1048;i<1051;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1051;i<1054;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1054;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
} else if (wjdxtype == 2) {
|
||||
for (var i=1048;i<1057;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1057;i<1060;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//1 安卓、苹果 2 pc
|
||||
var wjgxtype = 1;
|
||||
function wjgxphone() {
|
||||
$("#gxaz").css('background-color','#FF9900');
|
||||
$("#gxdn").css('background-color','white');
|
||||
$("#wjgxgd").removeClass("active");
|
||||
$("#wjgxpt").addClass("active");
|
||||
wjgxtype = 1;
|
||||
for (var i=1060;i<1063;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1063;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
wjgxphone();
|
||||
|
||||
function wjgxpc() {
|
||||
$("#gxaz").css('background-color','white');
|
||||
$("#gxdn").css('background-color','#FF9900');
|
||||
$("#wjgxgd").removeClass("active");
|
||||
$("#wjgxpt").addClass("active");
|
||||
wjgxtype = 2;
|
||||
for (var i=1060;i<1066;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1069;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1066;i<1069;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
function wjgxpt() {
|
||||
$("#gxpt").css('background-color','#FF9900');
|
||||
$("#gxgj").css('background-color','white');
|
||||
$("#wjgxgd").removeClass("active");
|
||||
$("#wjgxpt").addClass("active");
|
||||
if (wjgxtype == 1) {
|
||||
for (var i=1060;i<1063;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1063;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
} else if (wjgxtype == 2) {
|
||||
for (var i=1060;i<1066;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1066;i<1069;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1069;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
function wjgxgj() {
|
||||
$("#gxpt").css('background-color','white');
|
||||
$("#gxgj").css('background-color','#FF9900');
|
||||
$("#wjgxgd").addClass("active");
|
||||
$("#wjgxpt").removeClass("active");
|
||||
if (wjgxtype == 1) {
|
||||
for (var i=1060;i<1063;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1063;i<1066;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1066;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
} else if (wjgxtype == 2) {
|
||||
for (var i=1060;i<1069;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1069;i<1072;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<p style="color: #ec6e58;font-size:30px;font-weight: bold;background-color:#FFFF00">
|
||||
需求5个以上,可以联系客服设置优惠价;
|
||||
开通后有任何问题可无理由退款,并支持自助提现
|
||||
退款规则:购买价格-使用天数*天卡价格
|
||||
</p>
|
||||
|
||||
<div class="p_type @("type"+item.Product.Id)" style="padding-top: 10px;">
|
||||
<button type="button" onclick="ttzhizun()" class="btn btn-default btn-lg ttzx" style="background-color: #FF9900;font-size:1.5em;">尊享版</button>
|
||||
<button type="button" onclick="ttgaoji()" class="btn btn-default btn-lg ttgj" style="background-color: white;font-size:1.5em;">高级版</button>
|
||||
<button type="button" onclick="ttputong()" class="btn btn-default btn-lg ttpt" style="background-color: white;font-size:1.5em;">普通版</button>
|
||||
</div>
|
||||
|
||||
@if (item.Product.Id == 20) {
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjdxphone()" id="dxaz" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">安卓/苹果</button>
|
||||
<button type="button" onclick="wjdxpc()" id="dxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
|
||||
|
||||
</div>
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjdxpt()" id="dxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版-5兆</button>
|
||||
<button type="button" onclick="wjdxgj()" id="dxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">高端版-10兆</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (item.Product.Id == 21) {
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjgxphone()" id="gxaz" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">安卓/苹果</button>
|
||||
<button type="button" onclick="wjgxpc()" id="gxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
|
||||
</div>
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjgxpt()" id="gxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版</button>
|
||||
<button type="button" onclick="wjgxgj()" id="gxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">极速版</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
@foreach (var package in item.Packages.Where(m => m.Status == 1&&(m.TenantId==1157||m.TenantId==9999||m.TenantId==10000)).OrderBy(m => m.TenantId))
|
||||
{
|
||||
if (package.IsTest == 1)
|
||||
{
|
||||
<a asp-action="test" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.ProductId">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>0.00</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
@if(package.Price == 0.1M){
|
||||
<a asp-action="buy" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#FFFF00;">@package.Name 首单</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
else {
|
||||
<a asp-action="buy" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#FFFF00;">@package.Name</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
|
||||
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
|
||||
<p>¥<span>60.00</span></p>
|
||||
} else {
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
}
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@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 defaultPackage = 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}";
|
||||
}
|
||||
@* <div class="cpBanner">
|
||||
<img src="~/m/img/cpBanner.png">
|
||||
</div> *@
|
||||
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:360px;">
|
||||
|
||||
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
|
||||
<div class="col-md-8 " style="padding-top:1.5%;">
|
||||
<h2 >十余种全网知名旗舰产品低价热销</h2>
|
||||
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
|
||||
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
|
||||
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单,每次下单都会随机赠送优惠券,最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款 <span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
|
||||
</div>
|
||||
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
|
||||
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
|
||||
<h2>联系客服设置优惠价</h2>
|
||||
<a target="_blank" 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"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cpNav">
|
||||
<div class="item">
|
||||
<ul class="nav nav-tabs cpName" role="tablist">
|
||||
<li >
|
||||
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>动态独享IP<span class="glyphicon glyphicon-arrow-down"></span></a>
|
||||
</li>
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
if(item.Product.Id == 18) {
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;"><span style="color: red;font-weight:bold;">送 </span>@item.Product.Name<span style="color: #f64e3d;font-weight:bold;float:right;padding-right: 5px;">8折</span></a>
|
||||
</li>
|
||||
} else if(item.Product.Id == 14) {
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" id="p14" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name</a>
|
||||
</li>
|
||||
}
|
||||
else if(item.Product.Id == 22) {
|
||||
<li >
|
||||
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>静态IP<span class="glyphicon glyphicon-arrow-down"></span></a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
|
||||
</li>
|
||||
}
|
||||
else if(item.Product.Id == 21) {
|
||||
|
||||
<li >
|
||||
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>单窗口单IP<span class="glyphicon glyphicon-arrow-down"></span></a>
|
||||
</li>
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
|
||||
</li>
|
||||
} else {
|
||||
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<script>
|
||||
$("#select-7").on('click',function(){
|
||||
alert('请注意!无尽IP仅供电脑端使用!');
|
||||
});
|
||||
|
||||
$("#select-19").on('click',function(){
|
||||
alert('本产品为独享,每个账号对应一个宽带拨号,永不超载,保证了网速及稳定性。使用时只需设置这个唯一的服务器:1.hhip.vip,在账号列表中点击切换地区即可任意组合自己需要的地区。本产品灵活便捷,欢迎选购!');
|
||||
});
|
||||
</script>
|
||||
<div class="item">
|
||||
<div class="tab-content">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div role="tabpanel" class="tab-pane @(item.Product.Id==defaultProduct.Id?"active":"")" id="@item.Product.Id">
|
||||
<p class="texing">@item.Product.Name</p>
|
||||
<ul class="texingList">
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<li>·@str</li>
|
||||
}
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
|
||||
$(".p_type").hide();
|
||||
$("#p14").click(function () {
|
||||
$(".type14").show();
|
||||
for (var i=1034;i<1046;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
});
|
||||
function ttzhizun() {
|
||||
$("#package-89").show();
|
||||
$("#package-69").show();
|
||||
$("#package-70").show();
|
||||
$("#package-71").show();
|
||||
$("#package-1022").show();
|
||||
$("#package-1023").show();
|
||||
for (var i=1034;i<1046;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
|
||||
$(".ttzx").css('background-color','#FF9900');
|
||||
$(".ttgj").css('background-color','white');
|
||||
$(".ttpt").css('background-color','white');
|
||||
}
|
||||
function ttgaoji() {
|
||||
$(".ttgj").css('background-color','#FF9900');
|
||||
$(".ttzx").css('background-color','white');
|
||||
$(".ttpt").css('background-color','white');
|
||||
$("#package-89").hide();
|
||||
$("#package-69").hide();
|
||||
$("#package-70").hide();
|
||||
$("#package-71").hide();
|
||||
$("#package-1022").hide();
|
||||
$("#package-1023").hide();
|
||||
for (var i=1040;i<1046;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1034;i<1040;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
function ttputong() {
|
||||
$(".ttpt").css('background-color','#FF9900');
|
||||
$(".ttzx").css('background-color','white');
|
||||
$(".ttgj").css('background-color','white');
|
||||
$("#package-89").hide();
|
||||
$("#package-69").hide();
|
||||
$("#package-70").hide();
|
||||
$("#package-71").hide();
|
||||
$("#package-1022").hide();
|
||||
$("#package-1023").hide();
|
||||
for (var i=1040;i<1046;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1034;i<1040;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
|
||||
var wjdxtype = 1;
|
||||
function wjdxphone() {
|
||||
$("#dxaz").css('background-color','#FF9900');
|
||||
$("#dxdn").css('background-color','white');
|
||||
wjdxtype = 1;
|
||||
for (var i=1048;i<1051;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1051;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
wjdxphone();
|
||||
|
||||
function wjdxpc() {
|
||||
$("#dxaz").css('background-color','white');
|
||||
$("#dxdn").css('background-color','#FF9900');
|
||||
wjdxtype = 2;
|
||||
for (var i=1048;i<1054;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1057;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1054;i<1057;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
function wjdxpt() {
|
||||
|
||||
$("#dxpt").css('background-color','#FF9900');
|
||||
$("#dxgj").css('background-color','white');
|
||||
if (wjdxtype == 1) {
|
||||
for (var i=1051;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1048;i<1051;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
} else if (wjdxtype == 2) {
|
||||
for (var i=1048;i<1054;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1054;i<1057;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1057;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
function wjdxgj() {
|
||||
|
||||
$("#dxpt").css('background-color','white');
|
||||
$("#dxgj").css('background-color','#FF9900');
|
||||
if (wjdxtype == 1) {
|
||||
for (var i=1048;i<1051;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1051;i<1054;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1054;i<1060;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
} else if (wjdxtype == 2) {
|
||||
for (var i=1048;i<1057;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1057;i<1060;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//1 安卓、苹果 2 pc
|
||||
var wjgxtype = 1;
|
||||
function wjgxphone() {
|
||||
$("#gxaz").css('background-color','#FF9900');
|
||||
$("#gxdn").css('background-color','white');
|
||||
$("#wjgxgd").removeClass("active");
|
||||
$("#wjgxpt").addClass("active");
|
||||
wjgxtype = 1;
|
||||
for (var i=1060;i<1063;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1063;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
wjgxphone();
|
||||
|
||||
function wjgxpc() {
|
||||
$("#gxaz").css('background-color','white');
|
||||
$("#gxdn").css('background-color','#FF9900');
|
||||
$("#wjgxgd").removeClass("active");
|
||||
$("#wjgxpt").addClass("active");
|
||||
wjgxtype = 2;
|
||||
for (var i=1060;i<1066;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1069;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1066;i<1069;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
function wjgxpt() {
|
||||
$("#gxpt").css('background-color','#FF9900');
|
||||
$("#gxgj").css('background-color','white');
|
||||
$("#wjgxgd").removeClass("active");
|
||||
$("#wjgxpt").addClass("active");
|
||||
if (wjgxtype == 1) {
|
||||
for (var i=1060;i<1063;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
for (var i=1063;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
} else if (wjgxtype == 2) {
|
||||
for (var i=1060;i<1066;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1066;i<1069;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1069;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
function wjgxgj() {
|
||||
$("#gxpt").css('background-color','white');
|
||||
$("#gxgj").css('background-color','#FF9900');
|
||||
$("#wjgxgd").addClass("active");
|
||||
$("#wjgxpt").removeClass("active");
|
||||
if (wjgxtype == 1) {
|
||||
for (var i=1060;i<1063;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1063;i<1066;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
|
||||
for (var i=1066;i<1072;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
} else if (wjgxtype == 2) {
|
||||
for (var i=1060;i<1069;i++){
|
||||
$("#package-"+i).hide();
|
||||
}
|
||||
for (var i=1069;i<1072;i++){
|
||||
$("#package-"+i).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<p style="color: #ec6e58;font-size:30px;font-weight: bold;background-color:#FFFF00">
|
||||
需求5个以上,可以联系客服设置优惠价;
|
||||
开通后有任何问题可无理由退款,并支持自助提现
|
||||
退款规则:购买价格-使用天数*天卡价格
|
||||
</p>
|
||||
|
||||
<div class="p_type @("type"+item.Product.Id)" style="padding-top: 10px;">
|
||||
<button type="button" onclick="ttzhizun()" class="btn btn-default btn-lg ttzx" style="background-color: #FF9900;font-size:1.5em;">尊享版</button>
|
||||
<button type="button" onclick="ttgaoji()" class="btn btn-default btn-lg ttgj" style="background-color: white;font-size:1.5em;">高级版</button>
|
||||
<button type="button" onclick="ttputong()" class="btn btn-default btn-lg ttpt" style="background-color: white;font-size:1.5em;">普通版</button>
|
||||
</div>
|
||||
|
||||
@if (item.Product.Id == 20) {
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjdxphone()" id="dxaz" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">安卓/苹果</button>
|
||||
<button type="button" onclick="wjdxpc()" id="dxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
|
||||
|
||||
</div>
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjdxpt()" id="dxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版-5兆</button>
|
||||
<button type="button" onclick="wjdxgj()" id="dxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">高端版-10兆</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (item.Product.Id == 21) {
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjgxphone()" id="gxaz" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">安卓/苹果</button>
|
||||
<button type="button" onclick="wjgxpc()" id="gxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
|
||||
</div>
|
||||
<div style="margin: 5px;">
|
||||
<button type="button" onclick="wjgxpt()" id="gxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版</button>
|
||||
<button type="button" onclick="wjgxgj()" id="gxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">极速版</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
@foreach (var package in item.Packages.Where(m => m.Status == 1&&(m.TenantId==1157||m.TenantId==9999||m.TenantId==10000)).OrderBy(m => m.TenantId))
|
||||
{
|
||||
if (package.IsTest == 1)
|
||||
{
|
||||
<a asp-action="test" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.ProductId">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>0.00</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
@if(package.Price == 0.1M){
|
||||
<a asp-action="buy" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#FFFF00;">@package.Name 首单</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
else {
|
||||
<a asp-action="buy" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#FFFF00;">@package.Name</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
|
||||
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
|
||||
<p>¥<span>60.00</span></p>
|
||||
} else {
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
}
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,143 +1,143 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model ProductWithPackageResponse
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var defaultProduct = Model.Product;
|
||||
var defaultPackage = Model.Packages.FirstOrDefault();
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
|
||||
@* <div class="cpBanner">
|
||||
<img src="~/m/img/cpBanner.png">
|
||||
</div> *@
|
||||
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:330px;">
|
||||
|
||||
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
|
||||
<div class="col-md-8 " style="padding-top:1.5%;">
|
||||
<h2 >十余种全网知名旗舰产品低价热销</h2>
|
||||
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
|
||||
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
|
||||
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单,每次下单都会随机赠送优惠券,最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款 <span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
|
||||
</div>
|
||||
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
|
||||
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
|
||||
<h2>联系客服设置优惠价</h2>
|
||||
<a target="_blank" 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"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cpNav">
|
||||
<div class="item">
|
||||
<ul class="nav nav-tabs cpName" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#@Model.Product.Id">@Model.Product.Name</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="@Model.Product.Id">
|
||||
<p class="texing">@Model.Product.Name</p>
|
||||
<ul class="texingList">
|
||||
<p>·不限速,网速最高可达50兆</p>
|
||||
<p>·支持手机,电脑,模拟器</p>
|
||||
<p>·200多个城市+全国混波量ip千万级</p>
|
||||
<p>·带宽6-10兆</p>
|
||||
<p>·断开再链接换ip</p>
|
||||
</ul>
|
||||
@foreach (var package in Model.Packages.Where(m=>m.IsTest==0&&m.Status==1 && m.Id != 21&& m.Id != 20).OrderBy(m => m.TenantId))
|
||||
{
|
||||
@if(package.Id == 101||package.Id == 103||package.Id == 104||(package.Id>103)){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name </p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@* else if(package.Id == 19){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 送10天</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
} *@
|
||||
@* else if(package.Id == 63||package.Id == 64||package.Id == 65||package.Id == 66||package.Id == 67||package.Id == 13||package.Id == 14||package.Id == 15||package.Id == 16){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 85折</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
} *@
|
||||
else if(package.Id == 100 || package.Id == 102){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name </p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
} else if(package.Id != 88) {
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
|
||||
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
|
||||
<p>¥<span>60.00</span></p>
|
||||
} else {
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
}
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model ProductWithPackageResponse
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var defaultProduct = Model.Product;
|
||||
var defaultPackage = Model.Packages.FirstOrDefault();
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
|
||||
@* <div class="cpBanner">
|
||||
<img src="~/m/img/cpBanner.png">
|
||||
</div> *@
|
||||
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:330px;">
|
||||
|
||||
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
|
||||
<div class="col-md-8 " style="padding-top:1.5%;">
|
||||
<h2 >十余种全网知名旗舰产品低价热销</h2>
|
||||
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
|
||||
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
|
||||
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单,每次下单都会随机赠送优惠券,最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款 <span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
|
||||
</div>
|
||||
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
|
||||
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
|
||||
<h2>联系客服设置优惠价</h2>
|
||||
<a target="_blank" 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"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cpNav">
|
||||
<div class="item">
|
||||
<ul class="nav nav-tabs cpName" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#@Model.Product.Id">@Model.Product.Name</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="@Model.Product.Id">
|
||||
<p class="texing">@Model.Product.Name</p>
|
||||
<ul class="texingList">
|
||||
<p>·不限速,网速最高可达50兆</p>
|
||||
<p>·支持手机,电脑,模拟器</p>
|
||||
<p>·200多个城市+全国混波量ip千万级</p>
|
||||
<p>·带宽6-10兆</p>
|
||||
<p>·断开再链接换ip</p>
|
||||
</ul>
|
||||
@foreach (var package in Model.Packages.Where(m=>m.IsTest==0&&m.Status==1 && m.Id != 21&& m.Id != 20).OrderBy(m => m.TenantId))
|
||||
{
|
||||
@if(package.Id == 101||package.Id == 103||package.Id == 104||(package.Id>103)){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name </p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
@* else if(package.Id == 19){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 送10天</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
} *@
|
||||
@* else if(package.Id == 63||package.Id == 64||package.Id == 65||package.Id == 66||package.Id == 67||package.Id == 13||package.Id == 14||package.Id == 15||package.Id == 16){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 85折</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
} *@
|
||||
else if(package.Id == 100 || package.Id == 102){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name </p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
} else if(package.Id != 88) {
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
|
||||
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
|
||||
<p>¥<span>60.00</span></p>
|
||||
} else {
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
}
|
||||
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,66 +1,66 @@
|
||||
@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-sm-4">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-4 text-center">
|
||||
<p class="simg"><img src="~/img/img_soft.png"></p>
|
||||
<p class="sintro">软件和账户必须为同一产品才能使用</p>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<a href="#" class="jiaocheng">使用教程→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="softList">
|
||||
@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="item">
|
||||
@*<p><img src="@P(item.Image)"></p>*@
|
||||
@if (item.Id != 20){
|
||||
<p>@item.Name</p>
|
||||
<p><a href="@item.SimulatorDownloadUrl"> <button type="button" class="btnBlue">SSTP客户端下载</button></a></p>
|
||||
}
|
||||
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl)){
|
||||
<p>@item.Name</p>
|
||||
<p><a href="@item.DroidDownloadUrl"> <button type="button" class="btnBlue">安卓APP</button></a></p>
|
||||
<br>
|
||||
} else if (item.Id == 20) {
|
||||
<p>无极</p>
|
||||
<p><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="btnBlue">无极安卓共享独享通用</button></a></p>
|
||||
|
||||
<p><a href="https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437"> <button type="button" class="btnBlue">ios客户端</button></a></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="item" style="height: auto;">
|
||||
@*<p><img src="@P(item.Image)"></p>*@
|
||||
<p>代理商专用客户端</p>
|
||||
<p><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="btnBlue">西瓜IP-电脑版</button></a></p>
|
||||
<p><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="btnBlue">西瓜IP-安卓</button></a></p><br>
|
||||
<p><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="btnBlue">极客IP-电脑版</button></a></p><br>
|
||||
<p><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="btnBlue">极客IP-安卓</button></a></p><br>
|
||||
|
||||
<p><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="btnBlue">迅连IP-电脑版</button></a></p>
|
||||
<p><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="btnBlue">讯连IP-安卓端</button></a></p>
|
||||
<p><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="btnBlue">强子IP-电脑版</button></a></p>
|
||||
<p><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="btnBlue">强子IP-安卓端</button></a></p>
|
||||
<p><a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btnBlue">火狐IP-安卓端</button></a></p>
|
||||
<p><a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btnBlue">云牛IP-安卓端</button></a></p>
|
||||
<p><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="btnBlue">星星IP-电脑端</button></a></p><br>
|
||||
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btnBlue">蘑菇IP-电脑端</button></a></p><br>
|
||||
</div>
|
||||
@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-sm-4">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-4 text-center">
|
||||
<p class="simg"><img src="~/img/img_soft.png"></p>
|
||||
<p class="sintro">软件和账户必须为同一产品才能使用</p>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<a href="#" class="jiaocheng">使用教程→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="softList">
|
||||
@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="item">
|
||||
@*<p><img src="@P(item.Image)"></p>*@
|
||||
@if (item.Id != 20){
|
||||
<p>@item.Name</p>
|
||||
<p><a href="@item.SimulatorDownloadUrl"> <button type="button" class="btnBlue">SSTP客户端下载</button></a></p>
|
||||
}
|
||||
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl)){
|
||||
<p>@item.Name</p>
|
||||
<p><a href="@item.DroidDownloadUrl"> <button type="button" class="btnBlue">安卓APP</button></a></p>
|
||||
<br>
|
||||
} else if (item.Id == 20) {
|
||||
<p>无极</p>
|
||||
<p><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="btnBlue">无极安卓共享独享通用</button></a></p>
|
||||
|
||||
<p><a href="https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437"> <button type="button" class="btnBlue">ios客户端</button></a></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="item" style="height: auto;">
|
||||
@*<p><img src="@P(item.Image)"></p>*@
|
||||
<p>代理商专用客户端</p>
|
||||
<p><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="btnBlue">西瓜IP-电脑版</button></a></p>
|
||||
<p><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="btnBlue">西瓜IP-安卓</button></a></p><br>
|
||||
<p><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="btnBlue">极客IP-电脑版</button></a></p><br>
|
||||
<p><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="btnBlue">极客IP-安卓</button></a></p><br>
|
||||
|
||||
<p><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="btnBlue">迅连IP-电脑版</button></a></p>
|
||||
<p><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="btnBlue">讯连IP-安卓端</button></a></p>
|
||||
<p><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="btnBlue">强子IP-电脑版</button></a></p>
|
||||
<p><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="btnBlue">强子IP-安卓端</button></a></p>
|
||||
<p><a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btnBlue">火狐IP-安卓端</button></a></p>
|
||||
<p><a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btnBlue">云牛IP-安卓端</button></a></p>
|
||||
<p><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="btnBlue">星星IP-电脑端</button></a></p><br>
|
||||
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btnBlue">蘑菇IP-电脑端</button></a></p><br>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,129 +1,129 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Common
|
||||
@model PackageInfoResponse
|
||||
@inject IConfiguration m_Configuration
|
||||
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
var t = this.Context.Request.GetInt("t");
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
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();
|
||||
}
|
||||
}
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
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/IndexInfo";
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div class="cpTop">
|
||||
<p class="choose">当前已选产品:</p>
|
||||
<div class="kArea">
|
||||
<div class="cpKuang">
|
||||
<div class="item">
|
||||
<p><img src="@P(Model.Product.Image)"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="kaci">@Model.Package.Name</p>
|
||||
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="grayText">@Model.Package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
¥ <span class="price">@Model.Package.Price</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chongxin">
|
||||
<div class="item redText">
|
||||
*请确认好所需产品,买错产品换货将产生费用
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="product"><button type="button" class="btnBlue">返回重新选择</button></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="biaodan">
|
||||
IP账号前缀:<input type="text" name="" id="account" value="@randomAccount" />
|
||||
</div>
|
||||
<div class="biaodan">
|
||||
IP账号密码:<input type="text" name="" id="pwd" value="@randomPwd" />
|
||||
</div>
|
||||
<p class="grayText text-center shengyu">剩余试用次数:<span>@(Model.RestTimes)</span></p>
|
||||
<p class="text-center redText tip"></p>
|
||||
<p class="text-center">
|
||||
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
|
||||
{
|
||||
<button type="button" class="btnBlue large" onclick="create()">领取试用</button>
|
||||
}
|
||||
@if (Model.Package.Status == 0)
|
||||
{
|
||||
<span style="color:red;">
|
||||
该产品暂不能测试
|
||||
</span>
|
||||
}
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@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 Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Common
|
||||
@model PackageInfoResponse
|
||||
@inject IConfiguration m_Configuration
|
||||
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
var t = this.Context.Request.GetInt("t");
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
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();
|
||||
}
|
||||
}
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
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/IndexInfo";
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div class="cpTop">
|
||||
<p class="choose">当前已选产品:</p>
|
||||
<div class="kArea">
|
||||
<div class="cpKuang">
|
||||
<div class="item">
|
||||
<p><img src="@P(Model.Product.Image)"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="kaci">@Model.Package.Name</p>
|
||||
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="grayText">@Model.Package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
¥ <span class="price">@Model.Package.Price</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chongxin">
|
||||
<div class="item redText">
|
||||
*请确认好所需产品,买错产品换货将产生费用
|
||||
</div>
|
||||
<div class="item">
|
||||
<a asp-action="index" asp-controller="product"><button type="button" class="btnBlue">返回重新选择</button></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="biaodan">
|
||||
IP账号前缀:<input type="text" name="" id="account" value="@randomAccount" />
|
||||
</div>
|
||||
<div class="biaodan">
|
||||
IP账号密码:<input type="text" name="" id="pwd" value="@randomPwd" />
|
||||
</div>
|
||||
<p class="grayText text-center shengyu">剩余试用次数:<span>@(Model.RestTimes)</span></p>
|
||||
<p class="text-center redText tip"></p>
|
||||
<p class="text-center">
|
||||
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
|
||||
{
|
||||
<button type="button" class="btnBlue large" onclick="create()">领取试用</button>
|
||||
}
|
||||
@if (Model.Package.Status == 0)
|
||||
{
|
||||
<span style="color:red;">
|
||||
该产品暂不能测试
|
||||
</span>
|
||||
}
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@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,387 +1,387 @@
|
||||
@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 src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
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/IndexInfo";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
<div id="app">
|
||||
<div class="cpTop">
|
||||
<p class="choose">当前已选产品:</p>
|
||||
<div class="kArea">
|
||||
<div class="cpKuang">
|
||||
<div class="item">
|
||||
<p><img src="~/@Model.Product.Image"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="kaci">@Model.Package.Name</p>
|
||||
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="grayText">@Model.Package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
¥ <span class="price">@Model.Package.Price</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chongxin">
|
||||
<div class="item redText">
|
||||
*请确认好所需产品,买错产品换货将产生费用
|
||||
</div>
|
||||
<div class="item">
|
||||
<button type="button" class="btnBlue" onclick="history.go(-1)">返回重新选择</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- con -->
|
||||
<div class="container zhuce">
|
||||
<div class="reg_tab">
|
||||
<div class="item dan active_dan">
|
||||
续费
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="conDan">
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
IP产品账号:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 shuru">
|
||||
<input type="text" v-model="OneBuyModel.Account" disabled />
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
IP账号密码:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 shuru">
|
||||
<input type="text" v-model="OneBuyModel.Pwd" />
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
连接数:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<div class="jiajian">
|
||||
<div class="item">
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<span>{{OneBuyModel.ConnectCount}}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
选择优惠券:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 select">
|
||||
<select class="chooseYhq" 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="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
余额:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<div class="">
|
||||
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
|
||||
<a href="/User/Index">前往充值</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="showPayType">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
支付方式:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 pay">
|
||||
<div class="radio" v-on:click="OneBuyModel.OPayType=100">
|
||||
<input id="zhifubaopay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="100">
|
||||
<label for="zhifubaopay_s1" class="radio-label"><img src="~/m/img/zfb.png"> 支付宝支付</label>
|
||||
</div>
|
||||
<div class="radio" v-on:click="OneBuyModel.OPayType=70">
|
||||
<input id="weixinpay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="70">
|
||||
<label for="weixinpay_s1" class="radio-label"><img src="~/m/img/wx.png"> 微信支付</label>
|
||||
</div>
|
||||
<div class="radio" >
|
||||
<input id="UseAccountAmount" name="OPayType" type="radio" v-model="OneBuyModel.UseAccountAmount" value="1">
|
||||
<label for="UseAccountAmount" class="radio-label" style="line-height:150%"> 余额支付</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
总金额:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<span>{{TotalAmount}}</span>元
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
应付款:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<span class="yingfu" style="font-size: 35px;font-weight: bold;">{{PayAmount}}</span>元
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<p>{{auto_discount_text}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="grayText songquan">淘宝每次下单获得优惠券</p>
|
||||
<p class="grayText songquan" style="color:red">{{Tip}}</p>
|
||||
<div class="ok">
|
||||
<button type="button" class="pay-botton btnPay" v-on:click="onePay">确认支付</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="aliPayBox" style="display:none"></div>
|
||||
@section Scripts{
|
||||
<script>
|
||||
var productId =@(Model.Product.Id);
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
auto_discount_text:'',
|
||||
showPayType: true,
|
||||
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:40,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
TotalAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * 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) {
|
||||
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($(".kaci").text() == '天卡'){
|
||||
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
|
||||
} else {
|
||||
alert('非天卡无效');
|
||||
this.OneBuyModel.CouponId = '0';
|
||||
}
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
this.OneBuyModel.CouponAmount = 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
'OneBuyModel.OPayType': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
var wx = 10;
|
||||
if (isWeiXin()) wx = 20;
|
||||
this.OneBuyModel.PayChannel = newValue == 70 ? wx : 40;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
if (isWeiXin()) {
|
||||
this.OneBuyModel.PayChannel = 20;
|
||||
this.OneBuyModel.OPayType = 70;
|
||||
this.showPayType = false;
|
||||
}
|
||||
this.getCoupons();
|
||||
},
|
||||
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) {
|
||||
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;
|
||||
var that = this;
|
||||
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();
|
||||
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;
|
||||
if (!data.PayData) { alert("下单成功"); return; }
|
||||
var payChannel = this.OrderInfo.PayChannel;
|
||||
if (payChannel == 10) {
|
||||
this.h5WxPay(data.PayData)
|
||||
} else if (payChannel == 20) {
|
||||
this.jsWxPay(data.PayData);
|
||||
} else if (payChannel == 40) {
|
||||
this.aliPay(data.PayData);
|
||||
}
|
||||
},
|
||||
h5WxPay(payData) {
|
||||
window.location.href = payData;
|
||||
},
|
||||
jsWxPay(payData) {
|
||||
WeixinJSBridge.invoke(
|
||||
'getBrandWCPayRequest',
|
||||
JSON.parse(payData),
|
||||
function (res) {
|
||||
if (res.err_msg == "get_brand_wcpay_request:ok") {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
|
||||
|
||||
} else {
|
||||
alert("支付失败" + res.err_msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
aliPay(payData) {
|
||||
$("#aliPayBox").html(payData);
|
||||
},
|
||||
isPay: function (orderNo) {
|
||||
var handler = setInterval(function () {
|
||||
var url = '/product/IsPay?orderNo=' + orderNo;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000 && res.Data == 1) {
|
||||
clearInterval(handler);
|
||||
// $(".payMask").hide();
|
||||
window.location.href = "/user/myaccounts";
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 3000)
|
||||
}
|
||||
}
|
||||
})
|
||||
</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 src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
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/IndexInfo";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
<div id="app">
|
||||
<div class="cpTop">
|
||||
<p class="choose">当前已选产品:</p>
|
||||
<div class="kArea">
|
||||
<div class="cpKuang">
|
||||
<div class="item">
|
||||
<p><img src="~/@Model.Product.Image"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="kaci">@Model.Package.Name</p>
|
||||
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="grayText">@Model.Package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
¥ <span class="price">@Model.Package.Price</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chongxin">
|
||||
<div class="item redText">
|
||||
*请确认好所需产品,买错产品换货将产生费用
|
||||
</div>
|
||||
<div class="item">
|
||||
<button type="button" class="btnBlue" onclick="history.go(-1)">返回重新选择</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- con -->
|
||||
<div class="container zhuce">
|
||||
<div class="reg_tab">
|
||||
<div class="item dan active_dan">
|
||||
续费
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="conDan">
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
IP产品账号:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 shuru">
|
||||
<input type="text" v-model="OneBuyModel.Account" disabled />
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
IP账号密码:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 shuru">
|
||||
<input type="text" v-model="OneBuyModel.Pwd" />
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
连接数:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<div class="jiajian">
|
||||
<div class="item">
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<span>{{OneBuyModel.ConnectCount}}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
选择优惠券:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 select">
|
||||
<select class="chooseYhq" 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="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
余额:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<div class="">
|
||||
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
|
||||
<a href="/User/Index">前往充值</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" v-if="showPayType">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
支付方式:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7 pay">
|
||||
<div class="radio" v-on:click="OneBuyModel.OPayType=100">
|
||||
<input id="zhifubaopay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="100">
|
||||
<label for="zhifubaopay_s1" class="radio-label"><img src="~/m/img/zfb.png"> 支付宝支付</label>
|
||||
</div>
|
||||
<div class="radio" v-on:click="OneBuyModel.OPayType=70">
|
||||
<input id="weixinpay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="70">
|
||||
<label for="weixinpay_s1" class="radio-label"><img src="~/m/img/wx.png"> 微信支付</label>
|
||||
</div>
|
||||
<div class="radio" >
|
||||
<input id="UseAccountAmount" name="OPayType" type="radio" v-model="OneBuyModel.UseAccountAmount" value="1">
|
||||
<label for="UseAccountAmount" class="radio-label" style="line-height:150%"> 余额支付</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
总金额:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<span>{{TotalAmount}}</span>元
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
应付款:
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<span class="yingfu" style="font-size: 35px;font-weight: bold;">{{PayAmount}}</span>元
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-5 col-xs-5">
|
||||
</div>
|
||||
<div class="col-sm-7 col-xs-7">
|
||||
<p>{{auto_discount_text}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="grayText songquan">淘宝每次下单获得优惠券</p>
|
||||
<p class="grayText songquan" style="color:red">{{Tip}}</p>
|
||||
<div class="ok">
|
||||
<button type="button" class="pay-botton btnPay" v-on:click="onePay">确认支付</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="aliPayBox" style="display:none"></div>
|
||||
@section Scripts{
|
||||
<script>
|
||||
var productId =@(Model.Product.Id);
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
auto_discount_text:'',
|
||||
showPayType: true,
|
||||
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:40,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
TotalAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * 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) {
|
||||
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($(".kaci").text() == '天卡'){
|
||||
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
|
||||
} else {
|
||||
alert('非天卡无效');
|
||||
this.OneBuyModel.CouponId = '0';
|
||||
}
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
this.OneBuyModel.CouponAmount = 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
'OneBuyModel.OPayType': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
var wx = 10;
|
||||
if (isWeiXin()) wx = 20;
|
||||
this.OneBuyModel.PayChannel = newValue == 70 ? wx : 40;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
if (isWeiXin()) {
|
||||
this.OneBuyModel.PayChannel = 20;
|
||||
this.OneBuyModel.OPayType = 70;
|
||||
this.showPayType = false;
|
||||
}
|
||||
this.getCoupons();
|
||||
},
|
||||
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) {
|
||||
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;
|
||||
var that = this;
|
||||
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();
|
||||
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;
|
||||
if (!data.PayData) { alert("下单成功"); return; }
|
||||
var payChannel = this.OrderInfo.PayChannel;
|
||||
if (payChannel == 10) {
|
||||
this.h5WxPay(data.PayData)
|
||||
} else if (payChannel == 20) {
|
||||
this.jsWxPay(data.PayData);
|
||||
} else if (payChannel == 40) {
|
||||
this.aliPay(data.PayData);
|
||||
}
|
||||
},
|
||||
h5WxPay(payData) {
|
||||
window.location.href = payData;
|
||||
},
|
||||
jsWxPay(payData) {
|
||||
WeixinJSBridge.invoke(
|
||||
'getBrandWCPayRequest',
|
||||
JSON.parse(payData),
|
||||
function (res) {
|
||||
if (res.err_msg == "get_brand_wcpay_request:ok") {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
|
||||
|
||||
} else {
|
||||
alert("支付失败" + res.err_msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
aliPay(payData) {
|
||||
$("#aliPayBox").html(payData);
|
||||
},
|
||||
isPay: function (orderNo) {
|
||||
var handler = setInterval(function () {
|
||||
var url = '/product/IsPay?orderNo=' + orderNo;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000 && res.Data == 1) {
|
||||
clearInterval(handler);
|
||||
// $(".payMask").hide();
|
||||
window.location.href = "/user/myaccounts";
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 3000)
|
||||
}
|
||||
}
|
||||
})
|
||||
</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 += "&";
|
||||
}
|
||||
}
|
||||
|
||||
@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 += "&";
|
||||
}
|
||||
}
|
||||
|
||||
@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,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,44 +1,44 @@
|
||||
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@using Hncore.Infrastructure.Common
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@inject IConfiguration m_Configuration
|
||||
@inject UserService m_UserService
|
||||
@{
|
||||
var act = this.Context.Request.Get("act");
|
||||
var WxAppId = m_Configuration["WxApps:AppID"];
|
||||
var BaseUrl = m_Configuration["Service_BaseUrl"];
|
||||
var requestUrl =this.Context.Request.GetUrl().UrlEncode();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<script>
|
||||
|
||||
function isWeiXin() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger')!=-1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isWeiXin() || "login" =="@act") {
|
||||
window.location.href = "/User/WebLogin?redirect=@requestUrl";
|
||||
} else {
|
||||
window.location.href = "@(BaseUrl)User/MP_GetUserInfo?appid=@WxAppId&callbakUrl=@requestUrl";
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
||||
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@using Hncore.Infrastructure.Common
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@inject IConfiguration m_Configuration
|
||||
@inject UserService m_UserService
|
||||
@{
|
||||
var act = this.Context.Request.Get("act");
|
||||
var WxAppId = m_Configuration["WxApps:AppID"];
|
||||
var BaseUrl = m_Configuration["Service_BaseUrl"];
|
||||
var requestUrl =this.Context.Request.GetUrl().UrlEncode();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<script>
|
||||
|
||||
function isWeiXin() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger')!=-1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isWeiXin() || "login" =="@act") {
|
||||
window.location.href = "/User/WebLogin?redirect=@requestUrl";
|
||||
} else {
|
||||
window.location.href = "@(BaseUrl)User/MP_GetUserInfo?appid=@WxAppId&callbakUrl=@requestUrl";
|
||||
}
|
||||
</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>
|
||||
}
|
||||
|
||||
@@ -1,221 +1,221 @@
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.Vpn.Service
|
||||
@inject ProductService m_ProductService
|
||||
@{
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
|
||||
var url_s = this.Context.Request.Path;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
<meta content="yes" name="apple-touch-fullscreen" />
|
||||
<meta content="telephone=no,email=no" name="format-detection" />
|
||||
<meta content="maximum-dpr=2" name="flexible" />
|
||||
@if(url_s == "/product/index"){
|
||||
<meta name="Keywords" Content="动态ip代理软件,动态代理ip">
|
||||
<meta name="Description" Content="聚IP助力企业开工,全部动态ip代理软件、动态代理ip等产品,量大从优,一对一专人客服指导。">
|
||||
<title>动态ip代理软件_动态代理ip-聚IP</title>
|
||||
}
|
||||
else if(url_s == "/LineList/index"){
|
||||
<meta name="Keywords" Content="l2tp,sstp,pptp,IP线路表">
|
||||
<meta name="Description" Content="聚IP全部线路表API接口,五分钟更新一次,确保l2tp、sstp、pptp等IP线路流畅。">
|
||||
<title>l2tp_sstp_pptp_IP线路表-聚IP</title>
|
||||
}
|
||||
else if(url_s == "/product/soft"){
|
||||
<meta name="Keywords" Content="电脑换ip软件,自动换ip软件">
|
||||
<meta name="Description" Content="聚IP支持电脑换ip软件、自动换ip软件下载。">
|
||||
<title>电脑换ip软件_自动换ip软件下载-聚IP</title>
|
||||
}
|
||||
else if(url_s == "/article/index"){
|
||||
<meta name="Keywords" Content="换ip的软件,动态ip代理,教程&咨询">
|
||||
<meta name="Description" Content="聚IP提供换ip的软件、动态ip代理等详细教程在线指导。">
|
||||
<title>换ip的软件_动态ip代理_教程&咨询-聚IP</title>
|
||||
}
|
||||
else {
|
||||
<meta name="Keywords" Content="动态ip软件,动态代理ip,sstp,换ip的软件,电脑换ip软件,pptp,L2TP,动态ip代理,动态ip,自动换ip软件">
|
||||
<meta name="Description" Content="聚IP提供动态代理ip、电脑换ip软件、自动换ip软件、sstp、pptp及L2TP代理服务,全国多个城市几十种动态ip任您选择,高品质ip资源期待与您合作。">
|
||||
<title>动态代理ip_电脑换ip软件_自动换ip软件_sstp_pptp_L2TP-聚IP</title>
|
||||
}
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/base.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/swiper.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/bootstrap.css" />
|
||||
<link rel="Shortcut Icon" href="/img/favicon.ico" type="image/x-icon" />
|
||||
<script src="~/m/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script src="~/m/js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/m/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
$.ajaxSetup({
|
||||
complete: function (XMLHttpRequest, textStatus) {
|
||||
console.log(textStatus);
|
||||
//var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
|
||||
if (textStatus == "parsererror") {
|
||||
//如果超时就处理 ,指定要跳转的页面(比如登陆页)
|
||||
window.location.href="/user/weblogin"
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$(".btnNav").click(function () {
|
||||
$(".mask").fadeIn();
|
||||
console.log(1)
|
||||
});
|
||||
$(".btnClose").click(function () {
|
||||
$(".mask").fadeOut();
|
||||
console.log(2)
|
||||
});
|
||||
|
||||
$(".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();
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
function isWeiXin() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') != -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="popmask"></div>
|
||||
<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="mask">
|
||||
<ul class="layNav">
|
||||
<li><a href="/">首页</a></li>
|
||||
<li><a href="/product/index">产品购买 <span style="color: red;">活动</span></a> </li>
|
||||
<li><a asp-action="index" asp-controller="LineList" asp-route-Catalog="1">线路表</a> </li>
|
||||
<li><a asp-action="soft" asp-controller="product">软件下载</a> </li>
|
||||
<li><a asp-action="index" asp-controller="article">教程&咨询</a></li>
|
||||
<li><a href="/product/routeros">软路由购买</a></li>
|
||||
<li><a href="http://vps.juip.com" style="color: red;">动态VPS</a></li>
|
||||
@* <li><a asp-action="taobao" asp-controller="article">淘宝充值活动</a></li> *@
|
||||
@if (user != null)
|
||||
{
|
||||
<li><a asp-action="index" asp-controller="user">个人中心</a></li>
|
||||
<li><a asp-action="LoginOut" asp-controller="user">退出</a></li>
|
||||
}
|
||||
else
|
||||
{
|
||||
<li><a asp-action="WebLogin" asp-controller="user">登录</a></li>
|
||||
}
|
||||
|
||||
<li><img src="~/m/img/close.png" class="btnClose"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mynav">
|
||||
<div class="item">
|
||||
<img src="~/m/img/back.png" onclick="history.go(-1)">
|
||||
</div>
|
||||
<div class="item mlogo">
|
||||
<img src="~/m/img/logo.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/m/img/nav.png" class="btnNav">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@RenderBody()
|
||||
@RenderSection("Scripts", required: false)
|
||||
<!-- WPA start -->
|
||||
@* <script id="qd28521381485d6faa97edf5ad07d7e159f6cb902af0" src="https://wp.qiye.qq.com/qidian/2852138148/5d6faa97edf5ad07d7e159f6cb902af0" charset="utf-8" async defer></script> *@
|
||||
<!-- WPA end -->
|
||||
|
||||
<div data-toggle="popovers" data-html="true" data-content="<div style='font-size:2em;'><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 style='width:1.5em;' 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></div>" data-placement="top" class="row" id="djkf" style="background-color: white; width:300px;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 5px;color:#12b7f5;"></span>在线咨询</h4>
|
||||
<p style="padding:5px 0 0 10px;">8:30-23:00</p>
|
||||
</div>
|
||||
<script>$(function () { $("[data-toggle='popovers']").popover(); });</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.Vpn.Service
|
||||
@inject ProductService m_ProductService
|
||||
@{
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
|
||||
var url_s = this.Context.Request.Path;
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
<meta content="yes" name="apple-touch-fullscreen" />
|
||||
<meta content="telephone=no,email=no" name="format-detection" />
|
||||
<meta content="maximum-dpr=2" name="flexible" />
|
||||
@if(url_s == "/product/index"){
|
||||
<meta name="Keywords" Content="动态ip代理软件,动态代理ip">
|
||||
<meta name="Description" Content="聚IP助力企业开工,全部动态ip代理软件、动态代理ip等产品,量大从优,一对一专人客服指导。">
|
||||
<title>动态ip代理软件_动态代理ip-聚IP</title>
|
||||
}
|
||||
else if(url_s == "/LineList/index"){
|
||||
<meta name="Keywords" Content="l2tp,sstp,pptp,IP线路表">
|
||||
<meta name="Description" Content="聚IP全部线路表API接口,五分钟更新一次,确保l2tp、sstp、pptp等IP线路流畅。">
|
||||
<title>l2tp_sstp_pptp_IP线路表-聚IP</title>
|
||||
}
|
||||
else if(url_s == "/product/soft"){
|
||||
<meta name="Keywords" Content="电脑换ip软件,自动换ip软件">
|
||||
<meta name="Description" Content="聚IP支持电脑换ip软件、自动换ip软件下载。">
|
||||
<title>电脑换ip软件_自动换ip软件下载-聚IP</title>
|
||||
}
|
||||
else if(url_s == "/article/index"){
|
||||
<meta name="Keywords" Content="换ip的软件,动态ip代理,教程&咨询">
|
||||
<meta name="Description" Content="聚IP提供换ip的软件、动态ip代理等详细教程在线指导。">
|
||||
<title>换ip的软件_动态ip代理_教程&咨询-聚IP</title>
|
||||
}
|
||||
else {
|
||||
<meta name="Keywords" Content="动态ip软件,动态代理ip,sstp,换ip的软件,电脑换ip软件,pptp,L2TP,动态ip代理,动态ip,自动换ip软件">
|
||||
<meta name="Description" Content="聚IP提供动态代理ip、电脑换ip软件、自动换ip软件、sstp、pptp及L2TP代理服务,全国多个城市几十种动态ip任您选择,高品质ip资源期待与您合作。">
|
||||
<title>动态代理ip_电脑换ip软件_自动换ip软件_sstp_pptp_L2TP-聚IP</title>
|
||||
}
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/base.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/swiper.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/bootstrap.css" />
|
||||
<link rel="Shortcut Icon" href="/img/favicon.ico" type="image/x-icon" />
|
||||
<script src="~/m/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script src="~/m/js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/m/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
$.ajaxSetup({
|
||||
complete: function (XMLHttpRequest, textStatus) {
|
||||
console.log(textStatus);
|
||||
//var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
|
||||
if (textStatus == "parsererror") {
|
||||
//如果超时就处理 ,指定要跳转的页面(比如登陆页)
|
||||
window.location.href="/user/weblogin"
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$(".btnNav").click(function () {
|
||||
$(".mask").fadeIn();
|
||||
console.log(1)
|
||||
});
|
||||
$(".btnClose").click(function () {
|
||||
$(".mask").fadeOut();
|
||||
console.log(2)
|
||||
});
|
||||
|
||||
$(".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();
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
function isWeiXin() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('micromessenger') != -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="popmask"></div>
|
||||
<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="mask">
|
||||
<ul class="layNav">
|
||||
<li><a href="/">首页</a></li>
|
||||
<li><a href="/product/index">产品购买 <span style="color: red;">活动</span></a> </li>
|
||||
<li><a asp-action="index" asp-controller="LineList" asp-route-Catalog="1">线路表</a> </li>
|
||||
<li><a asp-action="soft" asp-controller="product">软件下载</a> </li>
|
||||
<li><a asp-action="index" asp-controller="article">教程&咨询</a></li>
|
||||
<li><a href="/product/routeros">软路由购买</a></li>
|
||||
<li><a href="http://vps.juip.com" style="color: red;">动态VPS</a></li>
|
||||
@* <li><a asp-action="taobao" asp-controller="article">淘宝充值活动</a></li> *@
|
||||
@if (user != null)
|
||||
{
|
||||
<li><a asp-action="index" asp-controller="user">个人中心</a></li>
|
||||
<li><a asp-action="LoginOut" asp-controller="user">退出</a></li>
|
||||
}
|
||||
else
|
||||
{
|
||||
<li><a asp-action="WebLogin" asp-controller="user">登录</a></li>
|
||||
}
|
||||
|
||||
<li><img src="~/m/img/close.png" class="btnClose"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mynav">
|
||||
<div class="item">
|
||||
<img src="~/m/img/back.png" onclick="history.go(-1)">
|
||||
</div>
|
||||
<div class="item mlogo">
|
||||
<img src="~/m/img/logo.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/m/img/nav.png" class="btnNav">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@RenderBody()
|
||||
@RenderSection("Scripts", required: false)
|
||||
<!-- WPA start -->
|
||||
@* <script id="qd28521381485d6faa97edf5ad07d7e159f6cb902af0" src="https://wp.qiye.qq.com/qidian/2852138148/5d6faa97edf5ad07d7e159f6cb902af0" charset="utf-8" async defer></script> *@
|
||||
<!-- WPA end -->
|
||||
|
||||
<div data-toggle="popovers" data-html="true" data-content="<div style='font-size:2em;'><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 style='width:1.5em;' 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></div>" data-placement="top" class="row" id="djkf" style="background-color: white; width:300px;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 5px;color:#12b7f5;"></span>在线咨询</h4>
|
||||
<p style="padding:5px 0 0 10px;">8:30-23:00</p>
|
||||
</div>
|
||||
<script>$(function () { $("[data-toggle='popovers']").popover(); });</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,86 +1,86 @@
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.Vpn.Service
|
||||
@inject ProductService m_ProductService
|
||||
@{
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
<meta content="yes" name="apple-touch-fullscreen" />
|
||||
<meta content="telephone=no,email=no" name="format-detection" />
|
||||
<meta content="maximum-dpr=2" name="flexible" />
|
||||
|
||||
<title>聚IP JUIP.COM-产品购买</title>
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/base.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/swiper.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/bootstrap.css" />
|
||||
<link href="~/m/css/LCalendar.css" rel="stylesheet" />
|
||||
<link rel="Shortcut Icon" href="/img/favicon.ico" type="image/x-icon" />
|
||||
<script src="~/m/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script src="~/m/js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/m/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$(".btnNav").click(function () {
|
||||
$(".mask").fadeIn();
|
||||
console.log(1)
|
||||
});
|
||||
$(".btnClose").click(function () {
|
||||
$(".mask").fadeOut();
|
||||
console.log(2)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<!-- 弹窗导航 -->
|
||||
<div class="mask">
|
||||
<ul class="layNav">
|
||||
<li><a href="/">首页</a></li>
|
||||
<li><a href="/product/index">产品购买 <span style="color: red;">活动</span></a> </li>
|
||||
<li><a asp-action="index" asp-controller="LineList">线路表</a> </li>
|
||||
<li><a asp-action="soft" asp-controller="product">软件下载</a> </li>
|
||||
<li><a asp-action="index" asp-controller="article">教程&咨询</a></li>
|
||||
<li><a href="/product/routeros">软路由购买</a></li>
|
||||
<li><a href="http://vps.juip.com" style="color: red;">动态VPS</a></li>
|
||||
<li>
|
||||
@if (user != null)
|
||||
{
|
||||
<a asp-action="index" asp-controller="user">个人中心</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a asp-action="WebLogin" asp-controller="user">登录</a>
|
||||
}
|
||||
</li>
|
||||
<li><img src="~/m/img/close.png" class="btnClose"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mynav">
|
||||
<div class="item">
|
||||
<img src="~/m/img/back.png" onclick="history.go(-1)">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/m/img/logo.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/m/img/nav.png" class="btnNav">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@RenderBody()
|
||||
@RenderSection("Scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.Vpn.Service
|
||||
@inject ProductService m_ProductService
|
||||
@{
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
<meta content="yes" name="apple-touch-fullscreen" />
|
||||
<meta content="telephone=no,email=no" name="format-detection" />
|
||||
<meta content="maximum-dpr=2" name="flexible" />
|
||||
|
||||
<title>聚IP JUIP.COM-产品购买</title>
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/base.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/swiper.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="~/m/css/bootstrap.css" />
|
||||
<link href="~/m/css/LCalendar.css" rel="stylesheet" />
|
||||
<link rel="Shortcut Icon" href="/img/favicon.ico" type="image/x-icon" />
|
||||
<script src="~/m/js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script src="~/m/js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="~/m/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$(".btnNav").click(function () {
|
||||
$(".mask").fadeIn();
|
||||
console.log(1)
|
||||
});
|
||||
$(".btnClose").click(function () {
|
||||
$(".mask").fadeOut();
|
||||
console.log(2)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<!-- 弹窗导航 -->
|
||||
<div class="mask">
|
||||
<ul class="layNav">
|
||||
<li><a href="/">首页</a></li>
|
||||
<li><a href="/product/index">产品购买 <span style="color: red;">活动</span></a> </li>
|
||||
<li><a asp-action="index" asp-controller="LineList">线路表</a> </li>
|
||||
<li><a asp-action="soft" asp-controller="product">软件下载</a> </li>
|
||||
<li><a asp-action="index" asp-controller="article">教程&咨询</a></li>
|
||||
<li><a href="/product/routeros">软路由购买</a></li>
|
||||
<li><a href="http://vps.juip.com" style="color: red;">动态VPS</a></li>
|
||||
<li>
|
||||
@if (user != null)
|
||||
{
|
||||
<a asp-action="index" asp-controller="user">个人中心</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a asp-action="WebLogin" asp-controller="user">登录</a>
|
||||
}
|
||||
</li>
|
||||
<li><img src="~/m/img/close.png" class="btnClose"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mynav">
|
||||
<div class="item">
|
||||
<img src="~/m/img/back.png" onclick="history.go(-1)">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/m/img/logo.png">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="~/m/img/nav.png" class="btnNav">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@RenderBody()
|
||||
@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,60 +1,60 @@
|
||||
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
<div id="app" style="margin-top: 10%;">
|
||||
<table class="table">
|
||||
<caption>提现管理</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>提现金额</th>
|
||||
<th>支付宝账号</th>
|
||||
<th>状态</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="info in tableData">
|
||||
<td>{{info.money}}</td>
|
||||
<td>{{info.alipay_account}}</td>
|
||||
<td>{{info.status}}</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 = "_Layout";
|
||||
}
|
||||
<div id="app" style="margin-top: 10%;">
|
||||
<table class="table">
|
||||
<caption>提现管理</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>提现金额</th>
|
||||
<th>支付宝账号</th>
|
||||
<th>状态</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="info in tableData">
|
||||
<td>{{info.money}}</td>
|
||||
<td>{{info.alipay_account}}</td>
|
||||
<td>{{info.status}}</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>
|
||||
@@ -1,81 +1,81 @@
|
||||
@using Home.Models
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
|
||||
|
||||
<div class="loginArea">
|
||||
<div class="loginTop">
|
||||
<p> <img src="~/m/img/logoBlue.png"></p>
|
||||
<p class="logoTit">找回密码</p>
|
||||
</div>
|
||||
|
||||
<div class="loginCenter">
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="username" value="" placeholder="手机号" /></p>
|
||||
<p><img src="~/m/img/password.png"><input type="text" name="" id="password" value="" placeholder="请输入新密码" /></p>
|
||||
<p class="yzm"><img src="~/m/img/yanzhengma.png"><input type="text" name="" id="yanzhengma" value="" placeholder="验证码" /><button type="button" class="btnBlue" onclick="getCode(this)">获取验证码</button></p>
|
||||
</div>
|
||||
<p><button type="button" class="btnLogin" onclick="reg()">找回密码</button></p>
|
||||
<p class="tixing">*手机号不是IP账号,请登录后开通IP账号*</p>
|
||||
<p class="bianjie">已有账号?<a asp-action="WebLogin" asp-controller="User">立即登录</a></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var time = 60;
|
||||
function getCode(_self) {
|
||||
var name = $("#username").val()
|
||||
if(name == '') { alert('手机号不能为空'); return; }
|
||||
if (!timing(_self)) return;
|
||||
var url = '/User/SendPhoneCodevefy?key=FindUser_Code&phone=' + name;
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: url,
|
||||
contentType: "application/json",
|
||||
success: function (res) {
|
||||
alert(res.Message)
|
||||
//if (res.Code == 10000) {
|
||||
// alert(res.Message)
|
||||
//}
|
||||
}
|
||||
});
|
||||
}
|
||||
function timing(_self) {
|
||||
if (time != 60) return false
|
||||
var timerHandler = setInterval(function () {
|
||||
time--;
|
||||
if (time <= 1) {
|
||||
clearInterval(timerHandler);
|
||||
time = 60;
|
||||
$(_self).text("获取验证码")
|
||||
} else {
|
||||
$(_self).text(time + "s");
|
||||
}
|
||||
|
||||
}, 1000)
|
||||
return true;
|
||||
}
|
||||
function reg() {
|
||||
var name = $("#username").val()
|
||||
var pwd = $("#password").val()
|
||||
var code = $("#yanzhengma").val()
|
||||
if (name == '') { alert('手机号不能为空'); return; }
|
||||
if (code == '') { alert('验证码不能为空'); return; }
|
||||
var data = { Phone: name, Pwd: pwd, Code: code };
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/User/FindPwd',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
alert("密码重置成功,请重新登录")
|
||||
window.location.href="/User/WebLogin"
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@using Home.Models
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
|
||||
|
||||
<div class="loginArea">
|
||||
<div class="loginTop">
|
||||
<p> <img src="~/m/img/logoBlue.png"></p>
|
||||
<p class="logoTit">找回密码</p>
|
||||
</div>
|
||||
|
||||
<div class="loginCenter">
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="username" value="" placeholder="手机号" /></p>
|
||||
<p><img src="~/m/img/password.png"><input type="text" name="" id="password" value="" placeholder="请输入新密码" /></p>
|
||||
<p class="yzm"><img src="~/m/img/yanzhengma.png"><input type="text" name="" id="yanzhengma" value="" placeholder="验证码" /><button type="button" class="btnBlue" onclick="getCode(this)">获取验证码</button></p>
|
||||
</div>
|
||||
<p><button type="button" class="btnLogin" onclick="reg()">找回密码</button></p>
|
||||
<p class="tixing">*手机号不是IP账号,请登录后开通IP账号*</p>
|
||||
<p class="bianjie">已有账号?<a asp-action="WebLogin" asp-controller="User">立即登录</a></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var time = 60;
|
||||
function getCode(_self) {
|
||||
var name = $("#username").val()
|
||||
if(name == '') { alert('手机号不能为空'); return; }
|
||||
if (!timing(_self)) return;
|
||||
var url = '/User/SendPhoneCodevefy?key=FindUser_Code&phone=' + name;
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: url,
|
||||
contentType: "application/json",
|
||||
success: function (res) {
|
||||
alert(res.Message)
|
||||
//if (res.Code == 10000) {
|
||||
// alert(res.Message)
|
||||
//}
|
||||
}
|
||||
});
|
||||
}
|
||||
function timing(_self) {
|
||||
if (time != 60) return false
|
||||
var timerHandler = setInterval(function () {
|
||||
time--;
|
||||
if (time <= 1) {
|
||||
clearInterval(timerHandler);
|
||||
time = 60;
|
||||
$(_self).text("获取验证码")
|
||||
} else {
|
||||
$(_self).text(time + "s");
|
||||
}
|
||||
|
||||
}, 1000)
|
||||
return true;
|
||||
}
|
||||
function reg() {
|
||||
var name = $("#username").val()
|
||||
var pwd = $("#password").val()
|
||||
var code = $("#yanzhengma").val()
|
||||
if (name == '') { alert('手机号不能为空'); return; }
|
||||
if (code == '') { alert('验证码不能为空'); return; }
|
||||
var data = { Phone: name, Pwd: pwd, Code: code };
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/User/FindPwd',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
alert("密码重置成功,请重新登录")
|
||||
window.location.href="/User/WebLogin"
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@@ -1,62 +1,62 @@
|
||||
@using Home.Models
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<div class="ptop">
|
||||
<a class="pname">@Model.UserModel.LoginCode</a>
|
||||
</div>
|
||||
|
||||
<ul class="plist">
|
||||
<li><img src="~/m/img/p1.png"><a asp-action="indexInfo" asp-controller="user">个人信息<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p3.png"><a asp-action="myaccounts" asp-controller="user">IP账号管理<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p3.png"><a asp-action="mymoney" asp-controller="user">资金明细<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p3.png"><a href="/user/rosorder">软路由订单<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p1.png"><a asp-action="myorders" asp-controller="user">我的订单<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p2.png"><a asp-action="myrefundorders" asp-controller="user">退货订单<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p4.png"><a asp-action="mycoupons" asp-controller="user">我的优惠券 <span style="background-color: red;font-size:25px;" class="badge" id="coupon_num"></span><img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p4.png"></span><a asp-action="cashout" asp-controller="user">提现管理<img src="~/m/img/arrow.png"></a></li>
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
$("#coupon_num").text(res.Data.length);
|
||||
}
|
||||
})
|
||||
|
||||
function getQueryString(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
||||
var r = window.location.search.substr(1).match(reg);
|
||||
if (r != null) return unescape(r[2]);
|
||||
return null;
|
||||
}
|
||||
|
||||
var is_realname = getQueryString('realname');
|
||||
|
||||
if(is_realname){
|
||||
let data = {
|
||||
cookie:document.cookie
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'http://php-api.juip.com/api/test/aliGetResult',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
@using Home.Models
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<div class="ptop">
|
||||
<a class="pname">@Model.UserModel.LoginCode</a>
|
||||
</div>
|
||||
|
||||
<ul class="plist">
|
||||
<li><img src="~/m/img/p1.png"><a asp-action="indexInfo" asp-controller="user">个人信息<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p3.png"><a asp-action="myaccounts" asp-controller="user">IP账号管理<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p3.png"><a asp-action="mymoney" asp-controller="user">资金明细<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p3.png"><a href="/user/rosorder">软路由订单<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p1.png"><a asp-action="myorders" asp-controller="user">我的订单<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p2.png"><a asp-action="myrefundorders" asp-controller="user">退货订单<img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p4.png"><a asp-action="mycoupons" asp-controller="user">我的优惠券 <span style="background-color: red;font-size:25px;" class="badge" id="coupon_num"></span><img src="~/m/img/arrow.png"></a></li>
|
||||
<li><img src="~/m/img/p4.png"></span><a asp-action="cashout" asp-controller="user">提现管理<img src="~/m/img/arrow.png"></a></li>
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
$("#coupon_num").text(res.Data.length);
|
||||
}
|
||||
})
|
||||
|
||||
function getQueryString(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
||||
var r = window.location.search.substr(1).match(reg);
|
||||
if (r != null) return unescape(r[2]);
|
||||
return null;
|
||||
}
|
||||
|
||||
var is_realname = getQueryString('realname');
|
||||
|
||||
if(is_realname){
|
||||
let data = {
|
||||
cookie:document.cookie
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'http://php-api.juip.com/api/test/aliGetResult',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,73 +1,73 @@
|
||||
@using Home.Models
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@inject IConfiguration m_Configuration
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
var BaseUrl = m_Configuration["Service_BaseUrl"];
|
||||
var WxAppId = m_Configuration["WxApps:AppID"];
|
||||
}
|
||||
|
||||
|
||||
|
||||
<div class="loginArea">
|
||||
<div class="loginTop">
|
||||
<p> <img src="~/m/img/logoBlue.png"></p>
|
||||
<p class="logoTit">用户登录</p>
|
||||
<p><span class="xinyonghu">新用户免费赠送3次测试机会</span></p>
|
||||
</div>
|
||||
|
||||
<div class="loginCenter">
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="rLogin_Name" value="" placeholder="淘宝名/会员手机号" /></p>
|
||||
<p><img src="~/m/img/password.png"><input type="password" name="" id="rLogin_Pwd" value="" placeholder="密码" /></p>
|
||||
|
||||
</div>
|
||||
<p>@*<span><input type="checkbox" name="" id="" value="" />自动登录</span>*@<span class="pull-right"><a asp-action="FindPwd" asp-controller="User">忘记密码?</a></span></p>
|
||||
<p class="denglu"><button type="button" class="btnLogin" onclick="login()">登录</button></p>
|
||||
<p class="tixing">*手机号不是IP账号,请登录后开通IP账号*</p>
|
||||
<p class="bianjie">还没有账号?<a asp-action="Regist" asp-controller="User">立即注册</a></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var redirect = "@ViewBag.redirect" || "/user/index";
|
||||
function isWeiXin() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
if (ua.match(/micromessenger/i) == 'micromessenger') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function login() {
|
||||
var name = $("#rLogin_Name").val()
|
||||
var pwd = $("#rLogin_Pwd").val()
|
||||
var data = { Logincode: name, Password: pwd, Code: 1 };
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/user/login',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
loginSuccess(res.Data.User)
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function loginSuccess(user) {
|
||||
if (!isWeiXin()) {
|
||||
window.location.href = redirect;
|
||||
return;
|
||||
}
|
||||
window.location.href = "@(BaseUrl)User/MP_GetUserInfo?appid=@WxAppId&callbakUrl=" + redirect + "&state=" + user.Id;
|
||||
//if (!user.OpenId) {
|
||||
|
||||
//} else {
|
||||
// window.location.href = "/User/Index";
|
||||
//}
|
||||
}
|
||||
@using Home.Models
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@inject IConfiguration m_Configuration
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
var BaseUrl = m_Configuration["Service_BaseUrl"];
|
||||
var WxAppId = m_Configuration["WxApps:AppID"];
|
||||
}
|
||||
|
||||
|
||||
|
||||
<div class="loginArea">
|
||||
<div class="loginTop">
|
||||
<p> <img src="~/m/img/logoBlue.png"></p>
|
||||
<p class="logoTit">用户登录</p>
|
||||
<p><span class="xinyonghu">新用户免费赠送3次测试机会</span></p>
|
||||
</div>
|
||||
|
||||
<div class="loginCenter">
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="rLogin_Name" value="" placeholder="淘宝名/会员手机号" /></p>
|
||||
<p><img src="~/m/img/password.png"><input type="password" name="" id="rLogin_Pwd" value="" placeholder="密码" /></p>
|
||||
|
||||
</div>
|
||||
<p>@*<span><input type="checkbox" name="" id="" value="" />自动登录</span>*@<span class="pull-right"><a asp-action="FindPwd" asp-controller="User">忘记密码?</a></span></p>
|
||||
<p class="denglu"><button type="button" class="btnLogin" onclick="login()">登录</button></p>
|
||||
<p class="tixing">*手机号不是IP账号,请登录后开通IP账号*</p>
|
||||
<p class="bianjie">还没有账号?<a asp-action="Regist" asp-controller="User">立即注册</a></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var redirect = "@ViewBag.redirect" || "/user/index";
|
||||
function isWeiXin() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
if (ua.match(/micromessenger/i) == 'micromessenger') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function login() {
|
||||
var name = $("#rLogin_Name").val()
|
||||
var pwd = $("#rLogin_Pwd").val()
|
||||
var data = { Logincode: name, Password: pwd, Code: 1 };
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/user/login',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
loginSuccess(res.Data.User)
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function loginSuccess(user) {
|
||||
if (!isWeiXin()) {
|
||||
window.location.href = redirect;
|
||||
return;
|
||||
}
|
||||
window.location.href = "@(BaseUrl)User/MP_GetUserInfo?appid=@WxAppId&callbakUrl=" + redirect + "&state=" + user.Id;
|
||||
//if (!user.OpenId) {
|
||||
|
||||
//} else {
|
||||
// window.location.href = "/User/Index";
|
||||
//}
|
||||
}
|
||||
</script>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,68 +1,68 @@
|
||||
@using Hncore.Pass.Sells.Model
|
||||
@model List<UserCouponModel>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
Func<UserCouponModel, string> format = (item) =>
|
||||
{
|
||||
if (item.IsExpired) return "已过期";
|
||||
if (item.IsUsed) return "已使用";
|
||||
return "可使用";
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
<div class="kong">
|
||||
|
||||
</div>
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
|
||||
<div class="yhq">
|
||||
@if (item.Coupon.CouponType == ECouponType.Discount)
|
||||
{
|
||||
<div class="item">
|
||||
<span class="jiage">@(item.Coupon.CouponValue)折</span> <span class="zhuangtai">@format(item)</span>
|
||||
</div>
|
||||
}
|
||||
@if (item.Coupon.CouponType == ECouponType.Minus)
|
||||
{
|
||||
<div class="item">
|
||||
<span class="jiage">¥@(item.Coupon.CouponValue)</span><span class="zhuangtai">@format(item)</span>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="item">
|
||||
<p>@item.Coupon.Name</p>
|
||||
<p>使用规则:<span>@(item.Coupon.AllowMinAmount > 0 ? $"满{item.Coupon.AllowMinAmount}元可用" : "无限制")</span></p>
|
||||
<p>有效时间:<span>@(item.Orgin.StartTime.Value.ToString("yyyy.MM.dd"))至@(item.Orgin.EndTime.Value.ToString("yyyy.MM.dd"))</span></p>
|
||||
<p>获取途径:<span>@(item.Orgin.Remark)</span></p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
|
||||
@*<div class="yhq">
|
||||
<div class="item">
|
||||
<span class="jiage">¥6</span><span class="zhuangtai">可使用</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>优惠券名称</p>
|
||||
<p>使用规则:<span>无限制</span></p>
|
||||
<p>有效时间:<span>2020.1.1至2020.3.1</span></p>
|
||||
<p>获取途径:<span>淘宝下单赠送</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="yhq gray">
|
||||
<div class="item">
|
||||
<span class="jiage">¥6</span><span class="zhuangtai">已使用</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>优惠券名称</p>
|
||||
<p>使用规则:<span>无限制</span></p>
|
||||
<p>有效时间:<span>2020.1.1至2020.3.1</span></p>
|
||||
<p>获取途径:<span>淘宝下单赠送</span></p>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
@using Hncore.Pass.Sells.Model
|
||||
@model List<UserCouponModel>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
Func<UserCouponModel, string> format = (item) =>
|
||||
{
|
||||
if (item.IsExpired) return "已过期";
|
||||
if (item.IsUsed) return "已使用";
|
||||
return "可使用";
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
<div class="kong">
|
||||
|
||||
</div>
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
|
||||
<div class="yhq">
|
||||
@if (item.Coupon.CouponType == ECouponType.Discount)
|
||||
{
|
||||
<div class="item">
|
||||
<span class="jiage">@(item.Coupon.CouponValue)折</span> <span class="zhuangtai">@format(item)</span>
|
||||
</div>
|
||||
}
|
||||
@if (item.Coupon.CouponType == ECouponType.Minus)
|
||||
{
|
||||
<div class="item">
|
||||
<span class="jiage">¥@(item.Coupon.CouponValue)</span><span class="zhuangtai">@format(item)</span>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="item">
|
||||
<p>@item.Coupon.Name</p>
|
||||
<p>使用规则:<span>@(item.Coupon.AllowMinAmount > 0 ? $"满{item.Coupon.AllowMinAmount}元可用" : "无限制")</span></p>
|
||||
<p>有效时间:<span>@(item.Orgin.StartTime.Value.ToString("yyyy.MM.dd"))至@(item.Orgin.EndTime.Value.ToString("yyyy.MM.dd"))</span></p>
|
||||
<p>获取途径:<span>@(item.Orgin.Remark)</span></p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
|
||||
@*<div class="yhq">
|
||||
<div class="item">
|
||||
<span class="jiage">¥6</span><span class="zhuangtai">可使用</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>优惠券名称</p>
|
||||
<p>使用规则:<span>无限制</span></p>
|
||||
<p>有效时间:<span>2020.1.1至2020.3.1</span></p>
|
||||
<p>获取途径:<span>淘宝下单赠送</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="yhq gray">
|
||||
<div class="item">
|
||||
<span class="jiage">¥6</span><span class="zhuangtai">已使用</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>优惠券名称</p>
|
||||
<p>使用规则:<span>无限制</span></p>
|
||||
<p>有效时间:<span>2020.1.1至2020.3.1</span></p>
|
||||
<p>获取途径:<span>淘宝下单赠送</span></p>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
|
||||
@@ -1,289 +1,289 @@
|
||||
@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;
|
||||
};
|
||||
}
|
||||
|
||||
<div id="app">
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="chaxun2">
|
||||
<input type="text" v-model="searchModel.KeyWord" /><button type="button" class="btnOrange" v-on:click="search">查询</button>
|
||||
</div>
|
||||
<div class="row riqi">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
日期查询:
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="start_date" id="start_date" v-model="searchModel.BTime" placeholder="选择开始日期" readonly="readonly" />
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="end_date" id="end_date" v-model="searchModel.ETime" placeholder="选择结束日期" readonly="readonly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row shaixuan">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.OrderType">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.ProductId">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.PackageId">
|
||||
<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>
|
||||
</form>
|
||||
<table border="0" cellspacing="0" cellpadding="0" class="orderTable">
|
||||
<tr><th>类型</th><th>产品</th><th>套餐</th><th>详情</th></tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>
|
||||
<button type="button" class="btnXq toDetail" onclick="showDetail(this)"
|
||||
a-date="@item.CreateTime.ToString("yyyy.MM.dd")"
|
||||
a-orderno="@item.OrderNo"
|
||||
a-ordertype="@item.OrderType.GetEnumDisplayName()"
|
||||
a-product="@item.ProductName"
|
||||
a-package="@item.PackageName"
|
||||
a-price="@item.DayPrice"
|
||||
a-conncount="@(item.AccountCount*item.ConnectCount)"
|
||||
a-account="@item.Accounts"
|
||||
a-orderamount="@item.OrderAmount"
|
||||
a-couponamount="@item.CouponAmount"
|
||||
a-payamount="@item.PaymentAmount">
|
||||
详情
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<!-- 弹窗详情 -->
|
||||
<div class="layerTable">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>日期:</td>
|
||||
<td>{{currentOrder.date}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单编号:</td>
|
||||
<td>{{currentOrder.orderno}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>类型:</td>
|
||||
<td>{{currentOrder.ordertype}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>产品:</td>
|
||||
<td>{{currentOrder.product}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>套餐:</td>
|
||||
<td>{{currentOrder.package}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>单价:</td>
|
||||
<td>{{currentOrder.price}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>总连接数:</td>
|
||||
<td>{{currentOrder.conncount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>账号:</td>
|
||||
<td>{{currentOrder.account}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单金额:</td>
|
||||
<td>{{currentOrder.orderamount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>优惠金额:</td>
|
||||
<td>{{currentOrder.couponamount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>实付金额:</td>
|
||||
<td>{{currentOrder.payamount}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="back">
|
||||
<img src="~/m/img/arrowback.png"> 返回列表
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="~/m/js/LCalendar.js" type="text/javascript" charset="utf-8"></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
|
||||
},
|
||||
currentOrder: {
|
||||
date:"",
|
||||
orderno:"",
|
||||
ordertype:"",
|
||||
product:"",
|
||||
package:"",
|
||||
price:"",
|
||||
conncount:"",
|
||||
account:"",
|
||||
orderamount:"",
|
||||
couponamount:"",
|
||||
payamount:""
|
||||
}
|
||||
},
|
||||
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("&");
|
||||
},
|
||||
setOrderInfo(info) {
|
||||
this.currentOrder = info;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function showDetail(_self) {
|
||||
var currentOrder = {
|
||||
date: $(_self).attr('a-date'),
|
||||
orderno: $(_self).attr('a-orderno'),
|
||||
ordertype: $(_self).attr('a-ordertype'),
|
||||
product: $(_self).attr('a-product'),
|
||||
package: $(_self).attr('a-package'),
|
||||
price: $(_self).attr('a-price'),
|
||||
conncount: $(_self).attr('a-conncount'),
|
||||
account: $(_self).attr('a-account'),
|
||||
orderamount: $(_self).attr('a-orderamount'),
|
||||
couponamount: $(_self).attr('a-couponamount'),
|
||||
payamount: $(_self).attr('a-payamount'),
|
||||
}
|
||||
app.setOrderInfo(currentOrder);
|
||||
$(_self).show();
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#start_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#end_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
$(".toDetail").click(function () {
|
||||
showDetail($(this))
|
||||
$(".layerTable").show();
|
||||
});
|
||||
$(".back").click(function () {
|
||||
$(".layerTable").hide();
|
||||
})
|
||||
</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;
|
||||
};
|
||||
}
|
||||
|
||||
<div id="app">
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="chaxun2">
|
||||
<input type="text" v-model="searchModel.KeyWord" /><button type="button" class="btnOrange" v-on:click="search">查询</button>
|
||||
</div>
|
||||
<div class="row riqi">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
日期查询:
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="start_date" id="start_date" v-model="searchModel.BTime" placeholder="选择开始日期" readonly="readonly" />
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="end_date" id="end_date" v-model="searchModel.ETime" placeholder="选择结束日期" readonly="readonly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row shaixuan">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.OrderType">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.ProductId">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.PackageId">
|
||||
<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>
|
||||
</form>
|
||||
<table border="0" cellspacing="0" cellpadding="0" class="orderTable">
|
||||
<tr><th>类型</th><th>产品</th><th>套餐</th><th>详情</th></tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>
|
||||
<button type="button" class="btnXq toDetail" onclick="showDetail(this)"
|
||||
a-date="@item.CreateTime.ToString("yyyy.MM.dd")"
|
||||
a-orderno="@item.OrderNo"
|
||||
a-ordertype="@item.OrderType.GetEnumDisplayName()"
|
||||
a-product="@item.ProductName"
|
||||
a-package="@item.PackageName"
|
||||
a-price="@item.DayPrice"
|
||||
a-conncount="@(item.AccountCount*item.ConnectCount)"
|
||||
a-account="@item.Accounts"
|
||||
a-orderamount="@item.OrderAmount"
|
||||
a-couponamount="@item.CouponAmount"
|
||||
a-payamount="@item.PaymentAmount">
|
||||
详情
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<!-- 弹窗详情 -->
|
||||
<div class="layerTable">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>日期:</td>
|
||||
<td>{{currentOrder.date}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单编号:</td>
|
||||
<td>{{currentOrder.orderno}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>类型:</td>
|
||||
<td>{{currentOrder.ordertype}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>产品:</td>
|
||||
<td>{{currentOrder.product}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>套餐:</td>
|
||||
<td>{{currentOrder.package}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>单价:</td>
|
||||
<td>{{currentOrder.price}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>总连接数:</td>
|
||||
<td>{{currentOrder.conncount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>账号:</td>
|
||||
<td>{{currentOrder.account}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单金额:</td>
|
||||
<td>{{currentOrder.orderamount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>优惠金额:</td>
|
||||
<td>{{currentOrder.couponamount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>实付金额:</td>
|
||||
<td>{{currentOrder.payamount}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="back">
|
||||
<img src="~/m/img/arrowback.png"> 返回列表
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="~/m/js/LCalendar.js" type="text/javascript" charset="utf-8"></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
|
||||
},
|
||||
currentOrder: {
|
||||
date:"",
|
||||
orderno:"",
|
||||
ordertype:"",
|
||||
product:"",
|
||||
package:"",
|
||||
price:"",
|
||||
conncount:"",
|
||||
account:"",
|
||||
orderamount:"",
|
||||
couponamount:"",
|
||||
payamount:""
|
||||
}
|
||||
},
|
||||
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("&");
|
||||
},
|
||||
setOrderInfo(info) {
|
||||
this.currentOrder = info;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function showDetail(_self) {
|
||||
var currentOrder = {
|
||||
date: $(_self).attr('a-date'),
|
||||
orderno: $(_self).attr('a-orderno'),
|
||||
ordertype: $(_self).attr('a-ordertype'),
|
||||
product: $(_self).attr('a-product'),
|
||||
package: $(_self).attr('a-package'),
|
||||
price: $(_self).attr('a-price'),
|
||||
conncount: $(_self).attr('a-conncount'),
|
||||
account: $(_self).attr('a-account'),
|
||||
orderamount: $(_self).attr('a-orderamount'),
|
||||
couponamount: $(_self).attr('a-couponamount'),
|
||||
payamount: $(_self).attr('a-payamount'),
|
||||
}
|
||||
app.setOrderInfo(currentOrder);
|
||||
$(_self).show();
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#start_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#end_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
$(".toDetail").click(function () {
|
||||
showDetail($(this))
|
||||
$(".layerTable").show();
|
||||
});
|
||||
$(".back").click(function () {
|
||||
$(".layerTable").hide();
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,281 +1,281 @@
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
|
||||
<div id="app">
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="chaxun2">
|
||||
<input type="text" v-model="searchModel.KeyWord" /><button type="button" class="btnOrange" v-on:click="search">查询</button>
|
||||
</div>
|
||||
<div class="row riqi">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
日期查询:
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="start_date" id="start_date" v-model="searchModel.BTime" placeholder="选择开始日期" readonly="readonly" />
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="end_date" id="end_date" v-model="searchModel.ETime" placeholder="选择结束日期" readonly="readonly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row shaixuan">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.OrderType">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.ProductId">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.PackageId">
|
||||
<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>
|
||||
</form>
|
||||
<table border="0" cellspacing="0" cellpadding="0" class="orderTable">
|
||||
<tr><th>类型</th><th>产品</th><th>套餐</th><th>详情</th></tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>
|
||||
<button type="button" class="btnXq toDetail" onclick="showDetail(this)"
|
||||
a-date="@item.CreateTime.ToString("yyyy.MM.dd")"
|
||||
a-orderno="@item.OrderNo"
|
||||
a-ordertype="@item.OrderType.GetEnumDisplayName()"
|
||||
a-product="@item.ProductName"
|
||||
a-package="@item.PackageName"
|
||||
a-price="@item.DayPrice"
|
||||
a-dayprice="@item.DayPrice"
|
||||
a-conncount="@(item.AccountCount*item.ConnectCount)"
|
||||
a-account="@item.Accounts"
|
||||
a-orderamount="@item.OrderAmount"
|
||||
a-refundamount="@item.RefundAmount"
|
||||
a-payamount="@item.PaymentAmount"
|
||||
a-refundresttime="@item.RefundRestTime">
|
||||
详情
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<!-- 弹窗详情 -->
|
||||
<div class="layerTable">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>日期:</td>
|
||||
<td>{{currentOrder.date}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单编号:</td>
|
||||
<td>{{currentOrder.orderno}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>类型:</td>
|
||||
<td>{{currentOrder.ordertype}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>产品:</td>
|
||||
<td>{{currentOrder.product}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>套餐:</td>
|
||||
<td>{{currentOrder.package}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>总连接数:</td>
|
||||
<td>{{currentOrder.conncount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>账号:</td>
|
||||
<td>{{currentOrder.account}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>退款单价:</td>
|
||||
<td>{{currentOrder.dayprice}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>退款时长:</td>
|
||||
<td>{{currentOrder.refundresttime}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>实付金额:</td>
|
||||
<td>{{currentOrder.payamount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>退款金额:</td>
|
||||
<td>{{currentOrder.refundamount}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="back">
|
||||
<img src="~/m/img/arrowback.png"> 返回列表
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="~/m/js/LCalendar.js" type="text/javascript" charset="utf-8"></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
|
||||
},
|
||||
currentOrder: {
|
||||
date:"",
|
||||
orderno:"",
|
||||
ordertype:"",
|
||||
product:"",
|
||||
package:"",
|
||||
price:"",
|
||||
conncount:"",
|
||||
account:"",
|
||||
orderamount:"",
|
||||
couponamount:"",
|
||||
payamount:"",
|
||||
refundamount:""
|
||||
}
|
||||
},
|
||||
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("&");
|
||||
},
|
||||
setOrderInfo(info) {
|
||||
this.currentOrder = info;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function showDetail(_self) {
|
||||
var currentOrder = {
|
||||
date: $(_self).attr('a-date'),
|
||||
orderno: $(_self).attr('a-orderno'),
|
||||
ordertype: $(_self).attr('a-ordertype'),
|
||||
product: $(_self).attr('a-product'),
|
||||
package: $(_self).attr('a-package'),
|
||||
dayprice: $(_self).attr('a-dayprice'),
|
||||
conncount: $(_self).attr('a-conncount'),
|
||||
account: $(_self).attr('a-account'),
|
||||
orderamount: $(_self).attr('a-orderamount'),
|
||||
couponamount: $(_self).attr('a-couponamount'),
|
||||
payamount: $(_self).attr('a-payamount'),
|
||||
refundresttime: $(_self).attr('a-refundresttime'),
|
||||
payamount: $(_self).attr('a-payamount'),
|
||||
refundamount: $(_self).attr('a-refundamount'),
|
||||
}
|
||||
app.setOrderInfo(currentOrder);
|
||||
$(_self).show();
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#start_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#end_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
$(".toDetail").click(function () {
|
||||
showDetail($(this))
|
||||
$(".layerTable").show();
|
||||
});
|
||||
$(".back").click(function () {
|
||||
$(".layerTable").hide();
|
||||
})
|
||||
</script>
|
||||
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
|
||||
<div id="app">
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="chaxun2">
|
||||
<input type="text" v-model="searchModel.KeyWord" /><button type="button" class="btnOrange" v-on:click="search">查询</button>
|
||||
</div>
|
||||
<div class="row riqi">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
日期查询:
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="start_date" id="start_date" v-model="searchModel.BTime" placeholder="选择开始日期" readonly="readonly" />
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<input type="text" name="end_date" id="end_date" v-model="searchModel.ETime" placeholder="选择结束日期" readonly="readonly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row shaixuan">
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.OrderType">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.ProductId">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4 col-xs-4">
|
||||
<select @@change="search" v-model="searchModel.PackageId">
|
||||
<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>
|
||||
</form>
|
||||
<table border="0" cellspacing="0" cellpadding="0" class="orderTable">
|
||||
<tr><th>类型</th><th>产品</th><th>套餐</th><th>详情</th></tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>
|
||||
<button type="button" class="btnXq toDetail" onclick="showDetail(this)"
|
||||
a-date="@item.CreateTime.ToString("yyyy.MM.dd")"
|
||||
a-orderno="@item.OrderNo"
|
||||
a-ordertype="@item.OrderType.GetEnumDisplayName()"
|
||||
a-product="@item.ProductName"
|
||||
a-package="@item.PackageName"
|
||||
a-price="@item.DayPrice"
|
||||
a-dayprice="@item.DayPrice"
|
||||
a-conncount="@(item.AccountCount*item.ConnectCount)"
|
||||
a-account="@item.Accounts"
|
||||
a-orderamount="@item.OrderAmount"
|
||||
a-refundamount="@item.RefundAmount"
|
||||
a-payamount="@item.PaymentAmount"
|
||||
a-refundresttime="@item.RefundRestTime">
|
||||
详情
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<!-- 弹窗详情 -->
|
||||
<div class="layerTable">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>日期:</td>
|
||||
<td>{{currentOrder.date}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>订单编号:</td>
|
||||
<td>{{currentOrder.orderno}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>类型:</td>
|
||||
<td>{{currentOrder.ordertype}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>产品:</td>
|
||||
<td>{{currentOrder.product}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>套餐:</td>
|
||||
<td>{{currentOrder.package}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>总连接数:</td>
|
||||
<td>{{currentOrder.conncount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>账号:</td>
|
||||
<td>{{currentOrder.account}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>退款单价:</td>
|
||||
<td>{{currentOrder.dayprice}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>退款时长:</td>
|
||||
<td>{{currentOrder.refundresttime}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>实付金额:</td>
|
||||
<td>{{currentOrder.payamount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>退款金额:</td>
|
||||
<td>{{currentOrder.refundamount}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="back">
|
||||
<img src="~/m/img/arrowback.png"> 返回列表
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="~/m/js/LCalendar.js" type="text/javascript" charset="utf-8"></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
|
||||
},
|
||||
currentOrder: {
|
||||
date:"",
|
||||
orderno:"",
|
||||
ordertype:"",
|
||||
product:"",
|
||||
package:"",
|
||||
price:"",
|
||||
conncount:"",
|
||||
account:"",
|
||||
orderamount:"",
|
||||
couponamount:"",
|
||||
payamount:"",
|
||||
refundamount:""
|
||||
}
|
||||
},
|
||||
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("&");
|
||||
},
|
||||
setOrderInfo(info) {
|
||||
this.currentOrder = info;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function showDetail(_self) {
|
||||
var currentOrder = {
|
||||
date: $(_self).attr('a-date'),
|
||||
orderno: $(_self).attr('a-orderno'),
|
||||
ordertype: $(_self).attr('a-ordertype'),
|
||||
product: $(_self).attr('a-product'),
|
||||
package: $(_self).attr('a-package'),
|
||||
dayprice: $(_self).attr('a-dayprice'),
|
||||
conncount: $(_self).attr('a-conncount'),
|
||||
account: $(_self).attr('a-account'),
|
||||
orderamount: $(_self).attr('a-orderamount'),
|
||||
couponamount: $(_self).attr('a-couponamount'),
|
||||
payamount: $(_self).attr('a-payamount'),
|
||||
refundresttime: $(_self).attr('a-refundresttime'),
|
||||
payamount: $(_self).attr('a-payamount'),
|
||||
refundamount: $(_self).attr('a-refundamount'),
|
||||
}
|
||||
app.setOrderInfo(currentOrder);
|
||||
$(_self).show();
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#start_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
var calendar = new LCalendar();
|
||||
calendar.init({
|
||||
'trigger': '#end_date', //标签id
|
||||
'type': 'date', //date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
|
||||
'minDate': (new Date().getFullYear() - 3) + '-' + 1 + '-' + 1, //最小日期
|
||||
'maxDate': (new Date().getFullYear() + 3) + '-' + 12 + '-' + 31 //最大日期
|
||||
});
|
||||
$(".toDetail").click(function () {
|
||||
showDetail($(this))
|
||||
$(".layerTable").show();
|
||||
});
|
||||
$(".back").click(function () {
|
||||
$(".layerTable").hide();
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,149 +1,149 @@
|
||||
@using Home.Models
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Pass.Vpn.Model
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model List<OriginAccountOnlineModel>
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
var productId = this.Context.Request.GetInt("productId");
|
||||
}
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.msg {
|
||||
margin-top: 1.466666rem;
|
||||
}
|
||||
|
||||
.lineBar {
|
||||
background: #3c5eb5;
|
||||
width: 5px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.accout_tit {
|
||||
height: 1.2rem;
|
||||
line-height: 1.2rem;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.model {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
height: 0.933333rem;
|
||||
line-height: 0.933333rem;
|
||||
background: #fff;
|
||||
flex-wrap: wrap;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.model .item {
|
||||
border-bottom: 1px solid #f5f5f5;
|
||||
height: 0.933333rem;
|
||||
line-height: 0.933333rem;
|
||||
}
|
||||
|
||||
.model .item:nth-child(odd) {
|
||||
width: 30%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.model .item:nth-child(even) {
|
||||
width: 70%;
|
||||
text-align: center;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: red;
|
||||
}
|
||||
.inputBox {
|
||||
width: 330px;
|
||||
}
|
||||
</style>
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<div class="container msg">
|
||||
@if (Model.Count == 0)
|
||||
{
|
||||
<div class="red" style="text-align:center">暂无数据</div>
|
||||
}
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="accout_tit"><span class="lineBar"></span>#@(Model.IndexOf(item)+1) <button class="btnXq" onclick="killout(@item.Id)">强制离线</button> </div>
|
||||
<div class="model">
|
||||
<div class="item">
|
||||
账号:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.Account
|
||||
</div>
|
||||
<div class="item">
|
||||
登录时间:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.LoginTime
|
||||
</div>
|
||||
<div class="item">
|
||||
在线时间:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.OnlineTime
|
||||
</div>
|
||||
<div class="item">
|
||||
服务器Ip:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.ServerIP
|
||||
</div>
|
||||
<div class="item">
|
||||
登录ip:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.LoginIP
|
||||
</div>
|
||||
<div class="item">
|
||||
上/下行:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.UpStream / @item.UpStream
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
<script>
|
||||
/** 表单序列化成json字符串的方法 */
|
||||
function form2JsonString(formId) {
|
||||
var paramArray = $('#' + formId).serializeArray();
|
||||
var jsonObj = {};
|
||||
$(paramArray).each(function () {
|
||||
jsonObj[this.name] = this.value;
|
||||
});
|
||||
console.log(jsonObj);
|
||||
return JSON.stringify(jsonObj);
|
||||
}
|
||||
function killout(productId,id) {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/productaccount/KillOut?productId=@productId&id=' + id,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
alert("操作成功");
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
@using Home.Models
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Pass.Vpn.Model
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@model List<OriginAccountOnlineModel>
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
var productId = this.Context.Request.GetInt("productId");
|
||||
}
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.msg {
|
||||
margin-top: 1.466666rem;
|
||||
}
|
||||
|
||||
.lineBar {
|
||||
background: #3c5eb5;
|
||||
width: 5px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.accout_tit {
|
||||
height: 1.2rem;
|
||||
line-height: 1.2rem;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.model {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
height: 0.933333rem;
|
||||
line-height: 0.933333rem;
|
||||
background: #fff;
|
||||
flex-wrap: wrap;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.model .item {
|
||||
border-bottom: 1px solid #f5f5f5;
|
||||
height: 0.933333rem;
|
||||
line-height: 0.933333rem;
|
||||
}
|
||||
|
||||
.model .item:nth-child(odd) {
|
||||
width: 30%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.model .item:nth-child(even) {
|
||||
width: 70%;
|
||||
text-align: center;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: red;
|
||||
}
|
||||
.inputBox {
|
||||
width: 330px;
|
||||
}
|
||||
</style>
|
||||
<vc:redirecct-login></vc:redirecct-login>
|
||||
<div class="container msg">
|
||||
@if (Model.Count == 0)
|
||||
{
|
||||
<div class="red" style="text-align:center">暂无数据</div>
|
||||
}
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="accout_tit"><span class="lineBar"></span>#@(Model.IndexOf(item)+1) <button class="btnXq" onclick="killout(@item.Id)">强制离线</button> </div>
|
||||
<div class="model">
|
||||
<div class="item">
|
||||
账号:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.Account
|
||||
</div>
|
||||
<div class="item">
|
||||
登录时间:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.LoginTime
|
||||
</div>
|
||||
<div class="item">
|
||||
在线时间:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.OnlineTime
|
||||
</div>
|
||||
<div class="item">
|
||||
服务器Ip:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.ServerIP
|
||||
</div>
|
||||
<div class="item">
|
||||
登录ip:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.LoginIP
|
||||
</div>
|
||||
<div class="item">
|
||||
上/下行:
|
||||
</div>
|
||||
<div class="item">
|
||||
@item.UpStream / @item.UpStream
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
<script>
|
||||
/** 表单序列化成json字符串的方法 */
|
||||
function form2JsonString(formId) {
|
||||
var paramArray = $('#' + formId).serializeArray();
|
||||
var jsonObj = {};
|
||||
$(paramArray).each(function () {
|
||||
jsonObj[this.name] = this.value;
|
||||
});
|
||||
console.log(jsonObj);
|
||||
return JSON.stringify(jsonObj);
|
||||
}
|
||||
function killout(productId,id) {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/productaccount/KillOut?productId=@productId&id=' + id,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
alert("操作成功");
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,102 +1,102 @@
|
||||
@using Home.Models
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@inject IConfiguration m_Configuration
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
var BaseUrl = m_Configuration["Service_BaseUrl"];
|
||||
var WxAppId = m_Configuration["WxApps:AppID"];
|
||||
}
|
||||
|
||||
|
||||
<div class="loginArea">
|
||||
<div class="loginTop">
|
||||
<p> <img src="~/m/img/logoBlue.png"></p>
|
||||
<p class="logoTit">用户注册</p>
|
||||
<p><span class="xinyonghu">新用户免费赠送3次测试机会</span></p>
|
||||
</div>
|
||||
|
||||
<div class="loginCenter">
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="username" value="" placeholder="* 手机号" /></p>
|
||||
<p><img src="~/m/img/password.png"><input type="password" name="" id="password" value="" placeholder="* 密码" /></p>
|
||||
<p class="yzm"><img src="~/m/img/yanzhengma.png"><input type="text" name="" id="yanzhengma" value="" placeholder="* 验证码" /><button type="button" class="btnBlue" onclick="getCode(this)">获取验证码</button></p>
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="wxhao" value="" placeholder="微信号(选填)" /></p>
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="wxhao" value="" placeholder="QQ号(选填)" /></p>
|
||||
</div>
|
||||
<p class="xieyi"><input type="checkbox" name="" id="xieyi" checked value="" />我同意<span><a href="/LineList/xieyi" target="_blank">《聚IP JUIP.COM用户注册协议》</a></span></p>
|
||||
<p><button type="button" class="btnLogin" onclick="reg()">注册</button></p>
|
||||
<p class="tixing">*手机号不是IP账号,请登录后开通IP账号*</p>
|
||||
<p class="bianjie">已有账号?<a href="/User/WebLogin">立即登录</a></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var redirect = "@ViewBag.redirect" || "/user/index";
|
||||
var time = 60;
|
||||
function getCode(_self) {
|
||||
var name = $("#username").val()
|
||||
if(name == '') { alert('手机号不能为空'); return; }
|
||||
if (!timing(_self)) return;
|
||||
var url = '/user/SendPhoneCodevefy?key=User_Code&phone=' + name;
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: url,
|
||||
contentType: "application/json",
|
||||
success: function (res) {
|
||||
alert(res.Message)
|
||||
}
|
||||
});
|
||||
}
|
||||
function timing(_self) {
|
||||
if (time != 60) return false
|
||||
var timerHandler = setInterval(function () {
|
||||
time--;
|
||||
if (time <= 1) {
|
||||
clearInterval(timerHandler);
|
||||
time = 60;
|
||||
$(_self).text("获取验证码")
|
||||
} else {
|
||||
$(_self).text(time + "s");
|
||||
}
|
||||
|
||||
}, 1000)
|
||||
return true;
|
||||
}
|
||||
function reg() {
|
||||
if(!$("input[type='checkbox']").is(':checked')){
|
||||
alert('请认真阅读用户注册协议后勾选 我同意 方可注册!');
|
||||
return;
|
||||
}
|
||||
var name = $("#username").val()
|
||||
var pwd = $("#password").val()
|
||||
var code = $("#yanzhengma").val()
|
||||
if (name == '') { alert('手机号不能为空'); return; }
|
||||
if (code == '') { alert('验证码不能为空'); return; }
|
||||
var wx = $("#wxhao").val()
|
||||
var qq = $("#qqhao").val()
|
||||
var data = { Phone: name, Pwd: pwd, Code: code, Wx: wx, QQ: qq };
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/user/Regist',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
loginSuccess(res.Data.User)
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function loginSuccess(user) {
|
||||
if (!isWeiXin()) {
|
||||
window.location.href = redirect;
|
||||
return;
|
||||
}
|
||||
if (!user.OpenId) {
|
||||
window.location.href = "@(BaseUrl)User/MP_GetUserInfo?appid=@WxAppId&callbakUrl="+redirect+"&state="+user.Id;
|
||||
}
|
||||
}
|
||||
@using Home.Models
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@inject IConfiguration m_Configuration
|
||||
@model UserHomeModel
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
var BaseUrl = m_Configuration["Service_BaseUrl"];
|
||||
var WxAppId = m_Configuration["WxApps:AppID"];
|
||||
}
|
||||
|
||||
|
||||
<div class="loginArea">
|
||||
<div class="loginTop">
|
||||
<p> <img src="~/m/img/logoBlue.png"></p>
|
||||
<p class="logoTit">用户注册</p>
|
||||
<p><span class="xinyonghu">新用户免费赠送3次测试机会</span></p>
|
||||
</div>
|
||||
|
||||
<div class="loginCenter">
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="username" value="" placeholder="* 手机号" /></p>
|
||||
<p><img src="~/m/img/password.png"><input type="password" name="" id="password" value="" placeholder="* 密码" /></p>
|
||||
<p class="yzm"><img src="~/m/img/yanzhengma.png"><input type="text" name="" id="yanzhengma" value="" placeholder="* 验证码" /><button type="button" class="btnBlue" onclick="getCode(this)">获取验证码</button></p>
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="wxhao" value="" placeholder="微信号(选填)" /></p>
|
||||
<p><img src="~/m/img/phone.png"><input type="text" name="" id="wxhao" value="" placeholder="QQ号(选填)" /></p>
|
||||
</div>
|
||||
<p class="xieyi"><input type="checkbox" name="" id="xieyi" checked value="" />我同意<span><a href="/LineList/xieyi" target="_blank">《聚IP JUIP.COM用户注册协议》</a></span></p>
|
||||
<p><button type="button" class="btnLogin" onclick="reg()">注册</button></p>
|
||||
<p class="tixing">*手机号不是IP账号,请登录后开通IP账号*</p>
|
||||
<p class="bianjie">已有账号?<a href="/User/WebLogin">立即登录</a></p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var redirect = "@ViewBag.redirect" || "/user/index";
|
||||
var time = 60;
|
||||
function getCode(_self) {
|
||||
var name = $("#username").val()
|
||||
if(name == '') { alert('手机号不能为空'); return; }
|
||||
if (!timing(_self)) return;
|
||||
var url = '/user/SendPhoneCodevefy?key=User_Code&phone=' + name;
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: url,
|
||||
contentType: "application/json",
|
||||
success: function (res) {
|
||||
alert(res.Message)
|
||||
}
|
||||
});
|
||||
}
|
||||
function timing(_self) {
|
||||
if (time != 60) return false
|
||||
var timerHandler = setInterval(function () {
|
||||
time--;
|
||||
if (time <= 1) {
|
||||
clearInterval(timerHandler);
|
||||
time = 60;
|
||||
$(_self).text("获取验证码")
|
||||
} else {
|
||||
$(_self).text(time + "s");
|
||||
}
|
||||
|
||||
}, 1000)
|
||||
return true;
|
||||
}
|
||||
function reg() {
|
||||
if(!$("input[type='checkbox']").is(':checked')){
|
||||
alert('请认真阅读用户注册协议后勾选 我同意 方可注册!');
|
||||
return;
|
||||
}
|
||||
var name = $("#username").val()
|
||||
var pwd = $("#password").val()
|
||||
var code = $("#yanzhengma").val()
|
||||
if (name == '') { alert('手机号不能为空'); return; }
|
||||
if (code == '') { alert('验证码不能为空'); return; }
|
||||
var wx = $("#wxhao").val()
|
||||
var qq = $("#qqhao").val()
|
||||
var data = { Phone: name, Pwd: pwd, Code: code, Wx: wx, QQ: qq };
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/user/Regist',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
loginSuccess(res.Data.User)
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function loginSuccess(user) {
|
||||
if (!isWeiXin()) {
|
||||
window.location.href = redirect;
|
||||
return;
|
||||
}
|
||||
if (!user.OpenId) {
|
||||
window.location.href = "@(BaseUrl)User/MP_GetUserInfo?appid=@WxAppId&callbakUrl="+redirect+"&state="+user.Id;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,4 +1,4 @@
|
||||
@using Home
|
||||
@using Home.Models
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
@addTagHelper *, Host
|
||||
@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