xxxrrrdddd před 3 roky
rodič
revize
bbd1c5a4d2
28 změnil soubory, kde provedl 686 přidání a 1763 odebrání
  1. 11 12
      application/admin/controller/City.php
  2. 7 7
      application/admin/controller/Mobile.php
  3. 0 123
      application/admin/controller/UserQuestion.php
  4. 0 170
      application/admin/controller/Video.php
  5. 0 292
      application/admin/controller/VideoPoint.php
  6. 0 83
      application/admin/controller/VideoPointUser.php
  7. 0 83
      application/admin/controller/VideoUserLog.php
  8. 1 0
      application/admin/lang/zh-cn.php
  9. 35 0
      application/admin/lang/zh-cn/mobile.php
  10. 18 0
      application/admin/model/Mobile.php
  11. 27 0
      application/admin/validate/Mobile.php
  12. 100 0
      application/admin/view/mobile/add.html
  13. 400 0
      application/admin/view/mobile/edit.html
  14. 7 9
      application/admin/view/mobile/index.html
  15. 0 290
      application/admin/view/video/add.html
  16. 0 231
      application/admin/view/video/edit.html
  17. 0 37
      application/admin/view/video/index.html
  18. 0 72
      application/admin/view/video_point/curve.html
  19. 0 35
      application/admin/view/video_point/index.html
  20. 0 99
      application/admin/view/video_point/map.html
  21. 0 26
      application/admin/view/video_point/rate.html
  22. 0 27
      application/admin/view/video_point/time.html
  23. 0 49
      application/admin/view/video_point_user/index.html
  24. 0 34
      application/admin/view/video_user_log/add.html
  25. 0 34
      application/admin/view/video_user_log/edit.html
  26. 6 50
      application/common/command/TestCommand.php
  27. 4 0
      application/common/model/Mobile.php
  28. 70 0
      public/assets/js/backend/mobile.js

+ 11 - 12
application/admin/controller/MallOrder.php → application/admin/controller/City.php

@@ -5,23 +5,23 @@ namespace app\admin\controller;
 use app\common\controller\Backend;
 
 /**
- * 商品订单
+ * 地区管理
  *
  * @icon fa fa-circle-o
  */
-class MallOrder extends Backend
+class City extends Backend
 {
-    protected $relationSearch=true;
+    protected $searchFields='id,name';
     /**
-     * MallOrder模型对象
-     * @var \app\admin\model\MallOrder
+     * Area模型对象
+     * @var \app\admin\model\Area
      */
     protected $model = null;
 
     public function _initialize()
     {
         parent::_initialize();
-        $this->model = new \app\admin\model\MallOrder;
+        $this->model = new \app\admin\model\Area;
 
     }
 
@@ -42,6 +42,8 @@ class MallOrder extends Backend
      */
     public function index()
     {
+        //当前是否为关联查询
+        $this->relationSearch = false;
         //设置过滤方法
         $this->request->filter(['strip_tags', 'trim']);
         if ($this->request->isAjax()) {
@@ -52,10 +54,11 @@ class MallOrder extends Backend
             list($where, $sort, $order, $offset, $limit) = $this->buildparams();
 
             $list = $this->model
-                ->with('user,goods')
+
                     ->where($where)
+                ->where('level',2)
                     ->order($sort, $order)
-                    ->paginate($limit);
+                    ->buildSql($limit);
 
             $result = array("total" => $list->total(), "rows" => $list->items());
 
@@ -63,8 +66,4 @@ class MallOrder extends Backend
         }
         return $this->view->fetch();
     }
-
-    public function status(){
-        return \app\admin\model\MallOrder::$statusList;
-    }
 }

+ 7 - 7
application/admin/controller/MallGoods.php → application/admin/controller/Mobile.php

@@ -5,23 +5,23 @@ namespace app\admin\controller;
 use app\common\controller\Backend;
 
 /**
- * 商品
+ * 
  *
- * @icon fa fa-circle-o
+ * @icon fa fa-mobile
  */
-class MallGoods extends Backend
+class Mobile extends Backend
 {
     
     /**
-     * MallGoods模型对象
-     * @var \app\admin\model\MallGoods
+     * Mobile模型对象
+     * @var \app\admin\model\Mobile
      */
     protected $model = null;
 
     public function _initialize()
     {
         parent::_initialize();
-        $this->model = new \app\admin\model\MallGoods;
+        $this->model = new \app\admin\model\Mobile;
 
     }
 
@@ -54,12 +54,12 @@ class MallGoods extends Backend
             list($where, $sort, $order, $offset, $limit) = $this->buildparams();
 
             $list = $this->model
+                    
                     ->where($where)
                     ->order($sort, $order)
                     ->paginate($limit);
 
             foreach ($list as $row) {
-
             }
 
             $result = array("total" => $list->total(), "rows" => $list->items());

+ 0 - 123
application/admin/controller/UserQuestion.php

@@ -1,123 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use app\common\controller\Backend;
-
-/**
- * 转正题库
- *
- * @icon fa fa-circle-o
- */
-class UserQuestion extends Backend
-{
-    
-    /**
-     * UserQuestion模型对象
-     * @var \app\admin\model\UserQuestion
-     */
-    protected $model = null;
-
-    public function _initialize()
-    {
-        parent::_initialize();
-        $this->model = new \app\admin\model\UserQuestion;
-
-    }
-
-    public function import()
-    {
-        parent::import();
-    }
-
-    /**
-     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
-     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
-     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
-     */
-    
-
-    /**
-     * 查看
-     */
-    public function index()
-    {
-        //当前是否为关联查询
-        $this->relationSearch = false;
-        //设置过滤方法
-        $this->request->filter(['strip_tags', 'trim']);
-        if ($this->request->isAjax()) {
-            //如果发送的来源是Selectpage,则转发到Selectpage
-            if ($this->request->request('keyField')) {
-                return $this->selectpage();
-            }
-            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-
-            $list = $this->model
-                    
-                    ->where($where)
-                    ->order($sort, $order)
-                    ->paginate($limit);
-
-            $result = array("total" => $list->total(), "rows" => $list->items());
-
-            return json($result);
-        }
-        return $this->view->fetch();
-    }
-
-    public function add()
-    {
-        if($this->request->isGet()){
-            return view();
-        }
-        $data=input('row/a');
-        $items=$data['items']??[];
-        $item_type=$data['item_type']??'';
-        $keyAll=$data['key']??[];
-        if(empty($data['title'])){
-            $this->error('标题不能为空');
-        }
-        $this->validate($data,[
-            'title|标题'=>['max:15'],
-        ]);
-        if($data['type']=='choose'){
-            if(empty($items)) {
-                $this->error('选择项不能为空');
-            }
-            if(empty($item_type)){
-                $this->error('选项类型不能为空');
-            }
-            $data['items']=$data['items'][$item_type];
-            if(empty($data['key'])){
-                $this->error('答案不能为空');
-            }
-            $items=[];
-            $_key=[];
-            $idx=0;
-            foreach ($data['items'] as $key=>$item){
-                if($item_type=='txt') {
-                    $this->validate(compact('item'), [
-                        'item|选项' => ['max:15', 'require']
-                    ]);
-                }
-                $items[$temp=chr($idx+65)]=$item;
-                if(isset($keyAll[$key])){
-                    $_key[]=$temp;
-                }
-                $idx++;
-            }
-            $data['items']=$items;
-            $data['key']=implode(',',$_key);
-        }
-        elseif ($data['type']=='decide'){
-            foreach ($data['items'] as $key=>$desc){
-                $this->validate(compact('desc'),[
-                    'desc|描述'=>['max:15','require']
-                ]);
-            }
-        }
-        $this->model->save($data);
-        $this->success();
-    }
-}

+ 0 - 170
application/admin/controller/Video.php

@@ -1,170 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use app\common\controller\Backend;
-use think\Db;
-
-/**
- * 视频列管理
- *
- * @icon fa fa-circle-o
- */
-class Video extends Backend
-{
-
-    /**
-     * Video模型对象
-     * @var \app\admin\model\Video
-     */
-    protected $model = null;
-
-    public function _initialize()
-    {
-        parent::_initialize();
-        $this->model = new \app\admin\model\Video;
-        $tags=\app\admin\model\Tag::column('id,name');
-        $this->assign('tags',$tags);
-    }
-
-    public function import()
-    {
-        parent::import();
-    }
-
-    /**
-     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
-     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
-     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
-     */
-
-
-    /**
-     * 查看
-     */
-    public function index()
-    {
-        //当前是否为关联查询
-        $this->relationSearch = false;
-        //设置过滤方法
-        $this->request->filter(['strip_tags', 'trim']);
-        if ($this->request->isAjax()) {
-            //如果发送的来源是Selectpage,则转发到Selectpage
-            if ($this->request->request('keyField')) {
-                return $this->selectpage();
-            }
-            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-
-            $list = $this->model
-                ->join('video_tag','video_tag.video_id=video.id','left')
-                ->join('tag','tag.id=video_tag.tag_id','left')
-                ->group('video.id')
-                    ->where($where)
-                    ->order($sort, $order)
-                ->field(['video.*',Db::raw('group_concat(tag.name SEPARATOR \',\') as tag')])
-                    ->paginate($limit);
-
-            foreach ($list as $row) {
-                $row->visible(['id','bg','src','play_num','comment_num','like_num','fav_num','created_at','weight','title','tag']);
-            }
-
-            $result = array("total" => $list->total(), "rows" => $list->items());
-
-            return json($result);
-        }
-        return $this->view->fetch();
-    }
-
-    public function add()
-    {
-        $video=new \app\admin\model\Video();
-        if($this->request->isGet()){
-            return parent::add();
-        }
-        Db::startTrans();
-        $data=input('row/a');
-        $this->validate($data,[
-            'title|标题'=>['require'],
-            'bg'=>['require'],
-            'src'=>['require'],
-            'guest_id'=>['require'],
-        ]);
-        $video->guest_id=$data['guest_id'];
-        $video->bg=$data['bg'];
-        $video->src=$data['src'];
-        $video->is_open=$data['is_open'];
-        $video->title=$data['title'];
-        if(!$video->save()){
-            $this->error('保存失败');
-        }
-        $tags=array_filter($data['tag']??[]);
-        if(!empty($tags)){
-            $video->tag()->sync($data['tag']);
-        }
-        foreach ($data['point']??[] as $item){
-            $keyAll=$item['key']??[];
-            if($item['type']=='choose'&&empty($keyAll)){
-                $this->error('答案必选');
-            }
-            $this->validate($item,[
-                'second|卡点时间点'=>['require','integer','gt:0'],
-                'title|卡点标题'=>['max:15'],
-                'title_img|卡点标题图片'=>['url'],
-            ]);
-            if(empty($item['title']) && empty($item['title_img'])){
-                $this->error('卡点标题和标题图片不能同时为空');
-            }
-            if(in_array($item['type'],['choose','vote'])){
-                $item['items']=$item['item_type']=='txt'?$item['txt']['items']??[]:$item['image']['items']??[];
-                unset($item['txt'],$item['image']);
-            }
-            if(in_array($item['type'],['choose','vote'])){
-                $a=[];
-                $idx=0;
-                $key=[];
-                foreach ($item['items'] as $_k=>$temp){
-                    if($item['item_type']=='txt') {
-                        $this->validate(compact('temp'), [
-                            'temp|选项' => ['require', 'max:15']
-                        ]);
-                    }
-                    $a[$newKey=chr($idx+65)]=$temp;
-                    if($item['type']=='choose' && isset($keyAll[$_k])){
-                        $key[]=$newKey;
-                    }
-                    $idx++;
-                }
-                $item['items']=$a;
-                if($item['type']=='choose'){
-                    $item['key']=implode(',',$key);
-                }
-            }
-            $video->point()->save($item);
-        }
-        Db::commit();
-        $this->success();
-    }
-
-    public function edit($ids=null){
-        $video=$this->model->find($ids);
-        if($this->request->isGet()){
-            $this->assign('row',$video);
-            $this->assign('checked_tags',$video->tag()->select()->column('id'));
-            return $this->view->fetch();
-        }else{
-            $data=input('row/a');
-
-            Db::startTrans();
-            $video['guest_id']=$data['guest_id'];
-            $video['bg']=$data['bg'];
-            $video['src']=$data['src'];
-            $video['title']=$data['title'];
-            $video['is_open']=$data['is_open'];
-            $video->save();
-            $video->tag()->sync(array_filter($data['tag']));
-
-            Db::commit();
-            $this->success();
-        }
-    }
-}

+ 0 - 292
application/admin/controller/VideoPoint.php

@@ -1,292 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use app\common\controller\Backend;
-use app\common\model\VideoPointUser as VPU;
-use app\common\model\Area;
-use think\db\Query;
-
-/**
- *
- *
- * @icon fa fa-circle-o
- */
-class VideoPoint extends Backend
-{
-
-    /**
-     * VideoPoint模型对象
-     * @var \app\admin\model\VideoPoint
-     */
-    protected $model = null;
-
-    public function _initialize()
-    {
-        parent::_initialize();
-        $this->model = new \app\admin\model\VideoPoint;
-
-    }
-
-    public function import()
-    {
-        parent::import();
-    }
-
-    /**
-     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
-     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
-     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
-     */
-
-
-    /**
-     * 查看
-     */
-    public function index()
-    {
-        //当前是否为关联查询
-        $this->relationSearch = true;
-        //设置过滤方法
-        $this->request->filter(['strip_tags', 'trim']);
-        if ($this->request->isAjax()) {
-            //如果发送的来源是Selectpage,则转发到Selectpage
-            if ($this->request->request('keyField')) {
-                return $this->selectpage();
-            }
-            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-            $ids=input('ids');
-
-            $list = $this->model
-                    ->with(['video'])
-                    ->where(function (Query $query)use ($ids){
-                        $ids && $query->where('video_id',$ids);
-                    })
-                    ->where($where)
-                    ->order($sort, $order)
-                    ->paginate($limit);
-
-            foreach ($list as $row) {
-                $row->visible(['id','type','second','title','items','item_type','key','key_desc','total_time','ave_time','title_img']);
-                $row->visible(['video']);
-				$row->getRelation('video')->visible(['title','src']);
-            }
-
-            $result = array("total" => $list->total(), "rows" => $list->items());
-
-            return json($result);
-        }
-        return $this->view->fetch();
-    }
-
-    public function curve($ids){
-        $point=$this->model->findOrFail($ids);
-        if($point['type']=='wenda'){
-            return '';
-        }
-        $this->assign('point',$point);
-        $this->assign('x',array_keys($point['items']));
-        $inputDate=input('time');
-        if(!$inputDate){
-            $inputDate=date('Y-m-01 00:00:00').' - '.date('Y-m-01 00:00:00',strtotime('+1month',strtotime(date('Y-m-01 00:00:00'))));
-        }
-        $this->assign('date',$inputDate);
-        list($start,$end)=explode(' - ',$inputDate);
-        $start=strtotime($start);
-        $end=strtotime($end);
-        $values=[];
-        $total=$point->user()->day([$start,$end])->first()->sex(input('sex'))->filterUserArea(input('province_id'),input('city_id'))->filterUserAge(input('age_start'),input('age_end'))->count();
-        foreach ($point['items'] as $key=>$value){
-            if($total==0){
-                $values[]=0;
-                continue;
-            }
-            $count=$point->user()->day([$start,$end])->first()->sex(input('sex'))->filterUserArea(input('province_id'),input('city_id'))->filterUserAge(input('age_start'),input('age_end'))->whereRaw("FIND_IN_SET('{$key}',`key`)")->count();
-            $values[]=bcmul(bcdiv($count,$total,2),100,2);
-        }
-        $this->assign('value',$values);
-        $this->assign('province',Area::pro()->select());
-        return view();
-    }
-    public function rate($ids){
-        $point=$this->model->findOrFail($ids);
-        if($point['type']=='wenda'){
-            return '';
-        }
-        $this->assign('point',$point);
-        $this->assign('x',['回答次数','正确率']);
-        $inputDate=input('time');
-        if(!$inputDate){
-            $inputDate=date('Y-m-01 00:00:00').' - '.date('Y-m-01 00:00:00',strtotime('+1month',strtotime(date('Y-m-01 00:00:00'))));
-        }
-        $this->assign('date',$inputDate);
-        list($start,$end)=explode(' - ',$inputDate);
-        $start=strtotime($start);
-        $end=strtotime($end);
-        $values=[];
-        $_total=$point->user()->day([$start,$end])->where('is_first',1)->column('is_right','id');
-        $total=count($_total);
-        $rightTotal=$_total?(array_count_values(array_values($_total))[1]??0):0;
-        foreach ($point['items'] as $key=>$value){
-            if($total==0){
-                $values[]=0;
-                continue;
-            }
-            $count=$point->user()->whereRaw("FIND_IN_SET('{$key}',`key`)")->count();
-            $values[]=bcmul(bcdiv($count,$total,2),100,2);
-        }
-        $this->assign('value',[$total,$total?bcmul(bcdiv($rightTotal,$total,2),100,2):0]);
-        return view();
-    }
-
-    public function time($ids){
-        $point=$this->model->findOrFail($ids);
-        $type=input('type','day');
-        $this->assign('point',$point);
-
-        $x=[];
-        $values=[];
-        $inputDate=input('time');
-        if(!$inputDate){
-            $inputDate=date('Y-m-01 00:00:00').' - '.date('Y-m-01 00:00:00',strtotime('+1month',strtotime(date('Y-m-01 00:00:00'))));
-        }
-        $this->assign('date',$inputDate);
-        list($start,$end)=explode(' - ',$inputDate);
-        $selectDay=strtotime($inputDate);
-        $type='day';
-        if($type=='day'){
-            $temp=[];
-            //$day=strtotime(date('Y-m-01',$start));
-            //$month=strtotime('+1month',$day);
-            $start=strtotime($start);
-            $end=strtotime($end);
-            for ($i=0;$i<($end-$start)/86400;$i++){
-                $temp[]=$a=strtotime("+{$i}days",$start);
-                $x[]=date('Y/m/d',$a);
-            }
-            $data=$point->user()->day([$start,$end])->first()->group('day')->column('avg(time)','day');
-            foreach ($temp as $time){
-                $values[]=bcadd($data[$time]??0,0);
-            }
-        }elseif ($type=='month'){
-            $month=strtotime(date('Y-01-01',$selectDay));
-            $temp=[];
-            for ($i=0;$i<12;$i++){
-                $temp[]=$a=strtotime("+{$i}month",$month);
-                $x[]=date('Y/m',$a);
-            }
-            $data=$point->user()->where('month','in',$temp)->group('month')->column('avg(time)','month');
-            foreach ($temp as $time){
-                $values[]=$data[$time]??0;
-            }
-        }elseif ($type=='year'){
-            $limit=7;
-            $year=strtotime("-{$limit}year",strtotime(date('Y-01-01',$selectDay)));
-            $temp=[];
-            for ($i=0;$i<=$limit;$i++){
-                $temp[]=$a=strtotime("+{$i}year",$year);
-                $x[]=date('Y',$a);
-            }
-            $data=$point->user()->where('year','in',$temp)->group('year')->column('avg(time)','year');
-            foreach ($temp as $time){
-                $values[]=$data[$time]??0;
-            }
-        }
-
-        $this->assign('x',$x);
-        $this->assign('value',$values);
-        return view();
-    }
-
-    public function map($ids){
-        $point = $this->model->find($ids);
-        if($this->request->isGet()) {
-            $this->assign('point', $point);
-            return $this->view->fetch();
-        }else{
-            $data=input('');
-            $sex=$data['sex'];
-            $ageFrom=$data['age_from'];
-            $ageTo=$data['age_to'];
-            $time=$data['time'];
-            $query=$point
-                ->user()
-                ->first('a')
-                ->alias('a')
-                ->join('user b','a.user_id=b.id');
-            if($time){
-                list($timeStart,$timeEnd)=explode(' - ',$time);
-                $query->where('a.created_at','>=',strtotime($timeStart))->where('a.created_at','<=',strtotime($timeEnd));
-            }
-            if($sex!==''){
-                $query->where('b.gender',$sex);
-            }
-            if($ageFrom){
-                $query->where('b.age','>=',$ageFrom);
-            }
-            if($ageTo){
-                $query->where('b.age','<=',$ageTo);
-            }
-            if($data['level']==1){
-                    $query
-                        ->join('area c','b.province_id=c.id')
-                        ->group('c.id')
-                        ->field('c.shortname AS name,COUNT(a.id) AS value');
-                $data['province']=json_decode($data['province'],true);
-                $result=array_column($query->select()->toArray(),'value','name');
-                foreach ($data['province'] as &$area){
-                    $area['value']=$result[$area['name']]??0;
-                }
-                $this->success('','',$data['province']);
-            }elseif ($data['level']==2){
-                $letter=$data['province_pinyin'];
-                if(!$letter){
-                    $this->success();
-                }
-                $json_str=file_get_contents(ROOT_PATH."public/assets/js/map/json/{$letter}.json");
-                $cities_temp=json_decode($json_str,true);
-                $cities=[];
-                foreach ($cities_temp['features'] as $feature){
-                    $cities[]=$feature['properties']['name'];
-                }
-                /*$province_id= Area::where('shortname',$data['province'])->value('id');
-                if(!$province_id){
-                    $this->error('未找到省份');
-                }*/
-                //$cities=Area::where('pid',$province_id)->column('name','id');
-                if(in_array($data['province'],['北京','上海','重庆','天津'])){
-                    $query
-                        ->group('c.id')
-                        ->join('area c','b.county_id=c.id')
-                        ->field('COUNT(b.county_id) as value,c.name')
-                        ->whereIn('c.name',$cities);
-                    $result=array_column($query->select()->toArray(),'value','name');
-                    $change=[];
-                    foreach ($cities as $city){
-                        $change[]=[
-                            'name'=>$city,
-                            'value'=>$result[$city]??0
-                        ];
-                    }
-                }else{
-                    $query
-                        ->group('c.id')
-                        ->join('area c','b.city_id=c.id')
-                        ->field('COUNT(b.city_id) as value,c.name')
-                        ->whereIn('c.name',$cities);
-                    $result=array_column($query->select()->toArray(),'value','name');
-                    $change=[];
-                    foreach ($cities as $city){
-                        $change[]=[
-                            'name'=>$city,
-                            'value'=>$result[$city]??0
-                        ];
-                    }
-                }
-                $this->success('','',$change);
-            }
-
-            $this->success('','',[]);
-        }
-    }
-}

+ 0 - 83
application/admin/controller/VideoPointUser.php

@@ -1,83 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use app\common\controller\Backend;
-
-/**
- * 用户互动
- *
- * @icon fa fa-circle-o
- */
-class VideoPointUser extends Backend
-{
-    protected $relationSearch=true;
-    /**
-     * VideoPointUser模型对象
-     * @var \app\admin\model\VideoPointUser
-     */
-    protected $model = null;
-
-    public function _initialize()
-    {
-        parent::_initialize();
-        $this->model = new \app\admin\model\VideoPointUser;
-
-    }
-
-    public function import()
-    {
-        parent::import();
-    }
-
-    /**
-     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
-     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
-     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
-     */
-
-
-    /**
-     * 查看
-     */
-    public function index($ids=null)
-    {
-        //设置过滤方法
-        $this->request->filter(['strip_tags', 'trim']);
-        $map=[];
-        if($ids && input('frm')=='user'){
-            $map['video_point_user.user_id']=$ids;
-        }
-
-        if ($this->request->isAjax()) {
-            //如果发送的来源是Selectpage,则转发到Selectpage
-            if ($this->request->request('keyField')) {
-                return $this->selectpage();
-            }
-            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-
-            $point_id=input('ids');
-            $query=$this->model
-                ->with(['user','point','userinfo'])
-                ->where($where)
-                ->where($map)
-                ->order($sort, $order);
-            if($point_id && input('frm')=='video_point'){
-                $query->where('video_point_user.video_point_id',$point_id);
-            }
-            $list = $query
-                    ->paginate($limit);
-
-            foreach ($list as $row) {
-                $row->visible(['id','user_id','video_point_id','key','is_right','created_at','time','user','userinfo','point']);
-                $row->user->appendArea();
-            }
-
-            $result = array("total" => $list->total(), "rows" => $list->items());
-
-            return json($result);
-        }
-        return $this->view->fetch();
-    }
-
-}

+ 0 - 83
application/admin/controller/VideoUserLog.php

@@ -1,83 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use app\common\controller\Backend;
-
-/**
- * 用户操作
- *
- * @icon fa fa-circle-o
- */
-class VideoUserLog extends Backend
-{
-    
-    /**
-     * VideoUserLog模型对象
-     * @var \app\admin\model\VideoUserLog
-     */
-    protected $model = null;
-
-    public function _initialize()
-    {
-        parent::_initialize();
-        $this->model = new \app\admin\model\VideoUserLog;
-
-    }
-
-    public function import()
-    {
-        parent::import();
-    }
-
-    /**
-     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
-     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
-     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
-     */
-    
-
-    /**
-     * 查看
-     */
-    public function index()
-    {
-        //当前是否为关联查询
-        $this->relationSearch = true;
-        //设置过滤方法
-        $this->request->filter(['strip_tags', 'trim']);
-        if ($this->request->isAjax()) {
-            //如果发送的来源是Selectpage,则转发到Selectpage
-            if ($this->request->request('keyField')) {
-                return $this->selectpage();
-            }
-            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
-
-            $list = $this->model
-                    ->with(['user','video'])
-                    ->where($where)
-                    ->order($sort, $order)
-                    ->paginate($limit);
-
-            foreach ($list as $row) {
-                $row->visible(['id','user_id','video_id','type','created_at']);
-                $row->visible(['user']);
-				$row->getRelation('user')->visible(['nickname']);
-				$row->visible(['video']);
-				$row->getRelation('video')->visible(['title','src']);
-            }
-
-            $result = array("total" => $list->total(), "rows" => $list->items());
-
-            return json($result);
-        }
-        return $this->view->fetch();
-    }
-
-    public function types(){
-        return [
-            'play'=>'播放',
-            'forward'=>'转发',
-        ];
-    }
-}

+ 1 - 0
application/admin/lang/zh-cn.php

@@ -210,5 +210,6 @@ return [
     'Register'                                              => '注册',
     'User Center'                                           => '会员中心',
     'Created_at'                                            => '创建时间',
+    'Update_time'                                            => '更新时间',
     'Sort'                                                  => '排序',
 ];

+ 35 - 0
application/admin/lang/zh-cn/mobile.php

@@ -0,0 +1,35 @@
+<?php
+
+return [
+    'Id'                => 'ID',
+    'Logo'              => '缩略图',
+    'Name'              => '卡名称',
+    'No'                => '手机号',
+    'Type'              => '号码类型',
+    'Network'           => '网络类型',
+    'City_id'           => '城市ID',
+    'City'              => '城市',
+    'Province_id'       => '省ID',
+    'Province'          => '省份',
+    'Amount_exists'     => '含话费',
+    'Amount_original'   => '原价',
+    'Amount_base'       => '售价',
+    'Amount_charge'     => '预充',
+    'Amount'            => '总价',
+    'Top_time'          => '置顶',
+    'Rec_time'          => '推荐时间',
+    'Summary'           => '简介',
+    'Saled'             => '是否已出售',
+    'Is_activity'       => '是否特价号',
+    'Activity_time_end' => '特价号活动结束时间',
+    'Filter_num_0'      => '数量',
+    'Filter_num_1'      => '数量',
+    'Filter_num_2'      => '数量',
+    'Filter_num_3'      => '数量',
+    'Filter_num_4'      => '数量',
+    'Filter_num_5'      => '数量',
+    'Filter_num_6'      => '数量',
+    'Filter_num_7'      => '数量',
+    'Filter_num_8'      => '数量',
+    'Filter_num_9'      => '数量'
+];

+ 18 - 0
application/admin/model/Mobile.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace app\admin\model;
+
+use think\Model;
+
+
+class Mobile extends \app\common\model\Mobile
+{
+    // 自动写入时间戳字段
+    protected $autoWriteTimestamp = true;
+
+    // 追加属性
+    protected $append = [
+        'create_time_text',
+        'update_time_text',
+    ];
+}

+ 27 - 0
application/admin/validate/Mobile.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace app\admin\validate;
+
+use think\Validate;
+
+class Mobile extends Validate
+{
+    /**
+     * 验证规则
+     */
+    protected $rule = [
+    ];
+    /**
+     * 提示消息
+     */
+    protected $message = [
+    ];
+    /**
+     * 验证场景
+     */
+    protected $scene = [
+        'add'  => [],
+        'edit' => [],
+    ];
+    
+}

+ 100 - 0
application/admin/view/mobile/add.html

@@ -0,0 +1,100 @@
+<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Logo')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-logo" class="form-control" name="row[logo]" type="text">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-name" class="form-control" name="row[name]" type="text">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('No')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-no" class="form-control" name="row[no]" type="text">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-type" min="0" class="form-control" name="row[type]" type="number">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Network')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-network" data-rule="required" min="0" class="form-control" name="row[network]" type="number">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('City')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <div class='control-relative'><input id="c-city" class="form-control" data-toggle="city-picker" name="row[city]" data-level="city" type="text"></div>
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_exists')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_exists" min="0" class="form-control" step="0.01" name="row[amount_exists]" type="number" value="0.00">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_original')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_original" min="0" class="form-control" step="0.01" name="row[amount_original]" type="number" value="0.00">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_base')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_base" min="0" class="form-control" step="0.01" name="row[amount_base]" type="number" value="0.00">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_charge')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_charge" min="0" class="form-control" step="0.01" name="row[amount_charge]" type="number" value="0.00">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount" min="0" class="form-control" step="0.01" name="row[amount]" type="number">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Summary')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-summary" class="form-control" name="row[summary]" type="text">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Saled')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-saled" min="0" class="form-control" name="row[saled]" type="number" value="0">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Is_activity')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            {:build_radios('row[is_activity]',[0=>'否',1=>'是'],0)}
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Activity_time_end')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-activity_time_end" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[activity_time_end]" type="text" value="{:date('Y-m-d H:i:s')}">
+        </div>
+    </div>
+    <div class="form-group layer-footer">
+        <label class="control-label col-xs-12 col-sm-2"></label>
+        <div class="col-xs-12 col-sm-8">
+            <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
+            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
+        </div>
+    </div>
+</form>

+ 400 - 0
application/admin/view/mobile/edit.html

@@ -0,0 +1,400 @@
+<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Logo')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-logo" class="form-control" name="row[logo]" type="text" value="{$row.logo|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-name" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('No')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-no" class="form-control" name="row[no]" type="text" value="{$row.no|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-type" min="0" class="form-control" name="row[type]" type="number" value="{$row.type|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Network')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-network" data-rule="required" min="0" class="form-control" name="row[network]" type="number" value="{$row.network|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('City_id')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-city_id" min="0" data-rule="required" data-source="city/index" class="form-control selectpage" name="row[city_id]" type="text" value="{$row.city_id|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('City')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <div class='control-relative'><input id="c-city" class="form-control" data-toggle="city-picker" name="row[city]" type="text" value="{$row.city|htmlentities}"></div>
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Province_id')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-province_id" min="0" data-rule="required" data-source="province/index" class="form-control selectpage" name="row[province_id]" type="text" value="{$row.province_id|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Province')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-province" class="form-control" name="row[province]" type="text" value="{$row.province|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_exists')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_exists" min="0" class="form-control" step="0.01" name="row[amount_exists]" type="number" value="{$row.amount_exists|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_original')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_original" min="0" class="form-control" step="0.01" name="row[amount_original]" type="number" value="{$row.amount_original|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_base')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_base" min="0" class="form-control" step="0.01" name="row[amount_base]" type="number" value="{$row.amount_base|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount_charge')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount_charge" min="0" class="form-control" step="0.01" name="row[amount_charge]" type="number" value="{$row.amount_charge|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Amount')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-amount" min="0" class="form-control" step="0.01" name="row[amount]" type="number" value="{$row.amount|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-create_time" min="0" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create_time]" type="text" value="{:$row.create_time?datetime($row.create_time):''}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Update_time')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-update_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[update_time]" type="text" value="{:$row.update_time?datetime($row.update_time):''}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Top_time')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-top_time" min="0" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[top_time]" type="text" value="{:$row.top_time?datetime($row.top_time):''}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Rec_time')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-rec_time" min="0" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[rec_time]" type="text" value="{:$row.rec_time?datetime($row.rec_time):''}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Summary')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-summary" class="form-control" name="row[summary]" type="text" value="{$row.summary|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Saled')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-saled" min="0" class="form-control" name="row[saled]" type="number" value="{$row.saled|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Is_activity')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-is_activity" class="form-control" name="row[is_activity]" type="number" value="{$row.is_activity|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Activity_time_end')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-activity_time_end" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[activity_time_end]" type="text" value="{$row.activity_time_end}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_0')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_0" min="0" class="form-control" name="row[filter_exists_0]" type="number" value="{$row.filter_exists_0|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_2')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_2" min="0" class="form-control" name="row[filter_exists_2]" type="number" value="{$row.filter_exists_2|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_3')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_3" min="0" class="form-control" name="row[filter_exists_3]" type="number" value="{$row.filter_exists_3|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_4')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_4" min="0" class="form-control" name="row[filter_exists_4]" type="number" value="{$row.filter_exists_4|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_5')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_5" min="0" class="form-control" name="row[filter_exists_5]" type="number" value="{$row.filter_exists_5|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_6')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_6" min="0" class="form-control" name="row[filter_exists_6]" type="number" value="{$row.filter_exists_6|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_7')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_7" min="0" class="form-control" name="row[filter_exists_7]" type="number" value="{$row.filter_exists_7|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_8')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_8" min="0" class="form-control" name="row[filter_exists_8]" type="number" value="{$row.filter_exists_8|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_exists_9')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_exists_9" min="0" class="form-control" name="row[filter_exists_9]" type="number" value="{$row.filter_exists_9|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_0')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_0" min="0" class="form-control" name="row[filter_num_0]" type="number" value="{$row.filter_num_0|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_1')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_1" min="0" class="form-control" name="row[filter_num_1]" type="number" value="{$row.filter_num_1|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_2')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_2" min="0" class="form-control" name="row[filter_num_2]" type="number" value="{$row.filter_num_2|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_3')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_3" min="0" class="form-control" name="row[filter_num_3]" type="number" value="{$row.filter_num_3|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_4')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_4" min="0" class="form-control" name="row[filter_num_4]" type="number" value="{$row.filter_num_4|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_5')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_5" min="0" class="form-control" name="row[filter_num_5]" type="number" value="{$row.filter_num_5|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_6')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_6" min="0" class="form-control" name="row[filter_num_6]" type="number" value="{$row.filter_num_6|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_7')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_7" min="0" class="form-control" name="row[filter_num_7]" type="number" value="{$row.filter_num_7|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_8')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_8" min="0" class="form-control" name="row[filter_num_8]" type="number" value="{$row.filter_num_8|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_num_9')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_num_9" min="0" class="form-control" name="row[filter_num_9]" type="number" value="{$row.filter_num_9|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_3a')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_3a" min="0" class="form-control" name="row[filter_3a]" type="number" value="{$row.filter_3a|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_4a')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_4a" min="0" class="form-control" name="row[filter_4a]" type="number" value="{$row.filter_4a|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_5a')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_5a" min="0" class="form-control" name="row[filter_5a]" type="number" value="{$row.filter_5a|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_6a')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_6a" min="0" class="form-control" name="row[filter_6a]" type="number" value="{$row.filter_6a|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_7a')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_7a" min="0" class="form-control" name="row[filter_7a]" type="number" value="{$row.filter_7a|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_8a')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_8a" min="0" class="form-control" name="row[filter_8a]" type="number" value="{$row.filter_8a|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_abc')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_abc" min="0" class="form-control" name="row[filter_abc]" type="number" value="{$row.filter_abc|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_abcd')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_abcd" min="0" class="form-control" name="row[filter_abcd]" type="number" value="{$row.filter_abcd|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_abcde')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_abcde" min="0" class="form-control" name="row[filter_abcde]" type="number" value="{$row.filter_abcde|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_abcdef')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_abcdef" min="0" class="form-control" name="row[filter_abcdef]" type="number" value="{$row.filter_abcdef|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_3ab')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_3ab" min="0" class="form-control" name="row[filter_3ab]" type="number" value="{$row.filter_3ab|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_4ab')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_4ab" min="0" class="form-control" name="row[filter_4ab]" type="number" value="{$row.filter_4ab|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_5ab')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_5ab" min="0" class="form-control" name="row[filter_5ab]" type="number" value="{$row.filter_5ab|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_2')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_2" min="0" class="form-control" name="row[filter_no_pos_2]" type="number" value="{$row.filter_no_pos_2|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_3')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_3" min="0" class="form-control" name="row[filter_no_pos_3]" type="number" value="{$row.filter_no_pos_3|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_4')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_4" min="0" class="form-control" name="row[filter_no_pos_4]" type="number" value="{$row.filter_no_pos_4|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_5')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_5" min="0" class="form-control" name="row[filter_no_pos_5]" type="number" value="{$row.filter_no_pos_5|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_6')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_6" min="0" class="form-control" name="row[filter_no_pos_6]" type="number" value="{$row.filter_no_pos_6|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_7')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_7" min="0" class="form-control" name="row[filter_no_pos_7]" type="number" value="{$row.filter_no_pos_7|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_8')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_8" min="0" class="form-control" name="row[filter_no_pos_8]" type="number" value="{$row.filter_no_pos_8|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_9')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_9" min="0" class="form-control" name="row[filter_no_pos_9]" type="number" value="{$row.filter_no_pos_9|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_10')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_10" min="0" class="form-control" name="row[filter_no_pos_10]" type="number" value="{$row.filter_no_pos_10|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Filter_no_pos_11')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-filter_no_pos_11" min="0" class="form-control" name="row[filter_no_pos_11]" type="number" value="{$row.filter_no_pos_11|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Sort')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-sort" min="0" class="form-control" name="row[sort]" type="number" value="{$row.sort|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group layer-footer">
+        <label class="control-label col-xs-12 col-sm-2"></label>
+        <div class="col-xs-12 col-sm-8">
+            <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
+            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
+        </div>
+    </div>
+</form>

+ 7 - 9
application/admin/view/video_user_log/index.html → application/admin/view/mobile/index.html

@@ -7,26 +7,24 @@
                 <div class="widget-body no-padding">
                     <div id="toolbar" class="toolbar">
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
-<!--
-                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('video_user_log/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('video_user_log/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('video_user_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-                        <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('video_user_log/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
+                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('mobile/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
+                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('mobile/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('mobile/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
+                        <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('mobile/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
 
-                        <div class="dropdown btn-group {:$auth->check('video_user_log/multi')?'':'hide'}">
+                        <div class="dropdown btn-group {:$auth->check('mobile/multi')?'':'hide'}">
                             <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
                             <ul class="dropdown-menu text-left" role="menu">
                                 <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
                                 <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
                             </ul>
                         </div>
--->
 
                         
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
-                           data-operate-edit="0"
-                           data-operate-del="{:$auth->check('video_user_log/del')}" 
+                           data-operate-edit="{:$auth->check('mobile/edit')}" 
+                           data-operate-del="{:$auth->check('mobile/del')}" 
                            width="100%">
                     </table>
                 </div>

+ 0 - 290
application/admin/view/video/add.html

@@ -1,290 +0,0 @@
-<style>
-    .short-input{width: 400px;/*margin-bottom: 10px;*/}
-    .block{display: block!important;}
-    /*.form-control{margin-bottom: 10px;}*/
-    .up-input{
-        float: none!important;
-        display: inline-block!important;
-    }
-</style>
-<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('博主')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-guest_id" data-rule="required" data-source="guest/index" class="form-control selectpage" name="row[guest_id]" type="text" value="">
-        </div>
-    </div>
-    {include file="layout/fu" label="视频封面" name="bg" value="" rule="required"}
-    {include file="layout/fu_video" label="视频" name="src" value="" rule="required"}
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">视频标题:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input name="row[title]" data-rule="required;length(~200)" class="form-control"/>
-        </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">
-            {:build_checkboxs('row[tag][]',$tags)}
-        </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">
-            {:build_radios('row[is_open]',[0=>'否',1=>'是'])}
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">视频卡点:</label>
-        <button type="button" class="btn btn-primary-light add-point" data-point="vote">新增投票卡点</button>
-        <button type="button" class="btn btn-primary-light add-point" data-point="wenda">新增问答卡点</button>
-        <button type="button" class="btn btn-primary-light add-point" data-point="choose">新增选择题卡点</button>
-        <button type="button" class="btn btn-primary-light add-point" data-point="decide">新增判断题卡点</button>
-    </div>
-    <div id="point-list" class="form-group"></div>
-    <div class="form-group layer-footer">
-        <label class="control-label col-xs-12 col-sm-2"></label>
-        <div class="col-xs-12 col-sm-8">
-            <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
-            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
-        </div>
-    </div>
-</form>
-<div id="point-all">
-    <div class="point-vote point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="vote">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="text" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </div>
-        </div>
-        <!--<div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">标题类型:</label>
-            <div class="col-xs-2 col-sm-4 title-type-change">
-                {:build_select('row[point][$idx][title_type]',['txt'=>'文本','image'=>'图片'],'txt')}
-            </div>
-        </div>-->
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">文本标题:</label>
-            <div class="col-xs-12 col-sm-4">
-                <input type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </div>
-        </div>
-        <div class="form-group">
-            <label for="c-title-$idx" class="control-label col-xs-12 col-sm-2">{:__('图片标题')}:</label>
-            <div class="col-xs-12 col-sm-4">
-                <div class="input-group">
-                    <input id="c-title-$idx" data-rule="" class="form-control" size="50" name="row[point][$idx][title_img]" type="text" value="">
-                    <div class="input-group-addon no-border no-padding">
-                        <span><button type="button" id="faupload-$idx" class="btn btn-danger faupload" data-input-id="c-title-$idx" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
-                        <span><button type="button" id="fachoose-$idx" class="btn btn-primary fachoose" data-input-id="c-title-$idx" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
-                    </div>
-                    <span class="msg-box n-right" for="c-avatar"></span>
-                </div>
-            </div>
-        </div>
-        <div class="form-group form-group-choose-type">
-            <label class="control-label col-xs-12 col-sm-2">选择项类型:</label>
-            <div class="col-xs-12 col-sm-8 choose-type">
-                {:build_radios('row[point][$idx][item_type]',['txt'=>'文本','image'=>'图片'])}
-            </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">
-                <a class="btn btn-info vote-add-txt-item">新增</a>
-                <script type="text/html">
-                    <div class="vote-object">
-                        <input data-rule="" type="text" name="row[point][$idx][txt][items][]" class="form-control short-input" placeholder="输入投票选项">
-                        <a class="btn btn-danger" onclick="if($(this).parent().parent().find('.vote-object').length===1){return}$(this).parent().remove()">删除</a>
-                    </div>
-                </script>
-            </div>
-        </div>
-        <div class="form-group hidden">
-            <label class="control-label col-xs-12 col-sm-2">图片选项:</label>
-            <div class="col-xs-12 col-sm-8">
-                <a class="btn btn-info add-image add-image-vote">新增</a>
-            </div>
-        </div>
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此投票</a>
-    </div>
-    <div class="point-wenda point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="wenda">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="number" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </div>
-        </div>
-       <!-- <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">标题类型:</label>
-            <div class="col-xs-2 col-sm-4 title-type-change">
-                {:build_select('row[point][$idx][title_type]',['txt'=>'文本','image'=>'图片'],'txt')}
-            </div>
-        </div>-->
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">文本标题:</label>
-            <div class="col-xs-12 col-sm-4">
-                <input type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </div>
-        </div>
-        <div class="form-group">
-            <label for="c-title-$idx" class="control-label col-xs-12 col-sm-2">{:__('图片标题')}:</label>
-            <div class="col-xs-12 col-sm-4">
-                <div class="input-group">
-                    <input id="c-title-$idx" data-rule="" class="form-control" size="50" name="row[point][$idx][title_img]" type="text" value="">
-                    <div class="input-group-addon no-border no-padding">
-                        <span><button type="button" id="faupload-$idx" class="btn btn-danger faupload" data-input-id="c-title-$idx" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
-                        <span><button type="button" id="fachoose-$idx" class="btn btn-primary fachoose" data-input-id="c-title-$idx" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
-                    </div>
-                    <span class="msg-box n-right" for="c-avatar"></span>
-                </div>
-            </div>
-        </div>
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此问答</a>
-    </div>
-    <div class="point-choose point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="choose">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="number" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </div>
-        </div>
-        <!--<div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">标题类型:</label>
-            <div class="col-xs-2 col-sm-4 title-type-change">
-                {:build_select('row[point][$idx][title_type]',['txt'=>'文本','image'=>'图片'],'txt')}
-            </div>
-        </div>-->
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">文本标题:</label>
-            <div class="col-xs-12 col-sm-4">
-                <input type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </div>
-        </div>
-        <div class="form-group">
-            <label for="c-title-$idx" class="control-label col-xs-12 col-sm-2">{:__('图片标题')}:</label>
-            <div class="col-xs-12 col-sm-4">
-                <div class="input-group">
-                    <input id="c-title-$idx" data-rule="" class="form-control" size="50" name="row[point][$idx][title_img]" type="text" value="">
-                    <div class="input-group-addon no-border no-padding">
-                        <span><button type="button" id="faupload-$idx" class="btn btn-danger faupload" data-input-id="c-title-$idx" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
-                        <span><button type="button" id="fachoose-$idx" class="btn btn-primary fachoose" data-input-id="c-title-$idx" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
-                    </div>
-                    <span class="msg-box n-right" for="c-avatar"></span>
-                </div>
-            </div>
-        </div>
-        <div class="form-group form-group-choose-type">
-            <label class="control-label col-xs-12 col-sm-2">选择项类型:</label>
-            <div class="col-xs-12 col-sm-8 choose-type">
-                {:build_radios('row[point][$idx][item_type]',['txt'=>'文本','image'=>'图片'])}
-            </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">
-                <a class="btn btn-info add-txt">新增</a>
-                <script type="text/html">
-                    <div class="txt-field">
-                        <label style="position: relative;">
-                            <input name="row[point][$idx][key][$index]" type="checkbox" value="1" class="key-checkbox-txt">答案
-                        </label>
-                        <input type="text" data-rule="" placeholder="输入选择项" name="row[point][$idx][txt][items][$index]" class="short-input form-control">
-                        <a class="btn btn-danger" onclick="if($(this).parents('.txt-field').prev().hasClass('btn')){return;}$(this).parents('.txt-field').remove()">删除</a>
-                    </div>
-                </script>
-            </div>
-        </div>
-        <div class="form-group hidden">
-            <label class="control-label col-xs-12 col-sm-2">图片选项:</label>
-            <div class="col-xs-12 col-sm-8">
-                <a class="btn btn-info add-image add-image-choose">新增</a>
-            </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 type="text" data-rule="required" class="form-control" name="row[point][$idx][key]" placeholder="从上到下许可依次1,2,3,4,5,6,多个答案用,分割">
-            </div>
-        </div>-->
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此选择题</a>
-    </div>
-    <div class="point-decide point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="decide">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-4">
-                <input type="number" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </div>
-        </div>
-        <!--<div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">标题类型:</label>
-            <div class="col-xs-2 col-sm-4 title-type-change">
-                {:build_select('row[point][$idx][title_type]',['txt'=>'文本','image'=>'图片'],'txt')}
-            </div>
-        </div>-->
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">文本标题:</label>
-            <div class="col-xs-12 col-sm-4">
-                <input type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </div>
-        </div>
-        <div class="form-group">
-            <label for="c-title-$idx" class="control-label col-xs-12 col-sm-2">{:__('图片标题')}:</label>
-            <div class="col-xs-12 col-sm-4">
-                <div class="input-group">
-                    <input id="c-title-$idx" data-rule="" class="form-control" size="50" name="row[point][$idx][title_img]" type="text" value="">
-                    <div class="input-group-addon no-border no-padding">
-                        <span><button type="button" id="faupload-$idx" class="btn btn-danger faupload" data-input-id="c-title-$idx" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
-                        <span><button type="button" id="fachoose-$idx" class="btn btn-primary fachoose" data-input-id="c-title-$idx" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
-                    </div>
-                    <span class="msg-box n-right" for="c-avatar"></span>
-                </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">
-                <!--{:build_radios('row[point][$idx][key]',['true'=>'正确','false'=>'错误'],'true')}-->
-                <label style="display: block;">
-                    <input type="radio" name="row[point][$idx][key]" value="A" checked/>
-                    <input type="text" name="row[point][$idx][items][A]" style="width: 150px" class="form-control" placeholder="请输入正确时候的描述" data-rule="required;length(~15)">
-                </label>
-                <label>
-                    <input type="radio" name="row[point][$idx][key]" value="B"/>
-                    <input type="text" name="row[point][$idx][items][B]" style="width: 150px" class="form-control" placeholder="请输入错误时候的描述" data-rule="required;length(~15)">
-                </label>
-            </div>
-        </div>
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此判断题</a>
-    </div>
-</div>
-<div class="up-field image-example-vote" style="display: none;">
-    <div class="col-xs-12 col-sm-8">
-        <div class="input-group">
-            <input id="c-choose-$index" class="form-control up-input" name="row[point][$idx][image][items][]" type="text" style="width: 200px">
-            <div class="input-group-addon no-border no-padding" style="width: 0">
-                <span><button type="button" id="fachoose-avatar-$index" class="btn btn-primary fachoose" data-input-id="c-choose-$index" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
-                <a class="btn btn-danger" onclick="if($(this).parents('.up-field').prev().hasClass('btn')){return;}$(this).parents('.up-field').remove()">删除</a>
-            </div>
-        </div>
-    </div>
-</div>
-<div class="up-field image-example-choose" style="display: none;">
-    <div class="col-xs-12 col-sm-8">
-        <div class="input-group">
-            <label style="position: relative;top: 10px">
-                <input name="row[point][$idx][key][$index]" type="checkbox" value="1" class="key-checkbox-image">答案
-            </label>
-            <input id="c-choose-$index" class="form-control up-input" name="row[point][$idx][image][items][$index]" type="text" style="width: 200px">
-            <div class="input-group-addon no-border no-padding" style="width: 0">
-                <span><button type="button" id="fachoose-avatar-$index" class="btn btn-primary fachoose" data-input-id="c-choose-$index" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
-                <a class="btn btn-danger" onclick="if($(this).parents('.up-field').prev().hasClass('btn')){return;}$(this).parents('.up-field').remove()">删除</a>
-            </div>
-        </div>
-    </div>
-</div>

+ 0 - 231
application/admin/view/video/edit.html

@@ -1,231 +0,0 @@
-<style>
-    .short-input{width: 400px;/*margin-bottom: 10px;*/}
-    .block{display: block!important;}
-    /*.form-control{margin-bottom: 10px;}*/
-    .up-input{
-        float: none!important;
-        display: inline-block!important;
-    }
-</style>
-<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('博主')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-guest_id" data-rule="required" data-source="guest/index" class="form-control selectpage" name="row[guest_id]" type="text" value="{$row.guest_id}">
-        </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">
-            <div class="input-group">
-                <input id="c-[name]" class="form-control" size="50" name="row[bg]" type="text" value="{$row.bg}" data-rule="[rule]">
-                <div class="input-group-addon no-border no-padding">
-                    <span><button type="button" id="plupload-avatar-bg" class="btn btn-danger plupload" data-input-id="c-bg" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> 上传</button></span>
-                    <span><button type="button" id="fachoose-avatar-bg" class="btn btn-primary fachoose" data-input-id="c-bg" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
-                </div>
-                <span class="msg-box n-right" for="c-bg"></span>
-            </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">
-            <div class="input-group">
-                <input id="c-src" class="form-control" size="50" name="row[src]" type="text" value="{$row.bg}" data-rule="[rule]">
-                <div class="input-group-addon no-border no-padding">
-                    <span><button type="button" id="plupload-video" class="btn btn-danger plupload" data-input-id="c-src" data-mimetype="video/mp4" data-multiple="false" data-preview-id="p-video"><i class="fa fa-upload"></i> 上传</button></span>
-                    <span><button type="button" id="fachoose-video" class="btn btn-primary fachoose" data-input-id="c-src" data-mimetype="video/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
-                </div>
-                <span class="msg-box n-right" for="c-src"></span>
-            </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 name="row[title]" data-rule="required;length(~200)" class="form-control" value="{$row.title}"/>
-        </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">
-            {:build_checkboxs('row[tag][]',$tags,$checked_tags)}
-        </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">
-            {:build_radios('row[is_open]',[0=>'否',1=>'是'],$row.is_open)}
-        </div>
-    </div>
-   <!-- <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">视频卡点:</label>
-        <button type="button" class="btn btn-primary-light add-point" data-point="vote">新增投票卡点</button>
-        <button type="button" class="btn btn-primary-light add-point" data-point="wenda">新增问答卡点</button>
-        <button type="button" class="btn btn-primary-light add-point" data-point="choose">新增选择题卡点</button>
-        <button type="button" class="btn btn-primary-light add-point" data-point="decide">新增判断题卡点</button>
-    </div>-->
-    <div id="point-list" class="form-group"></div>
-    <div class="form-group layer-footer">
-        <label class="control-label col-xs-12 col-sm-2"></label>
-        <div class="col-xs-12 col-sm-8">
-            <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
-            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
-        </div>
-    </div>
-</form>
-<div id="point-all">
-    <div class="point-vote point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="vote">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="text" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </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 type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </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 choose-type">
-                {:build_radios('row[point][$idx][item_type]',['txt'=>'文本','image'=>'图片'])}
-            </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">
-                <a class="btn btn-info" onclick='$(this).parent().append($(this).next().clone())'>新增</a>
-                <div class="vote-object"><input data-rule="" type="text" name="row[point][$idx][txt][items][]" class="form-control short-input" placeholder="输入投票选项"><a class="btn btn-danger" onclick="if($(this).parent().parent().find('.vote-object').length===1){return}$(this).parent().remove()">删除</a></div>
-            </div>
-        </div>
-        <div class="form-group hidden">
-            <label class="control-label col-xs-12 col-sm-2">图片选择项:</label>
-            <div class="col-xs-12 col-sm-8">
-                <a class="btn btn-info add-image add-image-vote">新增选择项</a>
-            </div>
-        </div>
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此投票</a>
-    </div>
-    <div class="point-wenda point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="wenda">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="number" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </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 type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </div>
-        </div>
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此问答</a>
-    </div>
-    <div class="point-choose point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="choose">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="number" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </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 type="text" class="form-control" name="row[point][$idx][title]" data-rule="required">
-            </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 choose-type">
-                {:build_radios('row[point][$idx][item_type]',['txt'=>'文本','image'=>'图片'])}
-            </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">
-                <a class="btn btn-info add-txt">新增选择项</a>
-                <div class="txt-field">
-                    <label style="position: relative;">
-                        <input name="row[point][$idx][key][$index]" type="checkbox" value="1" class="key-checkbox-txt">答案
-                    </label>
-                    <input type="text" data-rule="" placeholder="输入选择项" name="row[point][$idx][txt][items][$index]" class="short-input form-control">
-                    <a class="btn btn-danger" onclick="if($(this).parents('.txt-field').prev().hasClass('btn')){return;}$(this).parents('.txt-field').remove()">删除</a>
-                </div>
-            </div>
-        </div>
-        <div class="form-group hidden">
-            <label class="control-label col-xs-12 col-sm-2">图片选择项:</label>
-            <div class="col-xs-12 col-sm-8">
-                <a class="btn btn-info add-image add-image-choose">新增选择项</a>
-            </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 type="text" data-rule="required" class="form-control" name="row[point][$idx][key]" placeholder="从上到下许可依次1,2,3,4,5,6,多个答案用,分割">
-            </div>
-        </div>-->
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此选择题</a>
-    </div>
-    <div class="point-decide point-list-one hidden" style="background: #f1f1f1;position: relative;">
-        <input type="hidden" name="row[point][$idx][type]" value="decide">
-        <div class="form-group">
-            <label class="control-label col-xs-12 col-sm-2">卡点时间点(秒):</label>
-            <div class="col-xs-12 col-sm-8">
-                <input type="number" class="form-control short-input" name="row[point][$idx][second]" data-rule="required">
-            </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 type="text" class="form-control" name="row[point][$idx][title]" data-rule="required;length(~15)">
-            </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">
-                <!--{:build_radios('row[point][$idx][key]',['true'=>'正确','false'=>'错误'],'true')}-->
-                <label style="display: block;">
-                    <input type="radio" name="row[point][$idx][key]" value="A" checked/>
-                    <input type="text" name="row[point][$idx][items][A]" style="width: 150px" class="form-control" placeholder="请输入正确时候的描述" data-rule="required;length(~15)">
-                </label>
-                <label>
-                    <input type="radio" name="row[point][$idx][key]" value="B"/>
-                    <input type="text" name="row[point][$idx][items][B]" style="width: 150px" class="form-control" placeholder="请输入错误时候的描述" data-rule="required;length(~15)">
-                </label>
-            </div>
-        </div>
-        <a class="btn btn-danger" onclick='$(this).parent().remove()' style="position: absolute;top: 0;left: 0;">删除此判断题</a>
-    </div>
-</div>
-<div class="up-field image-example-vote" style="display: none;">
-    <div class="col-xs-12 col-sm-8">
-        <div class="input-group">
-            <input id="c-choose-$index" class="form-control up-input" name="row[point][$idx][image][items][]" type="text" style="width: 200px">
-            <div class="input-group-addon no-border no-padding" style="width: 0">
-                <span><button type="button" id="fachoose-avatar-$index" class="btn btn-primary fachoose" data-input-id="c-choose-$index" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
-                <a class="btn btn-danger" onclick="if($(this).parents('.up-field').prev().hasClass('btn')){return;}$(this).parents('.up-field').remove()">删除</a>
-            </div>
-        </div>
-    </div>
-</div>
-<div class="up-field image-example-choose" style="display: none;">
-    <div class="col-xs-12 col-sm-8">
-        <div class="input-group">
-            <label style="position: relative;top: 10px">
-                <input name="row[point][$idx][key][$index]" type="checkbox" value="1" class="key-checkbox-image">答案
-            </label>
-            <input id="c-choose-$index" class="form-control up-input" name="row[point][$idx][image][items][$index]" type="text" style="width: 200px">
-            <div class="input-group-addon no-border no-padding" style="width: 0">
-                <span><button type="button" id="fachoose-avatar-$index" class="btn btn-primary fachoose" data-input-id="c-choose-$index" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
-                <a class="btn btn-danger" onclick="if($(this).parents('.up-field').prev().hasClass('btn')){return;}$(this).parents('.up-field').remove()">删除</a>
-            </div>
-        </div>
-    </div>
-</div>

+ 0 - 37
application/admin/view/video/index.html

@@ -1,37 +0,0 @@
-<div class="panel panel-default panel-intro">
-    {:build_heading()}
-
-    <div class="panel-body">
-        <div id="myTabContent" class="tab-content">
-            <div class="tab-pane fade active in" id="one">
-                <div class="widget-body no-padding">
-                    <div id="toolbar" class="toolbar">
-                        <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
-                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('video/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-<!--
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('video/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('video/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-                        <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('video/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
--->
-
-  <!--                      <div class="dropdown btn-group {:$auth->check('video/multi')?'':'hide'}">
-                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
-                            <ul class="dropdown-menu text-left" role="menu">
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
-                            </ul>
-                        </div>
-
-                        -->
-                    </div>
-                    <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
-                           data-operate-edit="1"
-                           data-operate-del="{:$auth->check('video/del')}" 
-                           width="100%">
-                    </table>
-                </div>
-            </div>
-
-        </div>
-    </div>
-</div>

+ 0 - 72
application/admin/view/video_point/curve.html

@@ -1,72 +0,0 @@
-<div class="panel panel-default panel-intro">
-    <form class="form-horizontal row" data-toggle="validator" method="get" role="form">
-        <!--<label class="control-label col-xs-12 col-sm-2">{:__('类型')}:</label>
-        <div class="col-xs-12 col-sm-8" style="width: 150px;">
-            {:build_select('type', ['day'=>__('日'), 'month'=>__('月'),'year'=>'年'], input('type'),['id'=>'type'])}
-        </div>
-        <label class="control-label col-xs-12 col-sm-2" style="width: 50px;padding-left: 0;">{:__('日期')}:</label>
-        <div class="col-xs-12 col-sm-8" style="width: 200px;">
-            <input class="datetimepicker form-control" type="date" name="time" value="{:input('time')}"/>
-        </div>-->
-        <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-            <label for="id" class="control-label col-xs-4">时间</label>
-            <div class="col-xs-8">
-                <input type="text" class="form-control datetimerange form-time" name="time" id="id" data-index="0" readonly value="{$date|default=''}">
-            </div>
-        </div>
-        <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-            <label class="control-label col-xs-4" style="width: 60px">性别</label>
-            <div class="col-xs-8">
-            <select name="sex" class="form-control form-sex">
-                <option value="">全部</option>
-                <option value="1" {:input('sex')==1?'selected':''}>男</option>
-                <option value="2" {:input('sex')==2?'selected':''}>女</option>
-            </select>
-            </div>
-        </div>
-        <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-            <label class="control-label col-xs-4" style="width: 80px">年龄</label>
-            <div class="col-xs-8">
-                <div class="row">
-                    <div class="col-xs-6 no-padding"><input type="text" class="form-control" name="age_start" value="{:input('age_start')}" placeholder="开始年龄"></div>
-                    <div class="col-xs-6 no-padding"><input type="text" class="form-control" name="age_end" value="{:input('age_end')}" placeholder="结束年龄"></div>
-                </div>
-            </div>
-        </div>
-        <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-            <label class="control-label col-xs-4">地区</label>
-            <div class="col-xs-8">
-                <div class="row">
-                    <div class="col-xs-6">
-                        <select name="province_id" class="form-control province-select">
-                            <option value="">请选择</option>
-                            {foreach name="province" item="a"}
-                            <option value="{$a.id}" {:input('province_id')==$a['id']?'selected':''}>{$a.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                    <div class="col-xs-6" style="padding-left: 0">
-                        <select name="city_id" class="form-control city-select">
-                            <option value="">请选择市</option>
-                        </select>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-            <div class="col-sm-8 col-xs-offset-4">
-                <button type="button" class="btn btn-success" id="search">{:__('OK')}</button>
-            </div>
-        </div>
-<!--
-        <button type="reset" class="btn btn-default btn-reset">重置</button>
--->
-    </form>
-    <div id="charts" style="width: 100%;height: 500px;"></div>
-</div>
-<script>
-    var point={:json_encode($point)};
-    var x={:json_encode($x)};
-    var value={:json_encode($value)};
-    var city_id="{:input('city_id','')}";
-</script>

+ 0 - 35
application/admin/view/video_point/index.html

@@ -1,35 +0,0 @@
-<div class="panel panel-default panel-intro">
-    {:build_heading()}
-
-    <div class="panel-body">
-        <div id="myTabContent" class="tab-content">
-            <div class="tab-pane fade active in" id="one">
-                <div class="widget-body no-padding">
-                    <div id="toolbar" class="toolbar">
-                        <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
-                       <!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('video_point/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('video_point/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('video_point/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-                        <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('video_point/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
-
-                        <div class="dropdown btn-group {:$auth->check('video_point/multi')?'':'hide'}">
-                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
-                            <ul class="dropdown-menu text-left" role="menu">
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
-                            </ul>
-                        </div>-->
-
-                        
-                    </div>
-                    <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
-                           data-operate-edit="0"
-                           data-operate-del="{:$auth->check('video_point/del')}" 
-                           width="100%">
-                    </table>
-                </div>
-            </div>
-
-        </div>
-    </div>
-</div>

+ 0 - 99
application/admin/view/video_point/map.html

@@ -1,99 +0,0 @@
-<style>
-    *{margin: 0;padding: 0;}
-    body{width: 100%;height: 100%;}
-    #main{width: 100%;height: 100vh;}
-    .back_btn{position: absolute;left: 40px;top: 40px;width: 60px;height: 60px;border-radius:50% ;background: #c1c1c1;color: #fff;line-height: 60px;text-align: center;cursor: pointer;display: none;}
-</style>
-<div class="panel panel-default panel-intro">
-    <form id="search" class="form-horizontal form-commonsearch nice-validator n-default n-bootstrap" novalidate="" method="get" action="">
-        <input type="hidden" id="ilevel" name="level" value="1"/>
-        <fieldset>
-            <div class="row">
-                <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-                    <label for="id" class="control-label col-xs-4">时间</label>
-                    <div class="col-xs-8">
-                        <input type="text" class="form-control datetimerange" name="time" id="id" data-index="0" readonly>
-                    </div>
-                </div>
-                <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-                    <label for="id" class="control-label col-xs-4">性别</label>
-                    <div class="col-xs-8">
-                        {:build_select('sex',[''=>'全部','0'=>'女','1'=>'男'])}
-                    </div>
-                </div>
-                <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-                    <label for="age" class="control-label col-xs-4">年龄</label>
-                    <div class="col-xs-8">
-                        <input type="text" class="form-control" name="age_from" id="age" style="width: 100px;">-
-                        <input type="text" class="form-control" name="age_to" id="age1" style="width: 100px;">
-                    </div>
-                </div>
-              <!--  <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-                    <label for="city_name" class="control-label col-xs-4">城市</label>
-                    <div class="col-xs-8">
-                        <div class="row">
-                            <div class="col-xs-12">
-                                <div class="form-inline" data-toggle="cxselect" data-selects="province,city">
-                                    <select class="province form-control" name="province_id" data-url="ajax/area" ></select>
-                                    <input type="hidden" class="operate" data-name="province_id" value="=" />
-                                    <select class="city form-control" name="city_id" data-url="ajax/area" data-query-name="province"></select>
-                                    <input type="hidden" class="operate" data-name="city_id" value="=" />
-                                </div>
-                            </div>
-                        </div>
-                </div></div>-->
-                </div>
-                <div class="form-group col-xs-12 col-sm-6 col-md-4 col-lg-3">
-                    <div class="col-sm-8 col-xs-offset-4">
-                        <button type="button" class="btn btn-success btn-search">提交</button>
-                        <button type="reset" class="btn btn-default btn-reset">重置</button>
-                    </div>
-                </div>
-            </div>
-        </fieldset>
-    </form>
-    <div id="mainMap"></div>
-    <span class="back_btn">返回</span>
-</div>
-<script>
-    var ID="{:input('ids')}",
-        level=1,
-        province=[
-            {"name": "北京","value":2656 },
-            {"name": "天津","value":2342 },
-            {"name": "上海","value":3523 },
-            {"name": "重庆","value":423 },
-            {"name": "河北","value":2 },
-            {"name": "河南","value":323 },
-            {"name": "云南","value":54 },
-            {"name": "辽宁","value":42 },
-            {"name": "黑龙江","value":6464 },
-            {"name": "湖南","value":4242 },
-            {"name": "安徽","value":42 },
-            {"name": "山东","value":532 },
-            {"name": "新疆","value":455 },
-            {"name": "江苏","value":4635 },
-            {"name": "浙江","value":7534 },
-            {"name": "江西","value":243 },
-            {"name": "湖北","value":6345 },
-            {"name": "广西","value":432 },
-            {"name": "甘肃","value":45234 },
-            {"name": "山西","value":4234 },
-            {"name": "内蒙古","value":42 },
-            {"name": "陕西","value":4324 },
-            {"name": "吉林","value":432 },
-            {"name": "福建","value":4324 },
-            {"name": "贵州","value": 43},
-            {"name": "广东","value":4324 },
-            {"name": "青海","value":434 },
-            {"name": "西藏","value":7567 },
-            {"name": "四川","value":7657 },
-            {"name": "宁夏","value":75 },
-            {"name": "海南","value":3213 },
-            {"name": "台湾","value":5634 },
-            {"name": "香港","value":342 },
-            {"name": "澳门","value":97 }
-        ],
-        currentProvinceName=null,
-        city=[]
-</script>

+ 0 - 26
application/admin/view/video_point/rate.html

@@ -1,26 +0,0 @@
-<div class="panel panel-default panel-intro">
-    <form class="form-horizontal" data-toggle="validator" method="get" role="form">
-        <!--<label class="control-label col-xs-12 col-sm-2">{:__('类型')}:</label>
-        <div class="col-xs-12 col-sm-8" style="width: 150px;">
-            {:build_select('type', ['day'=>__('日'), 'month'=>__('月'),'year'=>'年'], input('type'),['id'=>'type'])}
-        </div>
-        <label class="control-label col-xs-12 col-sm-2" style="width: 50px;padding-left: 0;">{:__('日期')}:</label>
-        <div class="col-xs-12 col-sm-8" style="width: 200px;">
-            <input class="datetimepicker form-control" type="date" name="time" value="{:input('time')}"/>
-        </div>-->
-        <div class="form-group col-xs-12 col-sm-8 col-md-6 col-lg-3">
-            <label for="id" class="control-label col-xs-4">时间</label>
-            <div class="col-xs-8">
-                <input type="text" class="form-control datetimerange form-time" name="time" id="id" data-index="0" readonly value="{$date|default=''}">
-            </div>
-        </div>
-        <button type="button" class="btn btn-success" id="search">{:__('OK')}</button>
-        <button type="reset" class="btn btn-default btn-reset">重置</button>
-    </form>
-    <div id="charts" style="width: 100%;height: 500px;"></div>
-</div>
-<script>
-    var point={:json_encode($point)};
-    var x={:json_encode($x)};
-    var value={:json_encode($value)};
-</script>

+ 0 - 27
application/admin/view/video_point/time.html

@@ -1,27 +0,0 @@
-<div class="panel panel-default panel-intro">
-    <form class="form-horizontal" data-toggle="validator" method="get" role="form">
-        <!--<label class="control-label col-xs-12 col-sm-2">{:__('类型')}:</label>
-        <div class="col-xs-12 col-sm-8" style="width: 150px;">
-            {:build_select('type', ['day'=>__('日'), 'month'=>__('月'),'year'=>'年'], input('type'),['id'=>'type'])}
-        </div>
-        <label class="control-label col-xs-12 col-sm-2" style="width: 50px;padding-left: 0;">{:__('日期')}:</label>
-        <div class="col-xs-12 col-sm-8" style="width: 200px;">
-            <input class="datetimepicker form-control" type="date" name="time" value="{:input('time')}"/>
-        </div>-->
-        <div class="form-group col-xs-12 col-sm-8 col-md-6 col-lg-3">
-            <label for="id" class="control-label col-xs-4">时间</label>
-            <div class="col-xs-8">
-                <input type="text" class="form-control datetimerange form-time" name="time" id="id" data-index="0" readonly value="{$date}">
-            </div>
-        </div>
-        <button type="button" class="btn btn-success" id="search">{:__('OK')}</button>
-        <button type="reset" class="btn btn-default btn-reset">重置</button>
-    </form>
-    <div id="charts" style="width: 100%;height: 500px;"></div>
-</div>
-
-<script>
-    var point={:json_encode($point)};
-    var x={:json_encode($x)};
-    var value={:json_encode($value)};
-</script>

+ 0 - 49
application/admin/view/video_point_user/index.html

@@ -1,49 +0,0 @@
-<div class="panel panel-default panel-intro">
-    {:build_heading()}
-
-    <div class="panel-body">
-        <div id="myTabContent" class="tab-content">
-            <div class="tab-pane fade active in" id="one">
-                <div class="widget-body no-padding">
-                    <div id="toolbar" class="toolbar">
-                        <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
-<!--                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('video_point_user/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('video_point_user/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('video_point_user/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-                        <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('video_point_user/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
-
-                        <div class="dropdown btn-group {:$auth->check('video_point_user/multi')?'':'hide'}">
-                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
-                            <ul class="dropdown-menu text-left" role="menu">
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
-                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
-                            </ul>
-                        </div>-->
-
-
-                    </div>
-                    <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
-                           data-operate-edit="{:$auth->check('video_point_user/edit')}"
-                           data-operate-del="{:$auth->check('video_point_user/del')}"
-                           width="100%">
-                    </table>
-                </div>
-            </div>
-
-        </div>
-    </div>
-</div>
-<script id="sourcetpl" type="text/html">
-    <div class="row">
-        <div class="col-xs-12">
-            <div class="form-inline" data-toggle="cxselect" data-selects="province,city,area">
-                <select class="province form-control" name="user.province_id" data-url="ajax/area" ></select>
-                <input type="hidden" class="operate" data-name="user.province_id" value="=" />
-                <select class="city form-control" name="user.city_id" data-url="ajax/area" data-query-name="province"></select>
-                <input type="hidden" class="operate" data-name="user.city_id" value="=" />
-               <!-- <select class="area form-control" name="user.area_id" data-url="ajax/area" data-query-name="city"></select>
-                <input type="hidden" class="operate" data-name="user.county_id" value="=" />-->
-            </div>
-        </div>
-    </div>
-</script>

+ 0 - 34
application/admin/view/video_user_log/add.html

@@ -1,34 +0,0 @@
-<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
-
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_id" min="0" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Video_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-video_id" min="0" data-rule="required" data-source="video/index" class="form-control selectpage" name="row[video_id]" type="text" value="">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-type" class="form-control" name="row[type]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Created_at')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-created_at" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[created_at]" type="text" value="{:date('Y-m-d H:i:s')}">
-        </div>
-    </div>
-    <div class="form-group layer-footer">
-        <label class="control-label col-xs-12 col-sm-2"></label>
-        <div class="col-xs-12 col-sm-8">
-            <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
-            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
-        </div>
-    </div>
-</form>

+ 0 - 34
application/admin/view/video_user_log/edit.html

@@ -1,34 +0,0 @@
-<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
-
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_id" min="0" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Video_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-video_id" min="0" data-rule="required" data-source="video/index" class="form-control selectpage" name="row[video_id]" type="text" value="{$row.video_id|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-type" class="form-control" name="row[type]" type="text" value="{$row.type|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Created_at')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-created_at" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[created_at]" type="text" value="{:$row.created_at?datetime($row.created_at):''}">
-        </div>
-    </div>
-    <div class="form-group layer-footer">
-        <label class="control-label col-xs-12 col-sm-2"></label>
-        <div class="col-xs-12 col-sm-8">
-            <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
-            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
-        </div>
-    </div>
-</form>

+ 6 - 50
application/common/command/TestCommand.php

@@ -22,6 +22,7 @@ use app\api\controller\UserCouponController;
 use app\api\controller\UserMoneyController;
 use app\api\controller\UserOrder;
 use app\api\controller\Validate;
+use app\common\model\Mobile;
 use app\common\model\UserRule;
 use think\console\Command;
 use think\console\Input;
@@ -36,55 +37,10 @@ class TestCommand extends Command{
 
     protected function execute(Input $input, Output $output)
     {
-        $all=[
-            AdminAuth::class,
-            AdminCoupon::class,
-            AdminOrder::class,
-            AdminUser::class,
-            CommentController::class,
-            Common::class,
-            Ems::class,
-            InfoController::class,
-            Knowledge::class,
-            NotificationController::class,
-            Sender::class,
-            SenderOrderController::class,
-            Sms::class,
-            Token::class,
-            User::class,
-            UserAddressController::class,
-            UserCouponController::class,
-            UserMoneyController::class,
-            UserOrder::class,
-            Validate::class,
-        ];
-        $class=new Builder($all);
-        $anno=$class->parse();
-        $weigh=1;
-        Db::startTrans();
-        foreach ($anno as $name=>$methods){
-            $rule=UserRule::create([
-                'ismenu'=>1,
-                'title'=>$name,
-                'pid'=>2,
-                'status'=>'normal',
-                'weigh'=>$weigh,
-            ]);
-            $output->info("控制器:".$name);
-            foreach ($methods as $method=>$info){
-                $output->info("方法:".$info['title']);
-                UserRule::create([
-                    'title'=>$info['title'],
-                    'remark'=>$info['summary'],
-                    'pid'  =>$rule['id'],
-                    'weigh'=>$weigh,
-                    'name' =>$info['route'],
-                    'ismenu'=>0,
-                    'status'=>'normal',
-                ]);
-            }
-            $weigh++;
-        }
-        Db::commit();
+        Mobile::create([
+            'no'=>'13566662222',
+            'amount_base'=>100,
+            'amount_charge'=>0,
+        ]);
     }
 }

+ 4 - 0
application/common/model/Mobile.php

@@ -51,5 +51,9 @@ class Mobile extends Model
                 $mobile->info()->save([]);
             }
         });
+
+        self::beforeInsert(function (self $mobile){
+            $mobile['sort']=mt_rand(0,99999999);
+        });
     }
 }

+ 70 - 0
public/assets/js/backend/mobile.js

@@ -0,0 +1,70 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
+
+    var Controller = {
+        index: function () {
+            // 初始化表格参数配置
+            Table.api.init({
+                extend: {
+                    index_url: 'mobile/index' + location.search,
+                    add_url: 'mobile/add',
+                    edit_url: 'mobile/edit',
+                    del_url: 'mobile/del',
+                    multi_url: 'mobile/multi',
+                    import_url: 'mobile/import',
+                    table: 'mobile',
+                }
+            });
+
+            var table = $("#table");
+
+            // 初始化表格
+            table.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.index_url,
+                pk: 'id',
+                sortName: 'id',
+                columns: [
+                    [
+                        {checkbox: true},
+                        {field: 'id', title: __('Id')},
+                        {field: 'name', title: __('Name')},
+                        {field: 'no', title: __('No')},
+                        {field: 'type', title: __('Type')},
+                        {field: 'network', title: __('Network')},
+                        {field: 'city', title: __('City')},
+                        {field: 'province', title: __('Province')},
+                        {field: 'amount_exists', title: __('Amount_exists'), operate:'BETWEEN'},
+                        {field: 'amount_original', title: __('Amount_original'), operate:'BETWEEN'},
+                        {field: 'amount_base', title: __('Amount_base'), operate:'BETWEEN'},
+                        {field: 'amount_charge', title: __('Amount_charge'), operate:'BETWEEN'},
+                        {field: 'amount', title: __('Amount'), operate:'BETWEEN'},
+                        {field: 'update_time', title: __('Update_time')},
+                        {field: 'top_time', title: __('Top_time')},
+                        {field: 'rec_time', title: __('Rec_time')},
+                        {field: 'summary', title: __('Summary')},
+                        {field: 'saled', title: __('Saled')},
+                        {field: 'is_activity', title: __('Is_activity')},
+                        {field: 'is_hold', title: __('预占'),formatter: Table.api.formatter.toggle},
+                        {field: 'activity_time_end', title: __('Activity_time_end'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+                        {field: 'sort', title: __('Sort')},
+                        //{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate},
+                    ]
+                ]
+            });
+
+            // 为表格绑定事件
+            Table.api.bindevent(table);
+        },
+        add: function () {
+            Controller.api.bindevent();
+        },
+        edit: function () {
+            Controller.api.bindevent();
+        },
+        api: {
+            bindevent: function () {
+                Form.api.bindevent($("form[role=form]"));
+            }
+        }
+    };
+    return Controller;
+});