初始上传

This commit is contained in:
2026-04-04 17:27:12 +08:00
parent 4d80d28eb4
commit b7e11774ee
11191 changed files with 1588469 additions and 0 deletions

View File

@@ -0,0 +1,305 @@
<link rel="stylesheet" href="SHOP_CSS/order_detail.css"/>
<link rel="stylesheet" href="SHOP_CSS/package.css"/>
<div class="order-detail">
<div class="layui-row layui-col-space1 order-detail-info" >
<div class="layui-col-md4 order-detail-left" >
<div class="layui-card">
<div class="layui-card-header nav-title">订单信息</div>
<div class="layui-card-body">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">订单编号:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">{$order_detail['order_no']}</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单类型:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">{$order_detail['order_type_name']}</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单来源:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail.order_from_name}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">买家:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux"><a class="text-color" target="_blank" href='{:href_url("shop/member/editmember?member_id=".$order_detail["member_id"])}'>{$order_detail.name}</a></div>
</div>
</div>
</div>
<div class="layui-form-item order-detail-hr"></div>
<div class="layui-form-item">
<label class="layui-form-label">定金支付方式:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['deposit_pay_type_name']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">定金支付流水号:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['deposit_out_trade_no']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">定金支付时间:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{:time_to_date($order_detail['pay_deposit_time'])}</p>
</div>
</div>
</div>
</div>
{if !empty($order_detail['final_pay_type'])}
<div class="layui-form-item order-detail-hr"></div>
<div class="layui-form-item">
<label class="layui-form-label">尾款支付方式:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['final_pay_type_name']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">尾款支付流水号:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['final_out_trade_no']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">尾款支付时间:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{:time_to_date($order_detail['pay_final_time'])}</p>
</div>
</div>
</div>
</div>
{/if}
<div class="layui-form-item order-detail-hr"></div>
<div class="layui-form-item">
<label class="layui-form-label">配送方式:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['delivery_type_name']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">收货人:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['name']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">联系电话:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['mobile']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">收货地址:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
<p>{$order_detail['full_address']}-{$order_detail['address']}</p>
</div>
</div>
</div>
</div>
<div class="layui-form-item order-detail-hr"></div>
<div class="layui-form-item">
<label class="layui-form-label">买家留言:</label>
<div class="layui-input-block">
<div class="layui-inline">
<div class="layui-form-mid layui-word-aux">
{if $order_detail['buyer_message'] == ""}
<p>-</p>
{else/}
<p>{$order_detail['buyer_message']}</p>
{/if}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md8 order-detail-operation">
<div class="layui-card">
<div class="layui-card-header">订单状态:{$order_detail.order_status_name}</div>
<div class="layui-card-body">
<p class="order-detail-tips"></p>
{php}
$order_json_data = json_decode($order_detail['order_status_action'], true);
$action = $order_json_data['action'];
{/php}
{foreach $action as $action_k => $action_item}
<a class="layui-btn" href="javascript:orderAction('{$action_item.action}', '{$order_detail.id}')">{$action_item.title}</a>
{/foreach}
<br>
<i class="layui-icon layui-icon-about"></i>
</div>
</div>
</div>
<div class="order-detail-dl">
<dl>
<dt>提醒:</dt>
<dd>交易成功后,平台将把货款结算至你的店铺账户余额,你可申请提现;</dd>
<dd>请及时关注你发出的包裹状态,确保能配送至买家手中;</dd>
<dd>如果买家表示未收到货或者货物有问题,请及时联系买家积极处理,友好协商;</dd>
</dl>
</div>
</div>
</div>
{if $order_detail['is_invoice'] == 1}
<div style="height: 15px;"></div>
<div class="layui-row form-wrap invoice-view">
<div class="layui-col-md6">
<h4 class="invoice-title">发票信息</h4>
<ul class="invoice-box">
<li class="invoice-item">
<label class="invoice-label">发票类型:</label>
<div class="invoice-content">{if $order_detail['invoice_type'] == 1}纸质{else/}电子{/if}{if $order_detail['is_tax_invoice'] == 1}专票{else/}普票{/if}</div>
</li>
<li class="invoice-item">
<label class="invoice-label">发票抬头:</label>
<div class="invoice-content">{$order_detail['invoice_title']}</div>
</li>
<li class="invoice-item">
<label class="invoice-label">发票抬头类型:</label>
<div class="invoice-content">{$order_detail['invoice_title_type'] == 1 ? '个人' : '企业'}</div>
</li>
{if $order_detail['invoice_title_type'] == 2}
<li class="invoice-item">
<label class="invoice-label">纳税人识别号:</label>
<div class="invoice-content">{$order_detail['taxpayer_number']}</div>
</li>
{/if}
<li class="invoice-item">
<label class="invoice-label">发票内容:</label>
<div class="invoice-content">{$order_detail['invoice_content']}</div>
</li>
{if $order_detail['invoice_type'] == 1}
<li class="invoice-item">
<label class="invoice-label">发票邮寄地址:</label>
<div class="invoice-content">{$order_detail['invoice_full_address']}</div>
</li>
{else/}
<li class="invoice-item">
<label class="invoice-label">发票接收邮件:</label>
<div class="invoice-content">{$order_detail['invoice_email']}</div>
</li>
{/if}
</ul>
</div>
<div class="layui-col-md6">
<h4 class="invoice-title">发票费用</h4>
<ul class="invoice-box">
<li class="invoice-item">
<label class="invoice-label">发票费用:</label>
<div class="invoice-content"><span class="invoice-money">¥{$order_detail.invoice_money}</span> </div>
</li>
<li class="invoice-item">
<label class="invoice-label">发票税率:</label>
<div class="invoice-content"><span class="invoice-money">{$order_detail.invoice_rate}%</span> </div>
</li>
<li class="invoice-item">
<label class="invoice-label">发票邮寄费用:</label>
<div class="invoice-content"><span class="invoice-money">¥{$order_detail.invoice_delivery_money}</span> </div>
</li>
</ul>
</div>
</div>
{/if}
<div style="height: 15px;"></div>
<div class="order-detail-table">
<table class="layui-table" lay-filter="parse-table-order-product" lay-skin="line" lay-size="lg">
<thead>
<tr>
<th lay-data="{field:'product_name', width:200}">商品</th>
<th lay-data="{field:'sale_num'}">数量</th>
<th lay-data="{field:'price'}">单价</th>
<th lay-data="{field:'total_money'}">总价</th>
<th lay-data="{field:'presale_deposit'}">预售定金单价</th>
<th lay-data="{field:'presale_deposit_money'}">定金总额</th>
<th lay-data="{field:'presale_price'}">抵扣金额单价</th>
<th lay-data="{field:'presale_money'}">抵扣总额</th>
</tr>
</thead>
<tbody>
<tr>
<td>{$order_detail.sku_name}</td>
<td>{$order_detail.num}</td>
<td>{$order_detail.price}</td>
<td>{$order_detail.goods_money}</td>
<td>{$order_detail.presale_deposit}</td>
<td>{$order_detail.presale_deposit_money}</td>
<td>{$order_detail.presale_price}</td>
<td>{$order_detail.presale_money}</td>
</tr>
</tbody>
</table>
<div class="layui-row order-detail-total">
<div class="layui-col-md9">&nbsp;</div>
<div class="layui-col-md3 order-money-box" >
<div>商品总额:¥{$order_detail["goods_money"]}</div>
<div>店铺优惠券:¥{$order_detail["coupon_money"]}</div>
<div>配送费用:¥{$order_detail["delivery_money"]}</div>
<div>发票费用:¥{$order_detail["invoice_money"]}</div>
<div>发票邮寄费用:¥{$order_detail["invoice_delivery_money"]}</div>
<div>定金总额:¥{$order_detail["presale_deposit_money"]}</div>
<div>抵扣总额:¥{$order_detail["presale_money"]}</div>
<div>尾款总额:¥{$order_detail["final_money"]}</div>
<div>订单共{$order_detail["num"]}件商品,总计:<span>¥{$order_detail["order_money"]}</span></div>
</div>
</div>
</div>
{include file="order/order_common_action" /}

View File

@@ -0,0 +1,368 @@
<style type="text/css">
.address{height: 0;width: 1px; border: none; overflow: hidden;}
.layui-layout-admin .table-tab .layui-tab-title{margin-bottom: 15px;}
.layui-layout-admin .screen{margin-top: 15px;}
.layui-layout-admin .layui-form-item .layui-input-inline{background-color: #fff;}
</style>
<div class="layui-collapse tips-wrap">
<div class="layui-colla-item">
<h2 class="layui-colla-title">操作提示</h2>
<ul class="layui-colla-content layui-show">
<li>商品预售展示商品预售相关信息</li>
</ul>
</div>
</div>
<div class="screen layui-collapse" lay-filter="selection_panel">
<div class="layui-colla-item">
<form class="layui-colla-content layui-form layui-show">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">搜索方式:</label>
<div class="layui-input-inline">
<select name="order_label" >
{foreach $order_label_list as $k => $label_val}
<option value="{$k}">{$label_val}</option>
{/foreach}
</select>
</div>
<div class="layui-input-inline">
<input type="text" name="search" autocomplete="off" class="layui-input" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">下单时间:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="start_time" placeholder="开始时间" id="start_time" readonly>
<i class=" iconrili iconfont calendar"></i>
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" name="end_time" placeholder="结束时间" id="end_time" readonly>
<i class=" iconrili iconfont calendar"></i>
</div>
<button class="layui-btn layui-btn-primary date-picker-btn" onclick="datePick(7, this);return false;">近7天</button>
<button class="layui-btn layui-btn-primary date-picker-btn" onclick="datePick(30, this);return false;">近30天</button>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">订单类型:</label>
<div class="layui-input-inline">
<select name="order_type" lay-filter="order_type">
{foreach $order_type_list as $order_type_k => $order_type_val}
<option value="{$order_type_val.type}">{$order_type_val.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">订单来源:</label>
<div class="layui-input-inline">
<select name="order_from">
<option value="">全部</option>
{foreach $order_from_list as $order_from_k => $order_from_v}
<option value="{$order_from_k}">{$order_from_v['name']}</option>
{/foreach}
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">定金付款方式:</label>
<div class="layui-input-inline">
<select name="deposit_pay_type" >
<option value="">全部</option>
{foreach pay_type_list as $pay_type_k => $pay_type_v}
<option value="{$pay_type_k}">{$pay_type_v}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">尾款付款方式:</label>
<div class="layui-input-inline">
<select name="final_pay_type" >
<option value="">全部</option>
{foreach pay_type_list as $pay_type_k => $pay_type_v}
<option value="{$pay_type_k}">{$pay_type_v}</option>
{/foreach}
</select>
</div>
</div>
</div>
<div class="form-row">
<button class="layui-btn" lay-submit lay-filter="search">筛选</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
</div>
</div>
<div class="layui-tab table-tab" lay-filter="presale_tab">
<ul class="layui-tab-title">
<li class="layui-this" data-status="">全部</li>
{foreach $order_status_list as $status_val}
<li data-status="{$status_val.status}">{$status_val.name}</li>
{/foreach}
</ul>
<div class="layui-tab-content">
<!-- 列表 -->
<table id="presale_list" lay-filter="presale_list"></table>
</div>
</div>
{include file="order/order_common_action" /}
<!-- 商品 -->
<script type="text/html" id="goods">
<div class="table-title">
<div class="title-pic">
{{# if(d.sku_image){ }}
<img layer-src="{{ns.img(d.sku_image.split(',')[0],'big')}}" src="{{ns.img(d.sku_image.split(',')[0],'small')}}"/>
{{# } }}
</div>
<div class="title-content">
<a href="javascript:;" class="multi-line-hiding text-color" title="{{d.sku_name}}">{{d.sku_name}}</a>
<a href="javascript:;" class="multi-line-hiding" title="">{{ d.price }}</a>
</div>
</div>
</script>
<!-- 金额 -->
<script id="price" type="text/html">
<div class="layui-elip">定金{{ d.presale_deposit_money }}</div>
<div class="layui-elip">尾款{{ d.final_money }}</div>
</script>
<!-- 收货人地址 -->
<script id="addressHtml" type="text/html">
<div class="layui-elip">{{ d.name }}</div>
<div class="layui-elip">{{ d.mobile }}</div>
{{# if(d.full_address){ }}
<div class="layui-elip" title="{{ d.full_address }} {{ d.address }}" > <input type="text" class="address" id="address" value="{{ d.full_address }} {{ d.address }}"><a href="javascript:ns.copy('address');" class="iconfont iconfuzhi" style="margin-top: 4px"></a> {{ d.full_address }} {{ d.address }}</div>
{{# } }}
</script>
<!-- 操作 -->
<script type="text/html" id="operation">
<div class="table-btn">
<a class="layui-btn" lay-event="detail">详情</a>
{{# if(d.is_deposit_back!=1 && d.can_refund !=1){ }}
{{# layui.each(d.action, function(index, item){ }}
<a class="layui-btn" href="javascript:orderAction('{{item.action}}', '{{d.id}}')">{{item.title}}</a>
{{# }); }}
{{# } }}
{{# if(d.order_status == 1 && d.is_deposit_back==1 && d.can_refund ==1){ }}
<a class="layui-btn" lay-event="agree">退定金</a>
{{# } }}
</div>
</script>
<script>
var laytpl,table,form,laydate,element,repeat_flag;
layui.use(['form', 'element','laydate','laytpl'], function() {
form = layui.form;
laytpl = layui.laytpl;
laydate = layui.laydate;
element = layui.element;
repeat_flag = false; //防重复标识
form.render();
//渲染时间
laydate.render({
elem: '#start_time',
type: 'datetime'
});
laydate.render({
elem: '#end_time',
type: 'datetime'
});
element.on('tab(presale_tab)', function() {
table.reload({
page: {
curr: 1
},
where: {
'order_status': this.getAttribute('data-status')
}
});
});
table = new Table({
elem: '#presale_list',
url: ns.url("presale://shop/order/lists"),
where:{
'presale_id':{$presale_id}
},
cols: [
[{
field: 'order_no',
title: '订单编号',
unresize: 'false',
width:'10%'
},{
title: '商品信息',
unresize: 'false',
templet:'#goods',
width:'20%'
}, {
field:'num',
title: '购买数量',
unresize: 'false',
templet:function(data){
return data.num + '件';
},
width:'6%'
}, {
title: '金额',
unresize: 'false',
templet:'#price',
width:'10%'
},{
field:'nickname',
title: '购买人',
unresize: 'false',
width:'10%'
}, {
title: '收货人信息',
unresize: 'false',
templet:'#addressHtml',
width:'10%'
}, {
title: '状态',
unresize: 'false',
width:'10%',
templet:function(data){
if(data.order_status==1 && data.is_deposit_back==1 && data.can_refund==1){
return '已关闭(未支付尾款)'
}else{
var html = data.order_status_name;
if(data.refund_status != 0){
html += ''+ data.refund_status_name +'';
}
return html;
}
}
}, {
title: '创建时间',
unresize: 'false',
templet:function(data){
return ns.time_to_date(data.create_time);
},
width:"10%"
}, {
title: '操作',
toolbar: '#operation',
unresize: 'false',
align:'right'
}]
]
});
/**
* 搜索功能
*/
form.on('submit(search)', function(data) {
table.reload({
page: {
curr: 1
},
where: data.field
});
return false;
});
/**
* 监听工具栏操作
*/
table.tool(function(obj) {
var data = obj.data;
switch (obj.event) {
case 'detail': //查看
window.open(ns.href("presale://shop/order/detail", {"id": data.id}));
break;
case 'agree': //同意
agreeRefund(data.id);
break;
}
});
});
//同意退款
function agreeRefund(id){
layer.confirm('确定该退定金吗?', function(index) {
if (repeat_flag) return;
repeat_flag = true;
layer.close(index);
$.ajax({
url: ns.url("presale://shop/refund/agree"),
data: {
id: id
},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
repeat_flag = false;
if (res.code == 0) {
table.reload();
}
}
});
}, function() {
layer.close();
repeat_flag = false;
});
}
/**
* 七天时间
*/
function datePick(date_num,event_obj){
$(".date-picker-btn").removeClass("selected");
$(event_obj).addClass('selected');
// alert(new Date().format("yyyy-MM-dd hh:mm"));
Date.prototype.Format = function (fmt,date_num) { //author: meizz
this.setDate(this.getDate()-date_num);
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
// var now_time = new Date().Format("yyyy-MM-dd HH:mm:ss",0);//当前日期
var now_time = new Date().Format("yyyy-MM-dd 23:59:59",0);//当前日期
var before_time = new Date().Format("yyyy-MM-dd 00:00:00",date_num-1);//前几天日期
$("input[name=start_time]").val(before_time,0);
$("input[name=end_time]").val(now_time,date_num-1);
}
function add() {
location.hash = ns.hash("presale://shop/presale/add");
}
</script>

View File

@@ -0,0 +1,116 @@
<script type="text/javascript">
var laytpl;
var form;
//渲染模板引擎
layui.use(['laytpl','form'], function(){
laytpl = layui.laytpl;
form = layui.form;
form.render();
});
/**
* 订单操作
* @param fun
* @param order_id
*/
function orderAction(fun, order_id){
eval(fun+"("+order_id+")");
}
/**
* 关闭订单
* @param order_id
*/
function orderClose(order_id){
layer.confirm('确定要关闭该订单吗?', function(index) {
layer.close(index);
$.ajax({
url: ns.url("presale://shop/order/close"),
data: {order_id : order_id},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
listenerHash(); // 刷新页面
}
}
});
}, function () {
layer.close();
});
}
/**
* 线下支付定金
* @param order_id
*/
function offlinePayDeposit(order_id){
layer.confirm('确定要线下支付定金吗?', function(index) {
layer.close(index);
$.ajax({
url: ns.url("presale://shop/order/offlinePayDeposit"),
data: {order_id : order_id},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
listenerHash(); // 刷新页面
}
}
});
}, function () {
layer.close();
});
}
/**
* 线下支付尾款
* @param order_id
*/
function offlinePayFinal(order_id){
layer.confirm('确定要线下支付尾款吗?', function(index) {
layer.close(index);
$.ajax({
url: ns.url("presale://shop/order/offlinePayFinal"),
data: {order_id : order_id},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
listenerHash(); // 刷新页面
}
}
});
}, function () {
layer.close();
});
}
/**
* 删除订单
* @param order_id
*/
function deleteOrder(order_id){
layer.confirm('确定要删除该订单吗?', function(index) {
layer.close(index);
$.ajax({
url: ns.url("presale://shop/order/deleteOrder"),
data: {order_id : order_id},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
location.hash = ns.hash("presale://shop/order/lists");
}
}
});
}, function () {
layer.close();
});
}
</script>