修改用户信息

This commit is contained in:
manghe 2025-03-20 18:52:46 +00:00
parent 19ae57b71e
commit f7d39aa28d
7 changed files with 682 additions and 34 deletions

View File

@ -42,7 +42,6 @@ class Goods extends Base
View::assign('count', $data['count']);
View::assign('page', $data['page']);
return View::fetch("Goods/goods");
}
/**

View File

@ -66,7 +66,7 @@ class User extends Base
$value['pid_info'] = $pid_info;
#关联user_account
$user_account = UserAccount::where(['user_id' => $value['id']])->field('last_login_ip1,last_login_ip,ip_adcode,ip_province,ip_city')->find();
// SELECT sum(goodslist_money) FROM xinglanmh_shequt_test.order_list where user_id=4490 and status=0 and goodslist_type=1
// SELECT sum(goodslist_money) FROM order_list where user_id=4490 and status=0
$user_hegui = OrderList::where('user_id', '=', $value['id'])->where('status', '=', 0)->sum('goodslist_money');
//SELECT SUM(order_zhe_total) FROM `order` where `status`=1 and user_id=6153
$user_all_total = Order::where('user_id', '=', $value['id'])->where('status', '=', 1)->sum('order_zhe_total');
@ -80,6 +80,8 @@ class User extends Base
$user_goodslist_money = OrderList::where('user_id', '=', $value['id'])->where('status', '=', 1)->sum('goodslist_money');
// SELECT sum(goodslist_money) FROM `order_list` where `status`=2 and user_id=6153 # 发货价值
$user_goodslist_money2 = OrderList::where('user_id', '=', $value['id'])->where('status', '=', 2)->sum('goodslist_money');
//SELECT sum(goodslist_money) FROM order_list where user_id=4490 # 总出货价值
$user_goodslist_money3 = OrderList::where('user_id', '=', $value['id'])->sum('goodslist_money');
$last_login_ip = 0;
if ($user_account) {
if ($user_account['last_login_ip']) {
@ -92,8 +94,8 @@ class User extends Base
}
}
if(empty($value['mobile'])){
$value['mobile'] ='未绑定';
if (empty($value['mobile'])) {
$value['mobile'] = '未绑定';
}
$value['user_hegui'] = $user_hegui;
$value['user_all_total'] = $user_all_total;
@ -102,6 +104,7 @@ class User extends Base
$value['user_use_integral'] = $user_use_integral;
$value['user_goodslist_money'] = $user_goodslist_money;
$value['user_goodslist_money2'] = $user_goodslist_money2;
$value['user_goodslist_money3'] = $user_goodslist_money3;
$value['last_login_ip'] = $last_login_ip;
$value['ip_adcode'] = $user_account['ip_adcode'];
$value['ip_province'] = $user_account['ip_province'];
@ -121,6 +124,8 @@ class User extends Base
'data' => $list
]);
}
/**
* 资金变动
@ -794,4 +799,189 @@ class User extends Base
View::assign('count', $count);
return View::fetch("User/user_invite");
}
/**
* //用户列表页面表格操作一列增加查询用户盒柜传入用户的id,点击显示一个弹出层,弹出层中有一个表格,这个弹出层有有查询条件(奖品状态(下拉框),奖品名称(输入框),盒子名称输入框下面的sql语句是查询盒柜列表
* goodslist_title 奖品名称goodslist_money 回收价格goodslist_price 售价shang_id 奖品等级order_id 订单id,order_num 订单编号,goods_id 盒子id,good_title 盒子名称status奖品状态 0盒柜中 1回收 2选择发货
*SELECT goodslist_title,goodslist_money, goodslist_price,goodslist_imgurl,shang_id,addtime,order_id,(select order_num from `order` where id=order_list.order_id) order_num,goods_id,(select title from goods where id=order_list.goods_id ) good_title,`status` FROM order_list where user_id=6153 order by`status`
* 获取用户盒柜列表
*/
public function user_box_list()
{
$param = $this->request->param();
$user_id = isset($param['user_id']) ? intval($param['user_id']) : 0;
if(empty($user_id)) {
return json(['code' => 1, 'msg' => '参数错误', 'count' => 0, 'data' => []]);
}
$where = [['user_id', '=', $user_id]];
// 添加筛选条件
if(!empty($param['status'])) {
$where[] = ['status', '=', $param['status']];
}
if(!empty($param['goodslist_title'])) {
$where[] = ['goodslist_title', 'like', "%{$param['goodslist_title']}%"];
}
if(!empty($param['good_title'])) {
// 通过goods表查询包含该名称的盒子ID
$goods_ids = Db::name('goods')->where('title', 'like', "%{$param['good_title']}%")->column('id');
if(!empty($goods_ids)) {
$where[] = ['goods_id', 'in', $goods_ids];
} else {
// 如果没有找到匹配的盒子,返回空结果
return json(['code' => 0, 'msg' => '未找到匹配的盒子', 'count' => 0, 'data' => []]);
}
}
// 添加获取时间查询条件
if(!empty($param['addtime'])) {
$times = explode(' - ', $param['addtime']);
$where[] = ['addtime', 'between', [strtotime($times[0]), strtotime($times[1])]];
}
// 构建查询 - 添加了shang_title字段和发货状态字段
$query = Db::name('order_list')
->where($where)
->field('goodslist_title, goodslist_money, goodslist_price, goodslist_imgurl, shang_id, addtime, order_id, goods_id, status, fh_status, fh_remarks');
// 获取总数
$count = $query->count();
// 分页查询
$page = isset($param['page']) ? intval($param['page']) : 1;
$limit = isset($param['limit']) ? intval($param['limit']) : 20;
$list = $query->page($page, $limit)
->order('status, addtime desc')
->select()
->toArray();
// 处理订单编号、盒子名称和奖品类型
foreach($list as &$item) {
// 获取订单编号
$order = Db::name('order')->where('id', $item['order_id'])->value('order_num');
$item['order_num'] = $order ?: '无订单号';
// 获取盒子名称
$good = Db::name('goods')->where('id', $item['goods_id'])->value('title');
$item['good_title'] = $good ?: '未知盒子';
// 获取奖品类型名称
$shang = Db::name('shang')->where('id', $item['shang_id'])->value('title');
$item['shang_title'] = $shang ?: '未知类型';
// 处理发货状态,确保数据存在
if ($item['status'] == 2) {
$item['fh_status'] = isset($item['fh_status']) ? intval($item['fh_status']) : 0;
} else {
$item['fh_status'] = null;
$item['fh_remarks'] = null;
}
}
return json([
'code' => 0,
'msg' => '',
'count' => $count,
'data' => $list
]);
}
/**
* 用户盒柜页面
*/
public function user_box()
{
$user_id = request()->param('id', 0);
$nickname = request()->param('nickname', '');
// 验证参数
if (empty($user_id)) {
$this->renderError('参数错误');
}
// 传递用户ID和昵称到模板
View::assign('user_id', $user_id);
View::assign('nickname', $nickname);
return View::fetch('User/user_box');
}
/**
* 用户订单页面
*/
public function user_order()
{
$user_id = request()->param('id', 0);
$nickname = request()->param('nickname', '');
// 验证参数
if (empty($user_id)) {
$this->renderError('参数错误');
}
// 传递用户ID和昵称到模板
View::assign('user_id', $user_id);
View::assign('nickname', $nickname);
return View::fetch('User/user_order');
}
/**
* 获取用户订单列表
*/
public function user_order_list()
{
$param = $this->request->param();
$user_id = isset($param['user_id']) ? intval($param['user_id']) : 0;
if(empty($user_id)) {
return json(['code' => 1, 'msg' => '参数错误', 'count' => 0, 'data' => []]);
}
$where = [['user_id', '=', $user_id]];
// 添加筛选条件
if(isset($param['status']) && $param['status'] !== '') {
$where[] = ['status', '=', $param['status']];
}
if(!empty($param['goods_title'])) {
$where[] = ['goods_title', 'like', "%{$param['goods_title']}%"];
}
// 添加支付时间查询条件
if(!empty($param['pay_time'])) {
$times = explode(' - ', $param['pay_time']);
$where[] = ['pay_time', 'between', [strtotime($times[0]), strtotime($times[1])]];
}
// 构建查询
$query = Db::name('order')
->where($where)
->field('id, order_num, order_total, order_zhe_total, price, use_money, use_integral, use_score, goods_id, goods_title, num, goods_price, addtime, pay_time, status');
// 获取总数
$count = $query->count();
// 分页查询
$page = isset($param['page']) ? intval($param['page']) : 1;
$limit = isset($param['limit']) ? intval($param['limit']) : 20;
$list = $query->page($page, $limit)
->order('id desc')
->select()
->toArray();
return json([
'code' => 0,
'msg' => '',
'count' => $count,
'data' => $list
]);
}
}

View File

@ -292,3 +292,7 @@ Route::rule('user_statistics', 'Statistics/UserStatistics', 'GET');
Route::rule('user_list', 'User/list', 'GET');
Route::rule('user_box', 'User/user_box', 'GET');
Route::rule('user_box_list', 'User/user_box_list', 'GET');
Route::rule('user_order', 'User/user_order', 'GET');
Route::rule('user_order_list', 'User/user_order_list', 'GET');

View File

@ -1,5 +1,5 @@
<!-- 侧边菜单 -->
<div class="layui-side layui-side-menu">
<div class="layui-side layui-side-menu" >
<div class="layui-side-scroll">
<div class="layui-logo" lay-href="home/console.html">
<span>{$config.title}</span>

View File

@ -4,7 +4,7 @@
<div class="layui-fluid">
<div class="layui-card">
<!-- 搜索表单 -->
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form layui-card-header layuiadmin-card-header-auto" id="searchForm">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline">
@ -77,7 +77,7 @@
<div class="user-info">
<p class="user-id">UID{{d.pid_info.id + 1260}}</p>
<p class="user-detail">{{d.pid_info.nickname}}</p>
</div>
</div>
</div>
{{# } else { }}
-
@ -90,16 +90,17 @@
<a class="layui-btn layui-btn-default layui-btn-xs" lay-event="give">赠送优惠券</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">查看下级</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="ipDetail">查看ip登录列表</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="viewBox">查看盒柜</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="viewOrder">查看订单</a>
{{# if(d.ip_adcode == 1){ }}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="ipConvert">ip转换</a>
{{# } }}
<div style="margin-top: 8px;">
<div>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="clearMobile">清空手机号</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="clearWechat">重置微信登录</a>
</div>
</div>
</div>
</script>
<!-- 添加充值按钮模板 -->
@ -159,14 +160,26 @@
<!-- 修改合并列模板 -->
<script type="text/html" id="combinedTpl">
<div class="combined-values">
<div>盒柜价值:{{(Number(d.user_hegui) * 100).toFixed(2)}}</div>
<div class="user-extra-info">
<div>总消费:{{Number(d.user_all_total).toFixed(2)}}</div>
<div>总出货价值:{{Number(d.user_goodslist_money3).toFixed(2)}}</div>
<div>盒柜价值:{{(Number(d.user_hegui)).toFixed(2)}}</div>
<div>微信消费:{{Number(d.user_weixin_total).toFixed(2)}}</div>
<div>余额消费:{{Number(d.user_use_money).toFixed(2)}}</div>
<div>吧唧币消费:{{Number(d.user_use_integral).toFixed(2)}}</div>
<div>币消费:{{Number(d.user_use_integral).toFixed(2)}}</div>
<div>回收货币:{{Number(d.user_goodslist_money).toFixed(2)}}</div>
<div>发货价值:{{Number(d.user_goodslist_money2).toFixed(2)}}</div>
</div>
</script>
<!-- 添加新的用户附加信息模板 -->
<script type="text/html" id="userExtraInfoTpl">
<div class="user-extra-info">
<div>注册时间:{{d.addtime ? timestampToDatetime(d.addtime) : '-'}}</div>
<div>登录时间:{{d.last_login_time ? timestampToDatetime(d.last_login_time) : '空'}}</div>
<div>IP{{d.last_login_ip || '-'}}</div>
<div>IP地址{{d.ip_province || '-'}}</div>
<div>IP邮编{{d.ip_adcode || '-'}}</div>
</div>
</script>
@ -175,6 +188,19 @@
var table;
var form;
var laydate;
// 时间戳转日期时间格式 - 移到全局作用域
function timestampToDatetime(timestamp) {
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2);
var day = ('0' + date.getDate()).slice(-2);
var hours = ('0' + date.getHours()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var seconds = ('0' + date.getSeconds()).slice(-2);
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
layui.use(['table', 'form', 'laydate'], function () {
table = layui.table;
form = layui.form;
@ -186,6 +212,7 @@
, type: 'datetime'
, range: true
});
console.log('full-' + Math.floor($('#searchForm').height() + 80));
// 表格实例
table.render({
@ -193,32 +220,16 @@
, url: '{:url("/admin/user_list")}'
, cellMinWidth: 80 // 设置最小列宽
, lineStyle: 'height: 80px;' // 设置行高
, height: 'full-150'
, height: 'full-' + Math.floor($('#searchForm').height() + 100)
, cols: [[
{ field: 'userInfo', title: '用户信息', templet: '#userInfoTpl', width: 200 }
, { field: 'pid_info', title: '推荐人', templet: '#pidInfoTpl', width: 200 }
, { field: 'money', title: '余额', templet: '#moneyTpl', width: 120 }
, { field: 'integral', title: '吧唧币', templet: '#integralTpl', width: 120 }
, { field: 'integral', title: '币', templet: '#integralTpl', width: 120 }
, { field: 'score', title: '积分', templet: '#scoreTpl', width: 120 }
, { field: 'combined', title: '货币信息', templet: '#combinedTpl', width: 200 }
, {
field: 'status', title: '用户状态', templet: '#statusTpl', width: 200
}
, {
field: 'addtime', title: '注册时间', width: 160, templet: function (d) {
var date = new Date(d.addtime * 1000);
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2);
var day = ('0' + date.getDate()).slice(-2);
var hours = ('0' + date.getHours()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var seconds = ('0' + date.getSeconds()).slice(-2);
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
}
, { field: 'last_login_ip', title: 'IP', width: 150 }
, { field: 'ip_province', title: 'IP地址', width: 160 }
, { field: 'ip_adcode', title: 'IP邮编', width: 100 }
, { field: 'status', title: '用户状态', templet: '#statusTpl', width: 200 }
, { field: 'extraInfo', title: '用户信息', templet: '#userExtraInfoTpl', width: 220 }
, { title: '操作', toolbar: '#operationTpl', width: 300, fixed: 'right' }
]]
, page: true
@ -292,6 +303,24 @@
case 'rechargeScore':
recharge(data.id, data.nickname, 3, '积分');
break;
case 'viewBox':
layer.open({
type: 2,
title: data.nickname + ' 的盒柜',
content: '/admin/user_box?id=' + data.id + '&nickname=' + encodeURIComponent(data.nickname),
area: ['95%', '90%'],
maxmin: true
});
break;
case 'viewOrder':
layer.open({
type: 2,
title: data.nickname + ' 的订单列表',
content: '/admin/user_order?id=' + data.id + '&nickname=' + encodeURIComponent(data.nickname),
area: ['95%', '90%'],
maxmin: true
});
break;
}
});
@ -554,6 +583,7 @@
padding: 0px 0;
}
.layui-table thead th {
height: 30px !important;
}
@ -565,6 +595,18 @@
.layui-table-col-special {
height: 30px !important;
}
/* 添加用户附加信息样式 */
.user-extra-info {
font-size: 12px;
color: rgba(0, 0, 0, 0.65);
line-height: 1.8;
overflow: auto;
}
.user-extra-info div {
margin-bottom: 3px;
}
</style>
</body>

View File

@ -0,0 +1,228 @@
{include file="Public:header2"/}
<body>
<div class="layui-fluid">
<div class="layui-card">
<!-- 搜索表单 -->
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">奖品状态</label>
<div class="layui-input-inline">
<select name="status" lay-filter="status">
<option value="">全部状态</option>
<option value="0">盒柜中</option>
<option value="1">已回收</option>
<option value="2">选择发货</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">奖品名称</label>
<div class="layui-input-inline">
<input type="text" name="goodslist_title" autocomplete="off" class="layui-input"
placeholder="奖品名称">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">盒子名称</label>
<div class="layui-input-inline">
<input type="text" name="good_title" autocomplete="off" class="layui-input"
placeholder="盒子名称">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">获取时间</label>
<div class="layui-input-inline">
<input type="text" id="addtime" name="addtime" autocomplete="off" class="layui-input"
placeholder="获取时间范围">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn" lay-submit lay-filter="boxSearch">
搜索
</button>
</div>
</div>
</div>
<!-- 数据表格 -->
<div class="layui-card-body">
<table id="user-box-table" lay-filter="user-box-table"></table>
</div>
</div>
</div>
<!-- 定义复制按钮模板 -->
<script type="text/html" id="copyOrderNumTpl">
<a class="layui-btn layui-btn-xs" lay-event="copyOrderNum">复制订单号</a>
</script>
<!-- 定义发货状态模板 -->
<script type="text/html" id="fhStatusTpl">
{{# if(d.status == 2) { }}
{{# if(d.fh_status == 1) { }}
<span class="layui-badge layui-bg-green">已发货</span>
{{# } else if(d.fh_status == 2) { }}
<span class="layui-badge layui-bg-red">未发货</span>
{{# } else { }}
<span class="layui-badge layui-bg-gray">待处理</span>
{{# } }}
{{# } else { }}
-
{{# } }}
</script>
<!-- 定义发货备注模板 -->
<script type="text/html" id="fhRemarksTpl">
{{# if(d.status == 2 && d.fh_remarks) { }}
<div class="layui-elip" title="{{d.fh_remarks}}">{{d.fh_remarks}}</div>
{{# } else { }}
-
{{# } }}
</script>
{include file="Public:footer"/}
<script>
layui.use(['table', 'form', 'laydate'], function () {
var table = layui.table;
var form = layui.form;
var laydate = layui.laydate;
// 初始化日期范围选择器
laydate.render({
elem: '#addtime',
type: 'datetime',
range: true
});
// 获取URL参数
var user_id = '{$user_id}';
var nickname = '{$nickname}';
// 设置页面标题
document.title = nickname + ' 的盒柜';
// 初始化盒柜表格
var boxTable = table.render({
elem: '#user-box-table',
url: '{:url("/admin/user_box_list")}',
where: { user_id: user_id },
height: 'full-140',
cols: [[
{ field: 'good_title', title: '盒子名称', width: 140 },
{ field: 'goodslist_title', title: '奖品名称', width: 200 },
{ field: 'shang_title', title: '奖品类型', width: 120 },
{ field: 'goodslist_money', title: '回收价格', width: 100 },
{ field: 'goodslist_price', title: '售价', width: 100 },
{ field: 'order_num', title: '订单编号', width: 240 },
{
field: 'status', title: '状态', width: 100, templet: function (d) {
var statusText = '';
switch (parseInt(d.status)) {
case 0: statusText = '<span class="layui-badge layui-bg-blue">盒柜中</span>'; break;
case 1: statusText = '<span class="layui-badge layui-bg-orange">已回收</span>'; break;
case 2: statusText = '<span class="layui-badge layui-bg-green">选择发货</span>'; break;
default: statusText = '<span class="layui-badge layui-bg-gray">未知</span>';
}
return statusText;
}
},
{ field: 'fh_status', title: '发货状态', width: 80, templet: '#fhStatusTpl' },
{ field: 'fh_remarks', title: '发货备注', width: 120, templet: '#fhRemarksTpl' },
{
field: 'addtime', title: '获得时间', width: 160, templet: function (d) {
return timestampToDatetime(d.addtime);
}
},
{ title: '操作', toolbar: '#copyOrderNumTpl', width: 120 }
]],
page: true,
limit: 50,
text: {
none: '暂无盒柜数据'
}
});
// 监听搜索按钮
form.on('submit(boxSearch)', function (data) {
boxTable.reload({
where: {
user_id: user_id,
status: data.field.status,
goodslist_title: data.field.goodslist_title,
good_title: data.field.good_title,
addtime: data.field.addtime
},
page: { curr: 1 }
});
return false;
});
// 监听表格工具条事件
table.on('tool(user-box-table)', function (obj) {
var data = obj.data;
if (obj.event === 'copyOrderNum') {
copyToClipboard(data.order_num);
}
});
// 复制到剪贴板函数
function copyToClipboard(text) {
// 创建临时文本区域
var textarea = document.createElement('textarea');
textarea.value = text;
document.body.appendChild(textarea);
textarea.select();
try {
// 执行复制命令
document.execCommand('copy');
layer.msg('订单编号复制成功: ' + text, {icon: 1});
} catch (err) {
layer.msg('复制失败,请手动复制', {icon: 2});
}
// 移除临时文本区域
document.body.removeChild(textarea);
}
// 时间戳转日期时间格式
function timestampToDatetime(timestamp) {
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2);
var day = ('0' + date.getDate()).slice(-2);
var hours = ('0' + date.getHours()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var seconds = ('0' + date.getSeconds()).slice(-2);
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
});
</script>
<style>
.layui-form-label {
width: 90px;
}
.layui-table thead th {
background-color: #f8f8f8;
font-weight: bold;
}
.layui-table-page {
text-align: center;
}
/* 添加发货备注的样式 */
.layui-elip {
max-width: 150px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
</body>
</html>

View File

@ -0,0 +1,185 @@
{include file="Public:header2"/}
<body>
<div class="layui-fluid">
<div class="layui-card">
<!-- 搜索表单 -->
<div class="layui-form layui-card-header layuiadmin-card-header-auto" id="searchForm">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">订单状态</label>
<div class="layui-input-inline">
<select name="status">
<option value="">全部</option>
<option value="0">未支付</option>
<option value="1">已支付</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">盒子标题</label>
<div class="layui-input-inline">
<input type="text" name="goods_title" placeholder="请输入盒子标题" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">支付时间</label>
<div class="layui-input-inline">
<input type="text" id="pay_time" name="pay_time" class="layui-input" placeholder="支付时间范围">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin" data-type="search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i> 搜索
</button>
</div>
</div>
</div>
<!-- 数据表格 -->
<div class="layui-card-body">
<table id="user-order-table" lay-filter="user-order-table"></table>
</div>
</div>
</div>
<!-- 订单状态模板 -->
<script type="text/html" id="statusTpl">
{{# if(d.status == 0) { }}
<span class="layui-badge layui-bg-gray">未支付</span>
{{# } else if(d.status == 1) { }}
<span class="layui-badge layui-bg-green">已支付</span>
{{# } else { }}
<span class="layui-badge layui-bg-black">未知状态</span>
{{# } }}
</script>
<!-- 时间格式化模板 -->
<script type="text/html" id="timeTpl">
{{# if(d.addtime) { }}
{{ timestampToDatetime(d.addtime) }}
{{# } else { }}
-
{{# } }}
</script>
<script type="text/html" id="payTimeTpl">
{{# if(d.pay_time) { }}
{{ timestampToDatetime(d.pay_time) }}
{{# } else { }}
-
{{# } }}
</script>
{include file="Public:footer"/}
<script>
// 时间戳转日期时间格式
function timestampToDatetime(timestamp) {
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2);
var day = ('0' + date.getDate()).slice(-2);
var hours = ('0' + date.getHours()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var seconds = ('0' + date.getSeconds()).slice(-2);
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
layui.use(['table', 'form', 'laydate'], function () {
var table = layui.table;
var form = layui.form;
var laydate = layui.laydate;
var userId = '{$user_id}'; // 从控制器传过来的用户ID
var nickname = '{$nickname}'; // 从控制器传过来的用户昵称
// 渲染日期时间范围选择器
laydate.render({
elem: '#pay_time',
type: 'datetime',
range: true
});
// 表格实例
table.render({
elem: '#user-order-table',
url: '{:url("/admin/user_order_list")}?user_id=' + userId,
cellMinWidth: 80,
height: 'full-' + Math.floor($('#searchForm').height() + 100),
cols: [[
{ field: 'id', title: 'ID', width: 80, sort: true, hide: false },
{ field: 'order_num', title: '订单编号', width: 240 },
{ field: 'goods_title', title: '盒子标题', width: 200 },
{ field: 'num', title: '箱数', width: 80 },
{ field: 'goods_price', title: '单价', width: 100 },
{ field: 'order_total', title: '订单金额', width: 100 },
{ field: 'order_zhe_total', title: '实际支付金额', width: 120 },
{ field: 'price', title: '微信支付', width: 100 },
{ field: 'use_money', title: '余额支付', width: 100 },
{ field: 'use_integral', title: '货币支付', width: 100 },
{ field: 'use_score', title: '积分支付', width: 100 },
{ field: 'status', title: '订单状态', width: 100, templet: '#statusTpl' },
{ field: 'addtime', title: '发起时间', width: 160, templet: '#timeTpl', sort: true },
{ field: 'pay_time', title: '支付时间', width: 160, templet: '#payTimeTpl', sort: true }
]],
page: true,
limit: 20,
text: {
none: '该用户暂无订单记录'
}
});
// 搜索和重置表单
var active = {
search: function () {
var status = $('select[name="status"]').val();
var goods_title = $('input[name="goods_title"]').val();
var pay_time = $('input[name="pay_time"]').val();
table.reload('user-order-table', {
where: {
status: status,
goods_title: goods_title,
pay_time: pay_time
},
page: {
curr: 1
}
});
},
reset: function () {
$('#searchForm')[0].reset();
form.render('select');
table.reload('user-order-table', {
where: {
status: '',
goods_title: '',
pay_time: ''
},
page: {
curr: 1
}
});
}
};
$('.layui-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
</script>
<style>
.layui-form-label {
width: 80px;
}
.layui-input-inline {
width: 180px;
}
</style>
</body>
</html>