Initial commit,修正
This commit is contained in:
Executable
+309
@@ -0,0 +1,309 @@
|
||||
<?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>
|
||||
Executable
+378
@@ -0,0 +1,378 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
?>
|
||||
|
||||
<!--百度编辑器-->
|
||||
<?=Html::jsFile('@web/plugins/ueditor/ueditor.config.js')?>
|
||||
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
|
||||
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
|
||||
<?=Html::jsFile('@web/plugins/ueditor/ueditor.all.min.js')?>
|
||||
<?=Html::jsFile('@web/plugins/ueditor/lang/zh-cn/zh-cn.js')?>
|
||||
|
||||
<!--日期时间选择器-->
|
||||
<?=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')?>
|
||||
|
||||
<!--滑块选择器-->
|
||||
<?=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::jsFile('@web/js/plugins/jsKnob/jquery.knob.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-title">
|
||||
<h5>基础资料</h5>
|
||||
<div class="ibox-tools">
|
||||
<a class="collapse-link">
|
||||
<i class="fa fa-chevron-up"></i>
|
||||
</a>
|
||||
|
||||
<a class="close-link">
|
||||
<i class="fa fa-times"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="alert alert-info">
|
||||
在此处录入客户的基础资料,如果是新客户,系统将自动为其新建一份档案;
|
||||
</div>
|
||||
<form role="form" class="form-horizontal m-t" method="post" action="<?=Url::toRoute('guest/save')?>" >
|
||||
<input type="hidden" name="_csrf-backend" value="<?=Yii::$app->getRequest()->getCsrfToken();?>" />
|
||||
<input type="hidden" name="id" value="<?=isset($detail['id'])?$detail['id']:0;?>">
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label"><span class="red">*</span> 姓名:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control" type="text" name="realname" placeholder="请输入客户的姓名" autocomplete="off" value="<?=isset($detail['realname'])?$detail['realname']:'';?>">
|
||||
<span class="help-block m-b-none">这里输入客户的真实姓名</span>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label"><span class="red">*</span>主手机号:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control" type="text" name="mobile" id="mobile" placeholder="请输入客户的手机号" autocomplete="off" value="<?=isset($detail['mobile'])?$detail['mobile']:'';?>">
|
||||
<span class="help-block m-b-none">如<code>18608981880</code></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">昵称:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control" type="text" name="ext[nickname]" placeholder="请输入客户的昵称" autocomplete="off" value="<?=isset($detail['nickname'])?$detail['nickname']:'';?>">
|
||||
<span class="help-block m-b-none">这里输入客户的昵称,如<code>老姜</code>、<code>方少</code></span>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label">称谓:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control" type="text" name="ext[title]" placeholder="请输入客户的称谓" autocomplete="off" value="<?=isset($detail['title'])?$detail['title']:'';?>">
|
||||
<span class="help-block m-b-none">这里输入客户的称谓,如“周老师”、“吴叔”、“刘院长”、“王教授”</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">密码框:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control" type="password" name="password" id="password" readonly="readonly" placeholder="请输入密码,可用于平台后期开放的用户端登陆" autocomplete="off" value="<?=isset($detail['password'])?$detail['password']: ''?>">
|
||||
<span class="help-block m-b-none">预留功能,如不填写,将默认使用初始密码<code><?=Yii::$app->params['defaultUserPassword']?></code></span>
|
||||
<script>
|
||||
setTimeout(function removeReadonly(){
|
||||
document.getElementById("password").removeAttribute("readonly");
|
||||
},500);
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label">性别:</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-control" name="gender">
|
||||
<option value="0" <?php if(isset($detail['gender']) && $detail['gender']==0){echo 'selected';}else{echo '';}?>>未知</option>
|
||||
<option value="1" <?php if(isset($detail['gender']) && $detail['gender']==1){echo 'selected';}else{echo '';}?>>男</option>
|
||||
<option value="2" <?php if(isset($detail['gender']) && $detail['gender']==2){echo 'selected';}else{echo '';}?>>女</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">总消费额:</label>
|
||||
<div class="col-sm-2">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="total_fee" id="total_fee-value" placeholder="该客户的总消费金额" autocomplete="off" value="<?=isset($detail['total_fee'])?$detail['total_fee']:0;?>">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-primary">元</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label">常在省份:</label>
|
||||
<div class="col-sm-2">
|
||||
<select data-placeholder="选择省份..." class="form-control chosen-select" tabindex="2" name="province">
|
||||
<option value="">请选择省份</option>
|
||||
<?php foreach(Yii::$app->params['regionAreas'] as $key=>$val){?>
|
||||
<option value="<?=$key?>" hassubinfo="true" <?=isset($detail['province']) && $detail['province']==$key ? 'selected':'';?>><?=$val?></option>
|
||||
<?php }?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label">国籍:</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" name="country" id="country" placeholder="请输入客户国籍" autocomplete="off" value="<?=isset($detail['country'])?$detail['country']:'中国';?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">身份证号:</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control" name="idcard" id="idcard" placeholder="请输入客户身份证号" autocomplete="off" value="<?=isset($detail['idcard'])?$detail['idcard']:'';?>">
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label">护照号:</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control" name="passport" id="passport" placeholder="请输入客户护照号" autocomplete="off" value="<?=isset($detail['passport'])?$detail['passport']:'';?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">生日:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control layer-date" type="text" name="ext[birthday]" placeholder="请选择日期" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['birthday'])?$detail['birthday']:''?>">
|
||||
</div>
|
||||
|
||||
<label class="col-sm-1 control-label">来源渠道:</label>
|
||||
<div class="col-sm-4">
|
||||
<select data-placeholder="选择渠道..." class="form-control chosen-select" tabindex="2" name="channel">
|
||||
<option value="">请选择渠道</option>
|
||||
<?php foreach(Yii::$app->params['saleChannels'] as $key=>$val){?>
|
||||
<option value="<?=$key?>" hassubinfo="true" <?=isset($detail['channel']) && $detail['channel']==$key ? 'selected':'';?>><?=$val?></option>
|
||||
<?php }?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">评分:</label>
|
||||
<div class="col-sm-9">
|
||||
<input id="score" name="score" type="number" value="<?=isset($detail['score'])?($detail['score']>=100?100:$detail['score']):60?>">
|
||||
<span class="help-block m-b-none">对客户打分,该评分仅作为内部评判客户等级、沟通便利性等参考</span>
|
||||
</div>
|
||||
<script>
|
||||
var score = <?=isset($detail['score'])?($detail['score']>=100?100:$detail['score']):60?>;
|
||||
score = score < 0 ? 0 : score;
|
||||
$("#score").ionRangeSlider({
|
||||
min: 0,
|
||||
max: 100,
|
||||
postfix: " 分",
|
||||
from: score
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">更多手机号:</label>
|
||||
<div class="col-sm-9">
|
||||
<input class="form-control" type="text" name="ext[mobiles]" placeholder="请输入其他手机号" autocomplete="off" value="<?=isset($detail['mobiles'])?$detail['mobiles']:'';?>">
|
||||
<span class="help-block m-b-none">多个手机号时,号码间用逗号(<kbd>,</kbd> )隔开;如<code>18608981880</code><kbd>,</kbd><code>13812345678</code>。</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">客户照片:</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="thumb" id="thumb-value" placeholder="如有客户照片,可上传一张" autocomplete="off" value="<?=isset($detail['thumb'])?$detail['thumb']:'';?>"> <span class="input-group-btn"> <button type="button" class="btn btn-primary" data-id="thumb-value" href="<?= Url::toRoute(['upload/image','multi'=>false,'callback'=>'thumb']);?>" w="80%;" h="90%;" title="选择或上传图片" mini="load">选择图片
|
||||
</button> </span>
|
||||
</div>
|
||||
<div class="input-group " style="margin-top:.5em;">
|
||||
<img id="thumb-preview" src="<?=isset($detail['thumb'])? Yii::$app->params['attachSrc'].Yii::$app->params['attachDir'].$detail['thumb']:'../img/nopic.jpg';?>" onerror="this.src='../img/nopic.jpg'; this.title='图片未找到.'" class="img-responsive img-thumbnail" width="150">
|
||||
<em class="close" style="position:absolute; top: 0px; right: -14px;" title="删除这张图片" onclick="deleteImage(this)">×</em>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">关联酒店:</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control" name="hotel_title" id="hotel-title" value="<?=isset($detail['hotel_title'])?$detail['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="hotel" id="hotel-value" value="<?=isset($detail['hotel_id'])?$detail['hotel_id']:0;?>">
|
||||
</div>
|
||||
<script>
|
||||
function selectHotel(title,id,callback)
|
||||
{
|
||||
layer.closeAll();
|
||||
layer.msg('已选择');
|
||||
$('#'+callback+'-value').val(id);
|
||||
$('#'+callback+'-title').val(title);
|
||||
}
|
||||
</script>
|
||||
|
||||
<label class="col-sm-1 control-label">关联员工:</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control" name="employee_title" id="employee-title" value="<?=isset($detail['employee_title'])?$detail['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="employee" id="employee-value" value="<?=isset($detail['employee_id'])?$detail['employee_id']:0;?>">
|
||||
</div>
|
||||
<script>
|
||||
function selectEmployee(title,id,callback)
|
||||
{
|
||||
layer.closeAll();
|
||||
layer.msg('已选择');
|
||||
$('#'+callback+'-value').val(id);
|
||||
$('#'+callback+'-title').val(title);
|
||||
}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">最近入住日期:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control layer-date" type="text" name="last_checkin" placeholder="请选择时间" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['last_checkin'])?$detail['last_checkin']:''?>">
|
||||
</div>
|
||||
<label class="col-sm-1 control-label">上次业务联系时间:</label>
|
||||
<div class="col-sm-4">
|
||||
<input class="form-control layer-date" type="text" name="last_contact" placeholder="请选择时间" autocomplete="off" onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" value="<?=isset($detail['last_contact'])?$detail['last_contact']:''?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">是否显示:
|
||||
</label>
|
||||
|
||||
<div class="col-sm-9">
|
||||
<div class="radio radio-primary radio-inline">
|
||||
<input type="radio" <?=(isset($detail['status_code'])&&$detail['status_code']==1)?'checked':'';?> value="1" id="status_code1" name="status_code">
|
||||
<label for="status_code">是</label>
|
||||
</div>
|
||||
<div class="radio radio-primary radio-inline">
|
||||
<input type="radio" <?=((!isset($detail['status_code']))||isset($detail['status_code'])&&$detail['status_code']==0)?'checked':'';?> value="0" id="status_code0" name="status_code">
|
||||
<label for="status_code">否</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group draggable">
|
||||
<label class="col-sm-1 control-label">备注:</label>
|
||||
<div class="col-sm-9">
|
||||
<textarea id="editor" name="editor" style="min-height:300px;"><?=isset($detail['remark'])?$detail['remark']:''?></textarea>
|
||||
<script type="text/javascript">
|
||||
//实例化编辑器
|
||||
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
|
||||
var ue = UE.getEditor('editor');
|
||||
/* 传入参数表,添加到已有参数表里 */
|
||||
ue.ready(function() {
|
||||
ue.execCommand('serverparam', {
|
||||
'siteId': "<?=Yii::$app->params['siteId']?>",
|
||||
'pid': "<?=Yii::$app->session->get('pid')?>",
|
||||
'attachSrc': "<?=Yii::$app->params['attachSrc']?>",
|
||||
'attachDir': "<?=Yii::$app->params['attachDir']?>"
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
<div class="form-group draggable">
|
||||
<div class="col-sm-12 col-sm-offset-3">
|
||||
<button class="btn btn-primary" type="submit">保存内容</button>
|
||||
<button class="btn btn-white" type="reset">清空</button>
|
||||
<a class="btn btn-white" href="<?=Yii::$app->request->referrer?>">取消并返回</a>
|
||||
<a class="btn btn-info" href="<?=Url::toRoute('guest/list')?>">客户列表</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
function showImageFrame(obj){
|
||||
//取预设参数
|
||||
var id,title,width,height,url;
|
||||
id = $(obj).attr('data-id');
|
||||
title = $(obj).attr('data-title');
|
||||
width = $(obj).attr('data-width');
|
||||
height = $(obj).attr('data-height');
|
||||
url = $(obj).attr('data-src');
|
||||
//iframe层
|
||||
parent.layer.open({
|
||||
type: 2,
|
||||
title: title,
|
||||
shadeClose: true,
|
||||
shade: 0.8,
|
||||
area: [width, height],
|
||||
content: url //iframe的url
|
||||
});
|
||||
}
|
||||
|
||||
function deleteImage(elm){
|
||||
$(elm).prev().attr("src", "../img/nopic.jpg");
|
||||
$(elm).parent().prev().find("input").val("");
|
||||
parent.layer.msg('图片已删除;您可重新上传');
|
||||
}
|
||||
|
||||
function selectImage(title,path,src,callback)
|
||||
{
|
||||
layer.closeAll();
|
||||
layer.msg('图片已选择');
|
||||
$('#'+callback+'-value').val(path);
|
||||
$('#'+callback+'-preview').attr('src',src);
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
laydate.skin('molv');
|
||||
$(document).ready(function() {
|
||||
var config = {
|
||||
".chosen-select": {},
|
||||
".chosen-select-deselect": {
|
||||
allow_single_deselect: !0
|
||||
},
|
||||
".chosen-select-no-single": {
|
||||
disable_search_threshold: 10
|
||||
},
|
||||
".chosen-select-no-results": {
|
||||
no_results_text: "Oops, nothing found!"
|
||||
},
|
||||
".chosen-select-width": {
|
||||
width: "95%"
|
||||
}
|
||||
};
|
||||
for (var selector in config) $(selector).chosen(config[selector]);
|
||||
});
|
||||
</script>
|
||||
<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>
|
||||
<style>
|
||||
.chosen-container-single .chosen-single{
|
||||
line-height:30px;
|
||||
}
|
||||
</style>
|
||||
Executable
+108
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @Author: fm453
|
||||
* @Date: 2018-11-23 12:17:02
|
||||
* @Last Modified by: fm453
|
||||
* @Last Modified time: 2018-12-04 22:32:09
|
||||
* @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;
|
||||
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<a class="btn btn-info btn-sm" href="<?= Url::toRoute('guest/new')?>">新增客户</a>
|
||||
</div>
|
||||
<div class="col-sm-3 pull-right">
|
||||
<form action="<?=Url::toRoute('guest/list')?>" method="post">
|
||||
<input type="hidden" name="_csrf-backend" value="<?= Yii::$app->getRequest()->getCsrfToken();?>" />
|
||||
<div class="input-group">
|
||||
<input class="input-sm form-control" type="text" placeholder="请输入客户姓名" name="title" value="<?=$search['title']?>">
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-sm btn-primary"> 搜索</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<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>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php foreach($guests as $vo):?>
|
||||
<tr>
|
||||
<td><?=$vo['id']?></td>
|
||||
<td>
|
||||
【网点】<code><?=isset($hotels[$vo['store_id']]['title'])?$hotels[$vo['store_id']]['title']:'未设置'?></code><br>
|
||||
【业务员】<?=isset($employees[$vo['employee_id']]['name'])?$employees[$vo['employee_id']]['name']:'未关联'?>
|
||||
</td>
|
||||
<td>
|
||||
<kbd>姓名</kbd><?=$exts[$vo['mid']]['realname']?><code>【<?=$gender[$vo['gender']]?>】</code><br>
|
||||
<kbd>昵称</kbd><?=$exts[$vo['mid']]['nickname']?><br>
|
||||
<kbd>称谓</kbd><?=$exts[$vo['mid']]['title']?>
|
||||
</td>
|
||||
<td>
|
||||
【手机】<?=$users[$vo['mid']]['mobile']?><br>
|
||||
【常在省份】<?=isset($vo['province']) ? (isset(Yii::$app->params['regionAreas'][$vo['province']])?Yii::$app->params['regionAreas'][$vo['province']]:'') : ''?>
|
||||
</td>
|
||||
<td>
|
||||
【上次发车时间】<?=isset($vo['last_send']) && $vo['last_send']>0 ? date('Y-m-d',$vo['last_send']) : '未记录'?><br>
|
||||
【上次联系时间】<?=isset($vo['last_contact']) && $vo['last_contact']>0 ? date('Y-m-d',$vo['last_contact']) : '未记录'?><br>
|
||||
【评分|星级】<?=isset($vo['score']) ? $vo['score'].'分': ''?><?=isset($vo['level']) ? $vo['level'].'级': ''?><br>
|
||||
</td>
|
||||
<td>
|
||||
<?php if($vo['status_code']==1){?>
|
||||
<a class="btn btn-info btn-xs" href="<?=Url::toRoute(['carowner/ajax','id'=>$vo['id'],'do'=>'out'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
|
||||
<?php }else{?>
|
||||
<a class="btn btn-default btn-xs" href="<?=Url::toRoute(['carowner/ajax','id'=>$vo['id'],'do'=>'in'])?>" mini="ajax"><?=$status[$vo['status_code']]?></a>
|
||||
<?php }?>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-primary btn-xs" onclick="parent.selectCarOwner('<?=$vo['realname']?>','<?=$vo['id']?>','<?=$callback?>');">选择</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
<!--分页-->
|
||||
<div class="f-r">
|
||||
<?= LinkPager::widget([
|
||||
'pagination'=>$pager,
|
||||
'firstPageLabel' => '首页',
|
||||
'nextPageLabel' => '下一页',
|
||||
'prevPageLabel' => '上一页',
|
||||
'lastPageLabel' => '末页',
|
||||
]) ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user