309 lines
19 KiB
PHP
Executable File
309 lines
19 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* @Author: fm453
|
|
* @Date: 2018-11-23 12:17:02
|
|
* @Last Modified by: fm453
|
|
* @Last Modified time: 2019-01-08 12:12:22
|
|
* @Email: fm453@lukegzs.com
|
|
*/
|
|
|
|
use yii\helpers\Html;
|
|
use yii\bootstrap\ActiveForm;
|
|
use yii\helpers\Url;
|
|
use yii\widgets\LinkPager;
|
|
|
|
$this->title = '客户列表';
|
|
$this->params['breadcrumbs'][] = $this->title;
|
|
?>
|
|
<!--日期时间选择器-->
|
|
<?=Html::jsFile('@web/js/plugins/layer/laydate/laydate.js')?>
|
|
<?=Html::cssFile('@web/js/plugins/layer/laydate/need/laydate.css')?>
|
|
<?=Html::cssFile('@web/js/plugins/layer/laydate/skins/molv/laydate.css')?>
|
|
|
|
<style>
|
|
.laydate_body .laydate_top{
|
|
padding:0;
|
|
}
|
|
.laydate_body .laydate_ym{
|
|
/*margin:0;
|
|
padding:5px;*/
|
|
}
|
|
.laydate_body .laydate_table{
|
|
border:0;
|
|
border-bottom: 1px solid rgb(204, 204, 204);
|
|
}
|
|
.laydate_body .laydate_bottom {
|
|
border: 0;
|
|
margin-bottom: 10px;
|
|
}
|
|
</style>
|
|
|
|
<!--滑块选择器-->
|
|
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.css')?>
|
|
<?=Html::cssFile('@web/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css')?>
|
|
<?=Html::jsFile('@web/js/plugins/ionRangeSlider/ion.rangeSlider.min.js')?>
|
|
|
|
<!--下拉选择、选项框-->
|
|
<?=Html::cssFile('@web/css/plugins/chosen/chosen.css')?>
|
|
<?=Html::jsFile('@web/js/plugins/chosen/chosen.jquery.js')?>
|
|
|
|
<div class="wrapper wrapper-content">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="ibox float-e-margins">
|
|
<div class="ibox-content" style="text-align: center;">
|
|
<h1>搜索与筛选</h1>
|
|
<form role="form" class="form-horizontal m-t" action="<?=Url::toRoute('guest/list')?>" method="post">
|
|
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">姓名</button>
|
|
</span>
|
|
<input class="input-sm form-control" type="text" placeholder="请输入客户姓名" name="search[title]" value="<?=$search['title']?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">昵称</button>
|
|
</span>
|
|
<input class="input-sm form-control" type="text" placeholder="请输入客户昵称" name="search[nickname]" value="<?=isset($search['nickname'])?$search['nickname']:''?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">手机号搜索</button>
|
|
</span>
|
|
<input class="input-sm form-control" type="text" placeholder="请输入客户手机号" name="search[phone]" value="<?=isset($search['phone'])?$search['phone']:''?>">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">入住月份</button>
|
|
</span>
|
|
<input class="input-sm form-control layer-date" type="text" name="search[checkin_m]" placeholder="请选择月份" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM'})" value="<?=isset($search['checkin_m'])?$search['checkin_m']:''?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">入住时间不早于</button>
|
|
</span>
|
|
<input class="input-sm form-control layer-date" type="text" name="search[checkin_after]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['checkin_after'])?$search['checkin_after']:''?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">入住时间不晚于</button>
|
|
</span>
|
|
<input class="input-sm form-control layer-date" type="text" name="search[checkin_before]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['checkin_before'])?$search['checkin_before']:''?>">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">生日月份</button>
|
|
</span>
|
|
<input class="input-sm form-control layer-date" type="text" name="search[birthday_m]" placeholder="请选择月份" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM'})" value="<?=isset($search['birthday_m'])?$search['birthday_m']:''?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">生日不早于</button>
|
|
</span>
|
|
<input class="input-sm form-control layer-date" type="text" name="search[birthday_after]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['birthday_after'])?$search['birthday_after']:''?>">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-sm btn-primary">生日不晚于</button>
|
|
</span>
|
|
<input class="input-sm form-control layer-date" type="text" name="search[birthday_before]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($search['birthday_before'])?$search['birthday_before']:''?>">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-4">
|
|
<select data-placeholder="选择来源渠道..." class="select-sm form-control chosen-select" tabindex="2" name="search[channel]">
|
|
<option value="">选择来源渠道</option>
|
|
<?php foreach(Yii::$app->params['saleChannels'] as $key=>$val){?>
|
|
<option value="<?=$key?>" hassubinfo="true" <?=isset($search['channel']) && $search['channel']==$key ? 'selected':'';?>><?=$val?></option>
|
|
<?php }?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($search['hotel_title'])?$search['hotel_title']:'';?>" placeholder="点击选择关联酒店" autocomplete="off" href="<?=Url::toRoute(['hotel/select','callback'=>'hotel']);?>" w="80%;" h="90%;" title="选择所在关联酒店" mini="load">
|
|
<input type="hidden" class="form-control" name="search[hotel]" id="hotel-value" value="<?=isset($search['hotel'])?$search['hotel']:0;?>">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-info" onclick="clearHotel('hotel')">清除选择</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function selectHotel(title,id,callback)
|
|
{
|
|
layer.closeAll();
|
|
layer.msg('已选择');
|
|
$('#'+callback+'-value').val(id);
|
|
$('#'+callback+'-title').val(title);
|
|
}
|
|
function clearHotel(id)
|
|
{
|
|
$('#'+id+'-value').val('');
|
|
$('#'+id+'-title').val('');
|
|
}
|
|
</script>
|
|
|
|
<div class="col-sm-4">
|
|
<div class="input-group">
|
|
<input type="text" class="form-control" name="employee_title" id="employee-title" value="<?=isset($search['employee_title'])?$search['employee_title']:'';?>" placeholder="点击选择该客户的介绍人" autocomplete="off" href="<?=Url::toRoute(['employee/select','callback'=>'employee']);?>" w="80%;" h="90%;" title="选择该客户的介绍人" mini="load">
|
|
<input type="hidden" class="form-control" name="search[employee]" id="employee-value" value="<?=isset($search['employee'])?$search['employee']:0;?>">
|
|
<span class="input-group-btn">
|
|
<button type="button" class="btn btn-info" onclick="clearEmployee('employee')">清除选择</button>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function selectEmployee(title,id,callback)
|
|
{
|
|
layer.closeAll();
|
|
layer.msg('已选择');
|
|
$('#'+callback+'-value').val(id);
|
|
$('#'+callback+'-title').val(title);
|
|
}
|
|
function clearEmployee(id)
|
|
{
|
|
$('#'+id+'-value').val('');
|
|
$('#'+id+'-title').val('');
|
|
}
|
|
</script>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-12">
|
|
<button type="submit" class="btn btn-sm btn-warning"> 搜索</button>
|
|
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('guest/new')?>">新增客户</a>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
<!--分页-->
|
|
<div class="ibox-content" style="padding:0;text-align: center;">
|
|
<div class="f-r">
|
|
<?= LinkPager::widget([
|
|
'pagination'=>$pager,
|
|
'firstPageLabel' => '首页',
|
|
'nextPageLabel' => '下一页',
|
|
'prevPageLabel' => '上一页',
|
|
'lastPageLabel' => '末页',
|
|
]) ?>
|
|
</div>
|
|
</div>
|
|
<div class="ibox-title"><?= Html::encode($this->title) ?></div>
|
|
<div class="ibox-content">
|
|
<div class="table-responsive">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>序号</th>
|
|
<th>酒店及业务员</th>
|
|
<th>姓名</th>
|
|
<th>联系方式</th>
|
|
<th>消费信息</th>
|
|
<th>备忘</th>
|
|
<th>状态</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<?php foreach($guests as $vo):?>
|
|
<tr>
|
|
<td><?=$vo['id']?></td>
|
|
<td>
|
|
【来源酒店】<code><?=isset($hotels[$vo['hotel_id']]['title'])?$hotels[$vo['hotel_id']]['title']:'未设置'?></code><br>
|
|
【来源渠道】<code><?=isset(Yii::$app->params['saleChannels'][$vo['channel']]) ? Yii::$app->params['saleChannels'][$vo['channel']]:'未设置'?></code><br>
|
|
【业务员】<code><?=isset($employees[$vo['employee_id']]['name'])?$employees[$vo['employee_id']]['name']:'未关联'?></code>
|
|
</td>
|
|
<td>
|
|
<kbd>姓名</kbd><?=$vo['name']?><code>【<?=$gender[$vo['gender']]?>】</code><br>
|
|
<kbd>昵称</kbd><?=$exts[$vo['mid']]['nickname']?><br>
|
|
<kbd>称谓</kbd><?=$exts[$vo['mid']]['title']?>
|
|
</td>
|
|
<td>
|
|
【手机】<?=isset($vo['mobile']) ? $vo['mobile']:''?><br>
|
|
【常在省份】<?=isset($vo['province']) ? (isset(Yii::$app->params['regionAreas'][$vo['province']])?Yii::$app->params['regionAreas'][$vo['province']]:'') : ''?>
|
|
</td>
|
|
<td>
|
|
【上次入住时间】<?=isset($vo['last_checkin']) && $vo['last_checkin']>0 ? date('Y-m-d',$vo['last_checkin']) : '未记录'?><br>
|
|
【预存余额】<?=isset($vo['money']) ? $vo['money'] : 0?><br>
|
|
【积分】<?=isset($vo['jifen']) ? $vo['jifen'] : 0?><br>
|
|
</td>
|
|
<td>
|
|
【上次联系时间】<?=isset($vo['last_contact']) && $vo['last_contact']>0 ? date('Y-m-d',$vo['last_contact']) : '未记录'?><br>
|
|
【生日】<?=isset($exts[$vo['mid']]['birthday'])? $exts[$vo['mid']]['birthday'] : '未记录'?><br>
|
|
【评分】<?=isset($vo['score']) ? $vo['score'].'分': ''?><br>
|
|
</td>
|
|
<td>
|
|
<?php if($vo['status_code']==1){?>
|
|
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'hide'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
|
|
<?php }else{?>
|
|
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'show'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
|
|
<?php }?>
|
|
</td>
|
|
<td>
|
|
<p>
|
|
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['guest/edit','id'=>$vo['id']])?>"><i class="fa fa-edit"></i>编辑</a>
|
|
<a title="点击将删除" href="<?=Url::toRoute(['guest/delete','id'=>$vo['id']])?>" class="btn btn-xs btn-danger" mini="act"><i class="fa fa-trash bigger-120"></i>删除</a>
|
|
</p>
|
|
<p>
|
|
<a class="btn btn-success btn-xs" href="<?=Url::toRoute(['guest/ajax','id'=>$vo['id'],'do'=>'contact'])?>" mini="ajax">标记联系</a>
|
|
</p>
|
|
<p>
|
|
<a class="btn btn-primary btn-xs" href="<?=Url::toRoute(['guest/msg','id'=>$vo['id']])?>" w="80%;" h="90%;" title="短信营销" mini="load"><i class="fa fa-envelope"></i> 短信营销</a>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach;?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<!--分页-->
|
|
<div class="ibox-content" style="padding:0;text-align: center;">
|
|
<div class="f-r">
|
|
<?= LinkPager::widget([
|
|
'pagination'=>$pager,
|
|
'firstPageLabel' => '首页',
|
|
'nextPageLabel' => '下一页',
|
|
'prevPageLabel' => '上一页',
|
|
'lastPageLabel' => '末页',
|
|
]) ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
laydate.skin('molv');
|
|
</script>
|