初始上传

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,161 @@
<!-- 订单物流发货 -->
<style>
.layui-table-body {
overflow: unset;
}
.delivery-content {
padding: 7px 0 !important;
}
.layui-table-view {
border-top: 1px solid #eee;
/*border-bottom: 1px solid #eee;*/
}
.order-delivery .layui-table {
/*margin-bottom: 30px;*/
}
.layui-form #order_goods_list thead th, .layui-form #order_goods_list tbody tr {
border-bottom: 1px solid #E6E6E6;
}
.layui-form #order_goods_list thead th {
background-color: #F5F5F5;
line-height: 30px;
}
.order-delivery .input-text {
height: auto;
min-height: 34px;
}
</style>
<!--发货订单弹出框-->
<script type="text/html" id="order_delivery_html">
<div class="order-delivery">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">收货地址</label>
<div class="layui-input-block">
<p class="input-text len-long"> {{ d.full_address }}{{ d.address }}</p>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发货编号</label>
<div class="layui-input-block">
<input type="text" name="delivery_code" lay-verify="required" placeholder="" autocomplete="off" class="layui-input len-mid">
</div>
</div>
<input type="hidden" name="order_id" value="{{ d.order_id }}" class="layui-input" />
<div class="form-row">
<button type="button" class="layui-btn" lay-submit id="button_delivery_order" lay-filter="button_delivery_order" style="display:none;">保存
</button>
</div>
</div>
</div>
</script>
<script>
/**
* 外卖配送订单发货
*/
var submitting = false;
function orderDelivery(data) {
layui.use(['form', 'laytpl'], function () {
var laytpl = layui.laytpl, form = layui.form;
form.render();
//获取模板
var getTpl = $("#order_delivery_html").html();
laytpl(getTpl).render(data, function (html) {
layer.open({
type: 1,
shadeClose: true,
shade: 0.3,
fixed: false,
scrollbar: false,
title: "订单发货",
area: '800px',
btn: ['保存'],
yes: function (index, layero) {
$("#button_delivery_order").click();
},
content: html,
cancel: function (index, layero) {
//右上角关闭回调
layer.close(index);
//return false 开启该代码可禁止点击该按钮关闭
},
success: function (layero, index) {
form.render();
form.on('submit(button_delivery_order)', function (data) {
if (submitting) return false;
submitting = true;
$.ajax({
type: "post",
url: ns.url("pointexchange://shop/pointexchange/delivery"),
async: true,
dataType: 'json',
data: data.field,
success: function (res) {
layer.msg(res.message, {}, function () {
submitting = false;
if (res.code == 0) {
listenerHash(); // 刷新页面
layer.closeAll();
}
});
}
})
});
}
});
})
})
}
function delivery(order_info){
//只有商品订单才需要发货
if(order_info.type == 1){
if(order_info.delivery_type == 'express'){
orderDelivery(order_info);
}else if(order_info.delivery_type == 'store'){
deliveryAction(order_info.order_id);
}else if(order_info.delivery_type == 'local'){
deliveryAction(order_info.order_id);
}
}
}
/**
* 配送操作
* @param order_id
*/
function deliveryAction(order_id){
$.ajax({
type: "post",
url: ns.url("pointexchange://shop/pointexchange/delivery"),
async: true,
dataType: 'json',
data: {order_id:order_id},
success: function (res) {
layer.msg(res.message, {}, function () {
if (res.code == 0) {
listenerHash(); // 刷新页面
layer.closeAll();
}
});
}
})
}
</script>

View File

@@ -0,0 +1,104 @@
<style>
.input-text {
height: auto;
}
</style>
<div class="layui-card card-common card-brief">
<div class="layui-card-header">
<span class="card-title">兑换订单信息</span>
</div>
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label mid">订单编号</label>
<div class="layui-input-block">
<p class="input-text len-long">{$order_info.order_no}</p>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">支付流水号</label>
<div class="layui-input-block">
<p class="input-text len-long">{$order_info.out_trade_no}</p>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">兑换积分数</label>
<div class="layui-input-block">
<p class="input-text len-mid">{$order_info.point}</p>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">兑换价格</label>
<div class="layui-input-block">
<p class="input-text len-mid">{$order_info.exchange_price}</p>
</div>
</div>
{if $order_info.buyer_message != ''}
<div class="layui-form-item">
<label class="layui-form-label mid">买家留言</label>
<div class="layui-input-block">
<p class="input-text len-mid">{$order_info.buyer_message}</p>
</div>
</div>
{/if}
</div>
</div>
<div class="layui-card card-common card-brief">
<div class="layui-card-header">
<span class="card-title">商品信息</span>
</div>
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label mid">兑换商品名称</label>
<div class="layui-input-block">
<p class="input-text len-long">{$order_info.exchange_name}</p>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">兑换商品图片</label>
<div class="layui-input-block img-upload">
<div class="upload-img-block square">
<div class="upload-img-box">
<img layer-src src="{:img($order_info.exchange_image)}" />
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">兑换数量</label>
<div class="layui-input-block">
<p class="input-text len-mid">{$order_info.num}</p>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label mid">类型名称</label>
<div class="layui-input-block">
<p class="input-text len-mid">{$order_info.type_name}</p>
</div>
</div>
<div class="layui-card card-common card-brief">
<div class="form-row mid">
<button type="button" class="layui-btn layui-btn-primary" onclick="backPointExchangeList()">返回</button>
</div>
</div>
</div>
</div>
<script>
layui.use('form', function() {
var form = layui.form;
form.render();
});
function backPointExchangeList() {
location.hash = ns.hash("pointexchange://shop/pointexchange/lists")
}
</script>

View File

@@ -0,0 +1,333 @@
<link rel="stylesheet" href="POINTEXCHANGE_CSS/order_list.css"/>
<style>
.layui-layout-admin .layui-form-item .layui-input-inline{background-color: #fff;}
.layui-layout-admin .table-tab .layui-tab-title{margin-bottom: 15px;}
</style>
<!-- 搜索框 -->
<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">
<input type="text" name="search_text" 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" name="name" 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" name="mobile" placeholder="请输入会员电话" 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>
</div>
</div>
<div class="form-row">
<button type="button" class="layui-btn" lay-filter="search" lay-submit>筛选</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
</div>
</div>
<div class="layui-tab table-tab" lay-filter="order_tab">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="">全部</li>
<li lay-id="1">商品</li>
<li lay-id="2">优惠券</li>
<li lay-id="3">红包</li>
</ul>
<div class="layui-tab-content">
<div id="order_list"></div>
</div>
<div id="order_page"></div>
</div>
<script src="POINTEXCHANGE_JS/order_list.js"></script>
<script>
var form,laypage,element,laydate;
var is_refresh = false;
var order_type_status_json = {'1': '商品', '2': '优惠券', '3': '红包'};
layui.use(['laypage','laydate','form', 'element'], function(){
form = layui.form;
laypage = layui.laypage;
element = layui.element;
laydate = layui.laydate;
form.render();
// 支付时间
laydate.render({
elem: '#start_time'
,type: 'datetime'
,change: function(value, date, endDate){
$(".date-picker-btn").removeClass("selected");
}
});
laydate.render({
elem: '#end_time'
,type: 'datetime'
,change: function(value, date, endDate){
$(".date-picker-btn").removeClass("selected");
}
});
//监听Tab切换以改变地址hash值
element.on('tab(order_tab)', function(){
$(".all-selected-checkbox input").prop("checked",false);
var type = this.getAttribute('lay-id');
var hash_data = getHashList();
hash_data.type = type;
hash_data.page = 1;
setHashOrderList(hash_data);
});
//监听筛选事件
form.on('submit(search)', function(data){
is_refresh = true;
data.field.page = 1;
resetOrderStatus(data.field.order_type, 2);
setHashOrderList(data.field);
setOrderStatusTab(data.field.order_status);
return false;
});
getHashData();
getOrderList();//筛选
});
var order = new Order();
function getOrderList(){
var url = ns.url("pointexchange://shop/pointexchange/lists", getHashArr().join('&'));
$.ajax({
type : 'get',
dataType: 'json',
url :url,
success : function(res){
if(res.code == 0){
order.setData(res.data);
$("#order_list").html(order.fetch());
form.render();
laypage_util = new Page({
elem: 'order_page',
count: res.data.count,
curr: getHashPage(),
limit:getHashData()['page_size'] || 10,
callback: function(obj){
var hash_data = getHashData();
hash_data.page = obj.curr;
hash_data.page_size = obj.limit;
setHashOrderList(hash_data);
}
});
}else{
layer.msg(res.message);
}
}
});
}
// 通过hash获取页数
function getHashPage(){
var page = 1;
var startTime = '';
var endTime = '';
var hash_arr = getHashArr();
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
switch(item_arr[0]){
case "page":
page = item_arr[1];
break;
case "start_time":
startTime = ns.date_to_time(item_arr[1].split("%")[0]);
break;
case "end_time":
endTime = ns.date_to_time(item_arr[1].split("%")[0]);
break;
}
}
});
var _time = (endTime - startTime) / (24 * 60 * 60);
if (_time == 6) {
$(".date-picker-btn-seven").addClass("selected");
$(".date-picker-btn-thirty").removeClass("selected");
} else if (_time == 29) {
$(".date-picker-btn-thirty").addClass("selected");
$(".date-picker-btn-seven").removeClass("selected");
} else {
$(".date-picker-btn-seven").removeClass("selected");
$(".date-picker-btn-thirty").removeClass("selected");
}
return page;
}
//从hash中获取数据
function getHashData(){
var hash_arr = getHashArr();
var form_json = {
"start_time" : "",
"end_time" : "",
"nickname" : "",
"order_no" : "",
"type" : "",
'page_size':'',
"page" : ""
};
if(hash_arr.length > 0){
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
$.each(form_json,function(key, form_val){
if(item_arr[0] == key){
form_json[key] = item_arr[1];
}
})
}
})
}
resetOrderStatus(form_json.type, 2);
setOrderStatusTab(form_json.type);
return form_json;
}
function getHashList(){
var hash_arr = getHashArr();
var form_json = {
"start_time" : "",
"end_time" : "",
"nickname" : "",
"order_no" : "",
"type" : "",
'page_size':'',
"page" : ""
};
if(hash_arr.length > 0){
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
$.each(form_json,function(key, form_val){
if(item_arr[0].indexOf(key) != "-1"){
form_json[key] = item_arr[1];
}
})
}
})
}
return form_json;
}
function setOrderStatusTab(order_status){
$(".layui-tab-title li").removeClass("layui-this");
$(".layui-tab-title li").each(function(){
var status = $(this).attr("lay-id");
if(status == order_status){
$(this).addClass("layui-this")
}
});
}
//重置状态tab 选项卡
function resetOrderStatus(order_type, is_tab){
var hash_order_type = getHashOrderType();
if(hash_order_type != order_type || is_refresh == false){
if(is_tab != 1 || is_refresh == false) {
$(".layui-tab-title li").not(':first').remove();
$(".layui-tab-title li:first").addClass("layui-this");
}
$.each(order_type_status_json,function(index, itemobj){
if(is_tab != 1 || is_refresh == false) {
$(".layui-tab-title").append('<li lay-id="' + index + '">' + itemobj + '</li>');
}
});
form.render('select');
}
}
/**
* 获取哈希值order_type
*/
function getHashOrderType(){
var hash_arr = getHashArr();
var type = "";
if(hash_arr.length > 0){
$.each(hash_arr,function(index, itemobj){
var item_arr = itemobj.split("=");
if(item_arr.length == 2){
if(item_arr[0].indexOf("type") != "-1") {
type = item_arr[1];
}
}
})
}
return type;
}
function setHashOrderList(data){
localStorage.setItem('formSubmit','search'); // 表单搜索标识,防止页面重新加载
var hash = ['url=pointexchange://shop/pointexchange/lists'];
for (let key in data) {
if (data[key] != '' && data[key] != 'all') {
hash.push(`${key}=${data[key]}`)
}
}
location.hash = hash.join('&');
getOrderList();
}
/**
* 七天时间
*/
function datePick(date_num,event_obj){
$(".date-picker-btn").removeClass("selected");
$(event_obj).addClass('selected');
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 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);
}
</script>