忽略dll文件git
This commit is contained in:
@@ -1,292 +1,292 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p => p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<style>
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
clear: both
|
||||
}
|
||||
|
||||
.main-page {
|
||||
margin: 0 auto;
|
||||
width: 1170px;
|
||||
padding-bottom:50px;
|
||||
}
|
||||
|
||||
.main-page .left {
|
||||
width:15%;
|
||||
border-right: 1px #ccc solid;
|
||||
margin-top: 25px;
|
||||
padding-right:10px;
|
||||
}
|
||||
|
||||
.main-page .left, .main-page .right {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.main-page .nav-back {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.main-page .nav {
|
||||
position: relative;
|
||||
margin-top: -300px;
|
||||
width: 136px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-family: "微软雅黑";
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.main-page .nav div {
|
||||
height: 47px;
|
||||
line-height: 47px;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.main-page .nav div.on {
|
||||
background: #0c215d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.main-page .right {
|
||||
width: 85%;
|
||||
height: 800px;
|
||||
|
||||
}
|
||||
|
||||
.main-page .content {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.contentNew {
|
||||
border:none;
|
||||
}
|
||||
.youhuiNew {
|
||||
font-size:14px;
|
||||
border:none;
|
||||
text-align:center;
|
||||
padding:5px 0;
|
||||
color:red;
|
||||
}
|
||||
.mtop {
|
||||
margin-top:30px;
|
||||
}
|
||||
</style>
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
@*新布局*@
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="main-page">
|
||||
<div class="left">
|
||||
<div class="nav-back"></div>
|
||||
<div class="nav">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="contentNew">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
@*<img src="/@item.Product.Image">*@
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhuiNew mtop">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhuiNew">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var packageBox = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(packageBox).show();
|
||||
$(el).addClass("on");
|
||||
$(el).siblings().removeClass("on");
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".productItem").click(function () {
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".check").show();
|
||||
//$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
|
||||
@*<script type="text/javascript">
|
||||
$(".main-page .nav div").mouseenter(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).mouseleave(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).click(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
var l = -(index * 800);
|
||||
$(".main-page .nav div").removeClass("on");
|
||||
$(".main-page .nav div").eq(index).addClass("on");
|
||||
$(".main-page .content .con-ggh:eq(0)").stop().animate({ "margin-top": l }, 500);
|
||||
});
|
||||
</script>*@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p => p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<style>
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
clear: both
|
||||
}
|
||||
|
||||
.main-page {
|
||||
margin: 0 auto;
|
||||
width: 1170px;
|
||||
padding-bottom:50px;
|
||||
}
|
||||
|
||||
.main-page .left {
|
||||
width:15%;
|
||||
border-right: 1px #ccc solid;
|
||||
margin-top: 25px;
|
||||
padding-right:10px;
|
||||
}
|
||||
|
||||
.main-page .left, .main-page .right {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.main-page .nav-back {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.main-page .nav {
|
||||
position: relative;
|
||||
margin-top: -300px;
|
||||
width: 136px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-family: "微软雅黑";
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.main-page .nav div {
|
||||
height: 47px;
|
||||
line-height: 47px;
|
||||
margin-bottom: 8px;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.main-page .nav div.on {
|
||||
background: #0c215d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.main-page .right {
|
||||
width: 85%;
|
||||
height: 800px;
|
||||
|
||||
}
|
||||
|
||||
.main-page .content {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.contentNew {
|
||||
border:none;
|
||||
}
|
||||
.youhuiNew {
|
||||
font-size:14px;
|
||||
border:none;
|
||||
text-align:center;
|
||||
padding:5px 0;
|
||||
color:red;
|
||||
}
|
||||
.mtop {
|
||||
margin-top:30px;
|
||||
}
|
||||
</style>
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
@*新布局*@
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="main-page">
|
||||
<div class="left">
|
||||
<div class="nav-back"></div>
|
||||
<div class="nav">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="contentNew">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
@*<img src="/@item.Product.Image">*@
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhuiNew mtop">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhuiNew">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var packageBox = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(packageBox).show();
|
||||
$(el).addClass("on");
|
||||
$(el).siblings().removeClass("on");
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".productItem").click(function () {
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".check").show();
|
||||
//$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
|
||||
@*<script type="text/javascript">
|
||||
$(".main-page .nav div").mouseenter(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).mouseleave(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
}).click(function () {
|
||||
var $this = $(this);
|
||||
var index = $this.index();
|
||||
var l = -(index * 800);
|
||||
$(".main-page .nav div").removeClass("on");
|
||||
$(".main-page .nav div").eq(index).addClass("on");
|
||||
$(".main-page .content .con-ggh:eq(0)").stop().animate({ "margin-top": l }, 500);
|
||||
});
|
||||
</script>*@
|
||||
}
|
||||
@@ -1,197 +1,197 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p=>p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
<!-- con -->
|
||||
<div class="container">
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="cpshow">
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="item" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">
|
||||
<p class="cpimg"><img src="@P(item.Product.Image)" /></p>
|
||||
<p>@item.Product.Name</p>
|
||||
<img src="~/img/check.png" class="check">
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- form -->
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
<img src="/@item.Product.Image">
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
@*<p>·不限速,网速最高可达50兆</p>
|
||||
<p>·支持手机,电脑,模拟器</p>
|
||||
<p>·200多个城市+全国混波量ip千万级</p>
|
||||
<p>·带宽6-10兆</p>
|
||||
<p>·断开再链接换ip</p>*@
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhui">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhui">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var el_box = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(el_box).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".check").show();
|
||||
$(el).siblings().find(".check").hide();
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".cpshow .item").click(function () {
|
||||
$(this).addClass("kuang");
|
||||
$(this).siblings().removeClass("kuang");
|
||||
$(this).find(".check").show();
|
||||
$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductWithPackageResponse>
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
}
|
||||
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
|
||||
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
|
||||
if (pid == "")
|
||||
{
|
||||
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
|
||||
}
|
||||
|
||||
var productPackages = Model.Where(m => m.Product.Id == defaultProduct.Id).FirstOrDefault().Packages.Where(p=>p.Status == 1 && p.IsTest == 0);//.Select(m => m.Packages.Where(p => p.Status == 1 && p.IsTest == 0).FirstOrDefault());
|
||||
|
||||
var defaultPackage = productPackages.FirstOrDefault();// Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
|
||||
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
<a asp-action="taobao" asp-controller="article"> <img src="~/img/acBanner.png"></a>
|
||||
</div>
|
||||
<!-- con -->
|
||||
<div class="container">
|
||||
<p class="text-center tit"><img src="~/img/titi_choose.png"></p>
|
||||
<div class="cpshow">
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="item" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">
|
||||
<p class="cpimg"><img src="@P(item.Product.Image)" /></p>
|
||||
<p>@item.Product.Name</p>
|
||||
<img src="~/img/check.png" class="check">
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- form -->
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="container stepOne packagebox" id="@("box"+item.Product.Id)">
|
||||
<div class="container bg_taocan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center photo">
|
||||
<div class="photoK">
|
||||
<img src="/@item.Product.Image">
|
||||
<p>@item.Product.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 intro">
|
||||
<p>@item.Product.Name</p>
|
||||
@foreach (var str in item.Product.ContentLine)
|
||||
{
|
||||
<p>·@str</p>
|
||||
}
|
||||
@*<p>·不限速,网速最高可达50兆</p>
|
||||
<p>·支持手机,电脑,模拟器</p>
|
||||
<p>·200多个城市+全国混波量ip千万级</p>
|
||||
<p>·带宽6-10兆</p>
|
||||
<p>·断开再链接换ip</p>*@
|
||||
</div>
|
||||
<div class="col-lg-3 text-center twoButton">
|
||||
@if (user == null)
|
||||
{
|
||||
<p><button type="button" class="btn btn-warning testLogin" a-productId="@item.Product.Id">免费试用</button></p>
|
||||
<p><button type="button" class="btn btn-warning reBuy">续费通道</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>
|
||||
<a asp-action="test" asp-controller="product" asp-route-id="@item.Product.Id"><button type="button" class="btn btn-warning">免费试用</button></a>
|
||||
</p>
|
||||
<p>
|
||||
<a asp-action="myaccounts" asp-controller="user"><button type="button" class="btn btn-warning">续费通道</button></a>
|
||||
</p>
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>
|
||||
<div class="card">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<p class="youhui">需求5个以上,可以联系客服设置优惠价</p>
|
||||
<p class="youhui">温馨提示:若您之前享优惠价,请联系客服帮你改价哦</p>
|
||||
|
||||
@if (user == null)
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary login">提交</button></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="tijiao"><button type="button" class="btn btn-primary btn-submit">提交</button></p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
var currentPkgId = 0;
|
||||
var testProductId = 0;
|
||||
function select(id) {
|
||||
var el = "#p" + id;
|
||||
var el_box = "#box" + id;
|
||||
$(".packagebox").hide();
|
||||
$(el_box).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".check").show();
|
||||
$(el).siblings().find(".check").hide();
|
||||
var pkgid = $(el).attr("a-pkg-id");
|
||||
selectPackage(pkgid);
|
||||
}
|
||||
function selectPackage(id) {
|
||||
currentPkgId = id;
|
||||
var el = "#pkg" + id;
|
||||
//$(".packageitem").hide();
|
||||
//$(el).show()
|
||||
$(el).addClass("kuang");
|
||||
$(el).siblings().removeClass("kuang");
|
||||
$(el).find(".cardCheck").show();
|
||||
$(el).siblings().find(".cardCheck").hide();
|
||||
}
|
||||
function loginSuccess(data) {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
}
|
||||
function testLoginSuccess(data) {
|
||||
window.location.href = "Test?id=" + testProductId;
|
||||
}
|
||||
function reBuyLoginSuccess(data) {
|
||||
window.location.href = "/User/MyAccounts";
|
||||
}
|
||||
$(function () {
|
||||
$(".cpshow .item").click(function () {
|
||||
$(this).addClass("kuang");
|
||||
$(this).siblings().removeClass("kuang");
|
||||
$(this).find(".check").show();
|
||||
$(this).siblings().find(".check").hide();
|
||||
var pid = $(this).attr('a-pid');
|
||||
select(pid);
|
||||
});
|
||||
$(".card .item").click(function () {
|
||||
currentPkgId = $(this).attr('a-pkg-id');
|
||||
selectPackage(currentPkgId)
|
||||
//$(this).addClass("kuang");
|
||||
//$(this).siblings().removeClass("kuang");
|
||||
//$(this).find(".cardCheck").show();
|
||||
//$(this).siblings().find(".cardCheck").hide();
|
||||
|
||||
})
|
||||
$(".btn-submit").click(function () {
|
||||
window.location.href = "Buy?id=" + currentPkgId;
|
||||
})
|
||||
$(".testLogin").click(function () {
|
||||
loginCallback = testLoginSuccess;
|
||||
testProductId = $(this).attr("a-productId");
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
$(".reBuy").click(function () {
|
||||
loginCallback = reBuyLoginSuccess;
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
});
|
||||
})
|
||||
select(@defaultProduct.Id)
|
||||
</script>
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,178 +1,178 @@
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductEntity>
|
||||
@{
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<p class="simg"><img src="~/img/img_soft.png"></p>
|
||||
<p class="sintro">软件和账户必须为同一产品才能使用</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-right">
|
||||
<a href="#" class="jiaocheng">使用教程→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="soft">
|
||||
@foreach (var item in Model.Where(m=>m.Sort!=1000 && m.Id!=12 && m.Id!=21 && m.OnLine==1).OrderBy(m => m.Sort))
|
||||
{
|
||||
<div class="sitem">
|
||||
<div class="smodel">
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
无极-共享独享通用
|
||||
</div>
|
||||
} else {
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
@item.Name
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="@item.PcClientDownloadUrl"> <button type="button" class="btn btn-sdefault">Windows</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl))
|
||||
{
|
||||
<div class="item" >
|
||||
<a href="@item.DroidDownloadUrl"> <button type="button" class="btn btn-sdefault">安卓APP</button></a>
|
||||
</div>
|
||||
<hr>
|
||||
}
|
||||
@if (item.Id != 3 && item.Id != 7 && item.Id != 9 && item.Id != 12 && item.Id != 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="@item.SimulatorDownloadUrl"> <button type="button" class="btn btn-sdefault">SSTP客户端</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E5%AE%89%E5%8D%93-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.apk"> <button type="button" class="btn btn-sdefault">无极安卓<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E7%94%B5%E8%84%91-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.exe"> <button type="button" class="btn btn-sdefault">无极电脑<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<div class="item">
|
||||
<a id="ios_cc"> <button type="button" class="btn btn-sdefault">扫描下载<br>苹果客户端</button></a>
|
||||
</div>
|
||||
|
||||
<div id="qrcode_s">
|
||||
|
||||
</div>
|
||||
}
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
通用版
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E9%80%9A%E7%94%A8%E5%8A%A8%E6%80%81IP%E7%99%BB%E5%BD%95%E5%99%A8.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">通用版电脑拨号器</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sitem">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
代理商专用客户端
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%20-%20%E4%BB%A3%E7%90%86%E7%89%88.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-安卓</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E4%BB%A3%E7%90%86%E7%89%88%203.5.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-安卓</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">迅连IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">讯连IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E7%81%AB%E7%8B%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%98%9F%E6%98%9FIP%E7%94%B5%E8%84%91%E7%AB%AF-4.10%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">星星IP-电脑端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">蘑菇IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.syssuper.com:8000/soft/huohupubnet.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.ipsoft365.com:8000/soft/yunniupubdtip.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-安卓端</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
$("#ios_cc").hover(function(){
|
||||
$("#qrcode_s").html('');
|
||||
new QRCode(document.getElementById("qrcode_s"), {
|
||||
text: 'https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437',
|
||||
width : 500,
|
||||
height : 500
|
||||
});
|
||||
},function(){
|
||||
$("#qrcode_s").html('');
|
||||
});
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Microsoft.Extensions.Configuration
|
||||
@inject IConfiguration m_Configuration
|
||||
@model List<ProductEntity>
|
||||
@{
|
||||
var baseUrl = m_Configuration["BaseInfoUrl"];
|
||||
Func<string, string> P = (path) => $"{baseUrl}{path}";
|
||||
}
|
||||
<div class="container-fluid softBg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<p class="simg"><img src="~/img/img_soft.png"></p>
|
||||
<p class="sintro">软件和账户必须为同一产品才能使用</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-right">
|
||||
<a href="#" class="jiaocheng">使用教程→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="soft">
|
||||
@foreach (var item in Model.Where(m=>m.Sort!=1000 && m.Id!=12 && m.Id!=21 && m.OnLine==1).OrderBy(m => m.Sort))
|
||||
{
|
||||
<div class="sitem">
|
||||
<div class="smodel">
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
无极-共享独享通用
|
||||
</div>
|
||||
} else {
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
@item.Name
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="@item.PcClientDownloadUrl"> <button type="button" class="btn btn-sdefault">Windows</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl))
|
||||
{
|
||||
<div class="item" >
|
||||
<a href="@item.DroidDownloadUrl"> <button type="button" class="btn btn-sdefault">安卓APP</button></a>
|
||||
</div>
|
||||
<hr>
|
||||
}
|
||||
@if (item.Id != 3 && item.Id != 7 && item.Id != 9 && item.Id != 12 && item.Id != 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="@item.SimulatorDownloadUrl"> <button type="button" class="btn btn-sdefault">SSTP客户端</button></a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (item.Id == 20)
|
||||
{
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E5%AE%89%E5%8D%93-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.apk"> <button type="button" class="btn btn-sdefault">无极安卓<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E7%94%B5%E8%84%91-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.exe"> <button type="button" class="btn btn-sdefault">无极电脑<br>共享独享通用</button></a>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<div class="item">
|
||||
<a id="ios_cc"> <button type="button" class="btn btn-sdefault">扫描下载<br>苹果客户端</button></a>
|
||||
</div>
|
||||
|
||||
<div id="qrcode_s">
|
||||
|
||||
</div>
|
||||
}
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
通用版
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E9%80%9A%E7%94%A8%E5%8A%A8%E6%80%81IP%E7%99%BB%E5%BD%95%E5%99%A8.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">通用版电脑拨号器</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sitem">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sitem" style="border: 1px solid red;">
|
||||
<div class="smodel">
|
||||
<div class="softName" style="width:200px;text-align:center;height:50px;">
|
||||
代理商专用客户端
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%20-%20%E4%BB%A3%E7%90%86%E7%89%88.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">西瓜IP-安卓</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E4%BB%A3%E7%90%86%E7%89%88%203.5.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">极客IP-安卓</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">迅连IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">讯连IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-电脑版</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">强子IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E7%81%AB%E7%8B%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%98%9F%E6%98%9FIP%E7%94%B5%E8%84%91%E7%AB%AF-4.10%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btn btn-sdefault" style="width: auto;">星星IP-电脑端</button></a>
|
||||
</div>
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btn btn-sdefault" style="width: auto;">蘑菇IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.syssuper.com:8000/soft/huohupubnet.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">火狐IP-安卓端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://client.ipsoft365.com:8000/soft/yunniupubdtip.exe"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-电脑端</button></a>
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-bottom: 5px;">
|
||||
<a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btn btn-sdefault" style="width: auto;">云牛IP-安卓端</button></a>
|
||||
</div>
|
||||
<p>免安装,下载后直接打开</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
$("#ios_cc").hover(function(){
|
||||
$("#qrcode_s").html('');
|
||||
new QRCode(document.getElementById("qrcode_s"), {
|
||||
text: 'https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437',
|
||||
width : 500,
|
||||
height : 500
|
||||
});
|
||||
},function(){
|
||||
$("#qrcode_s").html('');
|
||||
});
|
||||
</script>
|
||||
@@ -1,150 +1,150 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Infrastructure.Common
|
||||
@model PackageInfoResponse
|
||||
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
|
||||
@{
|
||||
ViewData["Title"] = "领取试用";
|
||||
var t = this.Context.Request.GetInt("t");
|
||||
var randomPwd = ValidateCodeHelper.MakeNumCode(3).ToLower();
|
||||
var randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
while (m_AccountService.Exist(m => m.Account == randomAccount))
|
||||
{
|
||||
randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
}
|
||||
}
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.tip {
|
||||
color: red;
|
||||
text-align: center
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
@*<div class="item">
|
||||
<p class="selectPhoto"> <img src="/@Model.Product.Image"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>*@
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">0元</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a asp-action="index" asp-controller="product">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 试用 -->
|
||||
<div class="container biaodan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-right shuruname">
|
||||
<p>IP账号名称:</p>
|
||||
<p>IP账号密码:</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left shuru">
|
||||
<p><input type="text" name="" id="account" value="@randomAccount" /></p>
|
||||
<p><input type="text" name="" id="pwd" value="@randomPwd" /></p>
|
||||
<div class="btnlingqu">
|
||||
<div class="item cishu">
|
||||
剩余试用次数<span style="color:red">@(Model.RestTimes)</span>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<a href='http://www.juip.com/User/Index' class="item tip"></a>
|
||||
</div>
|
||||
<div class="item tijiao lingqu">
|
||||
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
|
||||
{
|
||||
<button type="button" class="btn btn-primary" onclick="create()">领取试用</button>
|
||||
}
|
||||
@if (Model.Package.Status == 0)
|
||||
{
|
||||
<span class="tip">
|
||||
该产品暂不能测试
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@*<div class="col-lg-5 text-left">
|
||||
<p class="tishi chongfu">*此用户名重复,请重新输入</p>
|
||||
</div>*@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
function create() {
|
||||
var data = {
|
||||
ProductId:@(Model.Product.Id),
|
||||
PackageId: @(Model.Package.Id),
|
||||
Account: $('#account').val(),
|
||||
Pwd: $('#pwd').val()
|
||||
};
|
||||
if (data.Account == '' || data.Pwd == '') {
|
||||
$(".tip").text("账户和密码不能为空");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/api/course/v1/productaccount/CreateTestAccount',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
alert("领取成功")
|
||||
window.location.href = "/user/myaccounts";
|
||||
} else {
|
||||
$(".tip").text(res.Message);
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Infrastructure.Common
|
||||
@model PackageInfoResponse
|
||||
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
|
||||
@{
|
||||
ViewData["Title"] = "领取试用";
|
||||
var t = this.Context.Request.GetInt("t");
|
||||
var randomPwd = ValidateCodeHelper.MakeNumCode(3).ToLower();
|
||||
var randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
while (m_AccountService.Exist(m => m.Account == randomAccount))
|
||||
{
|
||||
randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
|
||||
}
|
||||
}
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.tip {
|
||||
color: red;
|
||||
text-align: center
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
@*<div class="item">
|
||||
<p class="selectPhoto"> <img src="/@Model.Product.Image"></p>
|
||||
<p>@Model.Product.Name</p>
|
||||
</div>*@
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">0元</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a asp-action="index" asp-controller="product">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 试用 -->
|
||||
<div class="container biaodan">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-right shuruname">
|
||||
<p>IP账号名称:</p>
|
||||
<p>IP账号密码:</p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left shuru">
|
||||
<p><input type="text" name="" id="account" value="@randomAccount" /></p>
|
||||
<p><input type="text" name="" id="pwd" value="@randomPwd" /></p>
|
||||
<div class="btnlingqu">
|
||||
<div class="item cishu">
|
||||
剩余试用次数<span style="color:red">@(Model.RestTimes)</span>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<a href='http://www.juip.com/User/Index' class="item tip"></a>
|
||||
</div>
|
||||
<div class="item tijiao lingqu">
|
||||
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
|
||||
{
|
||||
<button type="button" class="btn btn-primary" onclick="create()">领取试用</button>
|
||||
}
|
||||
@if (Model.Package.Status == 0)
|
||||
{
|
||||
<span class="tip">
|
||||
该产品暂不能测试
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@*<div class="col-lg-5 text-left">
|
||||
<p class="tishi chongfu">*此用户名重复,请重新输入</p>
|
||||
</div>*@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
function create() {
|
||||
var data = {
|
||||
ProductId:@(Model.Product.Id),
|
||||
PackageId: @(Model.Package.Id),
|
||||
Account: $('#account').val(),
|
||||
Pwd: $('#pwd').val()
|
||||
};
|
||||
if (data.Account == '' || data.Pwd == '') {
|
||||
$(".tip").text("账户和密码不能为空");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/api/course/v1/productaccount/CreateTestAccount',
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(data),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
alert("领取成功")
|
||||
window.location.href = "/user/myaccounts";
|
||||
} else {
|
||||
$(".tip").text(res.Message);
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,444 +1,444 @@
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@model PackageInfoResponse
|
||||
@inject UserService m_UserService
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
userEntity = await m_UserService.GetById(user.Id);
|
||||
}
|
||||
}
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$('.spinner .btn:first-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) + 1);
|
||||
});
|
||||
$('.spinner .btn:last-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) - 1);
|
||||
});
|
||||
|
||||
$(".dan").addClass("cu");
|
||||
$(".dan").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".pi").removeClass("cu");
|
||||
$(".t1").show();
|
||||
$(".t2").hide();
|
||||
});
|
||||
$(".pi").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".dan").removeClass("cu");
|
||||
$(".t1").hide();
|
||||
$(".t2").show();
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
<vc:pay-ok></vc:pay-ok>
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
@if(Model.Package.Price < 60 && (Model.Package.Id == 64||Model.Package.Id == 1004)){
|
||||
<p class="zongjia"><span>60.00</span>元</p>
|
||||
} else {
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a href="javascript:history.go(-1)">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="app">
|
||||
<!-- con -->
|
||||
<div class="container zhuce">
|
||||
<div class="reg_tab">
|
||||
<div class="item dan active_dan">
|
||||
续费
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container t1">
|
||||
<form action="~/product/CreateOrder" method="post" id="accountForm">
|
||||
<input type="hidden" name="PackageId" value="@Model.Package.Id" />
|
||||
<input type="hidden" name="OrderType" value="1" />
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品账号:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Account" value="" v-model="OneBuyModel.Account" disabled />
|
||||
<p class="jinggao" id="sAccountTip"></p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left warnText">
|
||||
<sapn class="grayText">支持10位以内字母,数字</sapn>
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品密码:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Pwd" v-model="OneBuyModel.Pwd" />
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">支持6位以内字母,数字</span>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
连接数:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="buchang">
|
||||
<div class="item">
|
||||
{{OneBuyModel.ConnectCount}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
选择优惠券:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<div class="dropdown">
|
||||
<select name="" class="btn btn-default dropdown-toggle" v-model="OneBuyModel.CouponId">
|
||||
<option value="0">请选择优惠券</option>
|
||||
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">淘宝每次下单获得优惠券</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
余额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
|
||||
<a href="/User/Index">前往充值</a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
支付方式:
|
||||
</div>
|
||||
<div class="col-lg-4 zhifufangshi">
|
||||
<input id="zhifubaopay_s1" type="radio" name="OPayType" value="100" checked v-model="OneBuyModel.OPayType"> <img src="~/img/zfb.png"><label for="zhifubaopay_s1">支付宝支付</label>
|
||||
<input id="weixinpay_s1" type="radio" name="OPayType" value="70" v-model="OneBuyModel.OPayType"> <img src="~/img/wx.png"><label for="weixinpay_s1">微信支付</label>
|
||||
<input id="UseAccountAmount_s1" type="radio" name="OPayType" value="1" v-model="OneBuyModel.UseAccountAmount"> <label for="UseAccountAmount_s1">余额支付</label>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
总金额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span class="blueText">{{TotalAmount}}</span>元
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
应付款:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span style="font-size: 30px;font-weight: bold;">{{PayAmount}}</span>元
|
||||
<span>{{auto_discount_text}}</span>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="ijiao-tip" style="color:red">{{Tip}}</p>
|
||||
<p class="tijiao"><button class="btn btn-primary pay-botton" type="button" v-on:click="onePay">确认支付</button></p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 支付弹窗开始 -->
|
||||
<div class="payMask">
|
||||
<div class="payCon">
|
||||
<img src="~/img/close.png" class="payClose" v-on:click="close">
|
||||
<p class="payTit"><img src="~/img/wx.png">微信支付 | 收银台</p>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 text-center">
|
||||
@*<p>订单将在25分钟后关闭,请及时付款</p>*@
|
||||
<p>
|
||||
@*<img id="wxPayQr" src="img/ewm.png">*@
|
||||
<div id="qrcode" style="width:200px;height:200px"></div>
|
||||
</p>
|
||||
@*<p>二维码已经失效,请刷新后重新扫码支付</p>*@
|
||||
</div>
|
||||
<div class="col-lg-6 text-left leftBorder">
|
||||
<p>新开订单</p>
|
||||
<p class="payPrice">¥<span>{{OrderInfo.OtherPayAmount}}</span></p>
|
||||
<p>收款方:聚IP</p>
|
||||
<p>下单时间:<span>{{OrderInfo.CreateTime}}</span></p>
|
||||
<p>订单号:<span>{{OrderInfo.OrderNo}}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 支付弹窗结束 -->
|
||||
|
||||
<div id="aliPayBox" style="display:none"></div>
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
var productId =@(Model.Product.Id);
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
auto_discount_text:'',
|
||||
payHandler: null,
|
||||
Tip:'',
|
||||
RestAmount: @(userEntity.RestAmount),
|
||||
Coupons: [],
|
||||
SelectCoupon: {},
|
||||
OrderInfo: {},
|
||||
OneBuyModel: {
|
||||
Price:@(Model.Package.Price),
|
||||
PackageId:@(Model.Package.Id),
|
||||
OrderType: @ViewBag.orderType,
|
||||
Account: '@ViewBag.accounts',
|
||||
CouponAmount: 0,
|
||||
Pwd: '',
|
||||
ConnectCount: @(ViewBag.ConnectCount),
|
||||
CouponId: 0,
|
||||
UseAccountAmount: 0,
|
||||
OPayType: 100,
|
||||
PayChannel:50,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
TotalAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
|
||||
//西瓜极客优惠券
|
||||
if((@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004) && @(Model.Package.Price)<60){
|
||||
total = this.OneBuyModel.ConnectCount * 60.00 * count
|
||||
}
|
||||
return total.toFixed(2);
|
||||
},
|
||||
PayAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
|
||||
total= total < 0 ? 0 : total;
|
||||
total = parseFloat(total.toFixed(2));
|
||||
|
||||
//最低价
|
||||
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
|
||||
if(total<min_cost){
|
||||
total = min_cost;
|
||||
}
|
||||
|
||||
return total.toFixed(2);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'OneBuyModel.CouponId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
if( this.OneBuyModel.CouponId == 10000000){
|
||||
return;
|
||||
}
|
||||
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
|
||||
for (var i = 0; i < this.Coupons.length; i++) {
|
||||
var item = this.Coupons[i];
|
||||
if (totalAmount < item.AllowMinAmount) {
|
||||
continue;
|
||||
}
|
||||
if (item.Id == newValue) {
|
||||
if (item.CouponType == 1) {//满减
|
||||
this.OneBuyModel.CouponAmount = item.CouponValue;
|
||||
} else {
|
||||
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
|
||||
if($(".sname").text() == '天卡'){
|
||||
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
|
||||
} else {
|
||||
alert('非天卡无效');
|
||||
this.OneBuyModel.CouponId = '0';
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
'OneBuyModel.OPayType': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
this.OneBuyModel.UseAccountAmount = false;
|
||||
this.OneBuyModel.PayChannel = newValue == 70 ? 30 : 50;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.getCoupons();
|
||||
},
|
||||
created () {
|
||||
this.OneBuyModel.CouponId = 10000000
|
||||
},
|
||||
methods: {
|
||||
getCoupons: function () {
|
||||
var that = this;
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
if(@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004){
|
||||
var coupon_json = {
|
||||
"Coupon":{
|
||||
"Id":10000000,
|
||||
"Name":"极客-西瓜-满减劵",
|
||||
}
|
||||
}
|
||||
res.Data.push(coupon_json);
|
||||
}
|
||||
that.Coupons = res.Data.map(m => m.Coupon);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onePay: function () {
|
||||
$(".pay-botton").hide();
|
||||
if (this.OneBuyModel.UseAccountAmount) {
|
||||
if (this.RestAmount < this.PayAmount){
|
||||
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
|
||||
} else {
|
||||
this.RestAmount = this.RestAmount - this.PayAmount;
|
||||
}
|
||||
}
|
||||
var that = this;
|
||||
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
|
||||
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
|
||||
showPayWait();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/product/CreateOrder',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(this.OneBuyModel),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
hidePayWait();
|
||||
if (res.Data == "00") {
|
||||
alert("续费成功");
|
||||
} else {
|
||||
that.payCallback(res.Data)
|
||||
that.isPay(res.Data.OrderInfo.OrderNo);
|
||||
}
|
||||
} else {
|
||||
//that.Tip = res.Message;
|
||||
tipPayWait(res.Message);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
payCallback: function (data) {
|
||||
this.OrderInfo = data.OrderInfo;
|
||||
var payType = this.OrderInfo.PayType;
|
||||
if (payType == 70) {
|
||||
$(".payMask").show();
|
||||
$('#qrcode').qrcode(data.PayData);
|
||||
} else if (payType == 100) {
|
||||
$("#aliPayBox").html(data.PayData);
|
||||
}
|
||||
},
|
||||
isPay: function (orderNo) {
|
||||
var that = this;
|
||||
this.payHandler = setInterval(function () {
|
||||
var url = '/product/IsPay?orderNo=' + orderNo;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000 && res.Data == 1) {
|
||||
clearInterval(that.payHandler);
|
||||
$(".payMask").hide();
|
||||
showPayOk();
|
||||
//window.location.href = "/user/myaccounts";
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 3000)
|
||||
},
|
||||
close() {
|
||||
clearInterval(this.payHandler);
|
||||
$('.payMask').hide();
|
||||
$('#qrcode').empty();
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@using Hncore.Pass.Vpn.Response.Product
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using Hncore.Pass.BaseInfo.Response
|
||||
@using Hncore.Infrastructure.Serializer;
|
||||
@using Hncore.Pass.BaseInfo.Service
|
||||
@model PackageInfoResponse
|
||||
@inject UserService m_UserService
|
||||
@{
|
||||
ViewData["Title"] = "购买产品";
|
||||
UserLoginModel user = null;
|
||||
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
|
||||
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
|
||||
{
|
||||
user = userCookie.FromJsonTo<UserLoginModel>();
|
||||
userEntity = await m_UserService.GetById(user.Id);
|
||||
}
|
||||
}
|
||||
<script src="~/js/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
let realverify = {
|
||||
cookie:document.cookie,
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/api/Realname/index',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(realverify),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == -10000) {
|
||||
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定进入实名认证。');
|
||||
window.location.href="/User/Index";
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$('.spinner .btn:first-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) + 1);
|
||||
});
|
||||
$('.spinner .btn:last-of-type').on('click', function () {
|
||||
$('.spinner input').val(parseInt($('.spinner input').val(), 10) - 1);
|
||||
});
|
||||
|
||||
$(".dan").addClass("cu");
|
||||
$(".dan").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".pi").removeClass("cu");
|
||||
$(".t1").show();
|
||||
$(".t2").hide();
|
||||
});
|
||||
$(".pi").click(function () {
|
||||
$(this).addClass("cu");
|
||||
$(".dan").removeClass("cu");
|
||||
$(".t1").hide();
|
||||
$(".t2").show();
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<vc:pay-wait></vc:pay-wait>
|
||||
<vc:pay-ok></vc:pay-ok>
|
||||
<div class="container-fluid top">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
当前已选产品:
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="selectCard">
|
||||
<div class="item">
|
||||
<p style="padding-top: 40px; font-size: 25px; font-weight: bold; color: #ee7a69;">@Model.Product.Name</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p class="sname">@Model.Package.Name</p>
|
||||
<p class="sprice">@(Model.Package.DayPrice)元/天</p>
|
||||
<p class="stime">@Model.Package.Profile</p>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
@if(Model.Package.Price < 60 && (Model.Package.Id == 64||Model.Package.Id == 1004)){
|
||||
<p class="zongjia"><span>60.00</span>元</p>
|
||||
} else {
|
||||
<p class="zongjia"><span>@Model.Package.Price</span>元</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<p class="tishi tishika" style="text-align:center">*请务必选好所需商品,换货会产生费用</p>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<a href="javascript:history.go(-1)">返回重新选择》</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="app">
|
||||
<!-- con -->
|
||||
<div class="container zhuce">
|
||||
<div class="reg_tab">
|
||||
<div class="item dan active_dan">
|
||||
续费
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container t1">
|
||||
<form action="~/product/CreateOrder" method="post" id="accountForm">
|
||||
<input type="hidden" name="PackageId" value="@Model.Package.Id" />
|
||||
<input type="hidden" name="OrderType" value="1" />
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品账号:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Account" value="" v-model="OneBuyModel.Account" disabled />
|
||||
<p class="jinggao" id="sAccountTip"></p>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left warnText">
|
||||
<sapn class="grayText">支持10位以内字母,数字</sapn>
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
IP产品密码:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<input type="text" name="Pwd" v-model="OneBuyModel.Pwd" />
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">支持6位以内字母,数字</span>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
连接数:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="buchang">
|
||||
<div class="item">
|
||||
{{OneBuyModel.ConnectCount}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
选择优惠券:
|
||||
</div>
|
||||
<div class="col-lg-4 regDan">
|
||||
<div class="dropdown">
|
||||
<select name="" class="btn btn-default dropdown-toggle" v-model="OneBuyModel.CouponId">
|
||||
<option value="0">请选择优惠券</option>
|
||||
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span class="grayText">淘宝每次下单获得优惠券</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
余额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
|
||||
<a href="/User/Index">前往充值</a>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
支付方式:
|
||||
</div>
|
||||
<div class="col-lg-4 zhifufangshi">
|
||||
<input id="zhifubaopay_s1" type="radio" name="OPayType" value="100" checked v-model="OneBuyModel.OPayType"> <img src="~/img/zfb.png"><label for="zhifubaopay_s1">支付宝支付</label>
|
||||
<input id="weixinpay_s1" type="radio" name="OPayType" value="70" v-model="OneBuyModel.OPayType"> <img src="~/img/wx.png"><label for="weixinpay_s1">微信支付</label>
|
||||
<input id="UseAccountAmount_s1" type="radio" name="OPayType" value="1" v-model="OneBuyModel.UseAccountAmount"> <label for="UseAccountAmount_s1">余额支付</label>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
总金额:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span class="blueText">{{TotalAmount}}</span>元
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-right">
|
||||
应付款:
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span style="font-size: 30px;font-weight: bold;">{{PayAmount}}</span>元
|
||||
<span>{{auto_discount_text}}</span>
|
||||
</div>
|
||||
<div class="col-lg-4 text-left">
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="ijiao-tip" style="color:red">{{Tip}}</p>
|
||||
<p class="tijiao"><button class="btn btn-primary pay-botton" type="button" v-on:click="onePay">确认支付</button></p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 支付弹窗开始 -->
|
||||
<div class="payMask">
|
||||
<div class="payCon">
|
||||
<img src="~/img/close.png" class="payClose" v-on:click="close">
|
||||
<p class="payTit"><img src="~/img/wx.png">微信支付 | 收银台</p>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 text-center">
|
||||
@*<p>订单将在25分钟后关闭,请及时付款</p>*@
|
||||
<p>
|
||||
@*<img id="wxPayQr" src="img/ewm.png">*@
|
||||
<div id="qrcode" style="width:200px;height:200px"></div>
|
||||
</p>
|
||||
@*<p>二维码已经失效,请刷新后重新扫码支付</p>*@
|
||||
</div>
|
||||
<div class="col-lg-6 text-left leftBorder">
|
||||
<p>新开订单</p>
|
||||
<p class="payPrice">¥<span>{{OrderInfo.OtherPayAmount}}</span></p>
|
||||
<p>收款方:聚IP</p>
|
||||
<p>下单时间:<span>{{OrderInfo.CreateTime}}</span></p>
|
||||
<p>订单号:<span>{{OrderInfo.OrderNo}}</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 支付弹窗结束 -->
|
||||
|
||||
<div id="aliPayBox" style="display:none"></div>
|
||||
</div>
|
||||
|
||||
@section Scripts{
|
||||
<script>
|
||||
var productId =@(Model.Product.Id);
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
auto_discount_text:'',
|
||||
payHandler: null,
|
||||
Tip:'',
|
||||
RestAmount: @(userEntity.RestAmount),
|
||||
Coupons: [],
|
||||
SelectCoupon: {},
|
||||
OrderInfo: {},
|
||||
OneBuyModel: {
|
||||
Price:@(Model.Package.Price),
|
||||
PackageId:@(Model.Package.Id),
|
||||
OrderType: @ViewBag.orderType,
|
||||
Account: '@ViewBag.accounts',
|
||||
CouponAmount: 0,
|
||||
Pwd: '',
|
||||
ConnectCount: @(ViewBag.ConnectCount),
|
||||
CouponId: 0,
|
||||
UseAccountAmount: 0,
|
||||
OPayType: 100,
|
||||
PayChannel:50,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
TotalAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
|
||||
//西瓜极客优惠券
|
||||
if((@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004) && @(Model.Package.Price)<60){
|
||||
total = this.OneBuyModel.ConnectCount * 60.00 * count
|
||||
}
|
||||
return total.toFixed(2);
|
||||
},
|
||||
PayAmount: function () {
|
||||
var count = this.OneBuyModel.Account.split(',').length;
|
||||
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
|
||||
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
|
||||
total= total < 0 ? 0 : total;
|
||||
total = parseFloat(total.toFixed(2));
|
||||
|
||||
//最低价
|
||||
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
|
||||
if(total<min_cost){
|
||||
total = min_cost;
|
||||
}
|
||||
|
||||
return total.toFixed(2);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'OneBuyModel.CouponId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
if( this.OneBuyModel.CouponId == 10000000){
|
||||
return;
|
||||
}
|
||||
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
|
||||
for (var i = 0; i < this.Coupons.length; i++) {
|
||||
var item = this.Coupons[i];
|
||||
if (totalAmount < item.AllowMinAmount) {
|
||||
continue;
|
||||
}
|
||||
if (item.Id == newValue) {
|
||||
if (item.CouponType == 1) {//满减
|
||||
this.OneBuyModel.CouponAmount = item.CouponValue;
|
||||
} else {
|
||||
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
|
||||
if($(".sname").text() == '天卡'){
|
||||
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
|
||||
} else {
|
||||
alert('非天卡无效');
|
||||
this.OneBuyModel.CouponId = '0';
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
'OneBuyModel.OPayType': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
this.OneBuyModel.UseAccountAmount = false;
|
||||
this.OneBuyModel.PayChannel = newValue == 70 ? 30 : 50;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.getCoupons();
|
||||
},
|
||||
created () {
|
||||
this.OneBuyModel.CouponId = 10000000
|
||||
},
|
||||
methods: {
|
||||
getCoupons: function () {
|
||||
var that = this;
|
||||
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
if(@(Model.Package.Id) == 64||@(Model.Package.Id) == 1004){
|
||||
var coupon_json = {
|
||||
"Coupon":{
|
||||
"Id":10000000,
|
||||
"Name":"极客-西瓜-满减劵",
|
||||
}
|
||||
}
|
||||
res.Data.push(coupon_json);
|
||||
}
|
||||
that.Coupons = res.Data.map(m => m.Coupon);
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onePay: function () {
|
||||
$(".pay-botton").hide();
|
||||
if (this.OneBuyModel.UseAccountAmount) {
|
||||
if (this.RestAmount < this.PayAmount){
|
||||
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
|
||||
} else {
|
||||
this.RestAmount = this.RestAmount - this.PayAmount;
|
||||
}
|
||||
}
|
||||
var that = this;
|
||||
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
|
||||
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
|
||||
showPayWait();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/product/CreateOrder',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(this.OneBuyModel),
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
if (res.Code == 10000) {
|
||||
hidePayWait();
|
||||
if (res.Data == "00") {
|
||||
alert("续费成功");
|
||||
} else {
|
||||
that.payCallback(res.Data)
|
||||
that.isPay(res.Data.OrderInfo.OrderNo);
|
||||
}
|
||||
} else {
|
||||
//that.Tip = res.Message;
|
||||
tipPayWait(res.Message);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
payCallback: function (data) {
|
||||
this.OrderInfo = data.OrderInfo;
|
||||
var payType = this.OrderInfo.PayType;
|
||||
if (payType == 70) {
|
||||
$(".payMask").show();
|
||||
$('#qrcode').qrcode(data.PayData);
|
||||
} else if (payType == 100) {
|
||||
$("#aliPayBox").html(data.PayData);
|
||||
}
|
||||
},
|
||||
isPay: function (orderNo) {
|
||||
var that = this;
|
||||
this.payHandler = setInterval(function () {
|
||||
var url = '/product/IsPay?orderNo=' + orderNo;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: url,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000 && res.Data == 1) {
|
||||
clearInterval(that.payHandler);
|
||||
$(".payMask").hide();
|
||||
showPayOk();
|
||||
//window.location.href = "/user/myaccounts";
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 3000)
|
||||
},
|
||||
close() {
|
||||
clearInterval(this.payHandler);
|
||||
$('.payMask').hide();
|
||||
$('#qrcode').empty();
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
}
|
||||
Reference in New Issue
Block a user