完善回访记录上报

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

View File

@ -55,4 +55,12 @@ class Category extends Backend
$data = ['searchlist' => $searchlist]; $data = ['searchlist' => $searchlist];
$this->success('', null, $data); $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() public function index()
{ {
$all_star = array(
1=>'★',
2=>'★★',
3=>'★★★',
4=>'★★★★',
5=>'★★★★★',
);
//当前是否为关联查询 //当前是否为关联查询
$this->relationSearch = true; $this->relationSearch = true;
//设置过滤方法 //设置过滤方法
@ -56,9 +63,9 @@ class Inslog extends Backend
->order($sort, $order) ->order($sort, $order)
->paginate($limit); ->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()); $result = array("total" => $list->total(), "rows" => $list->items());

View File

@ -87,4 +87,12 @@ class Level extends Backend
} }
return json(['code' => 0, 'msg' => '非法请求']); 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(); parent::_initialize();
$this->model = new \app\common\model\user4s\Levellog; $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() public function index()
{ {
$all_level = $this->level_model->where('status', 1)->column('id,name');
//var_dump($all_level);
//当前是否为关联查询 //当前是否为关联查询
$this->relationSearch = true; $this->relationSearch = true;
//设置过滤方法 //设置过滤方法
@ -63,6 +65,12 @@ class Levellog extends Backend
$row->getRelation('endlevel')->visible(['name']); $row->getRelation('endlevel')->visible(['name']);
$row->getRelation('admin')->visible(['nickname']); $row->getRelation('admin')->visible(['nickname']);
// var_dump($row); // 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()); $result = array("total" => $list->total(), "rows" => $list->items());

View File

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

View File

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

View File

@ -3,6 +3,10 @@
namespace app\admin\controller\user4s; namespace app\admin\controller\user4s;
use app\common\controller\Backend; 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(); parent::_initialize();
$this->model = new \app\common\model\user4s\Visitlog; $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(); 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"> <div class="panel-heading">
{:build_heading(null, false)} {:build_heading(null, false)}
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="active"><a href="#one" data-toggle="tab">{:__('Dashboard')}</a></li> <li class="active"><a href="#one" data-toggle="tab">{:__('数据概览')}</a></li>
<li><a href="#two" data-toggle="tab">{:__('Custom')}</a></li> <!-- <li><a href="#two" data-toggle="tab">{:__('Custom')}</a></li> -->
</ul> </ul>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div id="myTabContent" class="tab-content"> <div id="myTabContent" class="tab-content">
<div class="tab-pane fade active in" id="one"> <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="row">
<div class="col-sm-3 col-xs-6"> <div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix"> <div class="sm-st clearfix">
@ -185,8 +232,8 @@
<div class="sm-st clearfix"> <div class="sm-st clearfix">
<span class="sm-st-icon st-violet"><i class="fa fa-magic"></i></span> <span class="sm-st-icon st-violet"><i class="fa fa-magic"></i></span>
<div class="sm-st-info"> <div class="sm-st-info">
<span>{$totaladdon}</span> <span>{$totalvipuser}</span>
{:__('Total addon')} {:__('高级会员数')}
</div> </div>
</div> </div>
</div> </div>
@ -194,8 +241,8 @@
<div class="sm-st clearfix"> <div class="sm-st clearfix">
<span class="sm-st-icon st-blue"><i class="fa fa-leaf"></i></span> <span class="sm-st-icon st-blue"><i class="fa fa-leaf"></i></span>
<div class="sm-st-info"> <div class="sm-st-info">
<span>{$attachmentnums}</span> <span>{$todayprice|round=###,2}</span>
{:__('Total attachment')} {:__('今日充值金额')}
</div> </div>
</div> </div>
</div> </div>
@ -204,16 +251,13 @@
<span class="sm-st-icon st-green"><i class="fa fa-user"></i></span> <span class="sm-st-icon st-green"><i class="fa fa-user"></i></span>
<div class="sm-st-info"> <div class="sm-st-info">
<span>{$totaladmin}</span> <span>{$totaladmin}</span>
{:__('Total admin')} {:__('管理员数量')}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <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="col-lg-4">
<div class="card sameheight-item stats"> <div class="card sameheight-item stats">
<div class="card-block"> <div class="card-block">
@ -222,7 +266,7 @@
<div class="stat-icon"><i class="fa fa-rocket"></i></div> <div class="stat-icon"><i class="fa fa-rocket"></i></div>
<div class="stat"> <div class="stat">
<div class="value"> {$todayusersignup}</div> <div class="value"> {$todayusersignup}</div>
<div class="name"> {:__('Today user signup')}</div> <div class="name"> {:__('今日新增客户')}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div> <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@ -231,48 +275,48 @@
<div class="col-xs-6 stat-col"> <div class="col-xs-6 stat-col">
<div class="stat-icon"><i class="fa fa-vcard"></i></div> <div class="stat-icon"><i class="fa fa-vcard"></i></div>
<div class="stat"> <div class="stat">
<div class="value"> {$todayuserlogin}</div> <div class="value"> {$todayusertovip}</div>
<div class="name"> {:__('Today user login')}</div> <div class="name"> {:__('今日新升级客户')}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div> <div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div> </div>
</div> </div>
<div class="col-xs-6 stat-col"> <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="stat">
<div class="value"> {$threednu}</div> <div class="value"> {$day3user}</div>
<div class="name"> {:__('Three dnu')}</div> <div class="name"> {:__('三日新增客户')}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div> <div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div> </div>
</div> </div>
<div class="col-xs-6 stat-col"> <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="stat">
<div class="value"> {$sevendnu}</div> <div class="value"> {$day3price|round=###,2}</div>
<div class="name"> {:__('Seven dnu')}</div> <div class="name"> {:__('三日充值金额')}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div> <div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div> </div>
</div> </div>
<div class="col-xs-6 stat-col"> <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="stat">
<div class="value"> {$sevendau}</div> <div class="value"> {$day7user}</div>
<div class="name"> {:__('Seven dau')}</div> <div class="name"> {:__('近一周新增客户')}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div> <div class="progress-bar progress-bar-success" style="width: 20%"></div>
</div> </div>
</div> </div>
<div class="col-xs-6 stat-col"> <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="stat">
<div class="value"> {$thirtydau}</div> <div class="value"> {$day7price|round=###,2}</div>
<div class="name"> {:__('Thirty dau')}</div> <div class="name"> {:__('近一周充值金额')}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success" style="width: 20%"></div> <div class="progress-bar progress-bar-success" style="width: 20%"></div>
@ -282,114 +326,13 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-lg-8">
<div id="echart" class="btn-refresh" style="height:300px;width:100%;"></div>
</div>
</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>
<div class="tab-pane fade" id="two"> <div class="tab-pane fade" id="two">
<div class="row"> <div class="row">

View File

@ -29,6 +29,7 @@
<label class="control-label">{$row.integral|htmlentities}</label> <label class="control-label">{$row.integral|htmlentities}</label>
</div> </div>
</div> </div>
</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}"> <input id="c-description" class="form-control" name="row[description]" type="text" value="{$row.description|htmlentities}">
</div> </div>
</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"> <div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label> <label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">

View File

@ -16,7 +16,7 @@
<div id="toolbar" class="toolbar"> <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-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-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> --> <!-- <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=""> <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
{:token()}
<div class="form-group"> <!-- <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">{:__('User4s_id')}:</label>
<div class="col-xs-12 col-sm-8"> <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=""> <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> -->
<div class="form-group"> <div class="panel panel-warning">
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_id')}:</label> <div class="panel-heading"><b>客户回访单信息</div>
<div class="col-xs-12 col-sm-8"> <div class="panel-body">
<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 class="form-group">
</div> <label class="control-label col-xs-12 col-sm-2">{:__('客户姓名')}:</label>
<div class="form-group"> <div class="col-xs-12 col-sm-8">
<label class="control-label col-xs-12 col-sm-2">{:__('Type_id')}:</label> <input id="c-user4s_id" class="form-control disabled" type="text" value="{$row.user.name}" readonly>
<div class="col-xs-12 col-sm-8"> </div>
<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">
</div> <label class="control-label col-xs-12 col-sm-2">{:__('客户联系方式')}:</label>
<div class="form-group"> <div class="col-xs-12 col-sm-8">
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_time')}:</label> <input id="c-user4s_tel" class="form-control disabled" type="text" value="{$row.user.tel}" readonly>
<div class="col-xs-12 col-sm-8"> </div>
<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 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="{$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>
</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"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label>
<div class="col-xs-12 col-sm-8"> <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> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label>
<div class="col-xs-12 col-sm-8"> <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> </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"> <div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label> <label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
@ -43,4 +104,4 @@
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button> <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -1,33 +1,63 @@
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> <form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<div class="form-group"> <div class="panel panel-warning">
<label class="control-label col-xs-12 col-sm-2">{:__('User4s_id')}:</label> <div class="panel-heading"><b>客户回访单信息</div>
<div class="col-xs-12 col-sm-8"> <div class="panel-body">
<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 class="form-group">
</div> <label class="control-label col-xs-12 col-sm-2">{:__('客户姓名')}:</label>
<div class="form-group"> <div class="col-xs-12 col-sm-8">
<label class="control-label col-xs-12 col-sm-2">{:__('Visit_id')}:</label> <input id="c-user4s_id" class="form-control disabled" type="text" value="{$row.user.name}" readonly>
<div class="col-xs-12 col-sm-8"> </div>
<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">
</div> <label class="control-label col-xs-12 col-sm-2">{:__('客户联系方式')}:</label>
<div class="form-group"> <div class="col-xs-12 col-sm-8">
<label class="control-label col-xs-12 col-sm-2">{:__('Type_id')}:</label> <input id="c-user4s_tel" class="form-control disabled" type="text" value="{$row.user.tel}" readonly>
<div class="col-xs-12 col-sm-8"> </div>
<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 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="{$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>
</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"> <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">{:__('Visit_time')}:</label>
<div class="col-xs-12 col-sm-8"> <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> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Star')}:</label>
<div class="col-xs-12 col-sm-8"> <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> </div>
<div class="form-group"> <div class="form-group">
@ -36,6 +66,16 @@
<input id="c-description" class="form-control" name="row[description]" type="text" value="{$row.description|htmlentities}"> <input id="c-description" class="form-control" name="row[description]" type="text" value="{$row.description|htmlentities}">
</div> </div>
</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"> <div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label> <label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">

20418
car4s.sql

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
// 指定图表的配置项和数据 // 指定图表的配置项和数据
var option = { var option = {
title: { title: {
text: '', text: '用户统计',
subtext: '' subtext: ''
}, },
color: [ color: [
@ -23,7 +23,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
trigger: 'axis' trigger: 'axis'
}, },
legend: { legend: {
data: [__('Register user')] data: ['新增用户数','充值金额']
}, },
toolbox: { toolbox: {
show: false, show: false,
@ -37,27 +37,29 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
boundaryGap: false, boundaryGap: false,
data: Config.column data: Config.column
}, },
yAxis: {}, yAxis: {type: 'value'},
grid: [{ grid: [{
left: 'left', left: 'left',
top: 'top', top: 'top',
right: '10', right: '10',
bottom: 30 bottom: 30
}], }],
series: [{ series: [
name: __('Register user'), {
type: 'line', name: '新增用户数',
smooth: true, type: 'line',
areaStyle: { smooth: true,
normal: {} stack: 'Total',
data: Config.userdata
}, },
lineStyle: { {
normal: { name: '充值金额',
width: 1.5 type: 'line',
} smooth: true,
}, stack: 'Total',
data: Config.userdata 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 = { var Controller = {
index: function () { index: function () {
@ -26,9 +26,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[ [
{checkbox: true}, {checkbox: true},
{field: 'id', title: __('Id')}, {field: 'id', title: __('Id')},
{field: 'name', title: __('Name'), operate: 'LIKE'}, {field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
{field: 'description', title: __('Description'), operate: 'LIKE'}, {field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'weigh', title: __('Weigh'), operate: false}, {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: '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}
] ]

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 = { var Controller = {
index: function () { index: function () {
@ -34,13 +34,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
//{field: 'admin_id', title: __('Admin_id'),operate: false}, //{field: 'admin_id', title: __('Admin_id'),operate: false},
{field: 'user.name', title: __('会员姓名'), operate: 'LIKE'}, {field: 'user.name', title: __('会员姓名'), operate: 'LIKE'},
{field: 'user.name', title: __('会员电话'), operate: 'LIKE',visible: false}, {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: '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: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'star', title: __('Star')}, {field: 'star_f', title: __('Star'),operate:false},
{field: 'createtime', title: __('Createtime'), operate: 'BETWEEN', addclass: 'datetimepicker',data: 'data-date-format="YYYY-MM-DD",data-date-use-current="true"', autocomplete: 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.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} {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 = { var Controller = {
index: function () { index: function () {
@ -26,14 +26,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[ [
{checkbox: true}, {checkbox: true},
{field: 'id', title: __('Id')}, {field: 'id', title: __('Id')},
{field: 'name', title: __('Name'), operate: 'LIKE'}, {field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
{field: 'diyname', title: __('Diyname'), operate: 'LIKE'}, {field: 'diyname', title: __('Diyname'), operate: 'LIKE',editable:true},
{field: 'description', title: __('Description'), operate: 'LIKE'}, {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: '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: 'weigh', title: __('Weigh'), operate: false},
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1')}, formatter: Table.api.formatter.status}, {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 = { var Controller = {
index: function () { index: function () {
@ -30,15 +30,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[ [
{checkbox: true}, {checkbox: true},
{field: 'id', title: __('Id')}, {field: 'id', title: __('Id')},
{field: 'user4s_id', title: __('User4s_id')}, //{field: 'user.name', title: __('User4s_id'), operate: false },
{field: 'admin_id', title: __('Admin_id')}, { field: 'user4s_id', title: __('User4s_id'), visible: false },
{field: 'title', title: __('Title'), operate: 'LIKE'}, //{field: 'admin.nickname', title: __('Admin_id'),operate: false},
{field: 'description', title: __('Description'), operate: 'LIKE'}, {field: 'admin_id', title: __('Admin_id'),visible: false},
{field: 'start', title: __('Start')}, //{field: 'title', title: __('Title'), operate: 'LIKE'},
{field: 'end', title: __('End')}, {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: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'user.name', title: __('User.name'), operate: 'LIKE'}, {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: 'admin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
{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}
] ]

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 = { var Controller = {
index: function () { index: function () {
@ -34,7 +34,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'user.name', title: __('会员姓名'), operate: 'LIKE'}, {field: 'user.name', title: __('会员姓名'), operate: 'LIKE'},
//{field: 'admin_id', title: __('Admin_id')}, //{field: 'admin_id', title: __('Admin_id')},
//{field: 'title', title: __('Title'), operate: 'LIKE'}, //{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: 'start', title: __('原数额'), operate: false},
{field: 'end', 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 = { var Controller = {
index: function () { index: function () {
@ -56,8 +56,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[ [
{ checkbox: true }, { checkbox: true },
{field: 'id', title: __('会员ID'), operate:false}, {field: 'id', title: __('会员ID'), operate:false},
{ field: 'name', title: __('Name'), operate: 'LIKE' }, { field: 'name', title: __('Name'), operate: 'LIKE',editable:true },
{ field: 'tel', title: __('Tel'), operate: 'LIKE' }, { 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: '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) { // 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: 'integral', title: __('Integral'), operate: false },
//{field: 'city', title: __('City'), operate: 'LIKE'}, //{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: '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: 'carno', title: __('Carno'), operate: 'LIKE' ,editable:true},
{ field: 'model', title: __('Model'), operate: 'LIKE' }, { field: 'model', title: __('Model'), operate: 'LIKE' ,editable:true},
{ field: 'color', title: __('Color'), operate: false }, { field: 'color', title: __('Color'), operate: false ,editable:true},
//{field: 'inscom', title: __('Inscom'), operate: 'LIKE'}, //{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: '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}, //{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', classname: 'btn btn-xs btn-info btn-addtabs',
icon: 'fa fa-comments-o', 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"]\'', 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 = { var Controller = {
index: function () { index: function () {
@ -28,8 +28,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
maintainSelected: true, maintainSelected: true,
columns: [ columns: [
[ [
{checkbox: true}, //{checkbox: true},
//{ field: 'id', title: __('Id') }, { field: 'id', title: __('回访单号') },
//{ field: 'type_id', title: __('Type_id') }, //{ field: 'type_id', title: __('Type_id') },
{field: 'visittype.name', title: __('Type_id'), operate: 'LIKE'}, {field: 'visittype.name', title: __('Type_id'), operate: 'LIKE'},
{ field: 'user4s_id', title: __('会员ID'),visible:false,operate:false}, { 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: '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: '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: '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: '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} //{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: __('填报回访记录'), title: __('填报回访记录'),
classname: 'btn btn-xs btn-info btn-dialog', classname: 'btn btn-xs btn-info btn-dialog',
icon: 'fa fa-cloud-upload', icon: 'fa fa-cloud-upload',
url: 'user4s/visit/visitlog?vid={ids}', url: 'user4s/visitlog/add?vid={ids}',
extend: 'data-area=\'["1000px","800px"]\'', extend: 'data-area=\'["1000px","800px"]\'',
callback: function (data) { callback: function (data) {
Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" }); Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
}, },
visible: function (row) { visible: function (row) {
//返回true时按钮显示,返回false隐藏 //返回true时按钮显示,返回false隐藏
return true; if (row.status == 0) {
return true;
} else {
return false;
}
} }
}, },
{ {
name: 'visitlog', name: 'visitlog',
text: __('历史回访记录'), text: __('历史回访记录'),
title: __('历史回访记录'), title: function(row){
classname: 'btn btn-xs btn-default btn-dialog', return row.user.name+'的'+row.id +'号回访记录'
},
classname: 'btn btn-xs btn-default btn-addtabs',
icon: 'fa fa-building-o', icon: 'fa fa-building-o',
url: 'user4s/visit/visitlog?vid={ids}', url: 'user4s/visit/visitlog?vid={ids}',
extend: 'data-area=\'["1000px","800px"]\'', extend: 'data-area=\'["1000px","800px"]\'',
@ -80,6 +86,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
}, },
visible: function (row) { visible: function (row) {
//返回true时按钮显示,返回false隐藏 //返回true时按钮显示,返回false隐藏
// if (row.status == 0) {
// return true;
// } else {
// return false;
// }
return true; return true;
} }
}, },
@ -276,44 +287,60 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
// { field: 'user.model', title: __('车型'), operate: false }, // { field: 'user.model', title: __('车型'), operate: false },
// { field: 'user.color', title: __('颜色'), operate: false }, // { field: 'user.color', title: __('颜色'), operate: false },
{field: 'star_f', title: __('满意度'), operate: false}, {field: 'star_f', title: __('满意度'), operate: false},
{field: 'description', title: __('Description'), operate: false}, {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_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) { field: 'admin_id', title: __('Admin_id'), operate: false, formatter: function (value, row, index) {
return row['admin']['nickname']; return row['admin']['nickname'];
} }
}, },
// { {
// field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
// buttons: [ buttons: [
// { {
// name: 'renewal', name: 'renewal',
// text: __('续保'), text: __('编辑'),
// title: __('续保'), title: __('编辑'),
// classname: 'btn btn-xs btn-danger btn-dialog', classname: 'btn btn-xs btn-success btn-dialog',
// icon: 'fa fa-dashboard', icon: 'fa fa-pencil',
// url: 'user4s/user/renewal', url: 'user4s/visitlog/edit?ids={ids}',
// extend: 'data-area=\'["1000px","800px"]\'', extend: 'data-area=\'["1000px","800px"]\'',
// callback: function (data) { callback: function (data) {
// Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" }); Layer.alert("接收到回传数据:" + JSON.stringify(data), { title: "回传数据" });
// }, },
// visible: function (row) { visible: function (row) {
// //返回true时按钮显示,返回false隐藏 if (row.visit.status == 0) {
// return true; return true;
// } } else {
// }, return false;
// { }
// name: 'inslog', //返回true时按钮显示,返回false隐藏
// text: __('续保记录'), //return true;
// title: __('续保记录'), }
// classname: 'btn btn-xs btn-warning btn-dialog', },
// icon: 'fa fa-calendar-check-o', // {
// url: 'user4s/inslog/index?user4s_id={id}', // name: 'inslog',
// extend: 'data-area=\'["1000px","800px"]\'', // text: __('续保记录'),
// }, // title: __('续保记录'),
// ], // classname: 'btn btn-xs btn-warning btn-dialog',
// formatter: Table.api.formatter.operate // icon: 'fa fa-calendar-check-o',
// } // url: 'user4s/inslog/index?user4s_id={id}',
// extend: 'data-area=\'["1000px","800px"]\'',
// },
],
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 = { var Controller = {
index: function () { 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 = { var Controller = {
index: function () { index: function () {
@ -30,9 +30,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
[ [
{checkbox: true}, {checkbox: true},
{field: 'id', title: __('Id'),operate:false}, {field: 'id', title: __('Id'),operate:false},
{field: 'name', title: __('Name'), operate: 'LIKE'}, {field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
{field: 'tip_time', title: __('Tip_time'), operate:'RANGE', autocomplete:false}, {field: 'tip_time', title: __('Tip_time'), operate:'RANGE', autocomplete:false,editable:true},
{field: 'description', title: __('Description'), operate: 'LIKE'}, {field: 'description', title: __('Description'), operate: 'LIKE',editable:true},
{field: 'createtime', title: __('Createtime'), operate:false, addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {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} {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
] ]