回访开单和记录
This commit is contained in:
parent
fe2df1065b
commit
5df9fa6746
@ -27,6 +27,8 @@ class Visit extends Backend
|
||||
parent::_initialize();
|
||||
$this->model = new \app\common\model\user4s\Visit;
|
||||
$this->user_model = new \app\common\model\user4s\User();
|
||||
$this->type_model = new \app\common\model\user4s\Visittype();
|
||||
$this->log_model = new \app\common\model\user4s\Visitlog();
|
||||
$this->view->assign("statusList", $this->model->getStatusList());
|
||||
}
|
||||
|
||||
@ -139,4 +141,89 @@ class Visit extends Backend
|
||||
$this->view->assign("row", $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
/**
|
||||
* 回访记录和结单
|
||||
*/
|
||||
public function visitlog($vid = null)
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$this->token();
|
||||
}
|
||||
$row = $this->model->get($vid);
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$adminIds = $this->getDataLimitAdminIds();
|
||||
if (is_array($adminIds)) {
|
||||
if (!in_array($row[$this->dataLimitField], $adminIds)) {
|
||||
$this->error(__('You have no permission'));
|
||||
}
|
||||
}
|
||||
$all_type = $this->type_model->where('deletetime', null)->column('id,name');
|
||||
$all_star = array(
|
||||
1=>'★',
|
||||
2=>'★★',
|
||||
3=>'★★★',
|
||||
4=>'★★★★',
|
||||
5=>'★★★★★',
|
||||
);
|
||||
if ($this->request->isAjax()) {
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
//如果发送的来源是Selectpage,则转发到Selectpage
|
||||
if ($this->request->request('keyField')) {
|
||||
return $this->selectpage();
|
||||
}
|
||||
$where_v = ['visit_id'=>$row->id];
|
||||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||||
|
||||
$list = $this->log_model
|
||||
->with(['visittype', 'user', 'visit','admin'])
|
||||
->where($where)
|
||||
->where($where_v)
|
||||
->order($sort, $order)
|
||||
->paginate($limit);
|
||||
foreach ($list as &$item) {
|
||||
$item->visit_time_f=date('Y-m-d',$item->visit_time);
|
||||
//var_dump($item->visit_time_f);
|
||||
$item->star_f = $all_star[$item->star];
|
||||
}
|
||||
//var_dump($list->items());
|
||||
$result = array("total" => $list->total(), "rows" => $list->items(),'all_star'=>$all_star);
|
||||
return json($result);
|
||||
}
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
$params = $this->request->post("row/a");
|
||||
//记录用户续保记录
|
||||
if (!empty($params['inscom']) && !empty($params['insdate'])) {
|
||||
$log_data = array(
|
||||
'user4s_id' => $row->id,
|
||||
'admin_id'=>$this->auth->id,
|
||||
'inscom'=>$params['inscom'],
|
||||
'insdate'=>$params['insdate'],
|
||||
'star'=>$params['star'],
|
||||
'description'=>$params['description']
|
||||
);
|
||||
$this->Inslog_model = new \app\common\model\user4s\Inslog();
|
||||
$this->Inslog_model->isUpdate(false)->save($log_data);
|
||||
$user_data = array(
|
||||
'inscom'=>$params['inscom'],
|
||||
'insdate'=>$params['insdate'],
|
||||
);
|
||||
$this->model->save($user_data, ['id' => $row->id]);
|
||||
}else{
|
||||
$this->error('请填写续保信息',url('user4s/user/expireins',['user4s_id'=>$row->id]));
|
||||
}
|
||||
$this->success('续保成功!',url('user4s/user/expireins',['user4s_id'=>$row->id]));
|
||||
}
|
||||
|
||||
$this->view->assign("now", date('Y-m-d'));
|
||||
$this->view->assign("all_star", $all_star);
|
||||
$this->view->assign('row', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
}
|
||||
|
71
application/admin/controller/user4s/Visitlog.php
Normal file
71
application/admin/controller/user4s/Visitlog.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\user4s;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
|
||||
/**
|
||||
* 回访记录
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class Visitlog extends Backend
|
||||
{
|
||||
|
||||
/**
|
||||
* Visitlog模型对象
|
||||
* @var \app\common\model\user4s\Visitlog
|
||||
*/
|
||||
protected $model = null;
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
$this->model = new \app\common\model\user4s\Visitlog;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
||||
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
||||
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 查看
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
//如果发送的来源是Selectpage,则转发到Selectpage
|
||||
if ($this->request->request('keyField')) {
|
||||
return $this->selectpage();
|
||||
}
|
||||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||||
|
||||
$list = $this->model
|
||||
->with(['user','visit','visittype'])
|
||||
->where($where)
|
||||
->order($sort, $order)
|
||||
->paginate($limit);
|
||||
|
||||
foreach ($list as $row) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
$result = array("total" => $list->total(), "rows" => $list->items());
|
||||
|
||||
return json($result);
|
||||
}
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
}
|
@ -33,5 +33,25 @@ class Visittype extends Backend
|
||||
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 计算回访时间
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
public function getvtime()
|
||||
{
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
$id = $this->request->post("id/d");
|
||||
$type = $this->model->get($id);
|
||||
//var_dump($type,$id);
|
||||
$vtime = date('Y-m-d');
|
||||
if(!empty($type->tip_time)){
|
||||
$vtime = date('Y-m-d',strtotime('+'.$type->tip_time.' days'));
|
||||
}
|
||||
return json(['code' => 1, 'data' => ['visit_time' => $vtime]]);
|
||||
}
|
||||
return json(['code' => 0, 'msg' => '非法请求']);
|
||||
}
|
||||
}
|
||||
|
55
application/admin/lang/zh-cn/user4s/visitlog.php
Normal file
55
application/admin/lang/zh-cn/user4s/visitlog.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'Id' => 'ID',
|
||||
'User4s_id' => '会员',
|
||||
'Admin_id' => '操作员',
|
||||
'Visit_id' => '回访单',
|
||||
'Type_id' => '回访类型',
|
||||
'Visit_time' => '回访时间',
|
||||
'Star' => '满意度',
|
||||
'Description' => '备注',
|
||||
'Createtime' => '创建时间',
|
||||
'User.id' => 'ID',
|
||||
'User.category_id' => '用户分组',
|
||||
'User.level_id' => '用户等级',
|
||||
'User.name' => '姓名',
|
||||
'User.tel' => '联系方式',
|
||||
'User.balance' => '余额',
|
||||
'User.integral' => '积分',
|
||||
'User.genderdata' => '性别',
|
||||
'User.genderdata male' => '男',
|
||||
'User.genderdata female' => '女',
|
||||
'User.city' => '省市',
|
||||
'User.buydate' => '购车日期',
|
||||
'User.carno' => '车牌号码',
|
||||
'User.model' => '车型',
|
||||
'User.color' => '颜色',
|
||||
'User.inscom' => '保险类型',
|
||||
'User.insdate' => '保险日期',
|
||||
'User.tags' => '标签',
|
||||
'User.description' => '备注',
|
||||
'User.admin_id' => '销售顾问',
|
||||
'User.createtime' => '创建时间',
|
||||
'User.updatetime' => '更新时间',
|
||||
'User.deletetime' => '删除时间',
|
||||
'User.status' => '状态值',
|
||||
'User.status 0' => '禁用',
|
||||
'User.status 1' => '正常',
|
||||
'Visit.id' => 'ID',
|
||||
'Visit.user4s_id' => '会员',
|
||||
'Visit.admin_id' => '操作员',
|
||||
'Visit.type_id' => '回访类型',
|
||||
'Visit.visittime' => '回访时间',
|
||||
'Visit.description' => '备注',
|
||||
'Visit.createtime' => '创建时间',
|
||||
'Visit.deletetime' => '删除时间',
|
||||
'Visit.status' => '是否结单',
|
||||
'Visit.endtime' => '结单时间',
|
||||
'Visittype.id' => 'ID',
|
||||
'Visittype.name' => '名称',
|
||||
'Visittype.tip_time' => '提醒时间',
|
||||
'Visittype.description' => '备注',
|
||||
'Visittype.createtime' => '创建时间',
|
||||
'Visittype.deletetime' => '删除时间'
|
||||
];
|
@ -2,7 +2,7 @@
|
||||
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<div class="panel-lead"><em>保险临期</em>保险即将临期的会员列表,请提醒用户及时购买保险。</div>
|
||||
<div class="panel-lead"><em>回访记录</em>本回访单的回访记录。</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('User4s_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{if $user4s.id > 0}
|
||||
{if isset($user4s.id)}
|
||||
<input type="hidden" name="row[user4s_id]" value="{$user4s.id}">
|
||||
<input id="c-user4s_id" class="form-control disabled" type="text" value="{$user4s.name}" readonly>
|
||||
{else}
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add2 {:$auth->check('user4s/visit/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add2 {:$auth->check('user4s/visit/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('开单')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('user4s/visit/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('user4s/visit/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a> -->
|
||||
|
||||
|
33
application/admin/view/user4s/visit/visitlog.html
Normal file
33
application/admin/view/user4s/visit/visitlog.html
Normal file
@ -0,0 +1,33 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading(null,FALSE)}
|
||||
<!-- <div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<div class="panel-lead"><em>保险临期</em>保险即将临期的会员列表,请提醒用户及时购买保险。</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<!-- <a href="javascript:;" class="btn btn-default" style="font-size:14px;color:dodgerblue;">
|
||||
<i class="fa fa-calendar"></i>
|
||||
<span class="extend">
|
||||
回访单号:<span id="start_date"></span>
|
||||
至 <span id="end_date"></span>
|
||||
</span>
|
||||
</a> -->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user4s/user/edit')}"
|
||||
data-operate-del="{:$auth->check('user4s/user/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
46
application/admin/view/user4s/visitlog/add.html
Normal file
46
application/admin/view/user4s/visitlog/add.html
Normal file
@ -0,0 +1,46 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('User4s_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user4s_id" data-rule="required" data-source="user4s/index" class="form-control selectpage" name="row[user4s_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-visit_id" data-rule="required" data-source="visit/index" class="form-control selectpage" name="row[visit_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Type_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-type_id" data-rule="required" data-source="type/index" class="form-control selectpage" name="row[type_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-visit_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[visit_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-star" min="0" class="form-control" name="row[star]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-description" class="form-control" name="row[description]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
46
application/admin/view/user4s/visitlog/edit.html
Normal file
46
application/admin/view/user4s/visitlog/edit.html
Normal file
@ -0,0 +1,46 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('User4s_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user4s_id" data-rule="required" data-source="user4s/index" class="form-control selectpage" name="row[user4s_id]" type="text" value="{$row.user4s_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-visit_id" data-rule="required" data-source="visit/index" class="form-control selectpage" name="row[visit_id]" type="text" value="{$row.visit_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Type_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-type_id" data-rule="required" data-source="type/index" class="form-control selectpage" name="row[type_id]" type="text" value="{$row.type_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-visit_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[visit_time]" type="text" value="{:$row.visit_time?datetime($row.visit_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-star" min="0" class="form-control" name="row[star]" type="number" value="{$row.star|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-description" class="form-control" name="row[description]" type="text" value="{$row.description|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
35
application/admin/view/user4s/visitlog/index.html
Normal file
35
application/admin/view/user4s/visitlog/index.html
Normal file
@ -0,0 +1,35 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('user4s/visitlog/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('user4s/visitlog/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('user4s/visitlog/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('user4s/visitlog/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user4s/visitlog/edit')}"
|
||||
data-operate-del="{:$auth->check('user4s/visitlog/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
68
application/common/model/user4s/Visitlog.php
Normal file
68
application/common/model/user4s/Visitlog.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\user4s;
|
||||
|
||||
use think\Model;
|
||||
|
||||
|
||||
class Visitlog extends Model
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 表名
|
||||
protected $name = 'user4s_visitlog';
|
||||
|
||||
// 自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'int';
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = 'createtime';
|
||||
protected $updateTime = false;
|
||||
protected $deleteTime = false;
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
'visit_time_text'
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function getVisitTimeTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['visit_time']) ? $data['visit_time'] : '');
|
||||
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
|
||||
}
|
||||
|
||||
protected function setVisitTimeAttr($value)
|
||||
{
|
||||
return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
||||
}
|
||||
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo('User', 'user4s_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
public function visit()
|
||||
{
|
||||
return $this->belongsTo('Visit', 'visit_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
public function visittype()
|
||||
{
|
||||
return $this->belongsTo('Visittype', 'type_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
public function admin()
|
||||
{
|
||||
return $this->belongsTo('app\common\model\Admin', 'admin_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
}
|
27
application/common/validate/user4s/Visitlog.php
Normal file
27
application/common/validate/user4s/Visitlog.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\validate\user4s;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Visitlog extends Validate
|
||||
{
|
||||
/**
|
||||
* 验证规则
|
||||
*/
|
||||
protected $rule = [
|
||||
];
|
||||
/**
|
||||
* 提示消息
|
||||
*/
|
||||
protected $message = [
|
||||
];
|
||||
/**
|
||||
* 验证场景
|
||||
*/
|
||||
protected $scene = [
|
||||
'add' => [],
|
||||
'edit' => [],
|
||||
];
|
||||
|
||||
}
|
70
car4s.sql
70
car4s.sql
@ -11,7 +11,7 @@
|
||||
Target Server Version : 50726
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 05/06/2022 19:04:01
|
||||
Date: 06/06/2022 17:14:31
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
@ -43,7 +43,7 @@ CREATE TABLE `car_admin` (
|
||||
-- ----------------------------
|
||||
-- Records of car_admin
|
||||
-- ----------------------------
|
||||
INSERT INTO `car_admin` VALUES (1, 'admin', '超管', 'e99065a60758653d795790673e0b4ce2', 'ebf27a', 'http://car.des8.com/assets/img/avatar.png', 'admin@admin.com', 0, 1654414184, '127.0.0.1', 1491635035, 1654414184, 'd078816d-85a6-48ff-ac52-cbc1b977f579', 'normal');
|
||||
INSERT INTO `car_admin` VALUES (1, 'admin', '超管', 'e99065a60758653d795790673e0b4ce2', 'ebf27a', 'http://car.des8.com/assets/img/avatar.png', 'admin@admin.com', 0, 1654495735, '127.0.0.1', 1491635035, 1654495735, 'a6e6f934-b88a-4af4-acd5-36165e9981ce', 'normal');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for car_admin_log
|
||||
@ -61,7 +61,7 @@ CREATE TABLE `car_admin_log` (
|
||||
`createtime` int(10) NULL DEFAULT NULL COMMENT '操作时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `name`(`username`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 363 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员日志表' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 398 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员日志表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of car_admin_log
|
||||
@ -428,6 +428,41 @@ INSERT INTO `car_admin_log` VALUES (359, 1, 'admin', '/manage.php/user4s/user/ad
|
||||
INSERT INTO `car_admin_log` VALUES (360, 1, 'admin', '/manage.php/user4s/user/add?dialog=1', 'user4s / 用户档案', '{\"dialog\":\"1\",\"__token__\":\"***\",\"row\":{\"name\":\"张三\",\"tel\":\"15264925502\",\"genderdata\":\"male\",\"carno\":\"鲁Q32145\",\"balance\":\"100.00\",\"integral\":\"100\",\"category_id\":\"2\",\"level_id\":\"1\",\"buydate\":\"2022-06-05\",\"model\":\"大众\",\"color\":\"灰色\",\"insdate\":\"2022-06-05\",\"need_visit\":\"1\",\"description\":\"\",\"status\":\"1\"}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39', 1654406464);
|
||||
INSERT INTO `car_admin_log` VALUES (361, 0, 'Unknown', '/manage.php/index/login', '', '{\"__token__\":\"***\",\"username\":\"admin\",\"password\":\"***\",\"captcha\":\"3nyb\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654414171);
|
||||
INSERT INTO `car_admin_log` VALUES (362, 1, 'admin', '/manage.php/index/login', '登录', '{\"__token__\":\"***\",\"username\":\"admin\",\"password\":\"***\",\"captcha\":\"jham\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654414184);
|
||||
INSERT INTO `car_admin_log` VALUES (363, 1, 'admin', '/manage.php/index/login', '登录', '{\"__token__\":\"***\",\"username\":\"admin\",\"password\":\"***\",\"captcha\":\"vbxl\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654481222);
|
||||
INSERT INTO `car_admin_log` VALUES (364, 1, 'admin', '/manage.php/index/login', '登录', '{\"__token__\":\"***\",\"username\":\"admin\",\"password\":\"***\",\"captcha\":\"jh8x\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654495735);
|
||||
INSERT INTO `car_admin_log` VALUES (365, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496293);
|
||||
INSERT INTO `car_admin_log` VALUES (366, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_visitlog\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496303);
|
||||
INSERT INTO `car_admin_log` VALUES (367, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496305);
|
||||
INSERT INTO `car_admin_log` VALUES (368, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496305);
|
||||
INSERT INTO `car_admin_log` VALUES (369, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496305);
|
||||
INSERT INTO `car_admin_log` VALUES (370, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496305);
|
||||
INSERT INTO `car_admin_log` VALUES (371, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_user\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496312);
|
||||
INSERT INTO `car_admin_log` VALUES (372, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_user\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496312);
|
||||
INSERT INTO `car_admin_log` VALUES (373, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496317);
|
||||
INSERT INTO `car_admin_log` VALUES (374, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496317);
|
||||
INSERT INTO `car_admin_log` VALUES (375, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496317);
|
||||
INSERT INTO `car_admin_log` VALUES (376, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496317);
|
||||
INSERT INTO `car_admin_log` VALUES (377, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_visit\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496323);
|
||||
INSERT INTO `car_admin_log` VALUES (378, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_visit\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496323);
|
||||
INSERT INTO `car_admin_log` VALUES (379, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496327);
|
||||
INSERT INTO `car_admin_log` VALUES (380, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496327);
|
||||
INSERT INTO `car_admin_log` VALUES (381, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496327);
|
||||
INSERT INTO `car_admin_log` VALUES (382, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_admin\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496327);
|
||||
INSERT INTO `car_admin_log` VALUES (383, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_visittype\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496331);
|
||||
INSERT INTO `car_admin_log` VALUES (384, 1, 'admin', '/manage.php/command/get_field_list', '在线命令管理', '{\"table\":\"car_user4s_visittype\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496331);
|
||||
INSERT INTO `car_admin_log` VALUES (385, 1, 'admin', '/manage.php/command/command/action/command', '在线命令管理', '{\"commandtype\":\"crud\",\"isrelation\":\"1\",\"local\":\"0\",\"delete\":\"0\",\"force\":\"0\",\"table\":\"car_user4s_visitlog\",\"controller\":\"\",\"model\":\"\",\"relation\":{\"2\":{\"relation\":\"car_user4s_user\",\"relationmode\":\"belongsto\",\"relationforeignkey\":\"user4s_id\",\"relationprimarykey\":\"id\"},\"3\":{\"relation\":\"car_user4s_visit\",\"relationmode\":\"belongsto\",\"relationforeignkey\":\"visit_id\",\"relationprimarykey\":\"id\"},\"4\":{\"relation\":\"car_user4s_visittype\",\"relationmode\":\"belongsto\",\"relationforeignkey\":\"type_id\",\"relationprimarykey\":\"id\"}},\"setcheckboxsuffix\":\"\",\"enumradiosuffix\":\"\",\"imagefield\":\"\",\"filefield\":\"\",\"intdatesuffix\":\"\",\"switchsuffix\":\"\",\"citysuffix\":\"\",\"selectpagesuffix\":\"\",\"selectpagessuffix\":\"\",\"ignorefields\":\"\",\"sortfield\":\"\",\"editorsuffix\":\"\",\"headingfilterfield\":\"\",\"action\":\"command\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496344);
|
||||
INSERT INTO `car_admin_log` VALUES (386, 1, 'admin', '/manage.php/command/command/action/execute', '在线命令管理', '{\"commandtype\":\"crud\",\"isrelation\":\"1\",\"local\":\"0\",\"delete\":\"0\",\"force\":\"0\",\"table\":\"car_user4s_visitlog\",\"controller\":\"\",\"model\":\"\",\"relation\":{\"2\":{\"relation\":\"car_user4s_user\",\"relationmode\":\"belongsto\",\"relationforeignkey\":\"user4s_id\",\"relationprimarykey\":\"id\"},\"3\":{\"relation\":\"car_user4s_visit\",\"relationmode\":\"belongsto\",\"relationforeignkey\":\"visit_id\",\"relationprimarykey\":\"id\"},\"4\":{\"relation\":\"car_user4s_visittype\",\"relationmode\":\"belongsto\",\"relationforeignkey\":\"type_id\",\"relationprimarykey\":\"id\"}},\"setcheckboxsuffix\":\"\",\"enumradiosuffix\":\"\",\"imagefield\":\"\",\"filefield\":\"\",\"intdatesuffix\":\"\",\"switchsuffix\":\"\",\"citysuffix\":\"\",\"selectpagesuffix\":\"\",\"selectpagessuffix\":\"\",\"ignorefields\":\"\",\"sortfield\":\"\",\"editorsuffix\":\"\",\"headingfilterfield\":\"\",\"action\":\"execute\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654496345);
|
||||
INSERT INTO `car_admin_log` VALUES (387, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"保养\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506158);
|
||||
INSERT INTO `car_admin_log` VALUES (388, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"理赔\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506173);
|
||||
INSERT INTO `car_admin_log` VALUES (389, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"理赔\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506199);
|
||||
INSERT INTO `car_admin_log` VALUES (390, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"理赔\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506225);
|
||||
INSERT INTO `car_admin_log` VALUES (391, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"索赔\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506232);
|
||||
INSERT INTO `car_admin_log` VALUES (392, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"5\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506380);
|
||||
INSERT INTO `car_admin_log` VALUES (393, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"1\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506400);
|
||||
INSERT INTO `car_admin_log` VALUES (394, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"2\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506610);
|
||||
INSERT INTO `car_admin_log` VALUES (395, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"4\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506613);
|
||||
INSERT INTO `car_admin_log` VALUES (396, 1, 'admin', '/manage.php/user4s/visittype/getvtime', 'user4s / 回访类型', '{\"id\":\"3\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506615);
|
||||
INSERT INTO `car_admin_log` VALUES (397, 1, 'admin', '/manage.php/user4s/visit/add?user4s_id=null&dialog=1', 'user4s / 回访单 / 添加', '{\"user4s_id\":\"null \",\"dialog\":\"1\",\"row\":{\"user4s_id\":\"1\",\"type_id\":\"3\",\"visittime\":\"2022-06-13\",\"description\":\"换了空滤\"}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.33', 1654506627);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for car_area
|
||||
@ -4571,7 +4606,7 @@ CREATE TABLE `car_command` (
|
||||
`updatetime` int(10) UNSIGNED NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`status` enum('successed','failured') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'failured' COMMENT '状态',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '在线命令表' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '在线命令表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of car_command
|
||||
@ -4596,6 +4631,7 @@ INSERT INTO `car_command` VALUES (17, 'crud', '[\"--table=car_user4s_visittype\"
|
||||
INSERT INTO `car_command` VALUES (18, 'menu', '[\"--controller=user4s\\/Visittype\"]', 'php think menu --controller=user4s/Visittype', 'Build Successed!', 1654397078, 1654397078, 1654397078, 'successed');
|
||||
INSERT INTO `car_command` VALUES (19, 'crud', '[\"--table=car_user4s_visit\",\"--local=0\",\"--relation=car_user4s_visittype\",\"--relationmode=belongsto\",\"--relationforeignkey=type_id\",\"--relationprimarykey=id\",\"--relation=car_user4s_user\",\"--relationmode=belongsto\",\"--relationforeignkey=user4s_id\",\"--relationprimarykey=id\",\"--relation=car_admin\",\"--relationmode=belongsto\",\"--relationforeignkey=admin_id\",\"--relationprimarykey=id\"]', 'php think crud --table=car_user4s_visit --local=0 --relation=car_user4s_visittype --relationmode=belongsto --relationforeignkey=type_id --relationprimarykey=id --relation=car_user4s_user --relationmode=belongsto --relationforeignkey=user4s_id --relationprimarykey=id --relation=car_admin --relationmode=belongsto --relationforeignkey=admin_id --relationprimarykey=id', 'Build Successed', 1654404151, 1654404151, 1654404151, 'successed');
|
||||
INSERT INTO `car_command` VALUES (20, 'menu', '[\"--controller=user4s\\/Visit\"]', 'php think menu --controller=user4s/Visit', 'Build Successed!', 1654404362, 1654404362, 1654404362, 'successed');
|
||||
INSERT INTO `car_command` VALUES (21, 'crud', '[\"--table=car_user4s_visitlog\",\"--local=0\",\"--relation=car_user4s_user\",\"--relationmode=belongsto\",\"--relationforeignkey=user4s_id\",\"--relationprimarykey=id\",\"--relation=car_user4s_visit\",\"--relationmode=belongsto\",\"--relationforeignkey=visit_id\",\"--relationprimarykey=id\",\"--relation=car_user4s_visittype\",\"--relationmode=belongsto\",\"--relationforeignkey=type_id\",\"--relationprimarykey=id\"]', 'php think crud --table=car_user4s_visitlog --local=0 --relation=car_user4s_user --relationmode=belongsto --relationforeignkey=user4s_id --relationprimarykey=id --relation=car_user4s_visit --relationmode=belongsto --relationforeignkey=visit_id --relationprimarykey=id --relation=car_user4s_visittype --relationmode=belongsto --relationforeignkey=type_id --relationprimarykey=id', 'Build Successed', 1654496345, 1654496345, 1654496345, 'successed');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for car_config
|
||||
@ -9973,12 +10009,36 @@ CREATE TABLE `car_user4s_visit` (
|
||||
`status` enum('1','0') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否结单',
|
||||
`endtime` int(10) NULL DEFAULT NULL COMMENT '结单时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '回访单' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '回访单' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of car_user4s_visit
|
||||
-- ----------------------------
|
||||
INSERT INTO `car_user4s_visit` VALUES (5, 17, 1, 1, 1655011264, '新用户回访', 1654406464, NULL, '0', NULL);
|
||||
INSERT INTO `car_user4s_visit` VALUES (6, 1, 0, 3, 1655049600, '换了空滤', 1654506627, NULL, '0', NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for car_user4s_visitlog
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `car_user4s_visitlog`;
|
||||
CREATE TABLE `car_user4s_visitlog` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`user4s_id` int(10) NOT NULL DEFAULT 0 COMMENT '会员',
|
||||
`admin_id` int(10) NULL DEFAULT 0 COMMENT '操作员',
|
||||
`visit_id` int(10) NOT NULL COMMENT '回访单',
|
||||
`type_id` int(10) NOT NULL COMMENT '回访类型',
|
||||
`visit_time` int(10) NOT NULL COMMENT '回访时间',
|
||||
`star` int(1) UNSIGNED NULL DEFAULT 0 COMMENT '满意度',
|
||||
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '备注',
|
||||
`createtime` int(10) NOT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `id`(`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '回访记录' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of car_user4s_visitlog
|
||||
-- ----------------------------
|
||||
INSERT INTO `car_user4s_visitlog` VALUES (1, 17, 1, 5, 1, 1655011264, 3, 'xxxxxxxxxx', 1654406464);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for car_user4s_visittype
|
||||
|
@ -123,7 +123,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
{
|
||||
name: 'visit',
|
||||
text: __('回访单'),
|
||||
title: __('回访单'),
|
||||
title: function(row){
|
||||
return row.name +'-的回访单'
|
||||
},
|
||||
classname: 'btn btn-xs btn-info btn-addtabs',
|
||||
icon: 'fa fa-comments-o',
|
||||
url: 'user4s/visit/index?user4s_id={id}',
|
||||
|
@ -32,7 +32,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
//{ field: 'id', title: __('Id') },
|
||||
//{ field: 'type_id', title: __('Type_id') },
|
||||
{field: 'visittype.name', title: __('Type_id'), operate: 'LIKE'},
|
||||
{ field: 'user4s_id', title: __('会员ID'),visible:false},
|
||||
{ field: 'user4s_id', title: __('会员ID'),visible:false,operate:false},
|
||||
{ field: 'user.name', title: __('会员姓名'), operate: 'LIKE' },
|
||||
{field: 'user.carno', title: __('User.carno'), operate: 'LIKE'},
|
||||
//{ field: 'user.buydate', title: __('User.buydate'), operate: 'RANGE', addclass: 'datetimerange', autocomplete: false },
|
||||
@ -44,7 +44,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
|
||||
{field: 'visittime', title: __('Visittime'), operate:'BETWEEN', addclass:'datetimepicker',data:'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete:false, formatter: Table.api.formatter.datetime,datetimeFormat:'YYYY-MM-DD'},
|
||||
//{field: 'admin.nickname', title: __('操作员'), operate: 'LIKE'},
|
||||
{ field: 'createtime', title: __('Createtime'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"',datetimeFormat:'YYYY-MM-DD', autocomplete: false, formatter: Table.api.formatter.datetime },
|
||||
{ field: 'createtime', title: __('开单时间'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"',datetimeFormat:'YYYY-MM-DD', autocomplete: false, formatter: Table.api.formatter.datetime },
|
||||
{field: 'description', title: __('Description'), operate: 'LIKE'},
|
||||
{ field: 'status', title: __('Status'), operate: '=',searchList: { "0": __('进行中'), "1": __('已办结') }, formatter: Table.api.formatter.status },
|
||||
//{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
@ -52,12 +52,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
|
||||
buttons: [
|
||||
{
|
||||
name: 'recharge',
|
||||
text: __('回访记录'),
|
||||
title: __('回访记录'),
|
||||
name: 'push',
|
||||
text: __('填报回访记录'),
|
||||
title: __('填报回访记录'),
|
||||
classname: 'btn btn-xs btn-info btn-dialog',
|
||||
icon: 'fa fa-cny',
|
||||
url: 'user4s/user/recharge',
|
||||
icon: 'fa fa-cloud-upload',
|
||||
url: 'user4s/visit/visitlog?vid={ids}',
|
||||
extend: 'data-area=\'["1000px","800px"]\'',
|
||||
callback: function (data) {
|
||||
Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
|
||||
@ -68,14 +68,30 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'rechargelog',
|
||||
text: __('结单'),
|
||||
title: __('结单'),
|
||||
classname: 'btn btn-xs btn-danger btn-dialog',
|
||||
icon: 'fa fa-calendar-check-o',
|
||||
url: 'user4s/log/index?user4s_id={id}',
|
||||
name: 'visitlog',
|
||||
text: __('历史回访记录'),
|
||||
title: __('历史回访记录'),
|
||||
classname: 'btn btn-xs btn-default btn-dialog',
|
||||
icon: 'fa fa-building-o',
|
||||
url: 'user4s/visit/visitlog?vid={ids}',
|
||||
extend: 'data-area=\'["1000px","800px"]\'',
|
||||
callback: function (data) {
|
||||
Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
|
||||
},
|
||||
visible: function (row) {
|
||||
//返回true时按钮显示,返回false隐藏
|
||||
return true;
|
||||
}
|
||||
},
|
||||
// {
|
||||
// name: 'rechargelog',
|
||||
// text: __('结单'),
|
||||
// title: __('结单'),
|
||||
// classname: 'btn btn-xs btn-danger btn-dialog',
|
||||
// icon: 'fa fa-calendar-check-o',
|
||||
// url: 'user4s/log/index?user4s_id={id}',
|
||||
// extend: 'data-area=\'["1000px","800px"]\'',
|
||||
// },
|
||||
// {
|
||||
// name: 'visit',
|
||||
// text: __('回访单'),
|
||||
@ -194,11 +210,117 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
},
|
||||
|
||||
add: function () {
|
||||
$('#c-type_id').on('change', function () {
|
||||
var id = $('#c-type_id').val();
|
||||
$.ajax({
|
||||
url: "user4s/visittype/getvtime",
|
||||
type: "POST", //Use "PUT" for HTTP PUT methods
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: id,
|
||||
},
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
console.log(data);
|
||||
if (data.code == 1) {
|
||||
if (data.data.visit_time != undefined && data.data.visit_time != null && data.data.visit_time != '') {
|
||||
$('#c-visittime').val(data.data.visit_time);
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
});
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
//回访记录
|
||||
visitlog: function () {
|
||||
// 初始化表格参数配置
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'user4s/visit/visitlog' + location.search,
|
||||
table: 'user4s_visit',
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#table");
|
||||
//当表格数据加载完成时
|
||||
// table.on('load-success.bs.table', function (e, data) {
|
||||
// //这里可以获取从服务端获取的JSON数据
|
||||
// console.log(data);
|
||||
// //这里我们手动设置底部的值
|
||||
// $("#start_date").text(data.extend.start_date);
|
||||
// $("#end_date").text(data.extend.end_date);
|
||||
// });
|
||||
// 初始化表格
|
||||
table.bootstrapTable({
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
fixedColumns: true,
|
||||
fixedRightNumber: 1,
|
||||
showToggle: false,
|
||||
commonSearch: false,
|
||||
//maintainSelected: true,
|
||||
columns: [
|
||||
[
|
||||
//{ checkbox: true },
|
||||
{field: 'id', title: __('回访记录号'), operate:false},
|
||||
{field: 'visit_id', title: __('回访单号'), operate:false},
|
||||
{ field: 'user.name', title: __('会员姓名'), operate: false },
|
||||
{ field: 'user.tel', title: __('联系方式'), operate: false },
|
||||
//{ field: 'user.buydate', title: __('购车时间'), operate: false},
|
||||
{ field: 'user.carno', title: __('车牌号'), operate: false },
|
||||
// { field: 'user.model', title: __('车型'), operate: false },
|
||||
// { field: 'user.color', title: __('颜色'), operate: false },
|
||||
{field: 'star_f', title: __('满意度'), operate: false},
|
||||
{field: 'description', title: __('Description'), operate: false},
|
||||
{ field: 'visit_time', title: __('回访时间'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: false,formatter: Table.api.formatter.datetime,datetimeFormat:'YYYY-MM-DD' },
|
||||
{
|
||||
field: 'admin_id', title: __('Admin_id'), operate: false, formatter: function (value, row, index) {
|
||||
return row['admin']['nickname'];
|
||||
}
|
||||
},
|
||||
// {
|
||||
// field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
|
||||
// buttons: [
|
||||
// {
|
||||
// name: 'renewal',
|
||||
// text: __('续保'),
|
||||
// title: __('续保'),
|
||||
// classname: 'btn btn-xs btn-danger btn-dialog',
|
||||
// icon: 'fa fa-dashboard',
|
||||
// url: 'user4s/user/renewal',
|
||||
// extend: 'data-area=\'["1000px","800px"]\'',
|
||||
// callback: function (data) {
|
||||
// Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //返回true时按钮显示,返回false隐藏
|
||||
// return true;
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// name: 'inslog',
|
||||
// text: __('续保记录'),
|
||||
// title: __('续保记录'),
|
||||
// classname: 'btn btn-xs btn-warning btn-dialog',
|
||||
// icon: 'fa fa-calendar-check-o',
|
||||
// url: 'user4s/inslog/index?user4s_id={id}',
|
||||
// extend: 'data-area=\'["1000px","800px"]\'',
|
||||
// },
|
||||
// ],
|
||||
// formatter: Table.api.formatter.operate
|
||||
// }
|
||||
]
|
||||
],
|
||||
|
||||
});
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
|
96
public/assets/js/backend/user4s/visitlog.js
Normal file
96
public/assets/js/backend/user4s/visitlog.js
Normal file
@ -0,0 +1,96 @@
|
||||
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
// 初始化表格参数配置
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'user4s/visitlog/index' + location.search,
|
||||
add_url: 'user4s/visitlog/add',
|
||||
edit_url: 'user4s/visitlog/edit',
|
||||
del_url: 'user4s/visitlog/del',
|
||||
multi_url: 'user4s/visitlog/multi',
|
||||
import_url: 'user4s/visitlog/import',
|
||||
table: 'user4s_visitlog',
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#table");
|
||||
|
||||
// 初始化表格
|
||||
table.bootstrapTable({
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'user4s_id', title: __('User4s_id')},
|
||||
{field: 'admin_id', title: __('Admin_id')},
|
||||
{field: 'visit_id', title: __('Visit_id')},
|
||||
{field: 'type_id', title: __('Type_id')},
|
||||
{field: 'visit_time', title: __('Visit_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'star', title: __('Star')},
|
||||
{field: 'description', title: __('Description'), operate: 'LIKE'},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'user.id', title: __('User.id')},
|
||||
{field: 'user.category_id', title: __('User.category_id')},
|
||||
{field: 'user.level_id', title: __('User.level_id')},
|
||||
{field: 'user.name', title: __('User.name'), operate: 'LIKE'},
|
||||
{field: 'user.tel', title: __('User.tel'), operate: 'LIKE'},
|
||||
{field: 'user.balance', title: __('User.balance'), operate:'BETWEEN'},
|
||||
{field: 'user.integral', title: __('User.integral')},
|
||||
{field: 'user.genderdata', title: __('User.genderdata')},
|
||||
{field: 'user.city', title: __('User.city'), operate: 'LIKE'},
|
||||
{field: 'user.buydate', title: __('User.buydate'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||
{field: 'user.carno', title: __('User.carno'), operate: 'LIKE'},
|
||||
{field: 'user.model', title: __('User.model'), operate: 'LIKE'},
|
||||
{field: 'user.color', title: __('User.color'), operate: 'LIKE'},
|
||||
{field: 'user.inscom', title: __('User.inscom'), operate: 'LIKE'},
|
||||
{field: 'user.insdate', title: __('User.insdate'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||
{field: 'user.tags', title: __('User.tags'), operate: 'LIKE', formatter: Table.api.formatter.flag},
|
||||
{field: 'user.description', title: __('User.description'), operate: 'LIKE'},
|
||||
{field: 'user.admin_id', title: __('User.admin_id')},
|
||||
{field: 'user.createtime', title: __('User.createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'user.updatetime', title: __('User.updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'user.deletetime', title: __('User.deletetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'user.status', title: __('User.status'), formatter: Table.api.formatter.status},
|
||||
{field: 'visit.id', title: __('Visit.id')},
|
||||
{field: 'visit.user4s_id', title: __('Visit.user4s_id')},
|
||||
{field: 'visit.admin_id', title: __('Visit.admin_id')},
|
||||
{field: 'visit.type_id', title: __('Visit.type_id')},
|
||||
{field: 'visit.visittime', title: __('Visit.visittime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'visit.description', title: __('Visit.description'), operate: 'LIKE'},
|
||||
{field: 'visit.createtime', title: __('Visit.createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'visit.deletetime', title: __('Visit.deletetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'visit.status', title: __('Visit.status'), formatter: Table.api.formatter.status},
|
||||
{field: 'visit.endtime', title: __('Visit.endtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'visittype.id', title: __('Visittype.id')},
|
||||
{field: 'visittype.name', title: __('Visittype.name'), operate: 'LIKE'},
|
||||
{field: 'visittype.tip_time', title: __('Visittype.tip_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'visittype.description', title: __('Visittype.description'), operate: 'LIKE'},
|
||||
{field: 'visittype.createtime', title: __('Visittype.createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'visittype.deletetime', title: __('Visittype.deletetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
add: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
Loading…
Reference in New Issue
Block a user