忽略dll文件git
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user