添加网站文件

This commit is contained in:
2025-12-22 13:59:40 +08:00
commit 117aaf83d1
19468 changed files with 2111999 additions and 0 deletions

View File

@@ -0,0 +1,268 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
.category{
display: none;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<input type="hidden" name="order_sn" value="{$order_sn}">
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>服务时间:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="end_time" lay-verType="tips" onblur="checkPassword()" placeholder="请选日期" verify-msg="请选择服务时间" name="end_time">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">服务人次:</label>
<div class="layui-input-block" >
<select name="number" id="number">
<option value="1">单人</option>
<option value="2">双人</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单类型:</label>
<div class="layui-input-block">
<input type="radio" name="type" title="非固定" value="3" lay-filter="link" checked="turn">
<input type="radio" name="type" title="每周固定" value="2" lay-filter="link">
<input type="radio" name="type" title="自由固定" value="1" lay-filter="link">
</div>
</div>
<div class="layui-form-item link url" >
<div class="layui-form-item" >
<label class="layui-form-label"><span class="tips">*</span>日期类型:</label>
<div class="layui-col-sm4" style="width: 80%;">
<select name="addtim" id="addtim" lay-filter="search_position">
<option value="1">上午</option>
<option value="2">下午</option>
</select>
</div>
</div>
</div>
<div class="layui-form-item link page" style="display: none;">
<div class="layui-form-item">
<label class="layui-form-label">选择员工:</label>
<div class="layui-input-block">
<select name="privilege" v-model="selectedOptions" class="privilege" id="privilege" xm-select="privilege" xm-select-search="" xm-select-search-type="dl" xm-select-skin="normal">
{foreach $satff as $val}
<option value="{$val.id}">{$val.name}{$val.transit}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">日期上午:</label>
<div class="layui-input-block">
<input type="checkbox" name="arr1[1]" lay-skin="tag" title="星期一">
<input type="checkbox" name="arr1[2]" lay-skin="tag" title="星期二">
<input type="checkbox" name="arr1[3]" lay-skin="tag" title="星期三">
<input type="checkbox" name="arr1[4]" lay-skin="tag" title="星期四">
<input type="checkbox" name="arr1[5]" lay-skin="tag" title="星期五">
<input type="checkbox" name="arr1[6]" lay-skin="tag" title="星期六">
<input type="checkbox" name="arr1[0]" lay-skin="tag" title="星期天">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">日期下午:</label>
<div class="layui-input-block">
<input type="checkbox" name="arr2[1]" lay-skin="tag" title="星期一">
<input type="checkbox" name="arr2[2]" lay-skin="tag" title="星期二">
<input type="checkbox" name="arr2[3]" lay-skin="tag" title="星期三">
<input type="checkbox" name="arr2[4]" lay-skin="tag" title="星期四">
<input type="checkbox" name="arr2[5]" lay-skin="tag" title="星期五">
<input type="checkbox" name="arr2[6]" lay-skin="tag" title="星期六">
<input type="checkbox" name="arr2[0]" lay-skin="tag" title="星期天">
</div>
</div>
</div>
<div class="layui-form-item link timeadd" style="display: none;">
<div class="layui-form-item">
<label class="layui-form-label">选择员工:</label>
<div class="layui-input-block">
<select name="privilege" v-model="selectedOptions" class="privilege" id="privilege" xm-select="privilege" xm-select-search="" xm-select-search-type="dl" xm-select-skin="normal">
{foreach $satff as $val}
<option value="{$val.id}">{$val.name} {$val.transit}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item" >
<div class="layui-form-item" >
<label class="layui-form-label"><span class="tips">*</span>日期类型:</label>
<div class="layui-col-sm4" style="width: 80%;">
<select name="addtims" id="addtims" lay-filter="search_position" >
<option value="1" >上午</option>
<option value="2" >下午</option>
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">服务天数:</label>
<div class="layui-input-inline">
<input type="text" name="datatime" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">循环次数:</label>
<div class="layui-input-inline">
<input type="text" name="datas" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注信息:</label>
<div class="layui-input-block">
<textarea name="remark" placeholder="请输入订单备注信息" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-user_level-submit" id="add-user_level-submit" value="确认">
</div>
</div>
<style>
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
</style>
<link rel="stylesheet" href="/static/plug/formSelects/formSelects-v4.css" />
<script src="/static/plug/formSelects/formSelects-v4.js" type="text/javascript" charset="utf-8"></script>
</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
, laydate = layui.laydate;
//监听搜索
form.on('submit(user-search)', function(data){
var field = data.field;
//执行重载
table.reload('user-lists', {
where: field,
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//日期时间范围
laydate.render({
elem: '#start_time'
,type: 'datetime'
,trigger: 'click'
});
//日期时间范围
laydate.render({
elem: '#end_time'
,type: 'datetime'
,trigger: 'click'
});
form.on('radio(link)', function (data) {
var value = data.value;
$('.link').hide();
switch (value) {
case '1':
$('.timeadd').show();
$('.url-tips').show();
break;
case '2':
$('.page').show();
$('.url-tips').show();
break;
case '3':
$('.url').show();
$('.url-tips').show();
break;
}
})
//清空查询
form.on('submit(user-clear-search)', function(){
$('#keyword_type').val('sn');
$('#keyword').val(''); //清空输入框
$('#level').val(''); //清空输入框
$('#group_id').val(''); //清空输入框
$('#start_time').val(''); //清空输入框
$('#end_time').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('user-lists', {
where: [],
page: {
curr: 1 //重新从第 1 页开始
}
});
});
// 导出
});
</script>

View File

@@ -0,0 +1,280 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
.category{
display: none;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<div class="layui-form-item" >
<label class="layui-form-label"><span class="tips">*</span>订单来源:</label>
<div class="layui-col-sm4" style="width: 80%;">
<select name="pid" id="pid" lay-filter="search_position" >
{foreach $position_list as $item => $val}
<option value="{$item}" {if $info.pid == $item} selected="selected" {/if} >{$val}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择员工:</label>
<div class="layui-input-block" >
<select name="privilege" xm-select="privilege" xm-select-search="" xm-select-search-type="dl" xm-select-skin="normal">
{foreach $satff as $val}
<option value="{$val.id}">{$val.name} </option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">订单类型:</label>
<div class="layui-input-block">
<input type="radio" name="link_type" title="单次订单" value="1" lay-filter="link" checked="turn">
<input type="radio" name="link_type" title="年卡初体验" value="2" lay-filter="link">
<input type="radio" name="link_type" title="年卡订单" value="3" lay-filter="link">
</div>
</div>
<div class="layui-form-item link page" style="display: none;">
<label class="layui-form-label">执行次数:</label>
<div class="layui-input-block" >
<input type="text" name="noenumber" value="1" style="width: 80%;" autocomplete="off" class="layui-input">
</div>
<br>
<label class="layui-form-label">执行规则:</label>
<div class="layui-input-block">
<div class="layui-col-sm4" style="width: 94%;">
<input type="text" name="time" value="1" placeholder="请输入执行天数" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item link url" style="display: none;">
<label class="layui-form-label">年卡次数:</label>
<div class="layui-input-block">
<div class="layui-col-sm4" style="width: 94%;">
<input type="text" name="number_fre" value="1" placeholder="请输入次数" autocomplete="off" class="layui-input">
</div>
</div>
<br>
<label class="layui-form-label">执行规则:</label>
<div class="layui-input-block">
<div class="layui-col-sm4" style="width: 94%;">
<input type="text" name="ntime" value="" placeholder="请输入执行天数" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div style="margin-bottom: 10px;">
<label class="layui-form-label">选择客户:</label>
<div class="layui-input-inline">
<a class="layui-btn layui-btn-normal select-goods" >选择客户</a>
</div>
</div>
<div class="layui-form-item links goods-tips">
<label class="layui-form-label"></label>
<div class="layui-input-block ">
<input type="hidden" name="goods_id" value="">
<table id="goods_list" class="layui-table" lay-size="sm">
<colgroup>
<col width="40px">
</colgroup>
<thead>
<tr style="background-color: #f3f5f9">
<th style="width: 120px;text-align: center">客户名称</th>
<th style="width: 60px;text-align: center">联系电话</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>家政日期:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="end_time" placeholder="请选日期" name="end_time" autocomplete="off">
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label"><span class="tips">*</span>日期类型:</label>
<div class="layui-col-sm4" style="width: 80%;">
<select name="addtim" id="addtim" lay-filter="search_position" >
<option value="">请选择日期类型</option>
<option value="1" >上午</option>
<option value="2" >下午</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>执行类型:</label>
<div class="layui-input-inline">
<input type="radio" name="types" value="1" title="保洁" checked>
<input type="radio" name="types" value="0" title="做饭" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注信息:</label>
<div class="layui-input-block">
<textarea name="remark" placeholder="请输入执行备注信息100个字符可以" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-user_group-submit" id="add-user_group-submit" value="确认">
</div>
</div>
<style>
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
</style>
<link rel="stylesheet" href="/static/plug/formSelects/formSelects-v4.css" />
<script src="/static/plug/formSelects/formSelects-v4.js" type="text/javascript" charset="utf-8"></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
, laydate = layui.laydate;
//监听搜索
form.on('submit(user-search)', function(data){
var field = data.field;
//执行重载
table.reload('user-lists', {
where: field,
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//日期时间范围
laydate.render({
elem: '#start_time'
,type: 'datetime'
,trigger: 'click'
});
//日期时间范围
laydate.render({
elem: '#end_time'
,type: 'datetime'
,trigger: 'click'
});
form.on('radio(link)', function (data) {
var value = data.value;
$('.link').hide();
switch (value) {
case '1':
$('.page').show();
break;
case '2':
$('.page').show();
$('.url-tips').show();
break;
case '3':
$('.url').show();
$('.url-tips').show();
break;
}
})
//清空查询
form.on('submit(user-clear-search)', function(){
$('#keyword_type').val('sn');
$('#keyword').val(''); //清空输入框
$('#level').val(''); //清空输入框
$('#group_id').val(''); //清空输入框
$('#start_time').val(''); //清空输入框
$('#end_time').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('user-lists', {
where: [],
page: {
curr: 1 //重新从第 1 页开始
}
});
});
// 导出
$(document).on('click','.select-goods',function () {
layer.open({
type: 2
,title: '选择客户'
,content: '{:url("Orderautomatic/userlist")}'
,area: ['90%', '90%']
,btn: ['确认', '取消']
,yes: function(index, layero){
var data = window["layui-layer-iframe" + index].callbackdata();
if(data.length){
$('#goods_list tbody').remove();
var goods = data[0];
var goods_html = '<tr>\n' +
' <td style="text-align: center"><img class="image-show" width="80px" height="80px" src="'+goods.avatar +'">'+goods.nickname+'</td>\n' +
' <td style="text-align: center">'+goods.phone+'</td>\n' +
' </tr>';
$('#goods_list').prev().val(goods.id);
$('#goods_list').append(goods_html);
$('.goods').show();
}
}
})
})
});
</script>

View File

@@ -0,0 +1,203 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
.category{
display: none;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<input type="hidden" name="" value="">
<input name="lng" id="lng" type="hidden" value="{$info.lng}">
<input name="lat" id="lat" type="hidden" value="{$info.lat}">
<input name="order" id="order" type="hidden" value="{$info.order_sn}">
<div class="layui-form-item" style="margin-top: 30px;">
<label class="layui-form-label"><span class="tips">*</span>服务时间:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="end_time" lay-verType="tips" value="{$info.date}" placeholder="{$info.date}" verify-msg="请选择服务时间" name="end_time">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">时间日期:</label>
<div class="layui-input-block">
<input type="radio" name="addtime" title="上午" id="addtime" value="1" lay-filter="link" {if $info.addtime == 1}checked{/if}>
<input type="radio" name="addtime" title="下午" id="addtime" value="2" lay-filter="link" {if $info.addtime == 2}checked{/if}>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择员工:</label>
<div class="layui-input-block">
<select lay-filter="select" name="privilege" v-model="selectedOptions" class="privilege" id="privilege" xm-select="privilege" xm-select-search="" xm-select-search-type="dl" xm-select-skin="normal">
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-submits" id="edit-submits" value="确认">
</div>
</div>
<style>
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
</style>
<link rel="stylesheet" href="/static/plug/formSelects/formSelects-v4.css" />
<script src="/static/plug/formSelects/formSelects-v4.js" type="text/javascript" charset="utf-8"></script>
<script>
</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
, laydate = layui.laydate;
//监听搜索
form.on('submit(user-search)', function(data){
var field = data.field;
//执行重载
table.reload('user-lists', {
where: field,
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//日期时间范围
laydate.render({
elem: '#start_time'
,type: 'datetime'
,trigger: 'click'
});
//日期时间范围
laydate.render({
elem: '#end_time'
,type: 'datetime'
,trigger: 'click'
});
form.on('radio(link)', function (data) {
var value = data.value;
var end_time = document.getElementById("end_time").value;
var lat = document.getElementById("lat").value;
var lng = document.getElementById("lng").value;
var order = document.getElementById("order").value;
var addtime=data.value;
var data={
'addtime':value,
'end_time':end_time,
'lng':lng,
'lat':lat,
'order':order,
'addtime':addtime
}
if(end_time==''){
layui.layer.msg('预约的时间不能为空')
}else{
$.post('{:url("staff/havestaff")}',{data},function(res){
var brands = res;
var brand_select_html = '<option value="">请选择服务人员</option>';
console.log(brands);
for (var i in brands) {
brand_select_html += '<option value="' + brands[i]['id'] + '">' + brands[i]['name']+'--'+brands[i]['june']+'Km' +'--'+ brands[i]['order_adder']+'</option>';
}
$('#privilege').html(brand_select_html);
layui.use('formSelects', function () {
var form = layui.formSelects;
form.render();
console.log(999)
});
$('#uv').html(2)
});
}
})
});
function checkPassword() {
var end_time = document.getElementById("end_time").value;
if(end_time==''){
layui.layer.msg('预约的时间不能为空')
}else{
$.post('/admin/staff/havestaff',{datatime:end_time},{
type: $('select[name=type]').val()
}, function(res){
var brands = res;
var brand_select_html = '<option value="">请选择服务类型</option>';
console.log(brands);
for (var i in brands) {
brand_select_html += '<option value="' + brands[i]['id'] + '">' + brands[i]['name'] + '</option>';
}
console.log(888,brand_select_html)
//privilege
$('#privilege').html(brand_select_html);
layui.use('formSelects', function () {
var form = layui.formSelects;
form.render();
console.log(999)
});
$('#uv').html(2)
});
}
}
</script>

View File

@@ -0,0 +1,680 @@
{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>

View File

@@ -0,0 +1,804 @@
{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="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*客户购买套餐等待时间创建订单的。</p>
<p>*订单的状态又执行成功,等待执行,请勿删除执行</p>
</div>
</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>
<li data-type="0">待预约</li>
<li data-type="1">进行中</li>
<li data-type="3">暂停中</li>
<li data-type="2">已完成</li>
</ul>
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-row">
<div class="layui-inline" style="width: 24%;">
<label class="layui-form-label">执行编号:</label>
<div class="layui-input-block">
<input type="text" name="id" id="id" placeholder="请输入订单编号"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline" style="width: 24%;">
<label class="layui-form-label">客户名称:</label>
<div class="layui-input-block">
<input type="text" name="name" id="name" placeholder="请输入客户名称"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline" style="width: 24%;">
<label class="layui-form-label">手机号码:</label>
<div class="layui-input-block">
<input type="text" name="phone" id="phone" placeholder="请输入客户手机号码"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline" style="width: 24%;">
<label class="layui-form-label">订单地区:</label>
<div class="layui-input-block">
<select name="area_id" id="order_type">
<option value="">全部</option>
<option value="520102">南明区</option>
<option value="520103">云岩区</option>
<option value="520111">花溪区</option>
<option value="520112">乌当区</option>
<option value="520113">白云区</option>
<option value="520115">观山湖区</option>
<option value="520122">息烽县</option>
<option value="520123">修文县</option>
<option value="520181">清镇市</option>
</select>
</div>
</div>
<div class="layui-inline" style="width: 24%;">
<label class="layui-form-label">订单来源:</label>
<div class="layui-input-block">
<select name="pid" id="pid">
<option value="">全部</option>
{foreach $ordertypelist as $item }
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline" style="width: 24%;">
<label class="layui-form-label">客服管家:</label>
<div class="layui-input-block">
<select name="admin" id="admin">
<option value="">全部</option>
{foreach $admin as $item }
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">上单时间:</label>
<div class="layui-input-inline">
<div class="layui-input-inline" >
<input type="text" name="start_time" class="layui-input" id="start_time"
placeholder="" autocomplete="off">
</div>
</div>
<div class="layui-input-inline" style="margin-right: 5px;width: 20px;">
<label class="layui-form-mid"></label>
</div>
<div class="layui-input-inline">
<input type="text" name="end_time" class="layui-input" id="end_time"
placeholder="" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad {$view_theme_color}" lay-submit
lay-filter="order-search">查询
</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
lay-filter="order-clear-search">清空查询
</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
lay-filter="export-file">导出
</button>
</div>
</div>
</div>
</div>
<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="reservation" style="display: inline-block;">派单预约</a>
<a class=" layui-btn-primary layui-btn-sm " lay-event="orderinfolist" style="display: inline-block;margin-top:10px">查看预排</a>
{{# if(d.status == 1){ }}
<a class="layui-btn-primary layui-btn-sm " lay-event="prentsd" style="display: inline-block; margin-top:10px;color: #FF5722;">取消暂停</a>
{{# }else{ }}
<a class="layui-btn-primary layui-btn-sm " lay-event="print" style="display: inline-block; margin-top:10px">暂停服务</a>
{{#} }}
<a class=" layui-btn-primary layui-btn-sm " lay-event="delnumber" 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">
<div style="font-size:16px;color:#1E9FFF">{{d.goods_name}}</div>
<p style="height:10px"></p>
<p>订单编号:{{d.order_sn}}</p>
<p>订单类型:{{d.brand}}</p>
<p>下单时间:{{d.create_time}}</p>
<p>订单来源:{{d.channel}}</p>
</div>
</script>
<script type="text/html" id="userinfo">
<div style="text-align:left">
<img src="{{d.avatar}}" style="height:80px;width: 80px" class="image-show">
<p>客户姓名:{{d.consignee}}</p>
<p>联系电话:{{d.mobile}}</p>
<p>联系地址:{{d.address}}</p>
<p>{{d.wx}}</p>
</div>
</script>
<script type="text/html" id="adder">
<div style="text-align:left">
<p>客户姓名:{{d.consignee}}</p>
<p>联系电话:{{d.mobile}}</p>
<p>上门地址:{{d.address}}</p>
<p>房屋面积:{{d.areas}}平方
{{# if(d.pet==1){}}
有宠物
{{# }else{ }}
无宠物
{{# } }}
{{# if(d.hbl==1){}}
有超厚玻璃
{{# }else{ }}
无超厚玻璃
{{# } }}
</p>
<p style="height:20px"></p>
<div style="display: flex; justify-content: space-between; width:90%;font-weight: 550;">
<div>总次数:{{d.number}}</div>
<div>待使用:{{d.code}}</div>
<div>已使用{{d.sycs}}</div>
</div>
</div>
<div style="margin-top: 20px;">
<a lay-event="admin_remarks" style="display: inline-block;">
{{# if(d.type==1){}}
<p style="color: #FF5722;"> 服务类型固定{{d.order_remarks}}</p>
{{# }else{ }}
服务类型非固定
{{# } }}
</a>
</div>
</script>
<script type="text/html" id="reak">
<div style="text-align:left">
<a class="" lay-event="remarks" style="display: inline-block;">客户叮嘱:{{d.order_remarks}}</a> <br>
<a lay-event="admin_remarks" style="display: inline-block;">管理员备注
{{# if(d.admin_remarks){}}
{{d.admin_remarks}}
{{# }else{ }}
-
{{# } }}
</a><br>
<a lay-event="staff_remarks" style="display: inline-block;">保洁师叮嘱
{{# if(d.staff_remarks){}}
{{d.staff_remarks}}
{{# }else{ }}
-
{{# } }}
</a>
</div>
</script>
<script type="text/html" id="static">
<div style="text-align:left">
{{# if(d.static==0){}}
待预约
{{# }
else if(d.static==2) { }}
已完成
{{# }
else if(d.static==3) { }}
暂停中
{{# }
else{ }}
服务中
{{# } }}
</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
}
});
});
// 导出
form.on('submit(export-file)', function(data){
var field = data.field;
$.ajax({
url: '{:url("order/exportFile")}?type=' + listType,
type: 'get',
data: field,
dataType: 'json',
error: function() {
layer.msg('导出超时,请稍后再试!');
},
success: function(res) {
table.exportFile(res.data.exportTitle,res.data.exportData, res.data.exportExt, res.data.exportName);
},
timeout: 15000
});
layer.msg('导出中请耐心等待~');
});
//日期时间范围
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 getDay(day = 0,datetime = '',num = 30){
let data = []
let date = new Date(datetime)
//今日星期几
let nowday = date.getDay()
//需要加几天
let addday = 0
//计算的是星期几 - 获取到那天的时间戳
if(day == 0 && nowday != day){
addday = 7 - nowday
}else{
if(day != nowday){
if(day > nowday){
addday = day - nowday
}else{
addday = 7 - nowday + day
}
}
}
//获取当前 星期几的时间戳
let nowtime = date.setDate(date.getDate()+addday)
//映射星期几
const weeks = ['日','一','二','三','四','五','六']
for(let i = 1 ; i<= num ; i++){
let _date = new Date(nowtime)
nowtime = date.setDate(_date.getDate()+7)
//时间戳
data.push({
'autotime':parseInt(nowtime/1000),//时间戳
'date':_date.getFullYear()+'-'+(_date.getMonth()+1)+'-'+_date.getDate(),
xq:'星期'+weeks[_date.getDay()]
})
}
return data
// console.log(data,addday,nowtime);
}
function getList(type) {
table.render({
elem: '#order-lists'
, url: '{:url("Orderautomatic/lists")}?type=' + type
, cols: [[
{field:'id',title: 'id',width:80,align: 'center'}
, {field: 'phone', title: '用户信息', width:240, align: 'center',templet:'#userinfo'}
, {field: 'order', title: '订单商品信息', align: 'center', templet:'#order'}
, {field: 'adder', title: '服务人员及客户地址',templet:'#adder',width:320,}
,{field: 'autotime', title: '备注信息', align: 'center',templet:'#reak',}
, {field: 'static', title: '订单状态',width:120, align: 'center',templet:'#static',}
, {fixed: 'right', title: '操作', width: 120, 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.lists,
};
}
,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 id = obj.data.id;
if(obj.event === 'detail'){
layer.open({
type: 2
,title: '订单详情'
,content: '{:url("Ordersel/Orderinfo")}?id='+id
,area: ['85%', '80%']
,yes: function(index, layero){
table.reload('order-lists');
}
})
}
//删除订单
if(obj.event === 'del'){
layer.confirm('删除后订单将消失,确认删除订单吗?', {
btn: ['确认','取消'] //按钮
}, function(){
like.ajax({
url: '{:url("Orderautomatic/del")}?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 === 'log'){
var order_sn = obj.data.id;
layer.open({
type: 2
,title: '订单的操作记录'
,content: '{:url("Orderautomatic/log")}?id='+order_sn
,area: ['65%', '65%']
,yes: function(index, layero){
}
})
}
//编辑订单
if(obj.event === 'reservation'){
var order_sn = obj.data.order_sn;
if(obj.data.type==1){
layui.layer.msg('固定单无法预约派单', {
offset: '15px'
, icon: 2
, time: 1000
})
return
}
if(obj.data.code==0){
layui.layer.msg('订单已经完成', {
offset: '15px'
, icon: 2
, time: 1000
})
return
}
var index = layer.open({
type: 2
,title: '增加排单预约'
,content: '{:url("Orderautomatic/add")}?id='+order_sn
,area: ['55%', '80%']
,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;
if(data.field.end_time==""){
layui.layer.msg('服务日期不能为空', {
offset: '15px'
, icon: 2
, time: 1000
});
return;
}
if(obj.data.code<data.field.number){
layui.layer.msg('订单服务次数不足', {
offset: '15px'
, icon: 2
, time: 1000
});
return;
}
if(data.field.type==2){
let keys = Object.keys(field)
let arr1 = []
let arr2 = []
for(let d of keys){
if(d.indexOf('arr1[') >= 0){
arr1.push(parseInt(d.slice(5,6)))
}
}
for(let d of keys){
if(d.indexOf('arr2[') >= 0){
arr2.push(parseInt(d.slice(5,6)))
}
}
console.log('获取到数组1的长度',arr1.length)
if(arr1.length){
let arr1_data = []
for(let d of arr1){
console.log(d)
arr1_data.push(getDay(d,field.end_time,obj.data.code))
}
field.arr1_data = arr1_data
}
if(arr2.length){
let arr2_data = []
for(let d of arr2){
arr2_data.push(getDay(d,field.end_time,obj.data.code))
}
field.arr2_data = arr2_data
}
console.log(arr1,arr2,field)
}
// return
like.ajax({
url:'{:url("Orderautomatic/add")}?id='+order_sn,
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('user_level-lists'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
}
//查看预排订单
if(obj.event === 'orderinfolist'){
var order_sn = obj.data.order_sn;
layer.open({
type: 2
,title: '查看预排的订单'
,content: '{:url("Orderautomatic/infolist")}?id='+order_sn
,area: ['90%', '90%']
,yes: function(index, layero){
}
})
}
//后台扣除划卡
if(obj.event === 'delnumber'){
var id = obj.data.id;
like.ajax({
url: '{:url("order/delnumber")}'
, data: {'id': id}
, type: 'get'
, success: function (res) {
if (res.code === 1) {
layer.prompt({title: '请输入剩余次数', formType: 2, value: res.data.code}, function(value, index){
if (isNaN(value)) {
layui.layer.msg('请输入一个整数', {
offset: '15px'
, icon: 2
, time: 1000
})
return;
}
layer.close(index);
like.ajax({
url: '{:url("order/delnumber")}'
, data: {'id': id, "code": 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); //关闭弹层
}
}
});
});
}
}
});
}
//保洁人员备注信息
if(obj.event === 'remark'){
var id = obj.data.id;
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); //关闭弹层
}
}
});
});
}
}
});
}
//商家备注
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'); //数据刷新
}
}
});
});
}
}
});
}
if(obj.event ==='print'){
layer.confirm('确定要暂停服务订单吗?', function(index){
like.ajax({
url:'{:url("Orderautomatic/prent")}',
data:{id:id},
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'); //数据刷新
}
}
});
layer.close(index);
})
}
if(obj.event ==='prentsd'){
layer.confirm('确定要取消暂停服务吗?', function(index){
like.ajax({
url:'{:url("Orderautomatic/prentsd")}',
data:{id:id},
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'); //数据刷新
}
}
});
layer.close(index);
})
}
});
});
</script>

View File

@@ -0,0 +1,112 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
font-size: 14px;
padding: 0 5px;
height: auto;
overflow: visible;
text-overflow: inherit;
white-space: normal;
word-break: break-all;
}
.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;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*记录管理后台系统日志,可用于排查事故原因</p>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-card">
<div class="layui-card-body">
<table id="order-lists" lay-filter="order-lists"></table>
</div>
</div>
</div>
</div>
</div>
<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;
//监听搜索
form.on('submit(order-search)', function (data) {
var field = data.field;
//执行重载
table.reload('order-lists', {
where: field
});
});
//获取列表
getList();
function getList() {
table.render({
limit:10,
elem: '#order-lists'
,url: '{:url("Orderautomatic/log")}?order_sn=' + '{$ids}'
, cols: [[
{field: 'id', title: '操作ID', align: 'center'}
, {field: 'admin_name', title: '管理员', align: 'center'}
, {field: 'show', title: '操作内容', align: 'center'}
, {field: 'createtime',title: '日志时间', align: 'center'}
]]
, page: true
, text: {none: '暂无数据!'}
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.lists, //解析数据列表
};
}
,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());
});
}
});
}
});
</script>

View File

@@ -0,0 +1,155 @@
{layout name="layout2" /}
<style>
.img-content{
height:80px;
line-height:80px
}
.img-container {
float: left;
opacity: 1;
position: relative;
}
.img-src {
width: 80px;
height: 80px;
padding: 4px;
}
.img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
<input type="hidden" name="id" value="{$info.id}">
<div class="layui-form-item">
<label class="layui-form-label" style="width:120px">服务前图片:</label>
<div class="layui-input-block">
<div class="img-content">
{foreach $info['image1'] as $item }
<div class="img-container">
<img class="img-src" src="{$item.url}">
<a class="img-del-x">x</a>
</div>
{/foreach}
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width:120px">服务中图:</label>
<div class="layui-input-block">
<div class="img-content">
{foreach $info['image2'] as $item }
<div class="img-container">
<img class="img-src" src="{$item.url}">
<a class="img-del-x">x</a>
</div>
{/foreach}
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width:120px">服务结束图片:</label>
<div class="layui-input-block">
<div class="img-content">
{foreach $info['image3'] as $item }
<div class="img-container">
<img class="img-src" src="{$item.url}">
<a class="img-del-x">x</a>
</div>
{/foreach}
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-submit" id="edit-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form','laydate','like'], function(){
var $ = layui.$
,form = layui.form
,laydate = layui.laydate
,like = layui.like;
laydate.render({
elem: '#birthday'
,format: 'yyyy-MM-dd'
,trigger: 'click'
});
like.imageUpload('.img-add', function (uris, element) {
if(uris.length>1){
layer.msg('最多最能选中1张图片');
return;
}
var html = '<div class="img-container">\n' +
'<img class="img-src" ' +
'src="' + uris[0] + '">' +
'<a class="img-del-x">x</a>' +
'</div>';
element.prev().val(like.getUrlFileName(uris[0], '{$storageUrl}'));
element.parent().append(html);
element.css('display','none');
}, true);
//删除图片
$(document).on('click', '.img-del-x', function () {
$(this).parent().siblings('input').val('');
$(this).parent().prev().css('display','block');
$(this).parent().remove();
});
//显示图片
$(document).on('click', '.img-src', function () {
var image = $(this).attr('src');
like.showImg(image, 600);
});
form.on('select(category)', function(data){
var level = $(data.elem).find("option:selected").attr("data-level");
$('.alliance_ratio').hide();
$('.autotrophy_ratio').hide();
if(level == 2){
$('.alliance_ratio').show();
$('.autotrophy_ratio').show();
}
});
})
</script>

View File

@@ -0,0 +1,112 @@
{layout name="layout1" /}
<style>
.layui-table-cell {
font-size: 14px;
padding: 0 5px;
height: auto;
overflow: visible;
text-overflow: inherit;
white-space: normal;
word-break: break-all;
}
.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;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*记录管理后台系统日志,可用于排查事故原因</p>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-card">
<div class="layui-card-body">
<table id="order-lists" lay-filter="order-lists"></table>
</div>
</div>
</div>
</div>
</div>
<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;
//监听搜索
form.on('submit(order-search)', function (data) {
var field = data.field;
//执行重载
table.reload('order-lists', {
where: field
});
});
//获取列表
getList();
function getList() {
table.render({
limit:10,
elem: '#order-lists'
,url: '{:url("Orderautomatic/orderlog")}?order_sn=' + '{$ids}'
, cols: [[
{field: 'id', title: '操作ID', align: 'center'}
, {field: 'admin_name', title: '管理员', align: 'center'}
, {field: 'show', title: '操作内容', align: 'center'}
, {field: 'createtime',title: '日志时间', align: 'center'}
]]
, page: true
, text: {none: '暂无数据!'}
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.lists, //解析数据列表
};
}
,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());
});
}
});
}
});
</script>

View File

@@ -0,0 +1,176 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
.category{
display: none;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">选择员工:</label>
<div class="layui-input-block" >
<select name="privilege" v-model="selectedOptions" multiple :limit="2" xm-select="privilege" xm-select-search="" xm-select-search-type="dl" xm-select-skin="normal">
{foreach $satff as $val}
<option value="{$val.id}">{$val.name} {$val.june}Km</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-user_level-submit" id="add-user_level-submit" value="确认">
</div>
</div>
<style>
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
</style>
<link rel="stylesheet" href="/static/plug/formSelects/formSelects-v4.css" />
<script src="/static/plug/formSelects/formSelects-v4.js" type="text/javascript" charset="utf-8"></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
, laydate = layui.laydate;
//监听搜索
form.on('submit(user-search)', function(data){
var field = data.field;
//执行重载
table.reload('user-lists', {
where: field,
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//日期时间范围
laydate.render({
elem: '#start_time'
,type: 'datetime'
,trigger: 'click'
});
//日期时间范围
laydate.render({
elem: '#end_time'
,type: 'datetime'
,trigger: 'click'
});
form.on('radio(link)', function (data) {
var value = data.value;
$('.link').hide();
switch (value) {
case '1':
$('.page').show();
$('.url-tips').show();
break;
case '2':
$('.page').show();
$('.url-tips').show();
break;
case '3':
$('.url').show();
$('.url-tips').show();
break;
}
})
//清空查询
form.on('submit(user-clear-search)', function(){
$('#keyword_type').val('sn');
$('#keyword').val(''); //清空输入框
$('#level').val(''); //清空输入框
$('#group_id').val(''); //清空输入框
$('#start_time').val(''); //清空输入框
$('#end_time').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('user-lists', {
where: [],
page: {
curr: 1 //重新从第 1 页开始
}
});
});
// 导出
$(document).on('click','.select-goods',function () {
layer.open({
type: 2
,title: '选择客户'
,content: '{:url("Orderautomatic/userlist")}'
,area: ['90%', '90%']
,btn: ['确认', '取消']
,yes: function(index, layero){
var data = window["layui-layer-iframe" + index].callbackdata();
if(data.length){
$('#goods_list tbody').remove();
var goods = data[0];
var goods_html = '<tr>\n' +
' <td style="text-align: center"><img class="image-show" width="80px" height="80px" src="'+goods.avatar +'">'+goods.nickname+'</td>\n' +
' <td style="text-align: center">'+goods.phone+'</td>\n' +
' </tr>';
$('#goods_list').prev().val(goods.id);
$('#goods_list').append(goods_html);
$('.goods').show();
}
}
})
})
});
</script>

View File

@@ -0,0 +1,117 @@
{layout name="layout1" /}
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-tab-item layui-show">
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item type">
<div class="layui-inline">
<label class="layui-form-label">用户姓名:</label>
<div class="layui-input-block">
<input type="text" name="name" id="name" placeholder="请输入用户的姓名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">用户电话:</label>
<div class="layui-input-block">
<input type="text" name="phone" id="phone" placeholder="请输入客户的电话" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-goods {$view_theme_color}" lay-submit lay-filter="goods-search">查询</button>
</div>
</div>
</div>
<div class="layui-card-body">
<table id="goods-lists" lay-filter="goods-lists"></table>
<script type="text/html" id="goods-info">
<img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show"> {{d.nickname}}
</script>
</div>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="select-submit" class="select-submit" id="select-submit" value="确认">
</div>
</div>
<style>
.layui-table-cell {
height: auto;
}
</style>
<script>
var table;
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index','table','like','form'], function(){
var $ = layui.$
,form = layui.form
,like = layui.like
,element = layui.element;
//监听搜索
form.on('submit(goods-search)', function(data){
var field = data.field;
//执行重载
table.reload('goods-lists', {
where: field
});
});
//清空查询
form.on('submit(goods-clear-search)', function(){
$('#keyword').val(''); //清空输入框
$('#status_search').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('goods-lists', {
where: []
});
});
});
layui.define(['table', 'form'], function (exports) {
var $ = layui.$
, form = layui.form;
table = layui.table;
//管理员管理
table.render({
id: 'goods-lists'
, elem: '#goods-lists'
, url: '{:url("Orderautomatic/userlist")}' //模拟接口
, cols: [[
{type: 'radio'}
, {field: 'nickname', title: '微信昵称', toolbar: '#goods-info'}
, {field: 'phone', title: '联系电话'}
, {field: 'name', title: '用户姓名'}
, {field: 'stock', title: '用户次数',toolbar: '#number'}
]]
, page: true
, text: {none: '暂无数据!'}
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.list, //解析数据列表
};
}
});
})
var callbackdata = function () {
var data = table.checkStatus('goods-lists').data
,index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
return data;
}
</script>