完善回访记录上报

This commit is contained in:
孟凡懂 2022-06-07 03:07:42 +08:00
parent 5df9fa6746
commit 8c61a43479
25 changed files with 10946 additions and 10503 deletions

View File

@ -3,7 +3,10 @@
namespace app\admin\controller;
use app\admin\model\Admin;
use app\admin\model\User;
use app\common\model\user4s\User;
use app\common\model\user4s\Log;
use app\common\model\user4s\Levellog;
use app\common\model\user4s\Visit;
use app\common\controller\Backend;
use app\common\model\Attachment;
use fast\Date;
@ -29,10 +32,10 @@ class Dashboard extends Backend
}
$column = [];
$starttime = Date::unixtime('day', -6);
$starttime = Date::unixtime('day', -10);
$endtime = Date::unixtime('day', 0, 'end');
$joinlist = Db("user")->where('jointime', 'between time', [$starttime, $endtime])
->field('jointime, status, COUNT(*) AS nums, DATE_FORMAT(FROM_UNIXTIME(jointime), "%Y-%m-%d") AS join_date')
$joinlist = User::where('createtime', 'between time', [$starttime, $endtime])
->field('createtime, status, COUNT(*) AS nums, DATE_FORMAT(FROM_UNIXTIME(createtime), "%Y-%m-%d") AS join_date')
->group('join_date')
->select();
for ($time = $starttime; $time <= $endtime;) {
@ -43,40 +46,65 @@ class Dashboard extends Backend
foreach ($joinlist as $k => $v) {
$userlist[$v['join_date']] = $v['nums'];
}
$this->assignconfig('column', array_keys($userlist));
$this->assignconfig('userdata', array_values($userlist));
//var_dump(Log::getlastsql());
$joinlist = Log::where('state','=','0')
->where('createtime', 'between time', [$starttime, $endtime])
->where('end','exp',' > start')
->field('createtime, SUM(end-start) AS price, DATE_FORMAT(FROM_UNIXTIME(createtime), "%Y-%m-%d") AS join_date')
->group('join_date')
->select();
$dbTableList = Db::query("SHOW TABLE STATUS");
$addonList = get_addon_list();
$totalworkingaddon = 0;
$totaladdon = count($addonList);
foreach ($addonList as $index => $item) {
if ($item['state']) {
$totalworkingaddon += 1;
}
// for ($time = $starttime; $time <= $endtime;) {
// $column[] = date("Y-m-d", $time);
// $time += 86400;
// }
$pricelist = array_fill_keys($column, 0);
foreach ($joinlist as $k => $v) {
$pricelist[$v['join_date']] = $v['price'];
}
$this->assignconfig('pricedata', array_values($pricelist));
//保险临期
$start_date = strtotime("-1 year");
$end_date = strtotime("+2 month",$start_date);
$ins_where = array(
'insdate'=>['between',[date('Y-m-d',$start_date),date('Y-m-d',$end_date)]]
);
$ins_end = User::where($ins_where)->count();
$visit_where = array(
'visittime'=>['between time',[Date::unixtime('day', 0,'begin'),Date::unixtime('day', 0,'end')]]
);
$visit = Visit::where($visit_where)->where('status',0)->count();
//var_dump(Visit::getlastsql());
$this->view->assign([
'totaluser' => User::count(),
'totaladdon' => $totaladdon,
'totalvipuser' => User::where('level_id','>','1')->count(),
'todayprice' => Log::where('state','=','0')->whereTime('createtime', 'today')->where('end','exp',' > start')->sum('end-start'),
'sumprice' =>Log::where('state','=','0')->where('end','exp',' > start')->sum('end-start'),
'totaladmin' => Admin::count(),
'totalcategory' => \app\common\model\Category::count(),
'todayusersignup' => User::whereTime('jointime', 'today')->count(),
'todayuserlogin' => User::whereTime('logintime', 'today')->count(),
'sevendau' => User::whereTime('jointime|logintime|prevtime', '-7 days')->count(),
'thirtydau' => User::whereTime('jointime|logintime|prevtime', '-30 days')->count(),
'threednu' => User::whereTime('jointime', '-3 days')->count(),
'sevendnu' => User::whereTime('jointime', '-7 days')->count(),
'dbtablenums' => count($dbTableList),
'dbsize' => array_sum(array_map(function ($item) {
return $item['Data_length'] + $item['Index_length'];
}, $dbTableList)),
'totalworkingaddon' => $totalworkingaddon,
'attachmentnums' => Attachment::count(),
'todayusersignup' => User::whereTime('createtime', 'today')->count(),
'todayusertovip' => Levellog::whereTime('createtime', 'today')->where('end','exp',' > start')->count(),
'day7user' => User::whereTime('createtime', '-7 days')->count(),
'day7price' => Log::where('state','=','0')->whereTime('createtime', '-7 days')->where('end','exp',' > start')->sum('end-start'),
'day3user' => User::whereTime('createtime', '-3 days')->count(),
'day3price' => Log::where('state','=','0')->whereTime('createtime', '-3 days')->where('end','exp',' > start')->sum('end-start'),
// 'dbtablenums' => count($dbTableList),
// 'dbsize' => array_sum(array_map(function ($item) {
// return $item['Data_length'] + $item['Index_length'];
// }, $dbTableList)),
// 'totalworkingaddon' => $totalworkingaddon,
'ins_end' => $ins_end,
'visit' => $visit,
'all_visit' => Visit::count(),
'attachmentsize' => Attachment::sum('filesize'),
'picturenums' => Attachment::where('mimetype', 'like', 'image/%')->count(),
'picturesize' => Attachment::where('mimetype', 'like', 'image/%')->sum('filesize'),
]);
$this->assignconfig('column', array_keys($userlist));
$this->assignconfig('userdata', array_values($userlist));
return $this->view->fetch();
}

View File

@ -55,4 +55,12 @@ class Category extends Backend
$data = ['searchlist' => $searchlist];
$this->success('', null, $data);
}
public function del($ids = null)
{
$ids = $ids ? $ids : $this->request->post("ids");
if ($ids == 1 || in_array(1, $ids)) {
$this->error('系统默认等级不能删除!');
}
return parent::del($ids);
}
}

View File

@ -39,6 +39,13 @@ class Inslog extends Backend
*/
public function index()
{
$all_star = array(
1=>'★',
2=>'★★',
3=>'★★★',
4=>'★★★★',
5=>'★★★★★',
);
//当前是否为关联查询
$this->relationSearch = true;
//设置过滤方法
@ -56,9 +63,9 @@ class Inslog extends Backend
->order($sort, $order)
->paginate($limit);
foreach ($list as $row) {
foreach ($list as &$item) {
$item->star_f = $all_star[$item->star];
$item->createtime_f = date('Y-m-d',$item->createtime);
}
$result = array("total" => $list->total(), "rows" => $list->items());

View File

@ -87,4 +87,12 @@ class Level extends Backend
}
return json(['code' => 0, 'msg' => '非法请求']);
}
public function del($ids = null)
{
$ids = $ids ? $ids : $this->request->post("ids");
if ($ids == 1 || in_array(1, $ids)) {
$this->error('系统默认等级不能删除!');
}
return parent::del($ids);
}
}

View File

@ -22,7 +22,7 @@ class Levellog extends Backend
{
parent::_initialize();
$this->model = new \app\common\model\user4s\Levellog;
$this->level_model = new \app\common\model\user4s\Level;
}
@ -39,6 +39,8 @@ class Levellog extends Backend
*/
public function index()
{
$all_level = $this->level_model->where('status', 1)->column('id,name');
//var_dump($all_level);
//当前是否为关联查询
$this->relationSearch = true;
//设置过滤方法
@ -63,6 +65,12 @@ class Levellog extends Backend
$row->getRelation('endlevel')->visible(['name']);
$row->getRelation('admin')->visible(['nickname']);
// var_dump($row);
if($row->start == 0){
$row->start_name = $all_level[1];
}else{
$row->start_name = $all_level[$row->start];
}
$row->end_name = $all_level[$row->end];
}
$result = array("total" => $list->total(), "rows" => $list->items());

View File

@ -43,9 +43,9 @@ class User extends Backend
{
parent::_initialize();
$this->model = new \app\common\model\user4s\User;
$this->level_model = new \app\common\model\user4s\Level();
$this->levellog_model = new \app\common\model\user4s\Levellog();
$this->log_model = new \app\common\model\user4s\Log();
$this->level_model = new \app\common\model\user4s\Level;
$this->levellog_model = new \app\common\model\user4s\Levellog;
$this->log_model = new \app\common\model\user4s\Log;
$this->view->assign("genderdataList", $this->model->getGenderdataList());
$this->view->assign("statusList", $this->model->getStatusList());
}
@ -124,7 +124,7 @@ class User extends Backend
$this->model->validateFailException(true)->validate($validate);
}
$result = $this->model->allowField(true)->save($params);
var_dump($params['need_visit']);
//var_dump($params['need_visit']);
//新加用户期初等级
if($result && $this->model->id){
if($params['need_visit'] == 1){
@ -165,7 +165,7 @@ class User extends Backend
public function edit($ids = null)
{
if ($this->request->isPost()) {
$this->token();
//$this->token();
}
$row = $this->model->get($ids);
if (!$row) {

View File

@ -142,7 +142,7 @@ class Visit extends Backend
return $this->view->fetch();
}
/**
* 回访记录和结单
* 回访记录 没有使用提交记录 提交在visitlog->add中
*/
public function visitlog($vid = null)
{
@ -154,6 +154,91 @@ class Visit extends Backend
$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();
}
/**
* 记录回访情况 废弃 未使用
*/
public function pushlog($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)) {
@ -198,7 +283,7 @@ class Visit extends Backend
if ($this->request->isPost()) {
$params = $this->request->post("row/a");
//记录用户续保记录
//回访记录
if (!empty($params['inscom']) && !empty($params['insdate'])) {
$log_data = array(
'user4s_id' => $row->id,

View File

@ -3,6 +3,10 @@
namespace app\admin\controller\user4s;
use app\common\controller\Backend;
use Exception;
use think\Db;
use think\exception\PDOException;
use think\exception\ValidateException;
/**
* 回访记录
@ -22,7 +26,8 @@ class Visitlog extends Backend
{
parent::_initialize();
$this->model = new \app\common\model\user4s\Visitlog;
$this->visit_model = new \app\common\model\user4s\Visit;
$this->type_model = new \app\common\model\user4s\Visittype;
}
@ -68,4 +73,179 @@ class Visitlog extends Backend
return $this->view->fetch();
}
/**
* 添加
*/
public function add()
{
if ($this->request->isPost()) {
$this->token();
}
$all_type = $this->type_model->where('deletetime', null)->column('id,name');
$this->view->assign("all_type", $all_type);
$all_star = array(
1=>'★',
2=>'★★',
3=>'★★★',
4=>'★★★★',
5=>'★★★★★',
);
$this->view->assign("all_star", $all_star);
if (!$this->request->isPost()) {
$visit_id = $this->request->get("vid/d");
if ($visit_id > 0) {
$visit=$this->visit_model->get($visit_id,['user','visittype']);
if(isset($visit->id)){
$this->view->assign("row", $visit);
}else{
$this->error("回访单不存在!");
}
}else{
$this->error("请选择要记录的回访单");
}
}
if ($this->request->isPost()) {
$params = $this->request->post("row/a");
if ($params) {
$visi_time = strtotime($params['visit_time'].' 00:00:00');
$params['visit_time'] = $visi_time;
//处理结单等信息
if($params['visit_id'] > 0){
$visit_data = array(
'id'=>$params['visit_id'],
//'star'=>$params['star'],
//'visittime'=>strtotime($params['visit_time']),
'admin_id'=>$this->auth->id,
'status'=>$params['is_end']==1?1:0,
'endtime'=>$params['is_end']==1?time():null,
);
//var_dump($visit_data);exit();
$this->visit_model->where('id', $params['visit_id'])->update($visit_data);
// if($visit_id == false){
// $this->error("更新回访单失败!");
// }
}
$params = $this->preExcludeFields($params);
$params['admin_id'] = $this->auth->id;
// if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
// $params[$this->dataLimitField] = $this->auth->id;
// }
$result = false;
$this->model->startTrans();
try {
//是否采用模型验证
if ($this->modelValidate) {
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
$this->model->validateFailException(true)->validate($validate);
}
$result = $this->model->allowField(true)->save($params);
$this->model->commit();
} catch (ValidateException $e) {
$this->model->rollback();
$this->error($e->getMessage());
} catch (PDOException $e) {
$this->model->rollback();
$this->error($e->getMessage());
} catch (Exception $e) {
$this->model->rollback();
$this->error($e->getMessage());
}
if ($result !== false) {
$this->success();
} else {
$this->error(__('No rows were inserted'));
}
}
$this->error(__('Parameter %s can not be empty', ''));
}
return parent::add();
}
/**
* 编辑
*/
public function edit($ids = null)
{
$all_type = $this->type_model->where('deletetime', null)->column('id,name');
$this->view->assign("all_type", $all_type);
$all_star = array(
1=>'★',
2=>'★★',
3=>'★★★',
4=>'★★★★',
5=>'★★★★★',
);
$this->view->assign("all_star", $all_star);
$row = $this->model->get($ids,['visittype', 'user', 'visit','admin']);
if (!$row) {
$this->error(__('No Results were found'));
}
if (empty($row->visit->id)) {
$this->error(__('没找到对应的回访单!'));
}
if (empty($row->user->id)) {
$this->error(__('没找到对应的客户!'));
}
$adminIds = $this->getDataLimitAdminIds();
if (is_array($adminIds)) {
if (!in_array($row[$this->dataLimitField], $adminIds)) {
$this->error(__('You have no permission'));
}
}
if ($this->request->isPost()) {
$params = $this->request->post("row/a");
if ($params) {
$visi_time = strtotime($params['visit_time'].' 00:00:00');
$params['visit_time'] = $visi_time;
//处理结单等信息
if($params['visit_id'] > 0){
$visit_data = array(
'id'=>$params['visit_id'],
//'star'=>$params['star'],
//'visittime'=>strtotime($params['visit_time']),
'admin_id'=>$this->auth->id,
'status'=>$params['is_end']==1?1:0,
'endtime'=>$params['is_end']==1?time():null,
);
//var_dump($visit_data);exit();
$this->visit_model->where('id', $params['visit_id'])->update($visit_data);
}
unset($params['is_end']);
//var_dump($params);exit();
$params = $this->preExcludeFields($params);
$result = false;
$this->model->startTrans();
try {
//是否采用模型验证
if ($this->modelValidate) {
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
$row->validateFailException(true)->validate($validate);
}
//var_dump($params);exit();
$result = $row->allowField(true)->save($params);
$this->model->commit();
} catch (ValidateException $e) {
$this->model->rollback();
$this->error($e->getMessage());
} catch (PDOException $e) {
$this->model->rollback();
$this->error($e->getMessage());
} catch (Exception $e) {
$this->model->rollback();
$this->error($e->getMessage());
}
if ($result !== false) {
$this->success();
} else {
$this->error(__('No rows were updated'));
}
}
$this->error(__('Parameter %s can not be empty', ''));
}
$this->view->assign("row", $row);
return $this->view->fetch();
}
}

View File

@ -163,14 +163,61 @@
<div class="panel-heading">
{:build_heading(null, false)}
<ul class="nav nav-tabs">
<li class="active"><a href="#one" data-toggle="tab">{:__('Dashboard')}</a></li>
<li><a href="#two" data-toggle="tab">{:__('Custom')}</a></li>
<li class="active"><a href="#one" data-toggle="tab">{:__('数据概览')}</a></li>
<!-- <li><a href="#two" data-toggle="tab">{:__('Custom')}</a></li> -->
</ul>
</div>
<div class="panel-body">
<div id="myTabContent" class="tab-content">
<div class="tab-pane fade active in" id="one">
<div class="row">
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="{:url('user4s/user/expireins')}" class="btn-addtabs addtabs">
<span class="sm-st-icon st-red"><i class="fa fa-bell-o"></i></span>
<div class="sm-st-info">
<span>{$ins_end}</span>
{:__('保险临期')}
</div>
</a>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="{:url('user4s/visit/index',['status'=>0])}" class="btn-addtabs addtabs" data-title="回访单">
<span class="sm-st-icon st-red"><i class="fa fa-comments-o"></i></span>
<div class="sm-st-info">
<span>{$visit}</span>
{:__('今日待回访')}
</div>
</a>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="{:url('user4s/visit/index',['status'=>0])}" class="btn-addtabs addtabs" data-title="回访单">
<span class="sm-st-icon st-blue"><i class="fa fa-comments"></i></span>
<div class="sm-st-info">
<span>{$all_visit}</span>
{:__('全部回访单')}
</div>
</a>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="{:url('user4s/user/index')}" class="btn-addtabs addtabs" data-title="回访单">
<span class="sm-st-icon st-green"><i class="fa fa-user"></i></span>
<div class="sm-st-info">
<span>{$sumprice|round=###,2}</span>
{:__('充值总金额')}
</div>
</a>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
@ -185,8 +232,8 @@
<div class="sm-st clearfix">
<span class="sm-st-icon st-violet"><i class="fa fa-magic"></i></span>
<div class="sm-st-info">
<span>{$totaladdon}</span>
{:__('Total addon')}
<span>{$totalvipuser}</span>
{:__('高级会员数')}
</div>
</div>
</div>
@ -194,8 +241,8 @@
<div class="sm-st clearfix">
<span class="sm-st-icon st-blue"><i class="fa fa-leaf"></i></span>
<div class="sm-st-info">
<span>{$attachmentnums}</span>
{:__('Total attachment')}
<span>{$todayprice|round=###,2}</span>
{:__('今日充值金额')}
</div>
</div>
</div>
@ -204,16 +251,13 @@
<span class="sm-st-icon st-green"><i class="fa fa-user"></i></span>
<div class="sm-st-info">
<span>{$totaladmin}</span>
{:__('Total admin')}
{:__('管理员数量')}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8">
<div id="echart" class="btn-refresh" style="height:300px;width:100%;"></div>
</div>
<div class="col-lg-4">
<div class="card sameheight-item stats">
<div class="card-block">
@ -222,7 +266,7 @@
<div class="stat-icon"><i class="fa fa-rocket"></i></div>
<div class="stat">
<div class="value"> {$todayusersignup}</div>
<div class="name"> {:__('Today user signup')}</div>
<div class="name"> {:__('今日新增客户')}</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
@ -231,48 +275,48 @@
<div class="col-xs-6 stat-col">
<div class="stat-icon"><i class="fa fa-vcard"></i></div>
<div class="stat">
<div class="value"> {$todayuserlogin}</div>
<div class="name"> {:__('Today user login')}</div>
<div class="value"> {$todayusertovip}</div>
<div class="name"> {:__('今日新升级客户')}</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div>
</div>
<div class="col-xs-6 stat-col">
<div class="stat-icon"><i class="fa fa-calendar"></i></div>
<div class="stat-icon"><i class="fa fa-child"></i></div>
<div class="stat">
<div class="value"> {$threednu}</div>
<div class="name"> {:__('Three dnu')}</div>
<div class="value"> {$day3user}</div>
<div class="name"> {:__('三日新增客户')}</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div>
</div>
<div class="col-xs-6 stat-col">
<div class="stat-icon"><i class="fa fa-calendar-plus-o"></i></div>
<div class="stat-icon"><i class="fa fa-rmb"></i></div>
<div class="stat">
<div class="value"> {$sevendnu}</div>
<div class="name"> {:__('Seven dnu')}</div>
<div class="value"> {$day3price|round=###,2}</div>
<div class="name"> {:__('三日充值金额')}</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div>
</div>
<div class="col-xs-6 stat-col">
<div class="stat-icon"><i class="fa fa-user-circle"></i></div>
<div class="stat-icon"><i class="fa fa-child"></i></div>
<div class="stat">
<div class="value"> {$sevendau}</div>
<div class="name"> {:__('Seven dau')}</div>
<div class="value"> {$day7user}</div>
<div class="name"> {:__('近一周新增客户')}</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div>
</div>
<div class="col-xs-6 stat-col">
<div class="stat-icon"><i class="fa fa-user-circle-o"></i></div>
<div class="stat-icon"><i class="fa fa-rmb"></i></div>
<div class="stat">
<div class="value"> {$thirtydau}</div>
<div class="name"> {:__('Thirty dau')}</div>
<div class="value"> {$day7price|round=###,2}</div>
<div class="name"> {:__('近一周充值金额')}</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
@ -282,114 +326,13 @@
</div>
</div>
</div>
<div class="col-lg-8">
<div id="echart" class="btn-refresh" style="height:300px;width:100%;"></div>
</div>
<div class="row" style="margin-top:15px;" id="statistics">
<div class="col-lg-12">
</div>
<div class="col-xs-6 col-md-3">
<div class="panel bg-blue-gradient no-border">
<div class="panel-body">
<div class="panel-title">
<span class="label label-primary pull-right">{:__('Real time')}</span>
<h5>{:__('Working addon count')}</h5>
</div>
<div class="panel-content">
<div class="row">
<div class="col-md-12">
<h1 class="no-margins">{$totalworkingaddon}</h1>
<div class="font-bold"><i class="fa fa-magic"></i>
<small>{:__('Working addon count tips')}</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-6 col-md-3">
<div class="panel bg-teal-gradient no-border">
<div class="panel-body">
<div class="ibox-title">
<span class="label label-primary pull-right">{:__('Real time')}</span>
<h5>{:__('Database count')}</h5>
</div>
<div class="ibox-content">
<div class="row">
<div class="col-md-6">
<h1 class="no-margins">{$dbtablenums}</h1>
<div class="font-bold"><i class="fa fa-database"></i>
<small>{:__('Database table nums')}</small>
</div>
</div>
<div class="col-md-6">
<h1 class="no-margins">{$dbsize|format_bytes=###,'',0}</h1>
<div class="font-bold"><i class="fa fa-filter"></i>
<small>{:__('Database size')}</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-6 col-md-3">
<div class="panel bg-purple-gradient no-border">
<div class="panel-body">
<div class="ibox-title">
<span class="label label-primary pull-right">{:__('Real time')}</span>
<h5>{:__('Attachment count')}</h5>
</div>
<div class="ibox-content">
<div class="row">
<div class="col-md-6">
<h1 class="no-margins">{$attachmentnums}</h1>
<div class="font-bold"><i class="fa fa-files-o"></i>
<small>{:__('Attachment nums')}</small>
</div>
</div>
<div class="col-md-6">
<h1 class="no-margins">{$attachmentsize|format_bytes=###,'',0}</h1>
<div class="font-bold"><i class="fa fa-filter"></i>
<small>{:__('Attachment size')}</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-6 col-md-3">
<div class="panel bg-green-gradient no-border">
<div class="panel-body">
<div class="ibox-title">
<span class="label label-primary pull-right">{:__('Real time')}</span>
<h5>{:__('Picture count')}</h5>
</div>
<div class="ibox-content">
<div class="row">
<div class="col-md-6">
<h1 class="no-margins">{$picturenums}</h1>
<div class="font-bold"><i class="fa fa-picture-o"></i>
<small>{:__('Picture nums')}</small>
</div>
</div>
<div class="col-md-6">
<h1 class="no-margins">{$picturesize|format_bytes=###,'',0}</h1>
<div class="font-bold"><i class="fa fa-filter"></i>
<small>{:__('Picture size')}</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="two">
<div class="row">

View File

@ -29,6 +29,7 @@
<label class="control-label">{$row.integral|htmlentities}</label>
</div>
</div>
</div>
</div>

View File

@ -24,6 +24,16 @@
<input id="c-description" class="form-control" name="row[description]" type="text" value="{$row.description|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('是否结单')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-status" name="row[status]" type="hidden" value="{$row.status}">
<a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-status" data-yes="1" data-no="0" >
<i class="fa fa-toggle-on text-success fa-2x {if $row.status==0}fa-flip-horizontal text-gray{/if}"></i>
</a>
<span id="helpBlock" class="help-block">结单后不能再填报记录,后续还有回访请重新开单。绿色为结单,灰色为不结单!</span>
</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">

View File

@ -16,7 +16,7 @@
<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> {:__('开单')}</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-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> -->

View File

@ -1,41 +1,102 @@
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<div class="form-group">
{:token()}
<!-- <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> -->
<div class="panel panel-warning">
<div class="panel-heading"><b>客户回访单信息</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_id')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('客户姓名')}:</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="">
<input id="c-user4s_id" class="form-control disabled" type="text" value="{$row.user.name}" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Type_id')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('客户联系方式')}:</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="">
<input id="c-user4s_tel" class="form-control disabled" type="text" value="{$row.user.tel}" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_time')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('回访类型')}:</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')}">
<input class="form-control disabled" type="text" value="{$all_type[$row.type_id]}" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('开单时间')}:</label>
<div class="col-xs-12 col-sm-8">
<input class="form-control disabled" type="text" value="{$row.createtime|date=" Y-m-d",###}"
readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('开单备注')}:</label>
<div class="col-xs-12 col-sm-8">
<input class="form-control disabled" type="text" value="{$row.description|htmlentities}" readonly>
</div>
</div>
</div>
</div>
<input type="hidden" name="row[user4s_id]" value="{$row.user.id}">
<input type="hidden" name="row[visit_id]" value="{$row.id}">
<input type="hidden" name="row[type_id]" value="{$row.type_id}">
<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">
<!-- <input id="c-star" min="0" class="form-control" name="row[star]" type="number" value="0"> -->
<select id="c-star" data-rule="required" class="form-control selectpicker" name="row[star]">
{foreach name="all_star" item="vo"}
<option value="{$key}" {in name="key" value=""}selected{/in}>{$vo}</option>
{/foreach}
</select>
</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="">
<input id="c-description" data-rule="required" class="form-control" name="row[description]" 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" data-use-current="true" name="row[visit_time]" type="text"
value="{:date('Y-m-d')}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('是否结单')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-is_end" name="row[is_end]" type="hidden" value="1">
<a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-is_end" data-yes="1" data-no="0" >
<i class="fa fa-toggle-on text-success fa-2x"></i>
</a>
<span id="helpBlock" class="help-block">结单后不能再填报记录,后续还有回访请重新开单。绿色为结单,灰色为不结单!</span>
</div>
</div>
<!-- <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('是否结单')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-is_end" name="row[is_end]" type="hidden" value="1">
<a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-is_end" data-yes="1" data-no="0" >
<i class="fa fa-toggle-on text-success fa-2x"></i>
</a>
<span id="helpBlock" class="help-block">结单后不可以再次填报回访记录,如果后续还有回访要求请重新开单。</span>
</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">

View File

@ -1,33 +1,63 @@
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<div class="panel panel-warning">
<div class="panel-heading"><b>客户回访单信息</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('User4s_id')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('客户姓名')}:</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}">
<input id="c-user4s_id" class="form-control disabled" type="text" value="{$row.user.name}" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_id')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('客户联系方式')}:</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}">
<input id="c-user4s_tel" class="form-control disabled" type="text" value="{$row.user.tel}" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Type_id')}:</label>
<label class="control-label col-xs-12 col-sm-2">{:__('回访类型')}:</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}">
<input class="form-control disabled" type="text" value="{$all_type[$row.type_id]}" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('开单时间')}:</label>
<div class="col-xs-12 col-sm-8">
<input class="form-control disabled" type="text" value="{$row.createtime|date=" Y-m-d",###}"
readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('开单备注')}:</label>
<div class="col-xs-12 col-sm-8">
<input class="form-control disabled" type="text" value="{$row.description|htmlentities}" readonly>
</div>
</div>
</div>
</div>
<input type="hidden" name="row[user4s_id]" value="{$row.user.id}">
<input type="hidden" name="row[visit_id]" value="{$row.visit.id}">
<input type="hidden" name="row[type_id]" value="{$row.type_id}">
<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):''}">
<input id="c-visit_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[visit_time]" type="text" value="{:$row.visit_time?date('Y-m-d',$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}">
<!-- <input id="c-star" min="0" class="form-control" name="row[star]" type="number" value="{$row.star|htmlentities}"> -->
<select id="c-star" data-rule="required" class="form-control selectpicker" name="row[star]">
{foreach name="all_star" item="vo"}
<option value="{$key}" {in name="key" value="$row.star"}selected{/in}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
@ -36,6 +66,16 @@
<input id="c-description" class="form-control" name="row[description]" type="text" value="{$row.description|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('是否结单')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-is_end" name="row[is_end]" type="hidden" value="0">
<a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-is_end" data-yes="1" data-no="0" >
<i class="fa fa-toggle-on text-success fa-2x fa-flip-horizontal text-gray"></i>
</a>
<span id="helpBlock" class="help-block">结单后不能再填报记录,后续还有回访请重新开单。绿色为结单,灰色为不结单!</span>
</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">

View File

@ -4,14 +4,14 @@
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50726
Source Host : localhost:3306
Source Host : 127.0.0.1:3306
Source Schema : car4s
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 06/06/2022 17:14:31
Date: 07/06/2022 03:06:20
*/
SET NAMES utf8mb4;
@ -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 = 398 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员日志表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 418 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员日志表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of car_admin_log
@ -463,6 +463,26 @@ INSERT INTO `car_admin_log` VALUES (394, 1, 'admin', '/manage.php/user4s/visitty
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);
INSERT INTO `car_admin_log` VALUES (398, 1, 'admin', '/manage.php/user4s/visitlog/add?vid=5', 'user4s', '{\"vid\":\"5\",\"__token__\":\"***\",\"row\":{\"user4s_id\":\"17\",\"visit_id\":\"5\",\"type_id\":\"1\",\"star\":\"1\",\"description\":\"ddddd\",\"visit_time\":\"2022-06-06\",\"is_end\":\"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', 1654529497);
INSERT INTO `car_admin_log` VALUES (399, 1, 'admin', '/manage.php/user4s/visitlog/add?vid=5', 'user4s', '{\"vid\":\"5\",\"__token__\":\"***\",\"row\":{\"user4s_id\":\"17\",\"visit_id\":\"5\",\"type_id\":\"1\",\"star\":\"1\",\"description\":\"ddddd\",\"visit_time\":\"2022-06-06\",\"is_end\":\"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', 1654529500);
INSERT INTO `car_admin_log` VALUES (400, 1, 'admin', '/manage.php/user4s/visitlog/edit?ids=1&dialog=1', 'user4s', '{\"ids\":\"1\",\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"visit_id\":\"5\",\"type_id\":\"1\",\"visit_time\":\"2022-06-12\",\"star\":\"5\",\"description\":\"xxxxxxxxxx\",\"is_end\":\"0\"}}', '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', 1654531778);
INSERT INTO `car_admin_log` VALUES (401, 1, 'admin', '/manage.php/user4s/visitlog/edit?ids=1&dialog=1', 'user4s', '{\"ids\":\"1\",\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"visit_id\":\"5\",\"type_id\":\"1\",\"visit_time\":\"2022-06-12\",\"star\":\"5\",\"description\":\"xxxxxxxxxx\",\"is_end\":\"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', 1654531989);
INSERT INTO `car_admin_log` VALUES (402, 1, 'admin', '/manage.php/user4s/visitlog/add?vid=5&dialog=1', 'user4s', '{\"vid\":\"5\",\"dialog\":\"1\",\"__token__\":\"***\",\"row\":{\"user4s_id\":\"17\",\"visit_id\":\"5\",\"type_id\":\"1\",\"star\":\"5\",\"description\":\"客户反馈正常啦\",\"visit_time\":\"2022-06-07\",\"is_end\":\"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', 1654532764);
INSERT INTO `car_admin_log` VALUES (403, 1, 'admin', '/manage.php/user4s/visitlog/add?vid=5&dialog=1', 'user4s', '{\"vid\":\"5\",\"dialog\":\"1\",\"__token__\":\"***\",\"row\":{\"user4s_id\":\"17\",\"visit_id\":\"5\",\"type_id\":\"1\",\"star\":\"5\",\"description\":\"结单\",\"visit_time\":\"2022-06-07\",\"is_end\":\"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', 1654532859);
INSERT INTO `car_admin_log` VALUES (404, 1, 'admin', '/manage.php/user4s/visit/edit/ids/5?dialog=1', 'user4s / 回访单 / 编辑', '{\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"type_id\":\"1\",\"visittime\":\"2022-06-12\",\"description\":\"新用户回访\",\"status\":\"0\"},\"ids\":\"5\"}', '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', 1654533459);
INSERT INTO `car_admin_log` VALUES (405, 1, 'admin', '/manage.php/user4s/visit/edit/ids/5?dialog=1', 'user4s / 回访单 / 编辑', '{\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"type_id\":\"1\",\"visittime\":\"2022-06-12\",\"description\":\"新用户回访\",\"status\":\"0\"},\"ids\":\"5\"}', '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', 1654533489);
INSERT INTO `car_admin_log` VALUES (406, 1, 'admin', '/manage.php/user4s/visit/edit/ids/5?dialog=1', 'user4s / 回访单 / 编辑', '{\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"type_id\":\"1\",\"visittime\":\"2022-06-12\",\"description\":\"新用户回访\",\"status\":\"1\"},\"ids\":\"5\"}', '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', 1654533785);
INSERT INTO `car_admin_log` VALUES (407, 1, 'admin', '/manage.php/user4s/visit/edit/ids/5?dialog=1', 'user4s / 回访单 / 编辑', '{\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"type_id\":\"1\",\"visittime\":\"2022-06-12\",\"description\":\"新用户回访\",\"status\":\"0\"},\"ids\":\"5\"}', '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', 1654533878);
INSERT INTO `car_admin_log` VALUES (408, 1, 'admin', '/manage.php/user4s/visit/edit/ids/5?dialog=1', 'user4s / 回访单 / 编辑', '{\"dialog\":\"1\",\"row\":{\"user4s_id\":\"17\",\"type_id\":\"1\",\"visittime\":\"2022-06-12\",\"description\":\"新用户回访\",\"status\":\"1\"},\"ids\":\"5\"}', '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', 1654533926);
INSERT INTO `car_admin_log` VALUES (409, 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/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39', 1654533968);
INSERT INTO `car_admin_log` VALUES (410, 1, 'admin', '/manage.php/user4s/level/calculate', 'user4s / 用户等级', '{\"start\":\"100\",\"balance\":\"500\"}', '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', 1654534067);
INSERT INTO `car_admin_log` VALUES (411, 1, 'admin', '/manage.php/user4s/user/recharge/ids/17?dialog=1', 'user4s / 用户档案', '{\"dialog\":\"1\",\"__token__\":\"***\",\"row\":{\"balance\":\"500\",\"integral\":\"500\",\"level_id\":\"1\",\"description\":\"系统后台充值余额500元\"},\"ids\":\"17\"}', '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', 1654534069);
INSERT INTO `car_admin_log` VALUES (412, 1, 'admin', '/manage.php/auth/rule/edit/ids/1?dialog=1', '权限管理 / 菜单规则 / 编辑', '{\"dialog\":\"1\",\"__token__\":\"***\",\"row\":{\"ismenu\":\"1\",\"pid\":\"0\",\"name\":\"dashboard\",\"title\":\"数据概览\",\"url\":\"\",\"icon\":\"fa fa-dashboard\",\"condition\":\"\",\"menutype\":\"addtabs\",\"extend\":\"\",\"remark\":\"用于展示当前系统中的统计数据、统计报表及重要实时数据\",\"weigh\":\"143\",\"status\":\"normal\"},\"ids\":\"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', 1654538427);
INSERT INTO `car_admin_log` VALUES (413, 1, 'admin', '/manage.php/addon/config?name=database&dialog=1', '插件管理 / 配置', '{\"name\":\"database\",\"dialog\":\"1\",\"row\":{\"backupDir\":\"..\\/data\\/\",\"backupIgnoreTables\":\"fa_admin_log\"}}', '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', 1654540408);
INSERT INTO `car_admin_log` VALUES (414, 1, 'admin', '/manage.php/user4s/user/edit/ids/17', 'user4s / 用户档案', '{\"row\":{\"name\":\"张三1\"},\"ids\":\"17\"}', '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', 1654540483);
INSERT INTO `car_admin_log` VALUES (415, 1, 'admin', '/manage.php/user4s/user/edit/ids/17', 'user4s / 用户档案', '{\"row\":{\"name\":\"张三\"},\"ids\":\"17\"}', '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', 1654540523);
INSERT INTO `car_admin_log` VALUES (416, 1, 'admin', '/manage.php/user4s/level/edit/ids/3', 'user4s / 用户等级 / 编辑', '{\"row\":{\"description\":\"高级\"},\"ids\":\"3\"}', '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', 1654541479);
INSERT INTO `car_admin_log` VALUES (417, 1, 'admin', '/manage.php/user4s/level/edit/ids/2', 'user4s / 用户等级 / 编辑', '{\"row\":{\"description\":\"普通\"},\"ids\":\"2\"}', '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', 1654541488);
-- ----------------------------
-- Table structure for car_area
@ -4341,7 +4361,7 @@ CREATE TABLE `car_auth_rule` (
-- ----------------------------
-- Records of car_auth_rule
-- ----------------------------
INSERT INTO `car_auth_rule` VALUES (1, 'file', 0, 'dashboard', 'Dashboard', 'fa fa-dashboard', '', '', 'Dashboard tips', 1, NULL, '', 'kzt', 'kongzhitai', 1491635035, 1491635035, 143, 'normal');
INSERT INTO `car_auth_rule` VALUES (1, 'file', 0, 'dashboard', '数据概览', 'fa fa-dashboard', '', '', '用于展示当前系统中的统计数据、统计报表及重要实时数据', 1, 'addtabs', '', 'sjgl', 'shujugailan', 1491635035, 1654538427, 143, 'normal');
INSERT INTO `car_auth_rule` VALUES (2, 'file', 0, 'general', 'General', 'fa fa-cogs', '', '', '', 1, NULL, '', 'cggl', 'changguiguanli', 1491635035, 1491635035, 137, 'normal');
INSERT INTO `car_auth_rule` VALUES (3, 'file', 0, 'category', 'Category', 'fa fa-leaf', '', '', 'Category tips', 1, NULL, '', 'flgl', 'fenleiguanli', 1491635035, 1653069796, 119, 'normal');
INSERT INTO `car_auth_rule` VALUES (4, 'file', 0, 'addon', 'Addon', 'fa fa-rocket', '', '', 'Addon tips', 1, NULL, '', 'cjgl', 'chajianguanli', 1491635035, 1491635035, 0, 'normal');
@ -4796,7 +4816,7 @@ CREATE TABLE `car_org5a` (
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址',
`pid` int(11) NULL DEFAULT NULL COMMENT '上级ID',
`type_id` int(11) NULL DEFAULT 0,
`cerated_time` datetime(0) NOT NULL COMMENT '创建时间',
`cerated_time` datetime NOT NULL COMMENT '创建时间',
`uniacid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`status` int(4) NULL DEFAULT 1,
`orderby` int(2) NULL DEFAULT 0,
@ -7323,7 +7343,7 @@ CREATE TABLE `car_org5a_copy1` (
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址',
`pid` int(11) NULL DEFAULT NULL COMMENT '上级ID',
`type_id` int(11) NULL DEFAULT 0,
`cerated_time` datetime(0) NOT NULL COMMENT '创建时间',
`cerated_time` datetime NOT NULL COMMENT '创建时间',
`uniacid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`status` int(4) NULL DEFAULT 1,
`orderby` int(2) NULL DEFAULT 0,
@ -9742,9 +9762,9 @@ CREATE TABLE `car_test` (
`views` int(10) UNSIGNED NULL DEFAULT 0 COMMENT '点击',
`workrange` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '时间区间',
`startdate` date NULL DEFAULT NULL COMMENT '开始日期',
`activitytime` datetime(0) NULL DEFAULT NULL COMMENT '活动时间(datetime)',
`activitytime` datetime NULL DEFAULT NULL COMMENT '活动时间(datetime)',
`year` year NULL DEFAULT NULL COMMENT '',
`times` time(0) NULL DEFAULT NULL COMMENT '时间',
`times` time NULL DEFAULT NULL COMMENT '时间',
`refreshtime` int(10) NULL DEFAULT NULL COMMENT '刷新时间(int)',
`createtime` int(10) NULL DEFAULT NULL COMMENT '创建时间',
`updatetime` int(10) NULL DEFAULT NULL COMMENT '更新时间',
@ -9870,8 +9890,8 @@ CREATE TABLE `car_user4s_level` (
-- Records of car_user4s_level
-- ----------------------------
INSERT INTO `car_user4s_level` VALUES (1, '普通客户', '非会员', '默认级别', '', 0.00, 1, '1');
INSERT INTO `car_user4s_level` VALUES (2, 'VIP1客户', '普通会员', '', '', 1000.00, 2, '1');
INSERT INTO `car_user4s_level` VALUES (3, 'VIP2客户', '高级会员', '', '', 2000.00, 3, '1');
INSERT INTO `car_user4s_level` VALUES (2, 'VIP1客户', '普通会员', '普通', '', 1000.00, 2, '1');
INSERT INTO `car_user4s_level` VALUES (3, 'VIP2客户', '高级会员', '高级', '', 2000.00, 3, '1');
-- ----------------------------
-- Table structure for car_user4s_levellog
@ -9901,7 +9921,7 @@ INSERT INTO `car_user4s_levellog` VALUES (5, 8, 1, '', '新添加用户会员等
INSERT INTO `car_user4s_levellog` VALUES (6, 9, 1, '', '新添加用户会员等级:普通客户', 0, 1, 1654406270, NULL);
INSERT INTO `car_user4s_levellog` VALUES (7, 10, 1, '', '新添加用户会员等级:普通客户', 0, 1, 1654406294, NULL);
INSERT INTO `car_user4s_levellog` VALUES (13, 16, 1, '', '新添加用户会员等级:普通客户', 0, 1, 1654406441, NULL);
INSERT INTO `car_user4s_levellog` VALUES (14, 17, 1, '', '新添加用户会员等级:普通客户', 0, 1, 1654406464, NULL);
INSERT INTO `car_user4s_levellog` VALUES (14, 17, 1, '', '新添加用户会员等级:普通客户', 0, 1, 1654535915, NULL);
-- ----------------------------
-- Table structure for car_user4s_log
@ -9919,7 +9939,7 @@ CREATE TABLE `car_user4s_log` (
`deletetime` int(10) NULL DEFAULT NULL COMMENT '删除时间',
`state` enum('0','1') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '类型:0=余额,1=积分',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员充值记录' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 49 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员充值记录' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of car_user4s_log
@ -9948,12 +9968,14 @@ INSERT INTO `car_user4s_log` VALUES (27, 8, 1, '', '1', 0.00, 100.00, 1654406217
INSERT INTO `car_user4s_log` VALUES (28, 8, 1, '', '1', 0.00, 100.00, 1654406217, NULL, '1');
INSERT INTO `car_user4s_log` VALUES (29, 9, 1, '', '1', 0.00, 100.00, 1654406270, NULL, '0');
INSERT INTO `car_user4s_log` VALUES (30, 9, 1, '', '1', 0.00, 100.00, 1654406270, NULL, '1');
INSERT INTO `car_user4s_log` VALUES (31, 10, 1, '', '1', 0.00, 100.00, 1654406294, NULL, '0');
INSERT INTO `car_user4s_log` VALUES (31, 10, 1, '', '1', 101.00, 100.00, 1654406294, NULL, '0');
INSERT INTO `car_user4s_log` VALUES (32, 10, 1, '', '1', 0.00, 100.00, 1654406294, NULL, '1');
INSERT INTO `car_user4s_log` VALUES (43, 16, 1, '', '新添加用户期初余额100', 0.00, 100.00, 1654406441, NULL, '0');
INSERT INTO `car_user4s_log` VALUES (44, 16, 1, '', '新添加用户期初积分100', 0.00, 100.00, 1654406441, NULL, '1');
INSERT INTO `car_user4s_log` VALUES (45, 17, 1, '', '新添加用户期初余额100', 0.00, 100.00, 1654406464, NULL, '0');
INSERT INTO `car_user4s_log` VALUES (46, 17, 1, '', '新添加用户期初积分100', 0.00, 100.00, 1654406464, NULL, '1');
INSERT INTO `car_user4s_log` VALUES (47, 17, 1, '', '系统后台充值余额500元', 100.00, 600.00, 1654534069, NULL, '0');
INSERT INTO `car_user4s_log` VALUES (48, 17, 1, '', '系统后台充值余额500元 赠送积分500', 100.00, 600.00, 1654534069, NULL, '1');
-- ----------------------------
-- Table structure for car_user4s_user
@ -9991,7 +10013,7 @@ CREATE TABLE `car_user4s_user` (
INSERT INTO `car_user4s_user` VALUES (1, 2, 1, '测试', '15264925507', 3.00, 2, 'male', '', '2022-05-24', '鲁Q12345', '测试', '红色', '', '2022-05-24', '', '', 1, 1653345127, 1653891355, NULL, '1');
INSERT INTO `car_user4s_user` VALUES (2, 2, 1, '王小明', '15264925501', 11.00, 11, 'male', '', '2022-06-03', '鲁Q54321', '斯柯达', '黄色', '', '2022-06-03', '', '1111111', 1, 1654201008, 1654201008, NULL, '1');
INSERT INTO `car_user4s_user` VALUES (5, 2, 1, '王小明', '15264925501', 11.00, 11, 'male', '', '2022-06-03', '鲁Q54321', '斯柯达', '黄色', '平安保险', '2022-06-05', '', '1111111', 1, 1654202173, 1654398920, NULL, '1');
INSERT INTO `car_user4s_user` VALUES (17, 2, 1, '张三', '15264925502', 100.00, 100, 'male', '', '2022-06-05', '鲁Q32145', '大众', '灰色', NULL, '2022-06-05', '', '', 1, 1654406464, 1654406464, NULL, '1');
INSERT INTO `car_user4s_user` VALUES (17, 2, 2, '张三', '15264925502', 600.00, 600, 'male', '', '2022-06-05', '鲁Q32145', '大众', '灰色', NULL, '2021-06-10', '', '', 1, 1654406464, 1654534069, NULL, '1');
-- ----------------------------
-- Table structure for car_user4s_visit
@ -10014,7 +10036,7 @@ CREATE TABLE `car_user4s_visit` (
-- ----------------------------
-- 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 (5, 17, 1, 1, 1654963200, '新用户回访', 1654406464, NULL, '1', 1654532859);
INSERT INTO `car_user4s_visit` VALUES (6, 1, 0, 3, 1655049600, '换了空滤', 1654506627, NULL, '0', NULL);
-- ----------------------------
@ -10033,12 +10055,14 @@ CREATE TABLE `car_user4s_visitlog` (
`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;
) ENGINE = InnoDB AUTO_INCREMENT = 4 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);
INSERT INTO `car_user4s_visitlog` VALUES (1, 17, 1, 5, 1, 1654963200, 5, 'xxxxxxxxxx', 1654406464);
INSERT INTO `car_user4s_visitlog` VALUES (2, 17, 0, 5, 1, 1654531200, 5, '客户反馈正常啦', 1654532764);
INSERT INTO `car_user4s_visitlog` VALUES (3, 17, 0, 5, 1, 1654531200, 5, '结单', 1654532859);
-- ----------------------------
-- Table structure for car_user4s_visittype

View File

@ -8,7 +8,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
// 指定图表的配置项和数据
var option = {
title: {
text: '',
text: '用户统计',
subtext: ''
},
color: [
@ -23,7 +23,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
trigger: 'axis'
},
legend: {
data: [__('Register user')]
data: ['新增用户数','充值金额']
},
toolbox: {
show: false,
@ -37,27 +37,29 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
boundaryGap: false,
data: Config.column
},
yAxis: {},
yAxis: {type: 'value'},
grid: [{
left: 'left',
top: 'top',
right: '10',
bottom: 30
}],
series: [{
name: __('Register user'),
series: [
{
name: '新增用户数',
type: 'line',
smooth: true,
areaStyle: {
normal: {}
},
lineStyle: {
normal: {
width: 1.5
}
},
stack: 'Total',
data: Config.userdata
}]
},
{
name: '充值金额',
type: 'line',
smooth: true,
stack: 'Total',
data: Config.pricedata
}
]
};
// 使用刚指定的配置项和数据显示图表。

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -26,9 +26,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'name', title: __('Name'), operate: 'LIKE'},
{field: 'description', title: __('Description'), operate: 'LIKE'},
{field: 'weigh', title: __('Weigh'), operate: false},
{field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
{field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'weigh', title: __('Weigh'), operate: false,editable:true},
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1')}, formatter: Table.api.formatter.status},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -34,13 +34,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
//{field: 'admin_id', title: __('Admin_id'),operate: false},
{field: 'user.name', title: __('会员姓名'), operate: 'LIKE'},
{field: 'user.name', title: __('会员电话'), operate: 'LIKE',visible: false},
{field: 'inscom', title: __('Inscom'), operate: 'LIKE'},
{field: 'inscom', title: __('Inscom'), operate: 'LIKE',editable:true},
{ field: 'insdate', title: __('Insdate'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: false },
{field: 'description', title: __('Description'), operate: 'LIKE'},
{field: 'star', title: __('Star')},
{field: 'createtime', title: __('Createtime'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: false},
{field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'star_f', title: __('Star'),operate:false},
{ field: 'createtime_f', title: __('Createtime'), operate: false },
{field: 'createtime', title: __('Createtime'),datetimeFormat:'YYYY-MM-DD', operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: false,visible: false},
{field: 'admin.id', title: __('Admin.id'),operate: false,visible: false},
{field: 'admin.username', title: __('操作员'), operate: 'LIKE'},
{field: 'admin.username', title: __('操作员'), operate: false},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -26,14 +26,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'name', title: __('Name'), operate: 'LIKE'},
{field: 'diyname', title: __('Diyname'), operate: 'LIKE'},
{field: 'description', title: __('Description'), operate: 'LIKE'},
{field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
{field: 'diyname', title: __('Diyname'), operate: 'LIKE',editable:true},
{field: 'description', title: __('Description'), operate: false,editable:true},
{field: 'image', title: __('Image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'price', title: __('Price'), operate:'BETWEEN'},
{field: 'price', title: __('Price'), operate:'BETWEEN',editable:true},
{field: 'weigh', title: __('Weigh'), operate: false},
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1')}, formatter: Table.api.formatter.status},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,visible: function (row) {
if (row.id == 1) {
return false;
} else {
return true;
}
}}
]
]
});

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -30,15 +30,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'user4s_id', title: __('User4s_id')},
{field: 'admin_id', title: __('Admin_id')},
{field: 'title', title: __('Title'), operate: 'LIKE'},
{field: 'description', title: __('Description'), operate: 'LIKE'},
{field: 'start', title: __('Start')},
{field: 'end', title: __('End')},
//{field: 'user.name', title: __('User4s_id'), operate: false },
{ field: 'user4s_id', title: __('User4s_id'), visible: false },
//{field: 'admin.nickname', title: __('Admin_id'),operate: false},
{field: 'admin_id', title: __('Admin_id'),visible: false},
//{field: 'title', title: __('Title'), operate: 'LIKE'},
{field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'start', title: __('Start'),visible: false},
{ field: 'end', title: __('End'), visible: false },
{field: 'start_name', title: __('Start'),operate: false},
{field: 'end_name', title: __('End'),operate: false},
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'user.name', title: __('User.name'), operate: 'LIKE'},
{field: 'level.name', title: __('Level.name'), operate: 'LIKE'},
//{field: 'level.name', title: __('Level.name'), operate: 'LIKE'},
{field: 'admin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -34,7 +34,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'user.name', title: __('会员姓名'), operate: 'LIKE'},
//{field: 'admin_id', title: __('Admin_id')},
//{field: 'title', title: __('Title'), operate: 'LIKE'},
{field: 'description', title: __('Description'), operate: 'LIKE'},
{field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'start', title: __('原数额'), operate: false},
{field: 'end', title: __('更改后数额'), operate: false},

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -56,8 +56,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[
{ checkbox: true },
{field: 'id', title: __('会员ID'), operate:false},
{ field: 'name', title: __('Name'), operate: 'LIKE' },
{ field: 'tel', title: __('Tel'), operate: 'LIKE' },
{ field: 'name', title: __('Name'), operate: 'LIKE',editable:true },
{ field: 'tel', title: __('Tel'), operate: 'LIKE' ,editable:true},
{ field: 'genderdata', title: __('Genderdata'), operate: false,searchList: { "male": __('Genderdata male'), "female": __('Genderdata female') }, formatter: Table.api.formatter.normal },
// {
// field: 'category_id', title: __('Category_id'), searchList: $.getJSON("user4s/category/searchlist"), formatter: function (value, row, index) {
@ -75,9 +75,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{ field: 'integral', title: __('Integral'), operate: false },
//{field: 'city', title: __('City'), operate: 'LIKE'},
{ field: 'buydate', title: __('Buydate'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: false },
{ field: 'carno', title: __('Carno'), operate: 'LIKE' },
{ field: 'model', title: __('Model'), operate: 'LIKE' },
{ field: 'color', title: __('Color'), operate: false },
{ field: 'carno', title: __('Carno'), operate: 'LIKE' ,editable:true},
{ field: 'model', title: __('Model'), operate: 'LIKE' ,editable:true},
{ field: 'color', title: __('Color'), operate: false ,editable:true},
//{field: 'inscom', title: __('Inscom'), operate: 'LIKE'},
{ field: 'insdate', title: __('Insdate'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: false },
//{field: 'tags', title: __('Tags'), operate: 'LIKE', formatter: Table.api.formatter.flag},
@ -128,7 +128,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
},
classname: 'btn btn-xs btn-info btn-addtabs',
icon: 'fa fa-comments-o',
url: 'user4s/visit/index?user4s_id={id}',
url: 'user4s/visit/index?user4s_id={id}&status=0',
extend: 'data-area=\'["1000px","800px"]\'',
},
// {

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -28,8 +28,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
maintainSelected: true,
columns: [
[
{checkbox: true},
//{ field: 'id', title: __('Id') },
//{checkbox: true},
{ field: 'id', title: __('回访单号') },
//{ field: 'type_id', title: __('Type_id') },
{field: 'visittype.name', title: __('Type_id'), operate: 'LIKE'},
{ field: 'user4s_id', title: __('会员ID'),visible:false,operate:false},
@ -45,7 +45,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: __('开单时间'), 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: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{ 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}
{
@ -57,21 +57,27 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
title: __('填报回访记录'),
classname: 'btn btn-xs btn-info btn-dialog',
icon: 'fa fa-cloud-upload',
url: 'user4s/visit/visitlog?vid={ids}',
url: 'user4s/visitlog/add?vid={ids}',
extend: 'data-area=\'["1000px","800px"]\'',
callback: function (data) {
Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
},
visible: function (row) {
//返回true时按钮显示,返回false隐藏
if (row.status == 0) {
return true;
} else {
return false;
}
}
},
{
name: 'visitlog',
text: __('历史回访记录'),
title: __('历史回访记录'),
classname: 'btn btn-xs btn-default btn-dialog',
title: function(row){
return row.user.name+'的'+row.id +'号回访记录'
},
classname: 'btn btn-xs btn-default btn-addtabs',
icon: 'fa fa-building-o',
url: 'user4s/visit/visitlog?vid={ids}',
extend: 'data-area=\'["1000px","800px"]\'',
@ -80,6 +86,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
},
visible: function (row) {
//返回true时按钮显示,返回false隐藏
// if (row.status == 0) {
// return true;
// } else {
// return false;
// }
return true;
}
},
@ -276,32 +287,48 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
// { 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: 'description', title: __('Description'), operate: false,editable:true},
{
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: 'visit.endtime', 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', visible: function (row) {
// if (row.visit.status == 0) {
// return false;
// } else {
// return true;
// }
// }
// },
{
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隐藏
{
field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
buttons: [
{
name: 'renewal',
text: __('编辑'),
title: __('编辑'),
classname: 'btn btn-xs btn-success btn-dialog',
icon: 'fa fa-pencil',
url: 'user4s/visitlog/edit?ids={ids}',
extend: 'data-area=\'["1000px","800px"]\'',
callback: function (data) {
Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
},
visible: function (row) {
if (row.visit.status == 0) {
return true;
} else {
return false;
}
//返回true时按钮显示,返回false隐藏
//return true;
// }
// },
}
},
// {
// name: 'inslog',
// text: __('续保记录'),
@ -311,9 +338,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
// url: 'user4s/inslog/index?user4s_id={id}',
// extend: 'data-area=\'["1000px","800px"]\'',
// },
// ],
// formatter: Table.api.formatter.operate
// }
],
formatter: Table.api.formatter.operate
}
]
],

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {

View File

@ -1,4 +1,4 @@
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
var Controller = {
index: function () {
@ -30,9 +30,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[
{checkbox: true},
{field: 'id', title: __('Id'),operate:false},
{field: 'name', title: __('Name'), operate: 'LIKE'},
{field: 'tip_time', title: __('Tip_time'), operate:'RANGE', autocomplete:false},
{field: 'description', title: __('Description'), operate: 'LIKE'},
{field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
{field: 'tip_time', title: __('Tip_time'), operate:'RANGE', autocomplete:false,editable:true},
{field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'createtime', title: __('Createtime'), operate:false, 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}
]