添加网站文件

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,270 @@
{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;
}
.flexs{
display:flex;
justify-content: space-between;
align-items: flex-start;
}
.w-left{
/* width: 300px; */
width: 17%;
border: 1px solid #f1f1f1;
/* width: 220px; */
}
#calendar{
width: 80%;
}
.w-left{
height: 86vh;
overflow-y: scroll;
}
.w-left p{
line-height: 1.2;
text-align: center;
}
.w-l-i{
padding: 10px;
margin: 3px auto;
border-bottom: 1px solid #f1f1f1;
}
.w-l-a{
background-color: #eaf9ff;
}
.w-l-d{
color: #999;
}
</style>
<script src="/static/webjs/date.js"></script>
<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">
<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="flexs">
<div class="w-left">
<div>1</div>
<div>1</div>
</div>
<div style="width: 82%;">
<table id="order-lists" lay-filter="order-lists"></table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
layui.config({
version:"{$front_version}",
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'element', 'jquery', 'like', 'likeedit'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table
, like = layui.like
, element = layui.element
, laydate = layui.laydate;
var listType = '';
function getList(type) {
table.render({
elem: '#order-lists'
, url: '{:url("order/lists")}?type=' + type
, cols: [[
{field:'id',title: 'id',width:60,align: 'center'}
, {field: 'order', title: '销售单信息', align: 'center',templet:'#order',width:230}
, {field: 'user', title: '推荐人信息', templet:'#user',width:300}
, {field: 'order_goods', title: '商品信息', align: 'center',templet:'#goods',width:320}
, {field: 'total_amount', title: '订单备注', align: 'center',templet:'#amount',width:180}
, {field: 'delivery', title: '客户基本信息', align: 'center',templet:'#delivery',width:260}
, {fixed: 'right', title: '操作', width: 300, 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());
});
}
});
}
});
window.onload = ()=>{
//初始化日历
function initday(events = [],now){
let calendarEl = document.getElementById('calendar');
let calendar = new FullCalendar.Calendar(calendarEl, {
eventClick: function(info) {
let d = info.event._def
if(d.publicId){
let arr = d.publicId.split('_')
console.log(arr);
if(arr[0] == 'pb'){
console.log(layer.alert('订单号:'+arr[1]))
}
}
// alert('Clicked on: ' +info);
},
// 自定义头部工具
headerToolbar: {
start: 'title',
center: '',
end: 'today prev,next'
},
now: now, // 自定义当前时间,只用于显示使用,正常不需要这个参数
height: "auto", // 定义表格高度
allDaySlot: false, // 是否显示表头的全天事件栏
// initialView: 'timeGridWeek',
locale: 'zh-cn', // 区域本地化
firstDay: 1, // 每周的第一天: 0:周日
events: events
});
calendar.render();
}
function binduidclick(){
$('.w-l-i').off()
$('.w-l-i').click(function(){
$('.w-l-i').removeClass('w-l-a')
$(this).addClass('w-l-a')
var uid = $(this).attr('uid')
console.log(uid)
$.get('/admin/staff/Scheduling',{uid:uid},function(e){
console.log(e)
if(e.code == 1 && e.data){
let pb = e.data.pb
let qj = e.data.qj
let events = []
//循环排班和请假的
for(let d of pb){
events.push({
id:'pb_'+d.order_sn+'_'+d.id+'_'+d.remark,
color:'red',
title:(d.type == 3 ?'固定':'非固定')+'-'+(d.addtime == 1 ?'上午':'下午'),
start:d.date,
end:d.date
})
}
for(let d of qj){
events.push({
color:(d.addtime == 1 ?'red':'green'),
title:'请假'+'-'+(d.addtime == 1 ?'上午':'下午'),
start:d.time,
end:d.time
})
}
initday(events,e.data.now)
}
})
})
}
$.post('/admin/staff/stafflist',{},function(e){
console.log(e)
var html = ''
if(e.code == 1 && e.data.length){
for(let p of e.data){
html += `<div class="w-l-i" uid="`+p.id+`">
<p>`+p.mobile+'-'+p.name+`</p>
<p class="w-l-d">`+p.addr+`</p>
</div>`
}
}
$('.w-left').html(html)
binduidclick()
})
}
</script>

View File

@@ -0,0 +1,402 @@
{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;
}
.flexs{
display:flex;
justify-content: space-between;
align-items: flex-start;
}
.w-left{
/* width: 300px; */
width: 17%;
border: 1px solid #f1f1f1;
/* width: 220px; */
}
#calendar{
width: 80%;
}
.w-left{
height: 86vh;
overflow-y: scroll;
}
.w-left p{
line-height: 1.2;
text-align: center;
}
.w-l-i{
padding: 10px;
margin: 3px auto;
border-bottom: 1px solid #f1f1f1;
}
.w-l-a{
background-color: #eaf9ff;
}
.w-l-d{
color: #999;
}
</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>
<p>*待付款订单取消后则为已关闭。待付款订单支付后则为待发货。待发货订单发货后则为待收货。待收货订单收货后则为已完成。</p>
</div>
</div>
</div>
</div>
<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-tab-item layui-show">
<div class="layui-card-body" style="display: flex;">
<div class="flexs">
<div class="w-left" style="width: 320px;">
{foreach $staff as $item => $val}
<div style="padding-top: 10px;" class="staff_id" data-age="{$val.id}">
<input name="staff_id" class="staff" value="{$val.id}" type="hidden">
<div class="adders">{$val.id}</div>
<div>保洁师:{$val.name} ——电话18818997654</div>
<div>地址贵州省金融城B冻结</div>
<div>待服务20单 已经服务30单</div>
</div>
{/foreach}
</div>
</div>
<div style="width: 80%;">
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-row">
<div class="layui-inline">
<label class="layui-form-label">订单搜索:</label>
<div class="layui-input-block">
<select name="search_key">
<option value="order_sn">销售单号</option>
<option value="consignee">客户名称</option>
<option value="mobile">客户手机号码</option>
</select>
</div>
</div>
<div class="layui-inline">
<input type="text" name="keyword" id="keyword" placeholder="请输入搜索内容"
autocomplete="off" class="layui-input">
</div>
<div class="layui-inline">
<label class="layui-form-label">开票状态:</label>
<div class="layui-input-block">
<select name="order_type" id="order_type">
<option value="">全部</option>
<option value="0">未开票</option>
<option value="1">已开票</option>
</select>
</div>
</div>
</div>
<div class="layui-row">
<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>
<table id="order-lists" lay-filter="order-lists"></table>
</div>
<script type="text/html" id="image">
<img src="{{d.image}}" style="height:80px;width: 80px" class="image-show">
</script>
<!--门店信息-->
<script type="text/html" id="shop">
<p>{{d.shop.name}}</p>
</script>
<!--订单信息-->
<script type="text/html" id="order">
<div style="text-align: left">
<p>服务编号:{{d.order_sn}}</p>
<p>下单时间:{{d.create_time}}</p>
<p>订单类型:{{d.channel}}</p>
</div>
</script>
<!--会员信息-->
<script type="text/html" id="user">
<img src="{{d.user.avatar}}" style="height:80px;width: 80px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<p>会员编号:{{d.user.sn}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">会员昵称:{{d.user.nickname}}</p>
<p>会员等级:{{d.user_level}}</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 type="text/html" id="goods">
<div class="goods-content">
<div style="text-align: left;" class="goods-data">
<div class="layui-input-inline layui-col-md8" style="padding-top: 15px;">
<span class="layui-col-md7">商品名称{{d.goods_name }}</span>
<br>
<span class="layui-col-md7">服务次数{{d.code}}次数</span>
</div>
<img src="{{d.goods_image}}" style="height:80px;width: 80px" class="image-show">
</div>
</div>
</script>
</div>
</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;
var listType = '';
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,600);
});
//监听搜索
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(send_coupon)', function(data){
layer.open({
type: 2
,title: '增加服务订单'
,content: '{:url("order/add")}'
,area: ['70%', '70%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'user_group-submit'
,submit = layero.find('iframe').contents().find("#add-user_group-submit");
//监听提交
iframeWindow.layui.form.on('submit(add-user_group-submit)', function(data){
var field = data.field;
like.ajax({
url:'{:url("order/add")}',
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');
}
});
});
//日期时间范围
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("order/lists")}?type=' + type
, cols: [[
{field:'id',title: 'id',width:60,align: 'center'}
, {field: 'order', title: '销售单信息', align: 'center',templet:'#order',width:230}
, {field: 'delivery', title: '客户基本信息', align: 'center',templet:'#delivery',width:260}
, {field: 'user', title: '备注信息', templet:'#user',width:300}
, {field: 'user', title: '服务时间', templet:'#user',width:300}
, {field: 'order_goods', title: '商品信息', align: 'center',templet:'#goods',width:320}
]]
, 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());
});
}
});
}
$('.staff_id').click(function(){
const userElements = document.querySelectorAll('.staff_id');
userElements.forEach((element) => {
const age = element.dataset.age;
console.log(age);
});
});
});
</script>