wangsaitao il y a 1 an
Parent
commit
369b81fd94
63 fichiers modifiés avec 14446 ajouts et 0 suppressions
  1. 990 0
      application/api/controller/screen/Project.php
  2. 58 0
      application/common/model/Orders.php
  3. 16 0
      application/common/model/User.php
  4. 17 0
      application/h5/controller/Screen.php
  5. 1197 0
      application/h5/view/screen/project.html
  6. 584 0
      public/static/screen/css/company.css
  7. BIN
      public/static/screen/css/digifaw.ttf
  8. 424 0
      public/static/screen/css/style-old.css
  9. 371 0
      public/static/screen/css/style.css
  10. 209 0
      public/static/screen/css/ysorder-style.css
  11. BIN
      public/static/screen/images/bg.png
  12. BIN
      public/static/screen/images/company/bg.png
  13. BIN
      public/static/screen/images/company/cricle.png
  14. BIN
      public/static/screen/images/company/leftbg.png
  15. BIN
      public/static/screen/images/company/middlebg.png
  16. BIN
      public/static/screen/images/company/shuzi.png
  17. BIN
      public/static/screen/images/finish.png
  18. BIN
      public/static/screen/images/first.png
  19. BIN
      public/static/screen/images/left1.png
  20. BIN
      public/static/screen/images/left2.png
  21. BIN
      public/static/screen/images/left3.png
  22. BIN
      public/static/screen/images/logout.png
  23. BIN
      public/static/screen/images/lou.png
  24. BIN
      public/static/screen/images/middle1.png
  25. BIN
      public/static/screen/images/middle2.png
  26. BIN
      public/static/screen/images/middle3.png
  27. BIN
      public/static/screen/images/middle4.png
  28. BIN
      public/static/screen/images/project/bg.png
  29. BIN
      public/static/screen/images/project/header.png
  30. BIN
      public/static/screen/images/project/left1.png
  31. BIN
      public/static/screen/images/project/leftbg1.png
  32. BIN
      public/static/screen/images/project/leftbg2.png
  33. BIN
      public/static/screen/images/project/leftbg3.png
  34. BIN
      public/static/screen/images/project/leftbg4.png
  35. BIN
      public/static/screen/images/project/middle1.png
  36. BIN
      public/static/screen/images/project/middle2.png
  37. BIN
      public/static/screen/images/project/middle22.png
  38. BIN
      public/static/screen/images/project/middlebg2.png
  39. BIN
      public/static/screen/images/project/rightbg1.png
  40. BIN
      public/static/screen/images/project/rightbg2.png
  41. BIN
      public/static/screen/images/project/ybp.png
  42. BIN
      public/static/screen/images/project/zhongshan.png
  43. BIN
      public/static/screen/images/right1.png
  44. BIN
      public/static/screen/images/right2.png
  45. BIN
      public/static/screen/images/second.png
  46. BIN
      public/static/screen/images/system-start.png
  47. BIN
      public/static/screen/images/third.png
  48. BIN
      public/static/screen/images/topbg.png
  49. BIN
      public/static/screen/images/trophy.png
  50. BIN
      public/static/screen/images/unfinish.png
  51. BIN
      public/static/screen/images/ysorder/bg1.png
  52. BIN
      public/static/screen/images/ysorder/bg2.png
  53. BIN
      public/static/screen/images/ysorder/bg3.png
  54. BIN
      public/static/screen/images/ysorder/count.png
  55. BIN
      public/static/screen/images/ysorder/fenxi.png
  56. BIN
      public/static/screen/images/ysorder/r1.png
  57. BIN
      public/static/screen/images/ysorder/r2.png
  58. 46 0
      public/static/screen/js/china.js
  59. 547 0
      public/static/screen/js/mymap.js
  60. 532 0
      public/static/screen/swiper/swiper-bundle.css
  61. 9428 0
      public/static/screen/swiper/swiper-bundle.js
  62. 13 0
      public/static/screen/swiper/swiper-bundle.min.css
  63. 14 0
      public/static/screen/swiper/swiper-bundle.min.js

+ 990 - 0
application/api/controller/screen/Project.php

@@ -0,0 +1,990 @@
+<?php
+namespace app\api\controller\screen;
+
+use app\hander\HelpHander;
+use app\api\controller\screen\Index;
+
+use think\Controller;
+use think\Db;
+
+class Project extends Controller
+{
+    public function __construct()
+    {
+        parent::__construct();
+
+        $this->orgId = input('orgid')?input('orgid'):0;
+    }
+
+    /**
+     * 获取用户数
+     * @param $orgid 组织id
+     * @param $roles 角色id
+     * @return mixed
+     */
+    private function get_user_count($orgid,$roles){
+        $count = $this->db
+            ->join('user_roles','user.USER_ID = user_roles.USER_ID')
+            ->join('user_org','user.USER_ID = user_org.USER_ID')
+            ->where_in('user_roles.ROLES_ID',$roles)
+            ->where('user.DEL_REF',0)
+            ->where('user.ENABLE',1)
+            ->where('user_org.ORG_TYPE',0)
+            ->where('user_org.ORG_ID',$orgid)
+            ->from('user')
+            ->count_all_results();
+        return $count;
+    }
+
+    // 各类人员占比接口
+    public function user(){
+        $this->load->model(array('OrgModel','RolesModel'));
+        $info = $this->OrgModel->show_one(array('ORG_ID'=>$this->orgId,'TYPE'=>'2'));
+        if(!$info||$info->ENABLE != 1||$info->DEL_REF != 0){
+            $this->error('项目不存在');
+        }
+        // 1=客户人员 2=综合人员 3=运送人员 4=维修人员 5=保洁人员 6=保安人员 7=调度人员 8=监管人员
+        $arr = array(
+            array('type' => 5),
+            array('type' => 3),
+            array('type' => 4),
+            array('type' => 6),
+        );
+        $allcount = 0;
+        foreach ($arr as $k=>$v){
+            $roles = $this->RolesModel->get_roles_type($this->orgId,$v['type']);
+            $arr[$k]['name'] = $roles['name'];
+            $arr[$k]['value'] = $this->get_user_count($this->orgId,$roles['roles']);
+            $allcount += $arr[$k]['value'];
+        }
+
+        $data = array(
+            array('value'=>$arr[0]['value'],'name'=>'保洁人员','name2'=>'保洁','bl'=>$allcount>0?round($arr[0]['value']*100/$allcount):0),
+            array('value'=>$arr[1]['value'],'name'=>'运送人员','name2'=>'运送','bl'=>$allcount>0?round($arr[1]['value']*100/$allcount):0),
+            array('value'=>$arr[2]['value'],'name'=>'维修人员','name2'=>'维修','bl'=>$allcount>0?round($arr[2]['value']*100/$allcount):0),
+            array('value'=>$arr[3]['value'],'name'=>'保安人员','name2'=>'保安','bl'=>$allcount>0?round($arr[3]['value']*100/$allcount):0),
+        );
+        $this->success('成功',['count' => $allcount,'list' => $data]);
+    }
+
+    public function todostis(){
+        $count1 = Db::name('orders')
+            ->where('org_id',$this->orgId)
+            ->where('del',0)
+            ->where('work_type_mode',3)
+            ->where('create_yyyymmdd',date('Ymd'))
+            ->where('order_mode','in',[5,6])
+            ->count();
+
+        $count2 = Db::name('orders')
+            ->where('org_id',$this->orgId)
+            ->where('del',0)
+            ->where('work_type_mode',1)
+            ->where('create_yyyymmdd',date('Ymd'))
+            ->where('order_mode','in',[5,6])
+            ->count();
+
+        $count3 = Db::name('daily_record')
+            ->where('org_id',$this->orgId)
+            ->where('create_yyyymmdd',date('Ymd'))
+            ->count();
+
+        $arr = [
+            [
+                'name' => '运送任务',
+                'count' => $count1
+            ],
+            [
+                'name' => '维修任务',
+                'count' => $count2
+            ],
+            [
+                'name' => '日常任务',
+                'count' => $count3
+            ]
+        ];
+        HelpHander::success($arr,'成功');
+    }
+
+    public function ysuser(){
+        $lists = model('User')->getYsUser($this->orgId,1);
+        $nlists = [];
+        if(count($lists) > 4){
+            $arr = array_rand($lists,4);
+            foreach ($arr as $k=>$v){
+                $nlists[] = $lists[$v];
+            }
+        }else{
+            $nlists = $lists;
+        }
+        foreach ($nlists as $k=>$v){
+            $count = Db::name('todo')
+                ->alias('a')
+                ->join('orders b','a.order_id=b.id')
+                ->where('a.create_yyyymmdd',date('Ymd'))
+                ->where('a.to_user_id',$v['id'])
+                ->where('a.todo_mode',3)
+                ->where('a.del',0)
+                ->where('a.org_id',$this->orgId)
+                ->count();
+            $nlists[$k]['count'] = $count;
+//            $addr = Db::name('user_convey_addr')
+//                ->alias('uca')
+//                ->join('convey_addr ca','ca.id = uca.ADDR_ID')
+//                ->where('uca.USER_ID',$v['USER_ID'])
+//                ->order_by('uca.CREATE_TIME DESC')
+//                ->select('ca.TITLE')
+//                ->get('user_convey_addr as uca')
+//                ->row_array();
+            $addr = [];
+            $nlists[$k]['addr_title'] = $addr?$addr['TITLE']:'';
+        }
+        HelpHander::success($nlists,'成功');
+    }
+
+    // 热点区域
+    public function hotaddr(){
+        //SELECT count(a.START) as COUNT,a.START FROM order_convey as a JOIN orders as o ON o.ORDER_ID = a.ORDER_ID GROUP BY a.`START` LIMIT 10
+        $curDay = date('Ymd');
+        $oldDay = date('Ymd',time() - 29*24*60*60);
+        $lists = Db::name('order_convey')
+            ->alias('oc')
+            ->join('orders o','o.id = oc.order_id')
+            ->where('o.org_id',$this->orgId)
+            ->where('o.create_yyyymmdd',$curDay)
+            ->where('o.work_type_mode',3)
+            ->where('o.del',0)
+            ->where('o.order_mode','in',[5,6])
+            ->field('COUNT(oc.start) as count,oc.start')
+            ->group('oc.start')
+            ->order('count','desc')
+            ->limit(10)
+            ->select();
+        $x = [];
+        $y1 = [];
+        $y2 = [];
+        foreach ($lists as $k=>$v){
+            $addr = Db::name('address')
+                ->where('id',$v['start'])
+                ->find();
+            $x[] = $addr?$addr['title']:'';
+            $y1[] = $v['count'];
+            $count = Db::name('order_convey')
+                ->alias('oc')
+                ->join('orders o','o.id = oc.order_id')
+                ->where('o.org_id',$this->orgId)
+                ->where('o.work_type_mode',3)
+                ->where('o.create_yyyymmdd','<=',$curDay)
+                ->where('o.create_yyyymmdd','>=',$oldDay)
+                ->where('o.order_mode','in',[5,6])
+                ->where('oc.start',$v['start'])
+                ->where('o.del',0)
+                ->count();
+            $y2[] = round($count/30,2);
+        }
+        $data = [
+            'x' => $x,
+            'y1' => $y1,
+            'y2' => $y2
+        ];
+       HelpHander::success($data,'成功');
+    }
+
+    public function yscount(){
+        $curDay = date('Ymd');
+
+        $tcount = Db::name('orders')
+            ->where('org_id',$this->orgId)
+            ->where('work_type_mode',3)
+            ->where('create_yyyymmdd',$curDay)
+            ->where('order_mode','in',[5,6])
+            ->where('del',0)
+            ->count();
+
+        $fcount = Db::name('order_convey')
+            ->alias('oc')
+            ->join('orders o','o.id = oc.order_id')
+            ->where('o.org_id',$this->orgId)
+            ->where('o.work_type_mode',3)
+            ->where('o.create_yyyymmdd',$curDay)
+            ->whereRaw("TIMESTAMPDIFF(second,o.finish_time,oc.ywc_time) >=0")
+            ->where('o.order_mode','in',[5,6])
+            ->where('o.del',0)
+            ->count();
+        $bl1 = $tcount>0?round($fcount/$tcount,3)*100:0;
+
+        $wcount = Db::name('orders')
+            ->where('org_id',$this->orgId)
+            ->where('del',0)
+            ->where('work_type_mode',3)
+            ->where('create_yyyymmdd',$curDay)
+            ->where('order_mode','in',[1])
+            ->count();
+
+        $jxcount =  Db::name('orders')
+            ->where('org_id',$this->orgId)
+            ->where('del',0)
+            ->where('work_type_mode',3)
+            ->where('create_yyyymmdd',$curDay)
+            ->where('order_mode','in',[5])
+            ->count();
+
+        $bhcount = Db::name('todo')
+            ->alias('a')
+            ->join('todo b','a.order_id=b.id')
+            ->where('a.org_id',$this->orgId)
+            ->where('b.del',0)
+            ->where('a.work_type_mode',3)
+            ->where('a.create_yyyymmdd',$curDay)
+            ->where('a.todo_mode','in',[4])
+            ->count();
+
+
+        $flist = Db::name('orders')
+            ->field('(TIMESTAMPDIFF(minute,create_time,send_time)) as minute')
+            ->where('org_id',$this->orgId)
+            ->where('work_type_mode',3)
+            ->where('create_yyyymmdd',$curDay)
+            ->where('del',0)
+            ->where('order_mode','in',[4,5,6])
+            ->select();
+        $flist = $flist?$flist:[];
+        $c = count($flist);
+        $minu = 0;
+        foreach ($flist as $k=>$v){
+            if($v['minute']){
+                $minu += $v['minute'];
+            }
+        }
+        $avg = $c > 0?round($minu/$c,1):0;
+
+
+        $data = [
+            'count1' => $bl1."%",
+            'count2' => $avg,
+            'count3' => $wcount,
+            'count4' => $jxcount,
+            'count5' => $tcount,
+            'count6' => $bhcount
+        ];
+
+        HelpHander::success($data,'成功');
+    }
+
+    // 隐患预警数据统计
+    public function yinhuan(){
+        $list = [
+            ['标题', '隐患数量', '转任务量'],
+//            ['报修',  $bxwc, $bxxy],
+//            ['保洁',  $bjwc, $bjxy],
+//            ['运送',  $yswc, $ysxy],
+//            ['隐患预警', $yhwc, $yhxy],
+        ];
+
+        $dlist = [
+            date('Y-m-d',strtotime('-6 days')),
+            date('Y-m-d',strtotime('-5 days')),
+            date('Y-m-d',strtotime('-4 days')),
+            date('Y-m-d',strtotime('-3 days')),
+            date('Y-m-d',strtotime('-2 days')),
+            date('Y-m-d',strtotime('-1 days')),
+            date('Y-m-d'),
+        ];
+        foreach ($dlist as $v){
+            $tt = date('Ymd',strtotime($v));
+            $count = Db::name('orders')
+                ->where('org_id',$this->orgId)
+                ->where('create_yyyymmdd',$tt)
+                ->where('del',0)
+                ->where('work_type_mode',4)
+                ->count();
+            $count1 = Db::name('todo')
+                ->alias('a')
+                ->join('orders b','a.order_id=b.id')
+                ->where('a.org_id',$this->orgId)
+                ->where('a.create_yyyymmdd',$tt)
+                ->where('a.del',0)
+                ->where('a.work_type_mode',4)
+                ->where('b.del',0)
+                ->group('a.order_id')
+                ->count();
+            $list[] = [date('m-d',strtotime($v)),$count,$count1];
+        }
+
+        $data = [
+            'list' => $list
+        ];
+        HelpHander::success($data,'成功');
+    }
+
+    // 运送数据统计
+    public function yusong(){
+        $list = [
+            ['标题', '工单总量', '完成工单量'],
+        ];
+
+        $dlist = [
+            date('Y-m-d',strtotime('-6 days')),
+            date('Y-m-d',strtotime('-5 days')),
+            date('Y-m-d',strtotime('-4 days')),
+            date('Y-m-d',strtotime('-3 days')),
+            date('Y-m-d',strtotime('-2 days')),
+            date('Y-m-d',strtotime('-1 days')),
+            date('Y-m-d'),
+        ];
+        foreach ($dlist as $v){
+            $tt = date('Ymd',strtotime($v));
+            $count = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('CREATE_YYYYMMDD',$tt)
+                ->where('DEL_REF',0)
+                ->where('WORK_TYPE_MODE',3)
+                ->from('orders')
+                ->count_all_results();
+
+            $count1 = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('CREATE_YYYYMMDD',$tt)
+                ->where('DEL_REF',0)
+                ->where('WORK_TYPE_MODE',3)
+                ->where_in('CURR_ORDER_MODE',[9,11])
+                ->from('orders')
+                ->count_all_results();
+            $list[] = [date('m-d',strtotime($v)),$count,$count1];
+        }
+
+        $data = [
+            'list' => $list
+        ];
+        $this->success('成功',$data);
+    }
+
+    // 今日运送完成工单总量
+    public function yscounttoday(){
+        $curDay = date('Ymd');
+
+        $tcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('WORK_TYPE_MODE',3)
+            ->where('CREATE_YYYYMMDD',$curDay)
+            ->where_in('CURR_ORDER_MODE',[9,11])
+            ->from('orders')
+            ->count_all_results();
+
+        $data = [
+            'count' => $tcount
+        ];
+        $this->success('成功',$data);
+    }
+
+    // 医废
+    public function waste(){
+
+        $dlist = [
+            date('Y-m-d',strtotime('-6 days')),
+            date('Y-m-d',strtotime('-5 days')),
+            date('Y-m-d',strtotime('-4 days')),
+            date('Y-m-d',strtotime('-3 days')),
+            date('Y-m-d',strtotime('-2 days')),
+            date('Y-m-d',strtotime('-1 days')),
+            date('Y-m-d'),
+        ];
+        $xdata = [];
+        $ydata = [];
+        foreach ($dlist as $v){
+            $tt = date('Ymd',strtotime($v));
+//            $count = $this->db
+////                ->where('ORG_ID',$this->orgId)
+////                ->where('CREATE_YYYYMMDD',$tt)
+////                ->where('DEL_REF',0)
+////                ->from('waste_record')
+////                ->count_all_results();
+///
+            $ret = Db::name('waste_record')
+                ->where('org_id',$this->orgId)
+                ->where('create_yyyymmdd',$tt)
+                ->where('del',0)
+                ->select();
+            $total = 0;
+            foreach ($ret as $kk=>$vv){
+                $total += $vv['weight'];
+            }
+            $ydata[] = $total/1000;
+            $xdata[] = date('m-d',strtotime($v));
+        }
+
+        $data = [
+            'xdata' => $xdata,
+            'ydata' => $ydata
+        ];
+        HelpHander::success($data,'成功');
+    }
+
+    public function ystask(){
+        $size = input('size')?input('size'):5;
+        $data = model('Orders')->get_cur_day_lists($this->orgId,$size);
+        foreach ($data as $k=>$v){
+            $data[$k]['xq_time'] = date('H:i',strtotime($v['xq_time']));
+            $data[$k]['send_time'] = $v['send_time']?date('H:i',strtotime($v['send_time'])):'';
+            $data[$k]['confirm_time'] = $v['confirm_time']?date('H:i',strtotime($v['confirm_time'])):'';
+        }
+        HelpHander::success($data,'成功');
+    }
+
+    public function ystaskcount(){
+        $this->load->model('OrdersModel');
+        $data = $this->OrdersModel->get_cur_day_count($this->orgId);
+        $this->success('成功',['count' => $data]);
+    }
+
+    public function daily(){
+        $lists = Db::name('daily_record')
+            ->alias('dr')
+            ->join('daily d','d.id = dr.daily_id')
+            ->where('dr.org_id',$this->orgId)
+            ->where('dr.create_yyyymmdd',date('Ymd'))
+            ->limit(9)
+            ->field('d.title,d.content,dr.user_id,dr.create_time')
+            ->order('dr.id','desc')
+            ->select();
+        foreach ($lists as $k=>$v){
+            $user = Db::name('user')
+                ->where('id',$v['user_id'])
+                ->find();
+            $lists[$k]['real_name'] = $user?$user['real_name']:'';
+            $lists[$k]['create_time'] = date('m-d H:i',strtotime($v['create_time']));
+        }
+       HelpHander::success($lists,'成功');
+    }
+
+    public function patrolList(){
+        $lists = Db::name('patrol_record')
+            ->alias('pr')
+            ->join('address pa','pa.id = pr.patrol_addr_id')
+            ->join('patrol_task pt','pt.id = pr.patrol_task_id')
+            ->join('user u','u.id = pr.user_id')
+            ->where('pr.org_id',$this->orgId)
+            ->where('pr.create_yyyymmdd',date('Ymd'))
+            ->limit(4)
+            ->field('pa.title,pt.title as task_title,u.real_name,pr.create_time')
+            ->order('pr.id','DESC')
+            ->select();
+        foreach ($lists as $k=>$v){
+            $lists[$k]['create_time'] = date('m-d H:i',strtotime($v['create_time']));
+        }
+        HelpHander::success($lists,'成功');
+    }
+
+    public function patrolImg(){
+        $lists = Db::name('patrol_record')
+            ->alias('pr')
+            ->join('patrol_task pt','pt.id = pr.patrol_task_id')
+            ->where('pr.org_id',$this->orgId)
+            ->where('pr.images','<>','null')
+            ->where('pr.create_yyyymmdd',date('Ymd'))
+            ->limit(4)
+            ->field('pt.title as task_title,pr.images')
+            ->order('pr.id','DESC')
+            ->select();
+        foreach ($lists as $k=>$v){
+            $imgs = explode(',',$v['images']);
+            $lists[$k]['images'] = $imgs[0];
+        }
+        HelpHander::success($lists?$lists:[],'成功');
+
+    }
+
+    // 评论,满意度
+    public function comment(){
+        $scores = [
+            ['score'=>1,'name'=>'一星','value'=>0],
+            ['score'=>2,'name'=>'二星','value'=>0],
+            ['score'=>3,'name'=>'三星','value'=>0],
+            ['score'=>4,'name'=>'四星','value'=>0],
+            ['score'=>5,'name'=>'五星','value'=>0],
+        ];
+
+        foreach ($scores as $k=>$v){
+            $count = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('SCORE',$v['score'])
+                ->from('comment')
+                ->count_all_results();
+            $scores[$k]['value'] = $count?$count:0;
+            unset($scores[$k]['score']);
+        }
+
+        $user = $this->db
+            ->select('sum(SCORE) as SCORE,TO_USER_ID')
+            ->where('ORG_ID',$this->orgId)
+            ->group_by('TO_USER_ID')
+            ->distinct()
+            ->get('comment_reply')
+            ->result_array();
+        foreach ($user as $k=>$v){
+            $count = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('TO_USER_ID',$v['TO_USER_ID'])
+                ->from('comment_reply')
+                ->count_all_results();
+            $score = round($v['SCORE']/$count,1);
+            $user[$k]['SCORE'] = $score;
+
+            $info = $this->db
+                ->join('user_org uo','uo.USER_ID = u.USER_ID')
+                ->join('org o','uo.ORG_ID = o.ORG_ID')
+                ->where('uo.ORG_TYPE',1)
+                ->where('u.USER_ID',$v['TO_USER_ID'])
+                ->select('u.REAL_NAME,o.NAME as DEP_NAME')
+                ->get('user u')
+                ->row_array();
+            $user[$k]['REAL_NAME'] = $info['REAL_NAME'];
+            $user[$k]['DEP_NAME'] = $info['DEP_NAME'];
+        }
+
+        // 获取排名前5的人
+        $user = list_sort_by($user,'SCORE', 'desc');
+        $lists = [];
+        foreach ($user as $k=>$v){
+            if($k >= 5){
+                continue;
+            }
+            $lists[] = $v;
+        }
+
+        $this->success('成功',['count'=>$scores,'list' => $lists]);
+    }
+
+    // 工单统计
+    public function todo(){
+        $start = date('Y-m-d').' 00:00:00';
+        $end = date('Y-m-d').' 23:59:59';
+        $fininsh = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('DONE_TIME >=',$start)
+            ->where('DONE_TIME <=',$end)
+            ->from('todo')
+            ->count_all_results();
+
+        $unfininsh = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where_in('TODO_MODE',[1,2])
+            ->where('DONE_TIME >=',$start)
+            ->where('DONE_TIME <=',$end)
+            ->from('todo')
+            ->count_all_results();
+
+        $undeal = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where_in('CURR_ORDER_MODE',1)
+            ->where('CREATTE_TIME >=',$start)
+            ->where('CREATTE_TIME <=',$end)
+            ->from('orders')
+            ->count_all_results();
+
+        $total = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where_in('TODO_MODE',[1,2,3,4,5])
+            ->from('todo')
+            ->count_all_results();
+
+        $today = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where_in('TODO_MODE',[1,2,3,4,5])
+            ->where('CREATE_TIME >=',$start)
+            ->where('CREATE_TIME <=',$end)
+            ->from('todo')
+            ->count_all_results();
+
+        $commentcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->from('comment')
+            ->count_all_results();
+        $comment = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->select_sum('SCORE')
+            ->get('comment')
+            ->row_array();
+
+        $data = [
+            'total' => $total,
+            'today' => $today,
+            'finish' => $fininsh,
+            'unfinish' => $unfininsh,
+            'undeal' => $undeal,
+            'comment' => $commentcount&&$comment?round($comment['SCORE']/$commentcount,1):0
+        ];
+        $this->success('成功',$data);
+
+    }
+
+    // 获取今日最新5条中的随机一条
+    public function patrol(){
+        $lists = $this->db
+            ->select('u.REAL_NAME,pa.TITLE,pr.IMAGES,pt.TITLE as CONTENT,pr.CREATE_TIME')
+            ->join('user u','u.USER_ID = pr.USER_ID')
+            ->join('patrol_addr pa','pa.PATROL_ADDR_ID = pr.PATROL_ADDR_ID')
+            ->join('patrol_task pt','pt.PATROL_TASK_ID = pr.PATROL_TASK_ID')
+            ->where('pr.ORG_ID',$this->orgId)
+            ->where('pr.CREATE_YYYYMMDD',date('Ymd'))
+            ->limit(5)
+            ->order_by('pr.PATROL_RECORD_ID DESC')
+            ->get('patrol_record pr')
+            ->result_array();
+        $info = null;
+        if($lists){
+            $info = $lists[array_rand($lists,1)];
+        }
+        if($info){
+            $imgs = $info['IMAGES']?explode(',',$info['IMAGES']):[];
+            $info['IMAGES'] = $imgs?$imgs[0]:'';
+
+            $info['CREATE_TIME'] = date('Y-m-d',strtotime($info['CREATE_TIME']));
+
+            $this->success('成功',$info);
+        }else{
+            $this->error('失败');
+        }
+    }
+
+    // 工单指数数据统计
+    public function todotime(){
+        $bxcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',1)
+            ->from('todo')
+            ->count_all_results();
+        $bjcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',2)
+            ->from('todo')
+            ->count_all_results();
+        $yscount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',3)
+            ->from('todo')
+            ->count_all_results();
+        $yhcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',4)
+            ->from('todo')
+            ->count_all_results();
+
+        $bxinfo = $this->db
+            ->select_sum('XY_TIME')
+            ->select_sum('WC_TIME')
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',1)
+            ->get('todo')
+            ->row_array();
+        $bxinfo = $bxinfo?$bxinfo:['XY_TIME'=>0,'WC_TIME'=>0];
+        $bjinfo = $this->db
+            ->select_sum('XY_TIME')
+            ->select_sum('WC_TIME')
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',2)
+            ->get('todo')
+            ->row_array();
+        $bjinfo = $bjinfo?$bjinfo:['XY_TIME'=>0,'WC_TIME'=>0];
+        $ysinfo = $this->db
+            ->select_sum('XY_TIME')
+            ->select_sum('WC_TIME')
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',3)
+            ->get('todo')
+            ->row_array();
+        $ysinfo = $ysinfo?$ysinfo:['XY_TIME'=>0,'WC_TIME'=>0];
+        $yhinfo = $this->db
+            ->select_sum('XY_TIME')
+            ->select_sum('WC_TIME')
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('TODO_MODE',3)
+            ->where('WORK_TYPE_MODE',4)
+            ->get('todo')
+            ->row_array();
+        $yhinfo = $yhinfo?$yhinfo:['XY_TIME'=>0,'WC_TIME'=>0];
+
+        $bxwc = $bxcount?round($bxinfo['WC_TIME']/$bxcount/60,1):0;
+        $bxxy = $bxcount?round($bxinfo['XY_TIME']/$bxcount/60,1):0;
+        $bjwc = $bjcount?round($bjinfo['WC_TIME']/$bjcount/60,1):0;
+        $bjxy = $bjcount?round($bjinfo['XY_TIME']/$bjcount/60,1):0;
+        $yswc = $yscount?round($ysinfo['WC_TIME']/$yscount/60,1):0;
+        $ysxy = $yscount?round($ysinfo['XY_TIME']/$yscount/60,1):0;
+        $yhwc = $yhcount?round($yhinfo['WC_TIME']/$yhcount/60,1):0;
+        $yhxy = $yhcount?round($yhinfo['XY_TIME']/$yhcount/60,1):0;
+
+        $list = [
+            ['标题', '平均完成时', '响应时长'],
+            ['报修',  $bxwc, $bxxy],
+            ['保洁',  $bjwc, $bjxy],
+            ['运送',  $yswc, $ysxy],
+            ['隐患预警', $yhwc, $yhxy],
+        ];
+
+        $data = [
+            'bx' => $bxcount,
+            'bj' => $bjcount,
+            'ys' => $yscount,
+            'yh' => $yhcount,
+            'list' => $list
+        ];
+        $this->success('成功',$data);
+    }
+
+    // 设备维检
+    public function device(){
+        $dcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where('DEL_REF',0)
+            ->where('ENABLE',1)
+            ->from('device')
+            ->count_all_results();
+        $rcount = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->from('device_record')
+            ->count_all_results();
+
+        $cur = date('Y-m');
+        $curTime = strtotime($cur.'-01');
+        $month = [];
+        for ($i=5;$i>0;$i--){
+            $date = strtotime("-".$i." month",$curTime);
+            $month[] = date('Y-m',$date);
+        }
+        $month[] = $cur;
+        $list = [];
+        foreach ($month as $k=>$v){
+            $list[] = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('CREATE_YYYYMM',str_ireplace('-','',$v))
+                ->from('device_record')
+                ->count_all_results();
+        }
+
+        $data = [
+            'dcount' => $dcount,
+            'rcount' => $rcount,
+            'list' => $list,
+            'month' => $month
+        ];
+        $this->success('成功',$data);
+    }
+
+    // 24小时内记录
+    public function patrolRecord(){
+        $day = date('Ymd');
+        $time = strtotime(date('Y-m-d'));
+        $hours = [];
+        $plist1 = $plist2 = $plist3 = $plist4 = [];
+        for ($i=0;$i<24;$i++){
+            $hours[] = $i;
+            $stime = date('Y-m-d H:i:s',$time + $i*60*60);
+            $etime = date('Y-m-d H:i:s',$time + ($i+1)*60*60);
+            $plist1[] = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('PATROL_MODE',1)
+                ->where('CREATE_TIME >=',$stime)
+                ->where('CREATE_TIME <',$etime)
+                ->where('CREATE_YYYYMMDD',$day)
+                ->from('patrol_record')
+                ->count_all_results();
+            $plist2[] = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('PATROL_MODE',2)
+                ->where('CREATE_TIME >=',$stime)
+                ->where('CREATE_TIME <',$etime)
+                ->where('CREATE_YYYYMMDD',$day)
+                ->from('patrol_record')
+                ->count_all_results();
+            $plist3[] = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('PATROL_MODE',3)
+                ->where('CREATE_TIME >=',$stime)
+                ->where('CREATE_TIME <',$etime)
+                ->where('CREATE_YYYYMMDD',$day)
+                ->from('patrol_record')
+                ->count_all_results();
+            $plist4[] = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('PATROL_MODE',4)
+                ->where('CREATE_TIME >=',$stime)
+                ->where('CREATE_TIME <',$etime)
+                ->where('CREATE_YYYYMMDD',$day)
+                ->from('patrol_record')
+                ->count_all_results();
+        }
+
+        $data = [
+            'hour' => $hours,
+            'plist1' => $plist1,
+            'plist2' => $plist2,
+            'plist3' => $plist3,
+            'plist4' => $plist4
+        ];
+        $this->success('成功',$data);
+    }
+
+    // 报修工单
+    public function repair(){
+        $dlist = [
+            date('Y-m-d',strtotime('-6 days')),
+            date('Y-m-d',strtotime('-5 days')),
+            date('Y-m-d',strtotime('-4 days')),
+            date('Y-m-d',strtotime('-3 days')),
+            date('Y-m-d',strtotime('-2 days')),
+            date('Y-m-d',strtotime('-1 days')),
+            date('Y-m-d'),
+        ];
+
+        $names = [];
+        $counts = [];
+        foreach ($dlist as $v){
+            $names[] = date('m-d',strtotime($v));
+            $tt = date('Ymd',strtotime($v));
+            $count = Db::name('todo')
+                ->alias('a')
+                ->join('orders b','a.order_id=b.id')
+                ->where('a.del',0)
+                ->where('a.org_id',$this->orgId)
+                ->where('a.todo_mode',3)
+                ->where('a.work_type_mode',1)
+                ->where('a.create_yyyymmdd',$tt)
+                ->group('a.order_id')
+                ->count();
+            $counts[] = $count;
+        }
+
+        HelpHander::success(['names'=>$names,'counts' => $counts],'成功');
+    }
+
+
+    public function ystypeuser(){
+        $this->load->model('UserModel');
+        $lists = $this->UserModel->getYsUser($this->orgId,1);
+        $lists = $lists?$lists:[];
+
+        $curday = date('Ymd');
+        $users = $this->db
+            ->where('ORG_ID',$this->orgId)
+            ->where_in('TODO_MODE',[1,2])
+            ->where('DEL_REF',0)
+            ->where('CREATE_YYYYMMDD',$curday)
+            ->select('TO_USER_ID')
+            ->group_by('TO_USER_ID')
+            ->get('todo')
+            ->result_array();
+        $users = $users?$users:[];
+        $userIds = [];
+        foreach ($users as $k=>$v){
+            $userIds[] = $v['TO_USER_ID'];
+        }
+
+        $data = [
+            'list1' => [],
+            'list2' => []
+        ];
+
+        $nlists = [];
+        foreach ($lists as $k=>$v){
+            if(!in_array($v['USER_ID'],$userIds)){
+                $nlists[] = $v;
+            }
+        }
+        $slist = [];
+        if(count($nlists) > 10){
+            $keys = array_rand($nlists,10);
+            foreach ($nlists as $k=>$v){
+                if(in_array($k,$keys)){
+                    $slist[] = $v;
+                }
+            }
+        }else{
+            $slist = $nlists;
+        }
+        foreach ($slist as $k=>$v){
+            $count = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('TO_USER_ID',$v['USER_ID'])
+                ->where_in('TODO_MODE',[1,2,3])
+                ->where('DEL_REF',0)
+                ->where('CREATE_YYYYMMDD',$curday)
+                ->from('todo')
+                ->count_all_results();
+            $slist[$k]['COUNT'] = $count;
+
+            $addr = $this->db
+                ->join('convey_addr ca','ca.CONVEY_ADDR_ID = cpr.ADDR_ID')
+                ->select('ca.TITLE,cpr.CREATE_TIME')
+                ->where('USER_ID',$v['USER_ID'])
+                ->order_by('cpr.ID desc')
+                ->get('convey_plan_record cpr')
+                ->row_array();
+            $slist[$k]['TITLE'] = $addr?$addr['TITLE']:'';;
+        }
+
+        $nlists2 = [];
+        foreach ($lists as $k=>$v){
+            if(in_array($v['USER_ID'],$userIds)){
+                $nlists2[] = $v;
+            }
+        }
+        $slist2 = [];
+        if(count($nlists2) > 9){
+            $keys2 = array_rand($nlists2,9);
+            foreach ($nlists2 as $k=>$v){
+                if(in_array($k,$keys2)){
+                    $slist2[] = $v;
+                }
+            }
+        }else{
+            $slist2 = $nlists2;
+        }
+        foreach ($slist2 as $k=>$v){
+            $count = $this->db
+                ->where('ORG_ID',$this->orgId)
+                ->where('TO_USER_ID',$v['USER_ID'])
+                ->where_in('TODO_MODE',[1,2,3])
+                ->where('DEL_REF',0)
+                ->where('CREATE_YYYYMMDD',$curday)
+                ->from('todo')
+                ->count_all_results();
+            $slist2[$k]['COUNT'] = $count;
+
+            $addr = $this->db
+                ->join('convey_addr ca','ca.CONVEY_ADDR_ID = cpr.ADDR_ID')
+                ->select('ca.TITLE,cpr.CREATE_TIME')
+                ->where('USER_ID',$v['USER_ID'])
+                ->order_by('cpr.ID desc')
+                ->get('convey_plan_record cpr')
+                ->row_array();
+            $slist2[$k]['TITLE'] = $addr?$addr['TITLE']:'';
+        }
+
+        $data['list1'] = $slist; // 待命人员
+        $data['list2'] = $slist2; // 行动人员
+        $this->success('成功',$data);
+
+    }
+
+}

+ 58 - 0
application/common/model/Orders.php

@@ -3064,6 +3064,64 @@ class Orders extends Base {
 
 
     }
+
+
+
+    public function get_cur_day_lists($org,$limit=5)
+    {
+        $ret = Db::name('orders')
+            ->alias('o')
+            ->join('order_convey oc','oc.order_id = o.id')
+            ->field('o.*,oc.type,oc.start,oc.end,oc.xq_time,oc.ywc_time,oc.device_id,oc.name,oc.phone,oc.priority')
+            ->where('o.org_id',$org)
+            ->where('o.del',0)
+            ->where('o.order_mode','in',[1,4])
+            ->where('o.work_type_mode',3)
+            ->where('o.create_yyyymmdd',date('Ymd'))
+            ->order('oc.xq_time','ASC')
+            ->limit($limit)->select();
+        foreach ($ret as $k=>$v){
+            $ret[$k]['start_name'] = $this->getTableField('address',array('id'=>$v['start']),'title');
+            $ret[$k]['end_name'] = $this->getTableField('address',array('id'=>$v['end']),'title');
+            $ret[$k]['type_name'] = $this->getTableField('convey_cate',array('id'=>$v['type']),'title');
+            $ret[$k]['real_name'] = $this->getTableField('user',array('id'=>$v['user_id']),'real_name');
+
+            $todo =Db::name('todo')
+                ->alias('t')
+                ->where('t.order_id',$v['id'])
+                ->join('user u','u.id = t.to_user_id')
+                ->where('t.todo_mode','in',[1,2,3])
+                ->where('t.del',0)
+                ->field('u.real_name,t.create_time,t.confirm_time')
+                ->order('t.id','asc')
+                ->select();
+
+            $users = [];
+            $confirmTime = '';
+            foreach ($todo as $kk=>$vv){
+                $users[] = $vv['real_name'];
+                if(!$confirmTime && $vv['confirm_time']){
+                    $confirmTime = $vv['confirm_time'];
+                }else if($confirmTime && $vv['confirm_time'] && $vv['confirm_time'] < $confirmTime){
+                    $confirmTime = $vv['confirm_time'];
+                }
+            }
+
+            $ret[$k]['real_names'] = implode(',',$users);
+            $ret[$k]['send_time'] = $todo?$todo[0]['create_time']:'';
+            $ret[$k]['confirm_time'] = $confirmTime;
+            $ret[$k]['device_name'] = '';
+            if($v['device_id'] > 0){
+                $ret[$k]['device_name'] = $this->getTableField('convey_device',array('id'=>$v['device_id']),'title');
+            }
+
+            $last = strtotime($v['ywc_time']) - time();
+            $ret[$k]['last_time'] = $last > 0?round($last/60):0;
+
+        }
+
+        return $ret?$ret:[];
+    }
 }
 
 

+ 16 - 0
application/common/model/User.php

@@ -923,4 +923,20 @@ class User extends Base
         }
         return $arr;
     }
+
+    public function getYsUser($orgId,$work=0){
+        $list = (new WorkTypeMode())->getRolesUser(3,$orgId,1);
+        $arr = [];
+        foreach ($list as $k=>$v){
+            if(!empty($v['user'])){
+                foreach ($v['user'] as $k1=>$v1){
+                    $arr[] = [
+                        'id'=>$v1['id'],
+                        'real_name'=>$v1['real_name'],
+                    ];
+                }
+            }
+        }
+        return $arr;
+    }
 }

+ 17 - 0
application/h5/controller/Screen.php

@@ -21,4 +21,21 @@ class Screen extends Controller
 
         return $this->fetch();
     }
+
+
+    public function project(){
+        $params = input();
+        if(empty($params['org_id'])){
+            $this->error('参数错误');
+        }
+        $orgInfo = Db::name('org')
+            ->where('id',$params['org_id'])
+            ->find();
+        $day = floor((time() - strtotime($orgInfo['create_time']))/86400);
+        $orgInfo['day'] = $day;
+        $orgInfo['img'] =  model('Config')->getConfig('org_screen_img',$params['org_id']);
+        $this->assign('info',$orgInfo);
+        $this->assign('orgid',$params['org_id']);
+        return $this->fetch();
+    }
 }

Fichier diff supprimé car celui-ci est trop grand
+ 1197 - 0
application/h5/view/screen/project.html


+ 584 - 0
public/static/screen/css/company.css

@@ -0,0 +1,584 @@
+@font-face
+{
+    font-family: digifaw;
+    src: url(./digifaw.ttf);
+}
+body{
+    width: 1920px;
+    height: 1080px;
+    background-image: url("../images/company/bg.png");
+    margin: 0 auto;
+}
+.line1 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: box;
+    display: -webkit-box;
+    line-clamp: 1;
+    box-orient: vertical;
+    -webkit-line-clamp: 1;
+    -webkit-box-orient: vertical;
+    word-break: break-all;
+}
+.nav-header{
+    width: 1880px;
+    height: 102px;
+    margin: 0 auto;
+    margin-top: 10px;
+    background-image: url("../images/topbg.png");
+    position: relative;
+}
+.nav-system-start{
+    position: absolute;
+    z-index: 10;
+    width: 302px;
+    height: 45px;
+    background-image: url("../images/system-start.png");
+    top: 38px;
+    left: 158px;
+    line-height: 45px;
+    text-align: center;
+    color: #ffffff;
+    font-size: 18px;
+    cursor: pointer;
+    font-weight: bold;
+}
+.nav-logout{
+    position: absolute;
+    z-index: 10;
+    width: 170px;
+    height: 46px;
+    background-image: url("../images/logout.png");
+    top: 37px;
+    right: 152px;
+    line-height: 46px;
+    text-align: center;
+    color: #ffffff;
+    font-size: 18px;
+    cursor: pointer;
+    font-weight: bold;
+}
+.nav-title,.nav-desc{
+    text-align: center;
+    color: #0C9BFF;
+    font-weight: bold;
+
+}
+.nav-title{
+    font-size: 30px;
+    padding-top: 19px;
+    letter-spacing: 10px
+}
+.nav-desc{
+    font-size: 16px;
+}
+.main{
+    margin: 0 auto;
+    margin-top: 10px;
+    width: 1880px;
+    height: 934px;
+    overflow: hidden;
+    position: relative;
+}
+.main-left1{
+    position: absolute;
+    z-index: 10;
+    width: 515px;
+    height: 278px;
+    top: 0;
+    left: 0;
+    background: rgba(18, 21, 103, 0.4);
+}
+.border-style{
+    border-top: 1px solid rgba(12, 155, 255, 0.4);
+}
+.border-style:before{
+    content: '';
+    position: absolute;
+    z-index: 10;
+    top: 0;
+    left: 0;
+    width: 30px;
+    height:2px;
+    background-color: #5FAFF9;
+}
+.border-style:after{
+    content: '';
+    position: absolute;
+    z-index: 10;
+    top: 0;
+    right: 0;
+    width: 30px;
+    height:2px;
+    background-color: #5FAFF9;
+}
+.main-left1 .main-title{
+    width: 100%;
+    height: 63px;
+    line-height: 58px;
+    background: url("../images/company/leftbg.png") no-repeat;
+    font-size: 17px;
+    color: #ffffff;
+    padding-left: 30px;
+}
+.main-left1 .main-body{
+    /*border: 1px solid #fff;*/
+    width: 100%;
+    height: 208px;
+}
+.box-user-chart{
+    width: 100%;
+    height: 208px;
+}
+.main-btn-group{
+    width: 60px;
+    height: 22px;
+    line-height: 22px;
+    text-align: center;
+    border: 1px solid #0C9BFF;
+    border-radius: 4px;
+    float: right;
+    vertical-align: middle;
+    font-size: 12px;
+    color: #0C9BFF;
+    margin-left: 5px;
+    margin-top: 15px;
+}
+.main-btn-group.cur{
+    background: #293991;
+    font-size: 12px;
+    color: #88B1D0;
+}
+
+.main-left2{
+    position: absolute;
+    z-index: 10;
+    width: 515px;
+    height: 278px;
+    top: 303px;
+    left: 0;
+    background: rgba(18, 21, 103, 0.4);
+}
+.main-left2 .main-title{
+    width: 100%;
+    height: 63px;
+    line-height: 58px;
+    background: url("../images/company/leftbg.png") no-repeat;
+    font-size: 17px;
+    color: #ffffff;
+    padding-left: 30px;
+}
+.main-left2 .main-body{
+    /*border: 1px solid #fff;*/
+    width: 100%;
+    height: 208px;
+}
+.box-order2-chart{
+    width: 100%;
+    height: 208px;
+}
+
+.main-left3{
+    position: absolute;
+    z-index: 10;
+    width: 515px;
+    height: 330px;
+    top: 609px;
+    left: 0;
+    background: rgba(18, 21, 103, 0.4);
+}
+.main-left3 .main-title{
+    width: 100%;
+    height: 63px;
+    line-height: 58px;
+    background: url("../images/company/leftbg.png") no-repeat;
+    font-size: 17px;
+    color: #ffffff;
+    padding-left: 30px;
+}
+.main-left3 .main-body{
+    /*border: 1px solid #fff;*/
+    width: 100%;
+    height: 260px;
+    position: relative;
+}
+.main-left3 .province1,.main-left3 .province2,.main-left3 .province3{
+    width: 50px;
+    height: 40px;
+    line-height: 40px;
+    position: absolute;
+    z-index: 10;
+    color: #ffffff;
+    font-size: 19px;
+    text-align: center;
+}
+.main-left3 .province1{
+    top: 135px;
+    left: 104px;
+}
+.main-left3 .province2{
+    top: 135px;
+    left: 233px;
+}
+.main-left3 .province3{
+    top: 135px;
+    left: 362px;
+}
+
+.box-patrol2-chart{
+    width: 100%;
+    height: 260px;
+}
+
+.main-middle1{
+    position: absolute;
+    z-index: 10;
+    width: 386px;
+    height: 320px;
+    top: 609px;
+    left: 543px;
+    background: rgba(18, 21, 103, 0.4);
+}
+.main-middle1 .main-title{
+    width: 100%;
+    height: 63px;
+    line-height: 58px;
+    background: url("../images/company/leftbg.png") no-repeat;
+    font-size: 17px;
+    color: #ffffff;
+    padding-left: 30px;
+}
+.main-middle1 .main-body{
+    /*border: 1px solid #fff;*/
+    width: 100%;
+    height: 260px;
+}
+
+.main-middle2{
+    position: absolute;
+    z-index: 10;
+    width: 386px;
+    height: 320px;
+    top: 609px;
+    left: 954px;
+    background: rgba(18, 21, 103, 0.4);
+}
+.main-middle2 .main-title{
+    width: 100%;
+    height: 63px;
+    line-height: 58px;
+    background: url("../images/company/leftbg.png") no-repeat;
+    font-size: 17px;
+    color: #ffffff;
+    padding-left: 30px;
+}
+.main-middle2 .main-body{
+    /*border: 1px solid #fff;*/
+    width: 100%;
+    height: 260px;
+}
+.main-middle3{
+    /*border: 1px solid #ffffff;*/
+    position: absolute;
+    z-index: 9;
+    width: 796px;
+    height: 508px;
+    top: 74px;
+    left: 543px;
+}
+.main-middle3 .map{
+    width: 100%;
+    height: 100%;
+}
+
+.main-middle4{
+    /*border: 1px solid #ffffff;*/
+    position: absolute;
+    z-index: 11;
+    width: 796px;
+    height: 74px;
+    top: 0;
+    left: 543px;
+}
+.program-box{
+    width: 199px;
+    height: 74px;
+    position: relative;
+    float: left;
+}
+.program-box .program-box-img{
+    width: 74px;
+    height: 74px;
+    display: inline-block;
+    float: left;
+}
+.program-box .program-box-body{
+    display: inline-block;
+    width: 125px;
+    height: 74px;
+    float: right;
+    padding-top: 10px;
+}
+.program-box .program-box-body .program-box-title{
+    padding: 0 10px;
+    font-size: 24px;
+    color: #00E4FF;
+    font-weight: bold;
+}
+.program-box .program-box-body .program-box-desc{
+    padding: 0 10px;
+    font-size: 13px;
+    color: #88B1D0;
+}
+.program-box .program-box-province{
+    width: 74px;
+    height: 74px;
+    line-height: 74px;
+    color: #0C9BFF;
+    font-size: 16px;
+    font-weight: bold;
+    position: absolute;
+    z-index: 11;
+    text-align: center;
+}
+
+.main-right1{
+    position: absolute;
+    z-index: 10;
+    width: 515px;
+    height: 679px;
+    bottom: 0;
+    right: 0;
+    background: rgba(18, 21, 103, 0.4);
+}
+.main-right1 .main-title{
+    width: 100%;
+    height: 63px;
+    line-height: 58px;
+    background: url("../images/company/leftbg.png") no-repeat;
+    font-size: 17px;
+    color: #ffffff;
+    padding-left: 30px;
+}
+.main-right1 .main-body{
+    width: 100%;
+    height: 613px;
+    padding: 5px;
+}
+.main-flash{
+    position: relative;
+    width:480px;
+    height:175px;
+    margin: 5px auto;
+}
+.main-flash2{
+    position: relative;
+    width:480px;
+    height:auto;
+    margin: 5px auto;
+    overflow: hidden;
+}
+.main-flash2 .col-xs-3{
+    text-align: center;
+    padding: 0;
+}
+.main-flash2 .col-xs-3 img{
+    width: 114px;
+    height: 114px;
+}
+
+.main-right2{
+    position: absolute;
+    z-index: 10;
+    width: 515px;
+    height: 248px;
+    top: 0;
+    right: 0;
+    overflow: hidden;
+}
+.col-xs-7,col-xs-5{
+    padding: 0;
+}
+.progress {
+    width: 100%;
+    height: 10px;
+    margin-bottom: 10px;
+    background-color: rgba(255, 255, 255, 0.3);
+}
+.main-right2 .main-progress{
+    width: 100%;
+    height: auto;
+}
+.main-right2 .main-progress .main-progress-title{
+    color: #88B1D0;
+    font-size: 14px;
+}
+.main-right2 .main-progress .main-progress-title span{
+    color: #ffffff;
+    font-size: 18px;
+}
+.main-right2 .main-title{
+    width: 100%;
+    height: 60px;
+    line-height: 60px;
+    color: #88B1D0;
+    vertical-align: middle;
+}
+.main-right2 .main-tt{
+    display: inline-block;
+    width: 88px;
+    height: 42px;
+    line-height: 42px;
+}
+.main-right2 .main-sz{
+    display: inline-block;
+    width: 28px;
+    height: 42px;
+    vertical-align: middle;
+    color: #ffffff;
+    position: relative;
+    margin-right: 3px;
+}
+.main-right2 .main-sz img{
+    display: inline-block;
+    position: absolute;
+    z-index: 9;
+    width: 28px;
+    height: 42px;
+    left: 0;
+    top: 0;
+}
+.main-right2 .main-sz div{
+    position: absolute;
+    z-index: 10;
+    width: 28px;
+    height: 42px;
+    line-height: 42px;
+    left: 0;
+    top: 0;
+    text-align: center;
+    font-size: 28px;
+}
+
+.box-patrol-chart{
+    width: 480px;
+    height: 300px;
+}
+.box-finish{
+    position: relative;
+    width: 200px;
+    height: 245px;
+}
+.box-finish-chart{
+    width: 200px;
+    height: 245px;
+}
+.box-finish .box-finish-count{
+    position: absolute;
+    text-align: center;
+    width: 100%;
+    height: 80px;
+    z-index: 10;
+    left: 0;
+    top: 90px;
+}
+.box-finish .box-finish-count .box-finish-bl{
+    font-size: 28px;
+    color: #ffffff;
+}
+.box-finish .box-finish-count .box-finish-title{
+    font-size: 12px;
+    color: #88B1D0;
+}
+
+
+/*表格*/
+.table2 {
+    color: #ffffff;
+    width: 100%;
+    padding: 10px;
+}
+.table2 th,td {
+    text-align: center;
+    font-size: 16px;
+    height: 38px;
+}
+.table2 thead tr{
+    background: rgba(2, 177, 255, 0.1);
+    color: #0C9BFF;
+}
+.table2 tbody tr:nth-child(odd){
+    /*background: rgba(25,177,201,0.2);*/
+}
+.table2 tbody tr:nth-child(even){
+    background: rgba(2, 177, 255, 0.1);
+}
+.table2 .table-task-name, .table-project-name {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+.table2 .table-task-name {
+    max-width: 90px;
+}
+.table2 .table-project-name {
+    max-width: 310px;
+}
+.table2>tbody>tr>td, .table2>tbody>tr>th, .table2>tfoot>tr>td, .table2>tfoot>tr>th, .table2>thead>tr>td, .table2>thead>tr>th {
+    border-top: 0;
+}
+
+
+.tablebox {
+    height: 500px;
+    overflow: hidden;
+    position: relative;
+    width: 100%;
+    margin: 0 auto;
+    /*background-color: rgba(6,26,103,1);*/
+    /*background: rgba(2, 177, 255, 0.1);*/
+}
+
+.tbl-header {
+    width: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 999;
+}
+
+.tbl-body {
+    width: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+}
+.tablebox table {
+    width: 100%;
+}
+
+.tablebox table th,
+.tablebox table td {
+    font-size: 16px;
+    color: #7ca6f4;
+    line-height: 35px;
+    text-align: center;
+}
+
+.tablebox table tr th {
+    background-color: #1f1f9c;
+    cursor: pointer;
+}
+
+.tablebox table tr td {
+    background-color: transparent;
+}
+
+.tbl-body tr:nth-child(even) td,.tbl-body1 tr:nth-child(even) td {
+    background-color: rgba(31, 31, 156, .5);
+}
+
+.tablebox table tr td span,
+.tablebox table tr td span {
+    font-size: 16px;
+}

BIN
public/static/screen/css/digifaw.ttf


+ 424 - 0
public/static/screen/css/style-old.css

@@ -0,0 +1,424 @@
+@font-face
+{
+    font-family: digifaw;
+    src: url(./digifaw.ttf);
+}
+body{
+    width: 1920px;
+    height: 1080px;
+    background-image: url("../images/bg.png");
+    margin: 0 auto;
+}
+.line1 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: box;
+    display: -webkit-box;
+    line-clamp: 1;
+    box-orient: vertical;
+    -webkit-line-clamp: 1;
+    -webkit-box-orient: vertical;
+    word-break: break-all;
+}
+.nav-header{
+    width: 1880px;
+    height: 102px;
+    margin: 0 auto;
+    margin-top: 10px;
+    background-image: url("../images/topbg.png");
+    position: relative;
+}
+.nav-system-start{
+    position: absolute;
+    z-index: 10;
+    width: 302px;
+    height: 45px;
+    background-image: url("../images/system-start.png");
+    top: 38px;
+    left: 158px;
+    line-height: 45px;
+    text-align: center;
+    color: #ffffff;
+    font-size: 18px;
+    cursor: pointer;
+    font-weight: bold;
+}
+.nav-logout{
+    position: absolute;
+    z-index: 10;
+    width: 170px;
+    height: 46px;
+    background-image: url("../images/logout.png");
+    top: 37px;
+    right: 152px;
+    line-height: 46px;
+    text-align: center;
+    color: #ffffff;
+    font-size: 18px;
+    cursor: pointer;
+    font-weight: bold;
+}
+.nav-title,.nav-desc{
+    text-align: center;
+    color: #0C9BFF;
+    font-weight: bold;
+}
+.nav-title{
+    font-size: 32px;
+    padding-top: 13px;
+}
+.nav-desc{
+    font-size: 22px;
+}
+.main{
+    margin: 0 auto;
+    margin-top: 10px;
+    width: 1880px;
+    height: 934px;
+    overflow: hidden;
+    position: relative;
+}
+.main-left1{
+    position: absolute;
+    z-index: 10;
+    width: 527px;
+    height: 296px;
+    top: 0;
+    left: 0;
+    background-image: url("../images/left1.png");
+}
+.main-left2{
+    position: absolute;
+    z-index: 10;
+    width: 527px;
+    height: 326px;
+    top: 302px;
+    left: 0;
+    background-image: url("../images/left2.png");
+}
+.main-left3{
+    position: absolute;
+    z-index: 10;
+    width: 527px;
+    height: 296px;
+    bottom: 0;
+    left: 0;
+    background-image: url("../images/left3.png");
+}
+
+.main-middle1{
+    position: absolute;
+    z-index: 10;
+    width: 799px;
+    height: 179px;
+    top: 0;
+    left: 542px;
+    background-image: url("../images/middle1.png");
+    padding: 0 10px;
+}
+.main-middle2{
+    position: absolute;
+    z-index: 10;
+    width: 493px;
+    height: 442px;
+    top: 187px;
+    left: 542px;
+    background-image: url("../images/middle2.png");
+}
+.main-middle3{
+    position: absolute;
+    z-index: 10;
+    width: 299px;
+    height: 442px;
+    top: 187px;
+    left: 1042px;
+    background-image: url("../images/middle3.png");
+}
+.main-middle4{
+    position: absolute;
+    z-index: 10;
+    width: 799px;
+    height: 296px;
+    bottom: 0;
+    left: 542px;
+    background-image: url("../images/middle4.png");
+}
+.main-right1{
+    position: absolute;
+    z-index: 10;
+    width: 527px;
+    height: 423px;
+    top: 0;
+    right: 0;
+    background-image: url("../images/right1.png");
+}
+.main-right2{
+    position: absolute;
+    z-index: 10;
+    width: 527px;
+    height: 501px;
+    bottom: 0;
+    right: 0;
+    background-image: url("../images/right2.png");
+}
+.middle-nums{
+    font-size: 48px;
+    font-weight: 400;
+    text-align: center;
+    padding-top: 40px;
+    font-family: digifaw;
+}
+.middle-nums-yellow{
+    color: #FCD114;
+}
+.middle-nums-purple{
+    color: #7523FB;
+}
+.middle-nums-red{
+    color: #FE546D;
+}
+.middle-nums-cyan{
+    color: #0BD6D4;
+}
+.middle-desc{
+    font-size: 48px;
+    font-weight: 400;
+    text-align: center;
+    color: #0C9BFF;
+    font-size: 18px;
+}
+
+.box{
+    width: 100%;
+    height: 100%;
+    padding: 10px;
+    position: relative;
+}
+.box-title{
+    position: relative;
+    width: 100%;
+    height: 64px;
+    line-height: 68px;
+    border-bottom: 1px solid rgba(12, 155, 255, 0.3);
+    padding: 0 40px;
+    color: #ffffff;
+    font-size: 17px;
+}
+.box-title:before{
+    content: '';
+    position: absolute;
+    z-index: 10;
+    bottom: 0;
+    left: 40px;
+    width: 40px;
+    height: 4px;
+    background-color: #0C9BFF;
+}
+.box-chart{
+    width: 100%;
+    height: 220px;
+}
+.user-chat-center{
+    width: 100%;
+    text-align: center;
+    color: #ffffff;
+    position: absolute;
+    z-index: 10;
+    left: 0;
+    top: 170px;
+    font-size: 20px;
+}
+.order-nums{
+    width: 80%;
+    color: #0C9BFF;
+    margin: 10px auto;
+
+}
+.box-order-chart{
+    width: 100%;
+    /*height: 180px;*/
+    height: 200px;
+    /*border:1px solid #ffffff;*/
+}
+.order-nums-text{
+    font-family: digifaw;
+    color: #36F6F9;
+}
+.box-device-chart{
+    width: 100%;
+    height: 180px;
+    /*border:1px solid #ffffff;*/
+}
+
+.program{
+    padding: 15px 30px 0 30px;
+}
+.program-title{
+    color: #ffffff;
+    font-size: 16px;
+}
+.program-desc{
+    color: #0C9BFF;
+    font-size: 14px;
+}
+
+.program-lou{
+    width: 481px;
+    height: 329px;
+    position: relative;
+}
+.program-lou-img{
+    width: 100%;
+    height: 100%;
+}
+
+.program-lou-dian{
+    position: absolute;
+    width: 188px;
+    height: 73px;
+
+    color: #ffffff;
+    font-size: 14px;
+}
+.program-lou-dian.finish{
+    top: 50px;
+    left: 218px;
+    z-index: 10;
+}
+.program-lou-dian.unfinish{
+    top: 100px;
+    left: 282px;
+    z-index: 11;
+}
+.program-lou-dian img{
+    width: 38px;
+    height: 73px;
+    float: left;
+}
+.lou-dian-desc{
+    display: inline-block;
+    width: 150px;
+    height: 73px;
+    float: right;
+}
+
+.patrol{
+    padding-top: 5px;
+}
+.patrol-box{
+    width: 260px;
+    height: 37px;
+    line-height: 37px;
+    background-color: rgba(2, 177, 255, 0.2);
+    margin: 2px auto;
+    color: #0C9BFF;
+    font-size: 16px;
+}
+.patrol-box-left{
+    width: 100px;
+    height: 37px;
+    float: left;
+    padding-left: 17px;
+    text-align: left;
+}
+.patrol-box-right{
+    width: 160px;
+    height: 37px;
+    float: right;
+    padding-right: 17px;
+    text-align: right;
+}
+.patrol-img{
+    width: 260px;
+    height: 188px;
+    /*border: 1px solid #ffffff;*/
+    margin: 0 auto;
+    margin-top: 7px;
+}
+.patrol-img img{
+    width: 100%;
+    height: 100%;
+}
+
+.box-patrol-chart{
+    width: 100%;
+    height: 210px;
+}
+
+.repair{
+    width: 100%;
+    min-height: 148px;
+    padding: 0 20px;
+    padding-top: 5px;
+    overflow: hidden;
+}
+.repair-box{
+    width: 460px;
+    height: 37px;
+    line-height: 37px;
+    border-bottom: 1px dashed rgba(12, 155, 255, 0.5);
+    color: #0C9BFF;
+    font-size: 16px;
+}
+.repair-box-left{
+    width: 220px;
+    height: 37px;
+    float: left;
+}
+.repair-box-right{
+    width: 220px;
+    height: 37px;
+    float: right;
+    text-align: right;
+}
+.box-repair-chart{
+    width: 100%;
+    height: 190px;
+    margin-top: 10px;
+}
+
+.box-common-chart{
+    width: 100%;
+    height: 220px;
+    /*border: 1px solid #ffffff;*/
+}
+.common-box{
+    width: 496px;
+    height: 37px;
+    line-height: 37px;
+    margin-bottom: 1px;
+    background-color: rgba(2, 177, 255, 0.2);
+    overflow: hidden;
+    text-align: center;
+    color: #0C9BFF;
+    font-size: 16px;
+}
+.common-box-list1{
+    width: 60px;
+    height: 100%;
+    float: left;
+}
+.common-box-list1 img{
+    width: 32px;
+    height: 38px;
+}
+.common-box-list2{
+    width: 160px;
+    height: 100%;
+    float: left;
+}
+.common-box-list3{
+    width: 120px;
+    height: 100%;
+    float: left;
+}
+.common-box-list4{
+    width: 120px;
+    height: 100%;
+    float: left;
+}
+.common-box-list5{
+    width: 30px;
+    height: 100%;
+    float: left;
+}

+ 371 - 0
public/static/screen/css/style.css

@@ -0,0 +1,371 @@
+@font-face
+{
+    font-family: digifaw;
+    src: url(./digifaw.ttf);
+}
+body{
+    width: 1920px;
+    height: 1080px;
+    background-image: url("../images/project/bg.png");
+    margin: 0 auto;
+}
+.line1 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: box;
+    display: -webkit-box;
+    line-clamp: 1;
+    box-orient: vertical;
+    -webkit-line-clamp: 1;
+    -webkit-box-orient: vertical;
+    word-break: break-all;
+}
+
+.nav-header{
+    width: 1920px;
+    height: 60px;
+    margin: 0 auto;
+    /*margin-top: 10px;*/
+    background-image: url("../images/project/header.png");
+    position: relative;
+}
+
+.nav-title,.nav-desc{
+    text-align: center;
+    color: #FFFFFF;
+    font-weight: bold;
+}
+.nav-title{
+    font-size: 26px;
+    padding-top: 13px;
+}
+.nav-desc{
+    font-size: 22px;
+}
+.main{
+    margin: 0 auto;
+    margin-top: 10px;
+    width: 1920px;
+    height: 1010px;
+    overflow: hidden;
+    position: relative;
+}
+.main-left1{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 227px;
+    top: 0;
+    left: 0;
+    background-image: url("../images/project/leftbg1.png");
+}
+.main-left1 .user-box{
+    width: 115px;
+    height: auto;
+    overflow: hidden;
+    text-align: center;
+    position: relative;
+    padding: 15px 0;
+    float: left;
+}
+#waste-count{
+    width: 100%;
+    height: 200px;
+    /*border: 1px solid #ffffff;*/
+}
+.main-left1 .user-box img{
+    width: 100px;
+    height: 100px;
+}
+.main-left1 .user-box-nums{
+    color: #A9E5FE;
+    font-size: 14px;
+}
+.main-left1 .user-box-title{
+    color: #FFFFFF;
+    font-size: 14px;
+}
+.main-left1 .user-box-header{
+    position: absolute;
+    z-index: 10;
+    top: 46px;
+    left: 0;
+    width: 100%;
+    height: auto;
+}
+.main-left2{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 277px;
+    top: 214px;
+    left: 0;
+    background-image: url("../images/project/leftbg2.png");
+    color: #ffffff;
+}
+
+.main-left3{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 274px;
+    top: 479px;
+    left: 0;
+    background-image: url("../images/project/leftbg3.png");
+}
+.main-left3 .box-yhyj-chart{
+    height: 220px;
+    /*border: 1px solid #ffffff;*/
+}
+
+.main-left4{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 274px;
+    bottom: 0;
+    left: 0;
+    background-image: url("../images/project/leftbg3.png");
+}
+.main-left4 .box-bx-chart{
+    height: 220px;
+    /*border: 1px solid #ffffff;*/
+}
+
+.main-middle1{
+    position: absolute;
+    z-index: 10;
+    width: 948px;
+    height: 476px;
+    top: 0;
+    left: 490px;
+}
+.main-middle1 .middle-box{
+    position: relative;
+    width: 100%;
+    height: 100%;
+}
+.main-middle1 .middle-box .middle-box-img{
+    width: 100%;
+    height: 100%;
+}
+.main-middle1 .middle-box-title{
+    position: absolute;
+    z-index: 10;
+    width: 100%;
+    height: 42px;
+    line-height: 42px;
+    color: #ffffff;
+    font-size: 28px;
+    top: 0;
+    left: 0;
+    text-align: center;
+    background-image: url("../images/project/middle1.png");
+}
+.main-middle1 .order-box{
+    position: absolute;
+    z-index: 10;
+    width: 409px;
+    height: 138px;
+    top: 200px;
+    left: 300px;
+    overflow: hidden;
+}
+.main-middle1 .order-box .order-box-box{
+    position: relative;
+    width: 100%;
+    height: 100%;
+}
+.main-middle1 .order-box .order-box-pos{
+    position: absolute;
+    z-index: 10;
+    width: 240px;
+    height: 50px;
+    top: 20px;
+    left: 120px;
+}
+.main-middle1 .order-box .order-box-pos .order-box-list{
+    width: 80px;
+    height: 50px;
+    line-height: 25px;
+    float: left;
+    text-align: center;
+    font-size: 14px;
+    color: #ffffff;
+}
+.order-box-list-num{
+    color: #0EF9B3;
+    font-size: 20px;
+}
+
+.main-middle2{
+    position: absolute;
+    z-index: 10;
+    width: 967px;
+    height: 539px;
+    top: 477px;
+    left: 480px;
+    background-image: url("../images/project/middlebg2.png");
+}
+.main-middle2 .task-box{
+    width: 483px;
+    height: 274px;
+    /*border: 1px solid #ffffff;*/
+    float: left;
+}
+.main-middle2 .bottom-box{
+    width: 100%;
+    height: 255px;
+    /*border: 1px solid #ffffff;*/
+    float: left;
+}
+.main-middle2 .task-box .task-box-title{
+    color: #ffffff;
+    font-size: 18px;
+    padding-top: 12px;
+    padding-left: 50px;
+}
+.main-middle2 .hot-chart{
+    /*border: 1px solid #ffffff;*/
+    height: 245px;
+}
+.main-middle2 .yscount-box{
+    position: relative;
+    width: 160px;
+    padding: 0 5px;
+    text-align: center;
+    overflow: hidden;
+    float: left;
+    color: #00CAFF;
+}
+.main-middle2 .yscount-box image{
+    width: 98px;
+    height: 97px;
+}
+.main-middle2 .yscount-box .yscount-box-title{
+    font-size: 14px;
+}
+.main-middle2 .yscount-box .yscount-box-des{
+    position: absolute;
+    z-index: 10;
+    width: 100%;
+    top: 71px;
+    left: 0;
+    font-size: 12px;
+}
+.main-middle2 .yscount-box .yscount-box-nums{
+    position: absolute;
+    z-index: 10;
+    width: 100%;
+    top: 31px;
+    left: 0;
+    color: #00FAA8;
+    font-size: 22px;
+}
+
+.main-right1{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 495px;
+    top: 0;
+    right: 0;
+    background-image: url("../images/project/rightbg1.png");
+}
+.main-right2{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 271px;
+    bottom: 271px;
+    right: 0;
+    background-image: url("../images/project/rightbg2.png");
+}
+.main-right3{
+    position: absolute;
+    z-index: 10;
+    width: 483px;
+    height: 271px;
+    bottom: 0;
+    right: 0;
+}
+
+.patrol-box{
+    width: 160px;
+    height: 90px;
+    padding: 3px 5px;
+    overflow: hidden;
+    float: left;
+    text-align: center;
+}
+.patrol-box .patrol-box-list{
+    width: 100%;
+    height: 100%;
+    background-color: rgba(69, 117, 230, 0.2);
+    box-shadow: 0 0 5px #91A9FF;
+}
+.patrol-box .patrol-box-list img{
+    width: 150px;
+    height: 60px;
+    border: 1px solid #ffffff;
+}
+.patrol-box .patrol-box-list div{
+    line-height: 26px;
+    height: 26px;
+    color: #ffffff;
+    font-size: 12px;
+    overflow:hidden;
+    white-space:nowrap;
+    text-overflow:ellipsis;
+}
+
+.box{
+    width: 100%;
+    height: 100%;
+    padding: 0 10px;
+    position: relative;
+}
+.box-title{
+    width: 100%;
+    height: 34px;
+    line-height: 50px;
+    padding: 0 40px;
+    color: #ffffff;
+    font-size: 18px;
+}
+
+/*表格*/
+.table2 {
+    color: #ffffff;
+    width: 98%;
+    border: 0;
+    table-layout:fixed ;
+    margin: 0 auto;
+}
+.table2 th,td {
+    text-align: center;
+    height: 42px;
+    line-height: 42px;
+    font-size: 14px;
+    overflow:hidden;
+    white-space:nowrap;
+    text-overflow:ellipsis;
+}
+.table2 thead tr{
+    background: rgba(8,36,56,0.58);
+    font-size: 14px;
+}
+.table2 tbody tr:nth-child(odd){
+    border-collapse:separate;
+    border-spacing:0px 10px;
+    background: #20387B;
+}
+.table2 tbody tr:nth-child(even){
+    background: #152F77;
+}
+.table2 .table-color2{
+    color: #0FC2DD;
+}
+.table2 .table-color3{
+    color: #49E9A0;
+}

+ 209 - 0
public/static/screen/css/ysorder-style.css

@@ -0,0 +1,209 @@
+@font-face
+{
+    font-family: digifaw;
+    src: url(./digifaw.ttf);
+}
+body{
+    width: 1920px;
+    height: 1080px;
+    background-image: url("../images/project/bg.png");
+    margin: 0 auto;
+}
+.line1 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: box;
+    display: -webkit-box;
+    line-clamp: 1;
+    box-orient: vertical;
+    -webkit-line-clamp: 1;
+    -webkit-box-orient: vertical;
+    word-break: break-all;
+}
+
+.nav-header{
+    width: 1920px;
+    height: 60px;
+    margin: 0 auto;
+    /*margin-top: 10px;*/
+    background-image: url("../images/project/header.png");
+    position: relative;
+}
+
+.nav-title,.nav-desc{
+    text-align: center;
+    color: #FFFFFF;
+    font-weight: bold;
+}
+.nav-title{
+    font-size: 26px;
+    padding-top: 13px;
+}
+.nav-desc{
+    font-size: 22px;
+}
+.main{
+    margin: 0 auto;
+    width: 1920px;
+    height: 1020px;
+    overflow: hidden;
+    position: relative;
+}
+.main1{
+    position: absolute;
+    z-index: 10;
+    width: 1300px;
+    height: 495px;
+    top: 0;
+    left: 0;
+    background-image: url("../images/ysorder/bg1.png");
+}
+.main1 .col-xs-12{
+    height: 40px;
+    line-height: 60px;
+    color: #ffffff;
+    padding-left: 51px;
+    font-size: 18px;
+}
+.main1 .col-xs-6{
+    position: relative;
+    text-align: center;
+    height: 440px;
+}
+.main1 .col-xs-6 img{
+    width: 548px;
+    height: 422px;
+}
+.main1 .col-xs-6 .order-count{
+    width: 100%;
+    height: 100%;
+
+}
+.main1 .col-xs-6 .order-fenxi{
+    width: 156px;
+    height: 40px;
+    background-image: url("../images/ysorder/fenxi.png");
+    line-height: 40px;
+    color: #ffffff;
+    font-size: 16px;
+    text-align: center;
+    margin-top: 20px;
+}
+.main1 .col-xs-6 .order-fenxi-chart{
+    width: 100%;
+    height: 380px;
+    /*border: 1px solid #ffffff;*/
+}
+.main1 .col-xs-6 .order-box{
+    position: absolute;
+    width: 100%;
+    height: 300px;
+    top: 104px;
+    left: -18px;
+    text-align: center;
+    color: #FFFFFF;
+    z-index: 10;
+    font-weight: bold;
+}
+.main1 .col-xs-6 .order-box .order-box-title{
+    font-size: 28px;
+    margin-bottom: 30px;
+}
+
+.main1 .col-xs-6 .order-box .order-box-count{
+    font-size: 88px;
+}
+
+.main2{
+    position: absolute;
+    z-index: 10;
+    width: 1300px;
+    height: 528px;
+    bottom: 0;
+    left: 0;
+    background-image: url("../images/ysorder/bg2.png");
+}
+.main2 .col-xs-12{
+    height: 40px;
+    line-height: 56px;
+    color: #ffffff;
+    padding-left: 51px;
+    font-size: 18px;
+}
+.main3{
+    position: absolute;
+    z-index: 10;
+    width: 609px;
+    height: 1020px;
+    bottom: 0;
+    top: 0;
+    right: 5px;
+    background-image: url("../images/ysorder/bg3.png");
+}
+
+.main3 .main3-top{
+    width: 100%;
+    height: 495px;
+    /*border: 1px solid #ffffff;*/
+}
+
+.main3 .main3-bottom{
+    width: 100%;
+    height: 520px;
+    /*border: 1px solid #ffffff;*/
+}
+.main3 .main3-top .main3-title{
+    width: 580px;
+    height: 49px;
+    line-height: 50px;
+    padding-left: 38px;
+    font-size: 18px;
+    font-weight: bold;
+    color: #49E9A0;
+    background-image: url("../images/ysorder/r1.png");
+}
+.main3 .main3-bottom .main3-title{
+    width: 580px;
+    height: 49px;
+    line-height: 50px;
+    padding-left: 38px;
+    font-size: 18px;
+    font-weight: bold;
+    color: #FFE400;
+    background-image: url("../images/ysorder/r2.png");
+}
+/*表格*/
+.table2 {
+    color: #ffffff;
+    width: 98%;
+    border: 0;
+    table-layout:fixed ;
+    margin: 0 auto;
+}
+.table2 th,td {
+    text-align: center;
+    height: 42px;
+    line-height: 42px;
+    font-size: 14px;
+    overflow:hidden;
+    white-space:nowrap;
+    text-overflow:ellipsis;
+}
+.table2 thead tr{
+    background: rgba(8,36,56,0.58);
+    font-size: 14px;
+}
+.table2 tbody tr:nth-child(odd){
+    border-collapse:separate;
+    border-spacing:0px 10px;
+    background: #20387B;
+}
+.table2 tbody tr:nth-child(even){
+    background: #152F77;
+}
+.table2 .table-color2{
+    color: #0FC2DD;
+}
+.table2 .table-color3{
+    color: #49E9A0;
+}

BIN
public/static/screen/images/bg.png


BIN
public/static/screen/images/company/bg.png


BIN
public/static/screen/images/company/cricle.png


BIN
public/static/screen/images/company/leftbg.png


BIN
public/static/screen/images/company/middlebg.png


BIN
public/static/screen/images/company/shuzi.png


BIN
public/static/screen/images/finish.png


BIN
public/static/screen/images/first.png


BIN
public/static/screen/images/left1.png


BIN
public/static/screen/images/left2.png


BIN
public/static/screen/images/left3.png


BIN
public/static/screen/images/logout.png


BIN
public/static/screen/images/lou.png


BIN
public/static/screen/images/middle1.png


BIN
public/static/screen/images/middle2.png


BIN
public/static/screen/images/middle3.png


BIN
public/static/screen/images/middle4.png


BIN
public/static/screen/images/project/bg.png


BIN
public/static/screen/images/project/header.png


BIN
public/static/screen/images/project/left1.png


BIN
public/static/screen/images/project/leftbg1.png


BIN
public/static/screen/images/project/leftbg2.png


BIN
public/static/screen/images/project/leftbg3.png


BIN
public/static/screen/images/project/leftbg4.png


BIN
public/static/screen/images/project/middle1.png


BIN
public/static/screen/images/project/middle2.png


BIN
public/static/screen/images/project/middle22.png


BIN
public/static/screen/images/project/middlebg2.png


BIN
public/static/screen/images/project/rightbg1.png


BIN
public/static/screen/images/project/rightbg2.png


BIN
public/static/screen/images/project/ybp.png


BIN
public/static/screen/images/project/zhongshan.png


BIN
public/static/screen/images/right1.png


BIN
public/static/screen/images/right2.png


BIN
public/static/screen/images/second.png


BIN
public/static/screen/images/system-start.png


BIN
public/static/screen/images/third.png


BIN
public/static/screen/images/topbg.png


BIN
public/static/screen/images/trophy.png


BIN
public/static/screen/images/unfinish.png


BIN
public/static/screen/images/ysorder/bg1.png


BIN
public/static/screen/images/ysorder/bg2.png


BIN
public/static/screen/images/ysorder/bg3.png


BIN
public/static/screen/images/ysorder/count.png


BIN
public/static/screen/images/ysorder/fenxi.png


BIN
public/static/screen/images/ysorder/r1.png


BIN
public/static/screen/images/ysorder/r2.png


Fichier diff supprimé car celui-ci est trop grand
+ 46 - 0
public/static/screen/js/china.js


+ 547 - 0
public/static/screen/js/mymap.js

@@ -0,0 +1,547 @@
+var geoCoordMap = {
+    '新疆玛纳斯基地': [86.22, 44.30],
+    '九江': [116.00, 29.70],
+    '新乡': [116.402217, 35.311657],
+    ' ': [79.92, 37.12],
+    '  ': [86.85, 47.70],
+    '若羌县': [88.17, 39.02],
+    '上海': [121.4648, 31.2891],
+    '东莞': [113.8953, 22.901],
+    '东营': [118.7073, 37.5513],
+    '中山': [113.4229, 22.478],
+    '临汾': [111.4783, 36.1615],
+    '临沂': [118.3118, 35.2936],
+    '丹东': [124.541, 40.4242],
+    '丽水': [119.5642, 28.1854],
+    '乌鲁木齐': [87.9236, 43.5883],
+    '佛山': [112.8955, 23.1097],
+    '保定': [115.0488, 39.0948],
+    '兰州': [103.5901, 36.3043],
+    '包头': [110.3467, 41.4899],
+    '北京': [116.4551, 40.2539],
+    '北海': [109.314, 21.6211],
+    '南京': [118.8062, 31.9208],
+    '南宁': [108.479, 23.1152],
+    '南昌': [116.0046, 28.6633],
+    '南通': [121.1023, 32.1625],
+    '厦门': [118.1689, 24.6478],
+    '台州': [121.1353, 28.6688],
+    '合肥': [117.29, 32.0581],
+    '呼和浩特': [111.4124, 40.4901],
+    '咸阳': [108.4131, 34.8706],
+    '哈尔滨': [127.9688, 45.368],
+    '唐山': [118.4766, 39.6826],
+    '嘉兴': [120.9155, 30.6354],
+    '大同': [113.7854, 39.8035],
+    '大连': [122.2229, 39.4409],
+    '天津': [117.4219, 39.4189],
+    '太原': [112.3352, 37.9413],
+    '威海': [121.9482, 37.1393],
+    '宁波': [121.5967, 29.6466],
+    '宝鸡': [107.1826, 34.3433],
+    '宿迁': [118.5535, 33.7775],
+    '常州': [119.4543, 31.5582],
+    '广州': [113.5107, 23.2196],
+    '廊坊': [116.521, 39.0509],
+    '延安': [109.1052, 36.4252],
+    '张家口': [115.1477, 40.8527],
+    '徐州': [117.5208, 34.3268],
+    '德州': [116.6858, 37.2107],
+    '惠州': [114.6204, 23.1647],
+    '成都': [103.9526, 30.7617],
+    '扬州': [119.4653, 32.8162],
+    '承德': [117.5757, 41.4075],
+    '拉萨': [91.1865, 30.1465],
+    '无锡': [120.3442, 31.5527],
+    '日照': [119.2786, 35.5023],
+    '昆明': [102.9199, 25.4663],
+    '杭州': [119.5313, 29.8773],
+    '枣庄': [117.323, 34.8926],
+    '柳州': [109.3799, 24.9774],
+    '株洲': [113.5327, 27.0319],
+    '武汉': [114.3896, 30.6628],
+    '汕头': [117.1692, 23.3405],
+    '江门': [112.6318, 22.1484],
+    '沈阳': [123.1238, 42.1216],
+    '沧州': [116.8286, 38.2104],
+    '河源': [114.917, 23.9722],
+    '泉州': [118.3228, 25.1147],
+    '泰安': [117.0264, 36.0516],
+    '泰州': [120.0586, 32.5525],
+    '济南': [117.1582, 36.8701],
+    '济宁': [116.8286, 35.3375],
+    '海口': [110.3893, 19.8516],
+    '淄博': [118.0371, 36.6064],
+    '淮安': [118.927, 33.4039],
+    '深圳': [114.5435, 22.5439],
+    '清远': [112.9175, 24.3292],
+    '温州': [120.498, 27.8119],
+    '渭南': [109.7864, 35.0299],
+    '湖州': [119.8608, 30.7782],
+    '湘潭': [112.5439, 27.7075],
+    '滨州': [117.8174, 37.4963],
+    '潍坊': [119.0918, 36.524],
+    '烟台': [120.7397, 37.5128],
+    '玉溪': [101.9312, 23.8898],
+    '珠海': [113.7305, 22.1155],
+    '盐城': [120.2234, 33.5577],
+    '盘锦': [121.9482, 41.0449],
+    '石家庄': [114.4995, 38.1006],
+    '福州': [119.4543, 25.9222],
+    '秦皇岛': [119.2126, 40.0232],
+    '绍兴': [120.564, 29.7565],
+    '聊城': [115.9167, 36.4032],
+    '肇庆': [112.1265, 23.5822],
+    '舟山': [122.2559, 30.2234],
+    '苏州': [120.6519, 31.3989],
+    '莱芜': [117.6526, 36.2714],
+    '菏泽': [115.6201, 35.2057],
+    '营口': [122.4316, 40.4297],
+    '葫芦岛': [120.1575, 40.578],
+    '衡水': [115.8838, 37.7161],
+    '衢州': [118.6853, 28.8666],
+    '西宁': [101.4038, 36.8207],
+    '西安': [109.1162, 34.2004],
+    '贵阳': [106.6992, 26.7682],
+    '连云港': [119.1248, 34.552],
+    '邢台': [114.8071, 37.2821],
+    '邯郸': [114.4775, 36.535],
+    '郑州': [113.4668, 34.6234],
+    '鄂尔多斯': [108.9734, 39.2487],
+    '重庆': [107.7539, 30.1904],
+    '金华': [120.0037, 29.1028],
+    '铜川': [109.0393, 35.1947],
+    '银川': [106.3586, 38.1775],
+    '镇江': [119.4763, 31.9702],
+    '长春': [125.8154, 44.2584],
+    '长沙': [113.0823, 28.2568],
+    '长治': [112.8625, 36.4746],
+    '阳泉': [113.4778, 38.0951],
+    '青岛': [120.4651, 36.3373],
+    '韶关': [113.7964, 24.7028],
+    '阜阳': [115.8204, 32.8960],
+    '诸城': [119.4163,36.0020]
+};
+
+var BJData = [
+    [{
+        name: '新乡'
+    }, {
+        name: '新乡',
+        value: 200
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '呼和浩特',
+        value: 90
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '哈尔滨',
+        value: 90
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '石家庄',
+        value: 90
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '昆明',
+        value: 30
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '北京',
+        value: 100
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '长春',
+        value: 40
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '重庆',
+        value: 40
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '贵阳',
+        value: 50
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '南宁',
+        value: 30
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '济南',
+        value: 10
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '太原',
+        value: 40
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '西安',
+        value: 60
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '武汉',
+        value: 50
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '合肥',
+        value: 40
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '南京',
+        value: 30
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '沈阳',
+        value: 20
+    }],
+    [{
+        name: '新乡'
+    }, {
+        name: '成都',
+        value: 10
+    }]
+];
+
+var SHData = [
+    [{
+        name: '九江'
+    }, {
+        name: '九江',
+        value: 200
+    }],
+
+    [{
+        name: '九江'
+    }, {
+        name: '长沙',
+        value: 95
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '武汉',
+        value: 30
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '南昌',
+        value: 20
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '合肥',
+        value: 70
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '南京',
+        value: 60
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '福州',
+        value: 50
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '上海',
+        value: 100
+    }],
+    [{
+        name: '九江'
+    }, {
+        name: '深圳',
+        value: 100
+    }],
+
+];
+
+var GZData = [
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '新疆玛纳斯基地',
+        value: 200
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '  ',
+        value: 90
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: ' ',
+        value: 40
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '呼和浩特',
+        value: 90
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '昆明',
+        value: 40
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '成都',
+        value: 10
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '兰州',
+        value: 95
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '银川',
+        value: 90
+    }],
+    [{
+        name: '新疆玛纳斯基地'
+    }, {
+        name: '西宁',
+        value: 80
+    }],
+
+];
+
+var BData = [
+    [{
+        name: '北京'
+    }, {
+        name: '北京',
+        value: 100
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '阜阳',
+        value: 20
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '济南',
+        value: 30
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '泉州',
+        value: 30
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '沈阳',
+        value: 20
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '烟台',
+        value: 20
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '诸城',
+        value: 20
+    }],
+    [{
+        name: '北京'
+    }, {
+        name: '济南',
+        value: 20
+    }]
+
+];
+
+var planePath = 'path://M.6,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705';
+
+var convertData = function (data) {
+    var res = [];
+    for (var i = 0; i < data.length; i++) {
+        var dataItem = data[i];
+        var fromCoord = geoCoordMap[dataItem[0].name];
+        var toCoord = geoCoordMap[dataItem[1].name];
+        if (fromCoord && toCoord) {
+            res.push([{
+                coord: fromCoord
+            }, {
+                coord: toCoord
+            }]);
+        }
+    }
+    return res;
+};
+
+var color = ['#ffa022', '#3ed4ff', '#a6c84c','#FE546D'];
+var series = [];
+[
+    // ['新乡', BJData],
+    // ['九江', SHData],
+    // ['新疆', GZData],
+    ['北京', BData]
+].forEach(function (item, i) {
+    series.push({
+        name: item[0],
+        type: 'lines',
+        zlevel: 1,
+        effect: {
+            show: true,
+            period: 6,
+            trailLength: 0.7,
+            color: '#fff',
+            symbolSize: 3
+        },
+        lineStyle: {
+            normal: {
+                color: color[i],
+                width: 0,
+                curveness: 0.2
+            }
+        },
+        data: convertData(item[1])
+    }, {
+        name: item[0],
+        type: 'lines',
+        zlevel: 2,
+        effect: {
+            show: true,
+            period: 6,
+            trailLength: 0,
+            symbol: planePath,
+            symbolSize: 15
+        },
+        lineStyle: {
+            normal: {
+                color: color[i],
+                width: 1,
+                opacity: 0.4,
+                curveness: 0.2
+            }
+        },
+        data: convertData(item[1])
+    }, {
+        name: item[0],
+        type: 'effectScatter',
+        coordinateSystem: 'geo',
+        zlevel: 2,
+        rippleEffect: {
+            brushType: 'stroke'
+        },
+        label: {
+            normal: {
+                show: true,
+                position: 'right',
+                formatter: '{b}'
+            }
+        },
+        symbolSize: function (val) {
+            return val[2] / 8;
+        },
+        itemStyle: {
+            normal: {
+                color: color[i]
+            }
+        },
+        data: item[1].map(function (dataItem) {
+            return {
+                name: dataItem[1].name,
+                value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])
+            };
+        })
+    });
+});
+
+option = {
+    backgroundColor: 'rgba(0,0,0,0)',
+    title: {
+        left: 'left',
+        textStyle: {
+            color: '#fff'
+        }
+    },
+    tooltip: {
+        trigger: 'item'
+    },
+    // legend: {
+    //     orient: 'vertical',
+    //     top: 'bottom',
+    //     left: 'right',
+    //     data: ['北京 Top10', '上海 Top10', '广州 Top10'],
+    //     textStyle: {
+    //         color: '#fff'
+    //     },
+    //     selectedMode: 'single'
+    // },
+    geo: {
+        map: 'china',
+        zoom: 1.2,
+        label: {
+            emphasis: {
+                show: false
+            }
+        },
+        roam: true,
+        itemStyle: {
+            normal: {
+                areaColor: '#121567',
+                borderColor: '#0072FF'
+            },
+            emphasis: {
+                areaColor: '#0b1c2d'
+            }
+        }
+    },
+    series: series
+};
+var myecharts = echarts.init($('.map .geo')[0])
+myecharts.setOption(option)

Fichier diff supprimé car celui-ci est trop grand
+ 532 - 0
public/static/screen/swiper/swiper-bundle.css


Fichier diff supprimé car celui-ci est trop grand
+ 9428 - 0
public/static/screen/swiper/swiper-bundle.js


Fichier diff supprimé car celui-ci est trop grand
+ 13 - 0
public/static/screen/swiper/swiper-bundle.min.css


Fichier diff supprimé car celui-ci est trop grand
+ 14 - 0
public/static/screen/swiper/swiper-bundle.min.js