680 lines
28 KiB
HTML
680 lines
28 KiB
HTML
{layout name="layout1" /}
|
||
<style>
|
||
.layui-table-cell {
|
||
height:auto;
|
||
}
|
||
.goods-content>div:not(:last-of-type) {
|
||
border-bottom:1px solid #DCDCDC;
|
||
}
|
||
.goods-data::after{
|
||
display: block;
|
||
content: '';
|
||
clear: both;
|
||
}
|
||
.goods_name_hide{
|
||
overflow:hidden;
|
||
white-space:nowrap;
|
||
text-overflow: ellipsis;
|
||
}
|
||
.operation-btn {
|
||
margin: 5px;
|
||
}
|
||
.table-operate{
|
||
text-align: left;
|
||
font-size:14px;
|
||
padding:0 5px;
|
||
height:auto;
|
||
overflow:visible;
|
||
text-overflow:inherit;
|
||
white-space:normal;
|
||
word-break: break-all;
|
||
}
|
||
</style>
|
||
|
||
<div class="layui-fluid">
|
||
<div class="layui-card">
|
||
<div class="layui-card-body">
|
||
<div class="" lay-accordion="" style="display: flex;justify-content: space-between;">
|
||
<div>服务单号:{$info.order_sn}</div>
|
||
<div>客户信息:{$info.consignee} {$info.mobile}</div>
|
||
<div>订单总次数:总次数{$info.number} 已使用{$info.ysycs} 待使用{$info.sycs} 暂停{$info.ztcs}</div>
|
||
<div>订单总金额:{$info.total_amount}元</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
|
||
<ul class="layui-tab-title">
|
||
<li data-type='' class="layui-this">全部状态</li>
|
||
|
||
</ul>
|
||
<div class="layui-tab-item layui-show">
|
||
<div class="layui-card">
|
||
<div class="layui-card-body">
|
||
<table id="order-lists" lay-filter="order-lists"></table>
|
||
<script type="text/html" id="order-operation" >
|
||
<div class="table-operate">
|
||
<a class=" layui-btn-primary layui-btn-sm " lay-event="reserva" style="display: inline-block;">改约</a>
|
||
|
||
{{# if(d.status==3){}}
|
||
<a class="layui-btn-primary layui-btn-sm" lay-event="delsd" style="display: inline-block; margin-top:10px;color:chocolate">取消</a>
|
||
{{# }else{ }}
|
||
<a class="layui-btn-primary layui-btn-sm" lay-event="del" style="display: inline-block; margin-top:10px">暂停</a>
|
||
{{# } }}
|
||
{{# if(d.lock==1){}}
|
||
<a class="layui-btn-primary layui-btn-sm" lay-event="unlock" style="display: inline-block; margin-top:10px;color:chocolate">解锁</a>
|
||
{{# }
|
||
else{ }}
|
||
<a class="layui-btn-primary layui-btn-sm " lay-event="lock" style="display: inline-block; margin-top:10px">锁定</a>
|
||
{{# } }}
|
||
|
||
<a class="layui-btn-primary layui-btn-sm " lay-event="complete" style="display: inline-block; margin-top:10px">完成</a>
|
||
<a class="layui-btn-primary layui-btn-sm" lay-event="delss" style="display: inline-block;margin-top:-2px">删除</a>
|
||
<a class="layui-btn-primary layui-btn-sm " lay-event="remarksd" style="display: inline-block; margin-top:10px">备注</a>
|
||
<a class="layui-btn layui-btn-danger layui-btn-sm " lay-event="log" style="display: inline-block;margin-top:10px">日志</a>
|
||
</div>
|
||
</script>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!--订单信息-->
|
||
<script type="text/html" id="order">
|
||
<div style="text-align: left">
|
||
<p>用户ID:{{d.staff_id}}——保洁姓名:{{d.staff_name}}</p>
|
||
<p>电话:{{d.staff_mobile}}</p>
|
||
<p>员工类型:保洁师</p>
|
||
<p>出行工具:公交车</p>
|
||
|
||
<p>保洁状态:
|
||
{{# if(d.staff_static==0){}} 等待保洁师确认
|
||
{{# }
|
||
else if(d.staff_static==1) { }}
|
||
服务之中 {{# } else{ }} 服务已经完成
|
||
{{# } }}
|
||
</div>
|
||
</script>
|
||
<script type="text/html" id="userinfo">
|
||
<div style="text-align:left">
|
||
<p>服务单号:{{d.fworder_sn}}</p>
|
||
</div>
|
||
</script>
|
||
<script type="text/html" id="adder">
|
||
<div style="text-align:left">
|
||
<p>{{d.autotime}} {{d.xq}} {{d.addtime}}
|
||
</p>
|
||
<p>距离:{{d.km}} KM</p>
|
||
<p style="height:10px"></p>
|
||
<p>服务开始时间:2023.10.11</p>
|
||
<p>服务结束时间:2023.10.11</p>
|
||
|
||
<p>加时:{{d.timeadd}}小时</p>
|
||
<p>距离上门时间:{{d.jldate}}天</p>
|
||
|
||
|
||
</p>
|
||
|
||
|
||
</div>
|
||
</script>
|
||
<script type="text/html" id="delivery">
|
||
<div style="text-align: left">
|
||
<p>客户姓名:{{d.consignee}}</p>
|
||
<p>手机号码:{{d.mobile}}</p>
|
||
<p>房屋地址:{{d.address}}</p>
|
||
|
||
</div>
|
||
|
||
</script>
|
||
|
||
<script>
|
||
layui.config({
|
||
version:"{$front_version}",
|
||
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
|
||
}).extend({
|
||
index: 'lib/index' //主入口模块
|
||
}).use(['index', 'table', 'like', 'laydate'], function () {
|
||
var $ = layui.$
|
||
, form = layui.form
|
||
, table = layui.table
|
||
, like = layui.like
|
||
, element = layui.element
|
||
, laydate = layui.laydate;
|
||
var listType = '';
|
||
//监听搜索
|
||
form.on('submit(order-search)', function (data) {
|
||
var field = data.field;
|
||
//执行重载
|
||
table.reload('order-lists', {
|
||
where: field,
|
||
page: {
|
||
curr: 1
|
||
}
|
||
});
|
||
});
|
||
|
||
//清空查询
|
||
form.on('submit(order-clear-search)', function () {
|
||
$('#keyword').val('');
|
||
$('#order_status').val('');
|
||
$('#goods_name').val('');
|
||
$('#pay_way').val('');
|
||
$('#order_type').val('');
|
||
$('#order_source').val('');
|
||
$('#start_time').val('');
|
||
$('#end_time').val('');
|
||
$('#delivery_type').val('');
|
||
form.render('select');
|
||
//刷新列表
|
||
table.reload('order-lists', {
|
||
where: [],
|
||
page: {
|
||
curr: 1
|
||
}
|
||
});
|
||
});
|
||
//日期时间范围
|
||
laydate.render({
|
||
elem: '#start_time'
|
||
,type: 'datetime'
|
||
,trigger: 'click'
|
||
});
|
||
|
||
|
||
laydate.render({
|
||
elem: '#end_time'
|
||
,type: 'datetime'
|
||
,trigger: 'click'
|
||
});
|
||
|
||
|
||
|
||
//获取列表
|
||
getList(listType);
|
||
//切换列表
|
||
element.on('tab(tab-all)', function (data) {
|
||
$('#keyword').val('');
|
||
$('#order_status').val('');
|
||
$('#goods_name').val('');
|
||
$('#pay_way').val('');
|
||
$('#order_type').val('');
|
||
$('#start_time').val('');
|
||
$('#end_time').val('');
|
||
$('#delivery_type').val('');
|
||
form.render('select');
|
||
listType = $(this).attr('data-type');
|
||
getList(listType);
|
||
if (listType !== ''){
|
||
$('.order_status').hide();
|
||
}else {
|
||
$('.order_status').show();
|
||
}
|
||
});
|
||
|
||
function getList(type) {
|
||
table.render({
|
||
elem: '#order-lists'
|
||
, url: '{:url("Orderautomatic/infolist")}?order_sn='+'{$info.order_sn}'
|
||
, cols: [[
|
||
{field:'id',title: 'id',width:80,align: 'center',}
|
||
, {field: 'phone', title: '服务单号', width:240, align: 'center',templet:'#userinfo'}
|
||
, {field: 'delivery', title: '客户信息', align: 'center',templet:'#delivery',width:180}
|
||
, {field: 'adder', title: '上门时间',templet:'#adder',width:340,}
|
||
, {field: 'order', title: '服务人员', align: 'center', templet:'#order',width:240}
|
||
,{field: 'total_order_amount', title: '状态', templet:function (res) {
|
||
var status = res.status;
|
||
if (status==0) {
|
||
return '<div > <i class="fa fa-circle"></i>等待服务</div>';
|
||
}else if(status==3){
|
||
return '<div > <i class="fa fa-circle"></i>已暂停服务</div>';
|
||
}
|
||
else{
|
||
|
||
return '<div style="color:#f75444"> <i class="fa fa-circle"></i> 已服务</div>';
|
||
}
|
||
}
|
||
}
|
||
,{field: 'remark', title: '备注信息', align: 'center',}
|
||
, {fixed: 'right', title: '操作', width: 140, align: 'center', toolbar: '#order-operation'}
|
||
]]
|
||
, page: true
|
||
, text: {none: '暂无数据!'}
|
||
, parseData: function (res) {
|
||
return {
|
||
"code": res.code,
|
||
"msg": res.msg,
|
||
"count": res.data.count,
|
||
"data": res.data.list,
|
||
};
|
||
}
|
||
,done: function(res, curr, count){
|
||
// 解决操作栏因为内容过多换行问题
|
||
$(".layui-table-main tr").each(function (index, val) {
|
||
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
|
||
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
|
||
});
|
||
}
|
||
});
|
||
};
|
||
//监听工具条
|
||
table.on('tool(order-lists)', function (obj) {
|
||
var status=obj.data.status;
|
||
|
||
if(obj.event == 'log'){
|
||
var order_sn = obj.data.id;
|
||
layer.open({
|
||
type: 2
|
||
,title: '订单的操作记录'
|
||
,content: '{:url("Orderautomatic/orderlog")}?id='+order_sn
|
||
,area: ['65%', '65%']
|
||
,yes: function(index, layero){
|
||
|
||
}
|
||
})
|
||
return
|
||
}
|
||
|
||
|
||
if(status==1){
|
||
layui.layer.msg('订单已经完成,无法修改订单的状态', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
if(obj.event === 'reserva'){
|
||
var status=obj.data.lock;
|
||
if(status==1){
|
||
layui.layer.msg('请联系管理员解锁订单', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
var id = obj.data.id;
|
||
layer.open({
|
||
type: 2
|
||
,title: '修改订单预约的时间'
|
||
,content: '{:url("Orderautomatic/eitdata")}?id='+id
|
||
,area: ['55%', '60%']
|
||
,btn: ['确定', '取消']
|
||
,yes: function(index, layero){
|
||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||
,submit = layero.find('iframe').contents().find('#edit-submits');
|
||
//监听提交
|
||
iframeWindow.layui.form.on('submit(edit-submits)', function(data){
|
||
var field = data.field;
|
||
if(data.field.end_time==""){
|
||
layui.layer.msg('服务日期不能为空', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
});
|
||
return;
|
||
}
|
||
$.ajax({
|
||
url:'{:url("Orderautomatic/eitdata")}?id='+id,
|
||
data:field,
|
||
type:"post",
|
||
success:function(res)
|
||
{
|
||
if(res.code == 1)
|
||
{
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
});
|
||
layer.close(index); //关闭弹层
|
||
table.reload('order-lists'); //数据刷新
|
||
}
|
||
}
|
||
});
|
||
});
|
||
submit.trigger('click');
|
||
}
|
||
})
|
||
}
|
||
|
||
//暂停订单执行
|
||
if(obj.event === 'del'){
|
||
var status=obj.data.status;
|
||
if(status==1){
|
||
layui.layer.msg('订单已经完成,无法修改订单状态', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
var id = obj.data.id;
|
||
layer.confirm('暂停后订单将不执行,确认暂停订单吗?', {
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/dels")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
//锁定订单
|
||
if(obj.event === 'lock'){
|
||
var id = obj.data.id;
|
||
layer.confirm('锁定订单后不是超级管理员不能解锁订单?', {
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/lock")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
//锁定订单
|
||
if(obj.event === 'unlock'){
|
||
var id = obj.data.id;
|
||
layer.confirm('锁定订单后不是超级管理员不能解锁订单?', {
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/unlock")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
|
||
|
||
//删除订单
|
||
if(obj.event === 'delss'){
|
||
var status=obj.data.status;
|
||
if(status==1){
|
||
layui.layer.msg('订单已经完成,无法删除订单', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
var id = obj.data.id;
|
||
layer.confirm('请注意操作订单,订单日志记录更新?',{
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/delss")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
//删除订单
|
||
if(obj.event === 'delss'){
|
||
var ids = obj.data.id;
|
||
layer.confirm('请注意操作订单,订单日志记录更新?',{
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/delss")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
//设置订单已完成状态
|
||
if(obj.event === 'complete'){
|
||
var status=obj.data.status;
|
||
if(status==1){
|
||
layui.layer.msg('订单已经完成,无法修改状态', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
var id = obj.data.id;
|
||
layer.confirm('请注意操作订单,订单日志记录更新?',{
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/complete")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
|
||
|
||
//编辑订单
|
||
if(obj.event === 'edit'){
|
||
var status=obj.data.lock;
|
||
var id=obj.data.id;
|
||
if(status==1){
|
||
layui.layer.msg('请联系管理员解锁订单', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
var index = layer.open({
|
||
type: 2
|
||
,title: '增加排单预约'
|
||
,content: '{:url("Orderautomatic/staff")}?id='+id
|
||
,area: ['30%', '60%']
|
||
,btn: ['保存', '取消']
|
||
,maxmin: true
|
||
,yes: function(index, layero){
|
||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||
,submitID = 'add-user_level-submit'
|
||
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
||
//监听提交
|
||
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
||
var field = data.field;
|
||
like.ajax({
|
||
url:'{:url("Orderautomatic/staff")}?id='+id,
|
||
data:field,
|
||
type:"post",
|
||
success:function(res)
|
||
{
|
||
if(res.code == 1)
|
||
{
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
});
|
||
layer.close(index); //关闭弹层
|
||
table.reload('order-lists'); //数据刷新
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
submit.trigger('click');
|
||
}
|
||
});
|
||
}
|
||
//取消暂停服务
|
||
if(obj.event === 'delsd'){
|
||
var status=obj.data.status;
|
||
if(status==1){
|
||
layui.layer.msg('订单已经完成,无法修改暂停', {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
},
|
||
)
|
||
return
|
||
};
|
||
var id = obj.data.id;
|
||
layer.confirm('取消暂停后订单将继续执行,确认取消暂停订单吗?', {
|
||
btn: ['确认','取消'] //按钮
|
||
}, function(){
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/delsd")}?id='+id
|
||
, data: {'order_id': id}
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code == 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
},function () {
|
||
table.reload('order-lists');
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
|
||
|
||
|
||
//保洁人员备注信息
|
||
if(obj.event === 'remarksd'){
|
||
var id = obj.data.id;
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/remarks")}'
|
||
, data: {'id': id}
|
||
, type: 'get'
|
||
, success: function (res) {
|
||
if (res.code === 1) {
|
||
layer.prompt({title: '备注信息', formType: 2, value: res.data.order_remarks}, function(value, index){
|
||
layer.close(index);
|
||
like.ajax({
|
||
url: '{:url("Orderautomatic/remarks")}'
|
||
, data: {'id': id, "order_remarks": value }
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code === 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
});
|
||
table.reload('order-lists');
|
||
layer.close(index); //关闭弹层
|
||
table.reload('user_level-lists'); //数据刷新
|
||
}
|
||
}
|
||
});
|
||
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
//商家备注
|
||
if(obj.event === 'remarks') {
|
||
like.ajax({
|
||
url: '{:url("order/remarks")}'
|
||
, data: {'id': id}
|
||
, type: 'get'
|
||
, success: function (res) {
|
||
if (res.code === 1) {
|
||
layer.prompt({title: '备注信息', formType: 2, value: res.data.order_remarks}, function(value, index){
|
||
layer.close(index);
|
||
like.ajax({
|
||
url: '{:url("order/remarks")}'
|
||
, data: {'id': id, "order_remarks": value }
|
||
, type: 'post'
|
||
, success: function (res) {
|
||
if (res.code === 1) {
|
||
layui.layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
});
|
||
table.reload('order-lists');
|
||
layer.close(index); //关闭弹层
|
||
table.reload('user_level-lists'); //数据刷新
|
||
}
|
||
}
|
||
});
|
||
|
||
});
|
||
}
|
||
}
|
||
});
|
||
|
||
}
|
||
});
|
||
});
|
||
</script> |