2023-11-27 09:45:13 +08:00

461 lines
20 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use app\models\Order;
/**
* @author Any
* @description KISS
* @date 2021年6月30日
* @version 1.0.0
*
* _____LOG_____
*
*/
$this->title = '售后订单列表';
$this->params['breadcrumbs'][] = $this->title;
$status_labels = Order::statusLabels();
$status = \Yii::$app->request->get('status');
$cat_id = \Yii::$app->request->get('cat_id');
?>
<style type="text/css">
.layui-table-cell {
height: auto;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-header">
<?= $this->title ?>
</div>
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline layui-float-right layui-form">
<div class="layui-inline layui-form-item">
<div class="layui-input-inline">
<select name="store_id">
<option value=""></option>
<?php foreach ($store as $index => $item): ?>
<option value="<?= $item['id'] ?>" <?= Yii::$app->request->get("store_id") == $item['id'] ? "selected" : "" ?> ><?= $item['name'] ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="layui-inline layui-form-item">
<div class="layui-input-inline">
<select class="layui-select" name="status">
<option value="" <?= $status === null ? 'selected' : '' ?>>全部状态</option>
<?php foreach ($status_labels as $key => $val): ?>
<option value="<?= $key ?>" <?= $status == $key && $status != null ? 'selected' : '' ?>><?= $val ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="layui-inline layui-form-item">
<label class="layui-form-label">关键词</label>
<div class="layui-input-block">
<input type="text" name="keywords" placeholder="搜索标题" autocomplete="off" class="layui-input"
value="<?= \Yii::$app->request->get("keywords") ?>">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="dtable-search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</div>
</div>
</div>
<div class="layui-card-body">
<table id="dtable" lay-filter="dtable"></table>
</div>
</div>
</div>
<!--工具栏模板-->
<script type="text/html" id="toolBarTpl">
<div class="layui-btn-container">
</div>
</script>
<!--行操作列模板-->
<script type="text/html" id="rowBarTpl">
{{# if(d.state == '1'){ }}
<button class="layui-btn layui-btn-xs" lay-event="status_yes">同意</button>
<button class="layui-btn layui-btn-xs layui-btn-danger" lay-event="status_no">拒绝</button>
{{# } else if(d.state == '2'){ }}
<button class="layui-btn layui-btn-xs" lay-event="refund">退款</button>
{{# } }}
</script>
<script type="text/html" id="statusTpl">
{{# if(d.state == '1'){ }}
<span class="layui-badge layui-bg-orange">待处理</span>
{{# } else if(d.state == '2'){ }}
<span class="layui-badge layui-bg-green">已同意</span>
{{# } else if(d.state == '3'){ }}
<span class="layui-badge layui-bg-red">已拒绝</span>
{{# } else if(d.state == '4'){ }}
<span class="layui-badge layui-bg-green">已退款</span>
{{# } }}
</script>
<script type="text/html" id="phoneTpl">
<span>用户名:{{d.nickname}}</span><br>
<span>手机号:{{d.mobile_phone}}</span>
</script>
<script type="text/html" id="dateTpl">
<span>{{d.start_time}}</span><br>
<span>{{d.end_time}}</span>
</script>
<script type="text/html" id="ordernoTpl">
<span>{{d.order_no}}</span><br>
<!-- <span class="layui-badge layui-bg-blue">分账订单号:{{d.psOrderMulti_cn}}</span><br>-->
<!-- <span class="layui-badge layui-bg-blue">完结订单号:{{d.psOrderFinish_cn}}</span>-->
</script>
<script type="text/html" id="duration">
<span>{{d.duration}}</span>
</script>
<script>
<?php $this->beginBlock('js_script_wrap') ?>
layui.config({
base: '/statics/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'user', 'table', 'form'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table
, admin = layui.admin;
form.render();
//search
form.on('submit(dtable-search)', function (obj) {
var field = obj.field;
reload_table_data(field);
});
//重新加载表格数据
function reload_table_data(conf) {
table.reload('dtable', {
url: '<?=\Yii::$app->urlManager->createUrl(['admin/mall/order/sale'])?>'
, page: true
, where: conf
});
};
//执行渲染
table.render({
//指定原始表格元素选择器推荐id选择器
elem: '#dtable'
//容器高度
//,height: 315
//容器宽度
//,width: 720
//设置表头
, cols: [[
{checkbox: true}
, {field: 'id', title: 'ID', width: 80}
, {field: 'order_no', title: '订单号', templet: '#ordernoTpl', minWidth: 220}
// , {field: 'total_price', title: '订单金额', minWidth: 100}
// , {field: 'yh_price', title: '优惠金额', minWidth: 100}
, {field: 'total_pay_price', title: '实付金额', minWidth: 100}
, {field: 'refund_price_res', title: '实退金额', minWidth: 100}
, {field: 'mobile_phone', title: '下单用户', templet: '#phoneTpl', minWidth: 200}
, {field: 'store_name', title: '门店', minWidth: 200}
, {field: 'plugin_sign_cn', title: '购买服务', minWidth: 80}
, {field: 'goods_id', title: '包厢编号', templet: '#ball_number', minWidth: 120}
, {field: 'state', title: '状态', templet: '#statusTpl', minWidth: 100}
, {field: 'merchant_remark', title: '备注',templet:'#earningsTpl'}
, {field: 'created_at_cn', title: '预定时间', minWidth: 220, templet: '#dateTpl'}
// , {field: 'duration', title: '预定时长', templet: '#duration', minWidth: 120}
, {title: '操作', fixed: 'right', toolbar: '#rowBarTpl', width: 230}
]
]
, url: '<?=\Yii::$app->urlManager->createUrl(['admin/mall/order/sale'])?>'
, page: true
//指向自定义工具栏模板选择器
, toolbar: '#toolBarTpl'
//头部工具栏右侧的图标按钮
, defaultToolbar: ['filter', 'print', 'exports']
, limit: 10
, limits: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
, title: '<?=$this->title?>'
, data: []
, done: function (res, curr, count) {
setTimeout(function () {
$(".layui-table-main tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
});
});
$(".layui-table-header tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
});
});
}, 500);
}
});
//监听工具条
table.on('tool(dtable)', function (obj) {
var row_data = obj.data;
var lay_event = obj.event;
var id = row_data.id;
var confirm_url = null;
var confirm_tip = null;
var ids = [];
ids.push(id);
var merchant_remark = '';
if (lay_event == "status_yes") {
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/mall/order/status-yes'])?>";
layer.open({
type: 1
,title:'审核通过'
,offset: 'auto'
,id: 'layerDemo_status_yes' //防止重复弹出
,content: '<div style="padding: 20px 20px;"><textarea style="border:0;resize: none" name="merchant_remark" id="merchant_remark" placeholder="您的订单正在退款,请耐心等待" class="layui-textarea"></textarea></div>'
,btn: ['确定', '取消']
,btnAlign: 'c' //按钮居中
,shade: 0 //不显示遮罩
,yes: function(){
merchant_remark = $('#merchant_remark').val();
$.ajax(confirm_url, {
type: "POST",
dataType: "json",
data: {
ids: ids,
merchant_remark: merchant_remark,
_csrf: _csrf
},
success: function (res) {
if (res.code == 0) {
layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
layer.closeAll();
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
},
error: function (xhr, type, err) {
layer.msg(xhr.responseText, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
})
}
});
return;
}
if (lay_event == "status_no") {
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/mall/order/status-no'])?>";
layer.open({
type: 1
,title:'驳回理由'
,offset: 'auto'
,id: 'layerDemo_status_yes' //防止重复弹出
,content: '<div style="padding: 20px 20px;"><textarea style="border:0;resize: none" name="merchant_remark" id="merchant_remark" placeholder="请输入驳回理由" class="layui-textarea"></textarea></div>'
,btn: ['确定', '取消']
,btnAlign: 'c' //按钮居中
,shade: 0 //不显示遮罩
,yes: function(){
merchant_remark = $('#merchant_remark').val();
$.ajax(confirm_url, {
type: "POST",
dataType: "json",
data: {
ids: ids,
merchant_remark: merchant_remark,
_csrf: _csrf
},
success: function (res) {
if (res.code == 0) {
layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
layer.closeAll();
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
},
error: function (xhr, type, err) {
layer.msg(xhr.responseText, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
})
}
});
return;
}
if (lay_event == "refund") {
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/mall/order/refund'])?>";
layer.open({
type: 1
,title:'退款备注'
,offset: 'auto'
,id: 'layerDemo_status_yes' //防止重复弹出
,content: '<div style="padding: 20px 20px;">' +
'<textarea style="border:0;resize: none" name="merchant_remark" id="merchant_remark" placeholder="您的订单已成功退款,预计1-3个工作日到账,请耐心等待" class="layui-textarea"></textarea>' +
'<input type="number" placeholder="填写退款金额" class="layui-input" id="reset_money" value="'+(row_data.total_pay_price)+'">' +
'</div>'
,btn: ['确定', '取消']
,btnAlign: 'c' //按钮居中
,shade: 0 //不显示遮罩
,yes: function(){
var merchant_remark = $('#merchant_remark').val();
var reset_money = $('#reset_money').val();
if(parseFloat(reset_money) > parseFloat(row_data.total_pay_price)){
return layer.msg('退款金额不能大于实付金额')
}
$.ajax(confirm_url, {
type: "POST",
dataType: "json",
data: {
ids: ids,
merchant_remark: merchant_remark,
reset_money:reset_money,
_csrf: _csrf
},
success: function (res) {
if (res.code == 0) {
layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
layer.closeAll();
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
},
error: function (xhr, type, err) {
layer.msg(xhr.responseText, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
})
}
});
return;
}
});
//查询分账进度
function search_multi(data) {
var loadingMsg = layer.msg('数据请求中...', {icon: 16, shade: [0.5], scrollbar: false, time: 0});
var confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/mall/order/search-multi2'])?>";
$.ajax(confirm_url, {
type: "POST",
dataType: "json",
data: {
id: data.id,
_csrf: _csrf
},
success: function (res) {
if (res.code == 0) {
layer.close(loadingMsg);
layer.open({
type: 1
,
title: false //不显示标题栏
,
closeBtn: false
,
area: '400px;'
,
shade: 0.8
,
id: 'LAY_layuipro' //设定一个id防止重复弹出
,
btn: ['确认']
,
btnAlign: 'c'
,
moveType: 1 //拖拽模式0或者1
,
content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">' + res.msg + '</div>'
});
} else {
layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
},
error: function (xhr, type, err) {
layer.msg(xhr.responseText, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
}
})
}
});
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>