忽略dll文件git
This commit is contained in:
@@ -1,68 +1,68 @@
|
||||
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div id="app">
|
||||
<table class="table">
|
||||
<caption>提现管理</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>用户</th>
|
||||
<th>提现金额</th>
|
||||
<th>提现理由</th>
|
||||
<th>支付宝账号</th>
|
||||
<th>备注</th>
|
||||
<th>状态</th>
|
||||
<th>提现时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="info in tableData">
|
||||
<td>{{info.username}}</td>
|
||||
<td>{{info.money}}</td>
|
||||
<td>{{info.reason}}</td>
|
||||
<td>{{info.alipay_account}}</td>
|
||||
<td>{{info.remark}}</td>
|
||||
<td>{{info.status}}</td>
|
||||
<td>{{info.create_time}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
var vm = new Vue({
|
||||
el:'#app',
|
||||
data:{
|
||||
tableData: [],
|
||||
},
|
||||
created:function(){
|
||||
this.post();
|
||||
},
|
||||
methods:{
|
||||
post:function(){
|
||||
var param = [];
|
||||
let cashOutData = {
|
||||
cookie:document.cookie
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/order/CashOutIndex/getData',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(cashOutData),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
param = res.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.tableData = param;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div id="app">
|
||||
<table class="table">
|
||||
<caption>提现管理</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>用户</th>
|
||||
<th>提现金额</th>
|
||||
<th>提现理由</th>
|
||||
<th>支付宝账号</th>
|
||||
<th>备注</th>
|
||||
<th>状态</th>
|
||||
<th>提现时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="info in tableData">
|
||||
<td>{{info.username}}</td>
|
||||
<td>{{info.money}}</td>
|
||||
<td>{{info.reason}}</td>
|
||||
<td>{{info.alipay_account}}</td>
|
||||
<td>{{info.remark}}</td>
|
||||
<td>{{info.status}}</td>
|
||||
<td>{{info.create_time}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
var vm = new Vue({
|
||||
el:'#app',
|
||||
data:{
|
||||
tableData: [],
|
||||
},
|
||||
created:function(){
|
||||
this.post();
|
||||
},
|
||||
methods:{
|
||||
post:function(){
|
||||
var param = [];
|
||||
let cashOutData = {
|
||||
cookie:document.cookie
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
async:false,
|
||||
url: 'http://php-api.juip.com/order/CashOutIndex/getData',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
data: JSON.stringify(cashOutData),
|
||||
beforeSend: function(xhr) {
|
||||
xhr.withCredentials = true;
|
||||
},
|
||||
crossDomain: true,
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
param = res.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.tableData = param;
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,15 @@
|
||||
@{
|
||||
ViewData["Title"] = "登录";
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
loginCallback = function () {
|
||||
window.location.href="/"
|
||||
}
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
</script>
|
||||
}
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "登录";
|
||||
}
|
||||
|
||||
@section Scripts{
|
||||
<script type="text/javascript">
|
||||
loginCallback = function () {
|
||||
window.location.href="/"
|
||||
}
|
||||
$(".mask").show();
|
||||
$(".main").show();
|
||||
$(".main").addClass("animated bounceInDown");
|
||||
</script>
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,53 +1,53 @@
|
||||
@using Hncore.Pass.Sells.Model
|
||||
@model List<UserCouponModel>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="col-lg-3">
|
||||
<div class="quan">
|
||||
@if (item.Coupon.CouponType == ECouponType.Discount)
|
||||
{
|
||||
<span class="couponPrice">@(item.Coupon.CouponValue)折</span><span class="couponName">@item.Coupon.Name</span>
|
||||
}
|
||||
@if (item.Coupon.CouponType == ECouponType.Minus)
|
||||
{
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">@(item.Coupon.CouponValue)</span><span class="couponName">@item.Coupon.Name</span>
|
||||
</div>
|
||||
}
|
||||
<div class="item">
|
||||
使用规则:@(item.Coupon.AllowMinAmount > 0 ? $"满{item.Coupon.AllowMinAmount}元可用" : "无限制")
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:@(item.Orgin.StartTime.Value.ToString("yyyy.MM.dd"))-@(item.Orgin.EndTime.Value.ToString("yyyy.MM.dd"))
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径: @item.Orgin.Remark
|
||||
</div>
|
||||
<div class="item">
|
||||
@(item.IsUsed?"已使用":"未使用")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@*<div class="col-lg-3">
|
||||
<div class="quan gray">
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">3</span><span class="couponName">优惠券名称</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
使用规则:无限制
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:<span>2020.1.1-2020.2.3</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径;淘宝下单赠送
|
||||
</div>
|
||||
<div class="item">
|
||||
已使用
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
@using Hncore.Pass.Sells.Model
|
||||
@model List<UserCouponModel>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="col-lg-3">
|
||||
<div class="quan">
|
||||
@if (item.Coupon.CouponType == ECouponType.Discount)
|
||||
{
|
||||
<span class="couponPrice">@(item.Coupon.CouponValue)折</span><span class="couponName">@item.Coupon.Name</span>
|
||||
}
|
||||
@if (item.Coupon.CouponType == ECouponType.Minus)
|
||||
{
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">@(item.Coupon.CouponValue)</span><span class="couponName">@item.Coupon.Name</span>
|
||||
</div>
|
||||
}
|
||||
<div class="item">
|
||||
使用规则:@(item.Coupon.AllowMinAmount > 0 ? $"满{item.Coupon.AllowMinAmount}元可用" : "无限制")
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:@(item.Orgin.StartTime.Value.ToString("yyyy.MM.dd"))-@(item.Orgin.EndTime.Value.ToString("yyyy.MM.dd"))
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径: @item.Orgin.Remark
|
||||
</div>
|
||||
<div class="item">
|
||||
@(item.IsUsed?"已使用":"未使用")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@*<div class="col-lg-3">
|
||||
<div class="quan gray">
|
||||
<div class="item">
|
||||
¥<span class="couponPrice">3</span><span class="couponName">优惠券名称</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
使用规则:无限制
|
||||
</div>
|
||||
<div class="item">
|
||||
有效时间:<span>2020.1.1-2020.2.3</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
获得途径;淘宝下单赠送
|
||||
</div>
|
||||
<div class="item">
|
||||
已使用
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
@@ -1,242 +1,242 @@
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
|
||||
Func<string, string> cut = word =>
|
||||
{
|
||||
if (word.Length > 15)
|
||||
return word.Substring(0, 15) + "...";
|
||||
return word;
|
||||
};
|
||||
}
|
||||
<style>
|
||||
.tipBox {
|
||||
position: absolute;
|
||||
padding:10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #fff;
|
||||
width: 260px;
|
||||
min-height:100px;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="toolsBar" id="app">
|
||||
|
||||
<div class="item">
|
||||
日期筛选:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.OrderType" style="height:35px;">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KeyWord" placeholder="账号" class="bianhao" /><button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>单价</th>
|
||||
<th>总连接数</th>
|
||||
<th>账号</th>
|
||||
<th>订单金额</th>
|
||||
<th>优惠券</th>
|
||||
<th>实付金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@(item.ConnectCount*item.AccountCount)</td>
|
||||
<td class="@(item.Accounts.Length>15?"cutTip":"")">
|
||||
@cut(item.Accounts)
|
||||
<div class="tipBox">@item.Accounts</div>
|
||||
</td>
|
||||
<td>@item.OrderAmount</td>
|
||||
<td>@item.CouponAmount</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
|
||||
$(".cutTip").mouseover(function () {
|
||||
$(this).children().last().show();
|
||||
}).mouseleave(function () {
|
||||
$(this).children().last().hide();
|
||||
})
|
||||
});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
OrderType:0,
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
KeyWord:'',
|
||||
BTime: '@this.Context.Request.Get("BTime")',
|
||||
ETime: '@this.Context.Request.Get("ETime")',
|
||||
},
|
||||
oneAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd:""
|
||||
},
|
||||
mutilAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd: "",
|
||||
StartNum: 0,
|
||||
Count:0
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
|
||||
Func<string, string> cut = word =>
|
||||
{
|
||||
if (word.Length > 15)
|
||||
return word.Substring(0, 15) + "...";
|
||||
return word;
|
||||
};
|
||||
}
|
||||
<style>
|
||||
.tipBox {
|
||||
position: absolute;
|
||||
padding:10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #fff;
|
||||
width: 260px;
|
||||
min-height:100px;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<form asp-action="myorders" asp-controller="user" method="get">
|
||||
<div class="toolsBar" id="app">
|
||||
|
||||
<div class="item">
|
||||
日期筛选:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.OrderType" style="height:35px;">
|
||||
<option value="0">全部类型</option>
|
||||
<option value="1">新开</option>
|
||||
<option value="2">续费</option>
|
||||
<option value="3">批量新开</option>
|
||||
<option value="4">批量续费</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0">全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KeyWord" placeholder="账号" class="bianhao" /><button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>单价</th>
|
||||
<th>总连接数</th>
|
||||
<th>账号</th>
|
||||
<th>订单金额</th>
|
||||
<th>优惠券</th>
|
||||
<th>实付金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@(item.ConnectCount*item.AccountCount)</td>
|
||||
<td class="@(item.Accounts.Length>15?"cutTip":"")">
|
||||
@cut(item.Accounts)
|
||||
<div class="tipBox">@item.Accounts</div>
|
||||
</td>
|
||||
<td>@item.OrderAmount</td>
|
||||
<td>@item.CouponAmount</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
|
||||
$(".cutTip").mouseover(function () {
|
||||
$(this).children().last().show();
|
||||
}).mouseleave(function () {
|
||||
$(this).children().last().hide();
|
||||
})
|
||||
});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
OrderType:0,
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
KeyWord:'',
|
||||
BTime: '@this.Context.Request.Get("BTime")',
|
||||
ETime: '@this.Context.Request.Get("ETime")',
|
||||
},
|
||||
oneAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd:""
|
||||
},
|
||||
mutilAuthModel: {
|
||||
ProductId: 0,
|
||||
Account: "",
|
||||
Pwd: "",
|
||||
StartNum: 0,
|
||||
Count:0
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1,205 +1,205 @@
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div class="toolsBar" id="app">
|
||||
<div class="item">
|
||||
日期:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" name="BTime" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" name="ETime" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0" selected >全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KewWord" placeholder="账号" class="bianhao" />
|
||||
<button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>账号</th>
|
||||
<th>连接数</th>
|
||||
<th>退款时长</th>
|
||||
<th>退款单价</th>
|
||||
<th>实付金额</th>
|
||||
<th>退款金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.Accounts</td>
|
||||
<td>@item.ConnectCount</td>
|
||||
<td>@item.DayCount</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
<td>@item.RefundAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
Keyword:'',
|
||||
BTime: '',
|
||||
ETime: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
selectFn: function (e) {
|
||||
console.log(e.target.value) // 选择项的value
|
||||
},
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
}
|
||||
}
|
||||
})
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
//退款
|
||||
$(".btn-refund").on('click', function () {
|
||||
var accounts = [];
|
||||
$.each($('input:checkbox:checked'), function () {
|
||||
accounts.push($(this).val())
|
||||
});
|
||||
if (accounts.length == 0) { alert('请选择账号'); return; }
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/order/Refund?account=' + accounts[0],
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
alert('退款成功')
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
@using Hncore.Infrastructure.Data
|
||||
@using Hncore.Pass.Vpn.Domain
|
||||
@using Hncore.Infrastructure.Extension
|
||||
@using ViewComponents
|
||||
@model PageData<ProductOrderEntity>
|
||||
@{
|
||||
Layout = "_UserLayout";
|
||||
}
|
||||
<div class="toolsBar" id="app">
|
||||
<div class="item">
|
||||
日期:
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker1'>
|
||||
<input type='text' class="form-control" name="BTime" v-model="searchModel.BTime" placeholder="选择开始时间" id="BTime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<div class="form-group">
|
||||
<!--指定 date标记-->
|
||||
<div class='input-group date' id='datetimepicker2'>
|
||||
<input type='text' class="form-control" name="ETime" v-model="searchModel.ETime" placeholder="选择结束时间" id="ETime" />
|
||||
<span class="input-group-addon">
|
||||
<span class="glyphicon glyphicon-calendar"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.ProductId" style="height:35px;">
|
||||
<option value="0" selected >全部产品</option>
|
||||
<option v-for="item in productWithPackage" :value="item.Product.Id">{{item.Product.Name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="btn-group">
|
||||
<select @@change="search" v-model="searchModel.PackageId" style="height:35px;">
|
||||
<option value="0">全部套餐</option>
|
||||
<option value="测试卡">测试卡</option>
|
||||
<option value="天卡">天卡</option>
|
||||
<option value="周卡">周卡</option>
|
||||
<option value="月卡">月卡</option>
|
||||
<option value="月卡(活动)">月卡(活动)</option>
|
||||
<option value="双月卡(活动)">双月卡(活动)</option>
|
||||
<option value="季卡">季卡</option>
|
||||
<option value="季卡(活动)">季卡(活动)</option>
|
||||
<option value="年卡">年卡</option>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="text" v-model="searchModel.KewWord" placeholder="账号" class="bianhao" />
|
||||
<button type="button" class="btn btn-primary" v-on:click="search">查询</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table_person">
|
||||
<tr>
|
||||
<th>日期</th>
|
||||
<th>订单编号</th>
|
||||
<th>类型</th>
|
||||
<th>产品</th>
|
||||
<th>套餐</th>
|
||||
<th>账号</th>
|
||||
<th>连接数</th>
|
||||
<th>退款时长</th>
|
||||
<th>退款单价</th>
|
||||
<th>实付金额</th>
|
||||
<th>退款金额</th>
|
||||
</tr>
|
||||
@foreach (var item in Model.List)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.CreateTime.ToString("yyyy.MM.dd")</td>
|
||||
<td>@item.OrderNo</td>
|
||||
<td>@item.OrderType.GetEnumDisplayName()</td>
|
||||
<td>@item.ProductName</td>
|
||||
<td>@item.PackageName</td>
|
||||
<td>@item.Accounts</td>
|
||||
<td>@item.ConnectCount</td>
|
||||
<td>@item.DayCount</td>
|
||||
<td>@item.DayPrice</td>
|
||||
<td>@item.PaymentAmount</td>
|
||||
<td>@item.RefundAmount</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div class="fenye">
|
||||
@await Component.InvokeAsync("Pager", new PagerModel() { Total = Model.RowCount, PageIndex = this.Context.Request.GetInt("PageIndex") })
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
productWithPackage: [],
|
||||
packages: [],
|
||||
searchModel: {
|
||||
ProductId:@this.Context.Request.GetInt("ProductId"),
|
||||
PackageId:"0",
|
||||
Keyword:'',
|
||||
BTime: '',
|
||||
ETime: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
'searchModel.ProductId': { //加引号监听对象里的属性
|
||||
handler: function (newValue, oldValue) {
|
||||
for (var i = 0; i < this.productWithPackage.length; i++) {
|
||||
var item = this.productWithPackage[i];
|
||||
if (item.Product.Id == newValue) {
|
||||
this.packages = item.Packages
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.getProducts();
|
||||
},
|
||||
methods: {
|
||||
selectFn: function (e) {
|
||||
console.log(e.target.value) // 选择项的value
|
||||
},
|
||||
getProducts() {
|
||||
var that = this;
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/product/ProductWithPackage',
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
that.productWithPackage = res.Data;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
search() {
|
||||
var ps = [];
|
||||
this.searchModel.BTime = $("#BTime").val();
|
||||
this.searchModel.ETime = $("#ETime").val();
|
||||
for (var item in this.searchModel) {
|
||||
var p = item + "=" + this.searchModel[item];
|
||||
ps.push(p);
|
||||
}
|
||||
window.location.href = "?" + ps.join("&");
|
||||
}
|
||||
}
|
||||
})
|
||||
$(function () {
|
||||
var picker1 = $('#datetimepicker1').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn'),
|
||||
//minDate: '2016-7-1'
|
||||
});
|
||||
var picker2 = $('#datetimepicker2').datetimepicker({
|
||||
format: 'YYYY-MM-DD',
|
||||
locale: moment.locale('zh-cn')
|
||||
});
|
||||
//动态设置最小值
|
||||
picker1.on('dp.change', function (e) {
|
||||
picker2.data('DateTimePicker').minDate(e.date);
|
||||
});
|
||||
//动态设置最大值
|
||||
picker2.on('dp.change', function (e) {
|
||||
picker1.data('DateTimePicker').maxDate(e.date);
|
||||
});
|
||||
//退款
|
||||
$(".btn-refund").on('click', function () {
|
||||
var accounts = [];
|
||||
$.each($('input:checkbox:checked'), function () {
|
||||
accounts.push($(this).val())
|
||||
});
|
||||
if (accounts.length == 0) { alert('请选择账号'); return; }
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/course/v1/order/Refund?account=' + accounts[0],
|
||||
success: function (res) {
|
||||
if (res.Code == 10000) {
|
||||
alert('退款成功')
|
||||
} else {
|
||||
alert(res.Message)
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user