wesmiler 6 лет назад
Родитель
Сommit
f4249bc05d
100 измененных файлов с 1628 добавлено и 259 удалено
  1. 18 0
      app/api/controller/GoodsController.php
  2. 52 0
      app/api/controller/LoginController.php
  3. 34 0
      app/api/controller/MemberController.php
  4. 4 1
      app/api/controller/TaskController.php
  5. 0 8
      app/demo/README.md
  6. 0 13
      app/demo/composer.json
  7. 0 11
      app/demo/vendor/.gitignore
  8. 3 0
      app/index/controller/IndexController.php
  9. 3 7
      app/demo/controller/IndexController.php
  10. 23 0
      app/index/controller/MemberController.php
  11. 22 0
      app/index/controller/RegisterController.php
  12. 18 0
      app/index/model/UserModel.php
  13. 48 0
      app/index/service/Goods.php
  14. 1 1
      app/index/service/Grab.php
  15. 95 0
      app/index/service/Users.php
  16. 53 0
      app/index/validate/GoodValidate.php
  17. 69 0
      app/index/validate/UsersValidate.php
  18. 1 1
      public/themes/default/index/block/footer.html
  19. 13 14
      public/themes/default/index/block/footer_nav.html
  20. 8 7
      public/themes/default/index/block/header.html
  21. 38 14
      public/themes/default/index/index.html
  22. 3 3
      public/themes/default/index/index/about.html
  23. 4 4
      public/themes/default/index/index/custom.html
  24. 0 60
      public/themes/default/index/index/entry - 副本.html
  25. 0 91
      public/themes/default/index/index/entry.html
  26. 2 2
      public/themes/default/index/index/match.html
  27. 0 16
      public/themes/default/index/index/rule.html
  28. 22 0
      public/themes/default/index/login/index.html
  29. 26 0
      public/themes/default/index/login/register.html
  30. 50 0
      public/themes/default/index/member/index.html
  31. 13 6
      public/themes/default/index/public/assets/css/base.css
  32. 127 0
      public/themes/default/index/public/assets/css/goods.css
  33. 412 0
      public/themes/default/index/public/assets/css/login.css
  34. 54 0
      public/themes/default/index/public/assets/css/member.css
  35. 412 0
      public/themes/default/index/public/assets/css/register.css
  36. BIN
      public/themes/default/index/public/assets/img/about.png
  37. BIN
      public/themes/default/index/public/assets/img/account.png
  38. BIN
      public/themes/default/index/public/assets/img/activity-active.png
  39. BIN
      public/themes/default/index/public/assets/img/activity.png
  40. BIN
      public/themes/default/index/public/assets/img/avatar.png
  41. BIN
      public/themes/default/index/public/assets/img/cuowzp1.jpg
  42. BIN
      public/themes/default/index/public/assets/img/cuowzp2.jpg
  43. BIN
      public/themes/default/index/public/assets/img/cuowzp3.jpg
  44. BIN
      public/themes/default/index/public/assets/img/cuowzp4.jpg
  45. BIN
      public/themes/default/index/public/assets/img/cuowzp5.jpg
  46. BIN
      public/themes/default/index/public/assets/img/education.png
  47. BIN
      public/themes/default/index/public/assets/img/error_avatar/cuowzp1.jpg
  48. BIN
      public/themes/default/index/public/assets/img/error_avatar/cuowzp2.jpg
  49. BIN
      public/themes/default/index/public/assets/img/error_avatar/cuowzp3.jpg
  50. BIN
      public/themes/default/index/public/assets/img/error_avatar/cuowzp4.jpg
  51. BIN
      public/themes/default/index/public/assets/img/error_avatar/cuowzp5.jpg
  52. BIN
      public/themes/default/index/public/assets/img/icon/del.png
  53. BIN
      public/themes/default/index/public/assets/img/icon/scroll.png
  54. BIN
      public/themes/default/index/public/assets/img/icon/size.png
  55. BIN
      public/themes/default/index/public/assets/img/info/birthday.png
  56. BIN
      public/themes/default/index/public/assets/img/info/education.png
  57. BIN
      public/themes/default/index/public/assets/img/info/height.png
  58. BIN
      public/themes/default/index/public/assets/img/info/map.png
  59. BIN
      public/themes/default/index/public/assets/img/info/married.png
  60. BIN
      public/themes/default/index/public/assets/img/info/position.png
  61. BIN
      public/themes/default/index/public/assets/img/listen-active.png
  62. BIN
      public/themes/default/index/public/assets/img/listen-small.png
  63. BIN
      public/themes/default/index/public/assets/img/listen.png
  64. BIN
      public/themes/default/index/public/assets/img/logo.jpg
  65. BIN
      public/themes/default/index/public/assets/img/love.png
  66. BIN
      public/themes/default/index/public/assets/img/no-pic.png
  67. BIN
      public/themes/default/index/public/assets/img/position.png
  68. BIN
      public/themes/default/index/public/assets/img/price.png
  69. BIN
      public/themes/default/index/public/assets/img/property.png
  70. BIN
      public/themes/default/index/public/assets/img/qr_backage - 副本.jpg
  71. BIN
      public/themes/default/index/public/assets/img/qrcode.jpg
  72. BIN
      public/themes/default/index/public/assets/img/recommend_bg.png
  73. BIN
      public/themes/default/index/public/assets/img/rule - 副本.png
  74. BIN
      public/themes/default/index/public/assets/img/rule.png
  75. BIN
      public/themes/default/index/public/assets/img/share.png
  76. BIN
      public/themes/default/index/public/assets/img/time.png
  77. BIN
      public/themes/default/index/public/assets/img/tubiao1.png
  78. BIN
      public/themes/default/index/public/assets/img/tubiao10.png
  79. BIN
      public/themes/default/index/public/assets/img/tubiao16.png
  80. BIN
      public/themes/default/index/public/assets/img/tubiao17.png
  81. BIN
      public/themes/default/index/public/assets/img/tubiao19.png
  82. BIN
      public/themes/default/index/public/assets/img/tubiao2.png
  83. BIN
      public/themes/default/index/public/assets/img/tubiao24.png
  84. BIN
      public/themes/default/index/public/assets/img/tubiao25.png
  85. BIN
      public/themes/default/index/public/assets/img/tubiao26.png
  86. BIN
      public/themes/default/index/public/assets/img/tubiao27.png
  87. BIN
      public/themes/default/index/public/assets/img/tubiao28.png
  88. BIN
      public/themes/default/index/public/assets/img/tubiao29.png
  89. BIN
      public/themes/default/index/public/assets/img/tubiao30.png
  90. BIN
      public/themes/default/index/public/assets/img/tubiao31.png
  91. BIN
      public/themes/default/index/public/assets/img/tubiao32.png
  92. BIN
      public/themes/default/index/public/assets/img/tubiao33.png
  93. BIN
      public/themes/default/index/public/assets/img/tubiao34.png
  94. BIN
      public/themes/default/index/public/assets/img/tubiao35.png
  95. BIN
      public/themes/default/index/public/assets/img/tubiao36.png
  96. BIN
      public/themes/default/index/public/assets/img/tubiao37.png
  97. BIN
      public/themes/default/index/public/assets/img/tubiao38.png
  98. BIN
      public/themes/default/index/public/assets/img/tubiao39.png
  99. BIN
      public/themes/default/index/public/assets/img/tubiao40.png
  100. 0 0
      public/themes/default/index/public/assets/img/tubiao41.png

+ 18 - 0
app/api/controller/GoodsController.php

@@ -0,0 +1,18 @@
+<?php
+/**
+ * 商品
+ * @author wesmiler
+ */
+namespace app\api\controller;
+use app\index\service\Goods;
+
+class GoodsController extends BaseController
+{
+
+    public function getList(){
+        $pageSize = input('pageSize', 12);
+        $dataList = Goods::getList(input(), $pageSize);
+        showJson(1001, 1004, $dataList);
+    }
+
+}

+ 52 - 0
app/api/controller/LoginController.php

@@ -0,0 +1,52 @@
+<?php
+/**
+ * 登录
+ * @author wesmiler
+ */
+namespace app\api\controller;
+use app\index\service\Users;
+use app\index\validate\UsersValidate;
+
+class LoginController extends BaseController
+{
+    /**
+     * 账号注册
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function register(){
+        $params = input();
+        $validate = new UsersValidate();
+        if (!$validate->scene('reg')->check($params)) {
+            showJson(1002, $validate->getError());
+        }
+
+        if(!Users::saveData($params)){
+            showJson(1002, 1011);
+        }
+
+        showJson(1001, 1012);
+    }
+
+
+    /**
+     * 账号注册
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function login(){
+        $params = input();
+        $validate = new UsersValidate();
+        if (!$validate->scene('login')->check($params)) {
+            showJson(1002, $validate->getError());
+        }
+
+        $result = Users::login($params);
+        if(!is_array($result)){
+            showJson(1002, $result);
+        }
+
+        showJson(1001, 1013, $result);
+    }
+}
+

+ 34 - 0
app/api/controller/MemberController.php

@@ -0,0 +1,34 @@
+<?php
+/**
+ * 会员
+ * @author wesmiler
+ */
+namespace app\api\controller;
+use app\index\service\Users;
+
+class MemberController extends BaseController
+{
+
+    /**
+     * 获取活动详情
+     */
+    public function getInfo(){
+        $id = input('id');
+        $info = Users::getInfo(['id'=> $id]);
+        if($info){
+            if(isset($info['mobile'])){
+                $info['mobile'] = $info['mobile']? formatName($info['mobile']) : '游客';
+            }
+
+            if(isset($info['user_login'])){
+                $info['user_login'] = $info['user_login']? formatName($info['user_login']) : '';
+            }
+            if(isset($info['avatar'])){
+                $info['avatar'] = $info['avatar']? cmf_get_image_preview_url($info['avatar']) : '';
+            }
+            showJson(1002,1005, $info);
+        }else{
+            showJson(1001,1004);
+        }
+    }
+}

+ 4 - 1
app/api/controller/TaskController.php

@@ -1,5 +1,7 @@
 <?php
-
+/**
+ * 任务
+ */
 namespace app\api\controller;
 
 use app\index\model\GoodsModel;
@@ -40,6 +42,7 @@ class TaskController extends Controller
                         continue;
                     }
 
+                    $goodsInfo['created_at'] = date('Y-m-d H:i:s');
                     $goodIds[] = $productId;
                     $goodsList[] = $goodsInfo;
                     PRedis::set($cacheKey, json_encode($goodsInfo, 256), 3600);

+ 0 - 8
app/demo/README.md

@@ -1,8 +0,0 @@
-ThinkCMF 演示应用
-===============
-
-### 加载第三方库
-支持使用`composer`加载第三方库
-```
-composer require phpoffice/phpspreadsheet
-```

+ 0 - 13
app/demo/composer.json

@@ -1,13 +0,0 @@
-{
-    "name": "thinkcmf/apps-demo",
-    "description": "ThinkCMF demo app",
-    "type": "cmf-app",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "catman",
-            "email": "catman@thinkcmf.com"
-        }
-    ],
-    "require": {}
-}

+ 0 - 11
app/demo/vendor/.gitignore

@@ -1,11 +0,0 @@
-.buildpath
-.DS_Store
-.project
-.settings
-.idea
-.git
-/build
-/public/assets/dist
-/node_modules
-Vagrantfile
-.vagrant

+ 3 - 0
app/index/controller/IndexController.php

@@ -21,4 +21,7 @@ class IndexController extends HomeBaseController
     }
 
 
+    public function collect(){
+        return$this->fetch();
+    }
 }

+ 3 - 7
app/demo/controller/IndexController.php

@@ -9,19 +9,15 @@
 // | Author: 老猫 <thinkcmf@126.com>
 // +----------------------------------------------------------------------
 
-namespace app\demo\controller;
+namespace app\index\controller;
 
 use cmf\controller\HomeBaseController;
 
-class IndexController extends HomeBaseController
+class LoginController extends HomeBaseController
 {
     public function index()
     {
-        return $this->fetch(':index');
+        return $this->fetch();
     }
 
-    public function ws()
-    {
-        return $this->fetch(':ws');
-    }
 }

+ 23 - 0
app/index/controller/MemberController.php

@@ -0,0 +1,23 @@
+<?php
+// +----------------------------------------------------------------------
+// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Released under the MIT License.
+// +----------------------------------------------------------------------
+// | Author: 老猫 <thinkcmf@126.com>
+// +----------------------------------------------------------------------
+
+namespace app\index\controller;
+
+use cmf\controller\HomeBaseController;
+
+class MemberController extends HomeBaseController
+{
+    public function index()
+    {
+        return $this->fetch();
+    }
+
+}

+ 22 - 0
app/index/controller/RegisterController.php

@@ -0,0 +1,22 @@
+<?php
+// +----------------------------------------------------------------------
+// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Released under the MIT License.
+// +----------------------------------------------------------------------
+// | Author: 老猫 <thinkcmf@126.com>
+// +----------------------------------------------------------------------
+
+namespace app\index\controller;
+
+use cmf\controller\HomeBaseController;
+
+class RegisterController extends HomeBaseController
+{
+    public function index()
+    {
+        return $this->fetch('/login/register');
+    }
+}

+ 18 - 0
app/index/model/UserModel.php

@@ -0,0 +1,18 @@
+<?php
+// +----------------------------------------------------------------------
+// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+// +----------------------------------------------------------------------
+// | Author: 老猫 <thinkcmf@126.com>
+// +----------------------------------------------------------------------
+namespace app\index\model;
+
+use think\Model;
+
+class UserModel extends Model
+{
+
+}

+ 48 - 0
app/index/service/Goods.php

@@ -19,4 +19,52 @@ class Goods
         }
         return GoodsModel::where(['product_id'=> $productId])->value('id');
     }
+
+    /**
+     * 获取列表
+     * @param $params
+     * @param int $pageSize
+     * @param string $field
+     * @param string $order
+     * @return $this
+     * @throws \think\exception\DbException
+     */
+    public static function getList($params, $pageSize = 15, $field = '', $order = '')
+    {
+        $statusArr = [1,2,3];
+        $status = isset($params['status'])? intval($params['status']) : 0;
+        if($status){
+            $statusArr = [$status];
+        }
+
+        $currencys = ['CNY'=> '¥','USD'=>'$'];
+        $order = $order ? $order : 'start_date desc,created_at desc,id desc';
+        $field = $field ? $field : 'id,title,full_title,product_id,thumb,current_price,discounted,currency,start_date,publish_date,publish_type,created_at,status';
+        return GoodsModel::whereIn('status', $statusArr)
+            ->field($field)
+            ->order($order)
+            ->paginate($pageSize)
+            ->each(function ($item, $k) use($currencys) {
+                $curTime = strtotime(date('Y-m-d'));
+                $startTime = isset($item['start_date'])? strtotime($item['start_date']) : '';
+                $publishTime = isset($item['publish_date'])? strtotime($item['publish_date']) : '';
+                if(time()>= $startTime && time() <= $startTime+7200){
+                    $item['status'] = 2;
+                }else if(time()<$startTime){
+                    $item['status'] = 1;
+                }else{
+                    $item['status'] = 3;
+                }
+
+
+                $item['thumb'] = isset($item['thumb']) ? cmf_get_image_preview_url($item['thumb']) : '';
+                $item['publish_date'] = $publishTime ? date('Y.m.d H:i', $publishTime) : '未公布';
+                $item['start_date'] = $startTime ? date('Y.m.d H:i', $startTime) : '未公布';
+
+                $currencyKey = isset($item['currency'])? trim($item['currency']): '';
+                $item['currency'] = isset($currencys[$currencyKey])? $currencys[$currencyKey] : '';
+                return $item;
+            });
+
+    }
 }

+ 1 - 1
app/index/service/Grab.php

@@ -62,7 +62,7 @@ class Grab
                 $goodInfo['start_date'] = $startDate? date('Y-m-d H:i:s', strtotime($startDate)) : '';
                 $publishDate = isset($merchProduct['commercePublishDate'])? trim($merchProduct['commercePublishDate']) : '';
                 $goodInfo['publish_date'] = $publishDate? date('Y-m-d H:i:s', strtotime($publishDate)) : '';
-                $goodInfo['publish_type'] = isset($merchProduct['publishType'])? trim($merchProduct['publishType']) : '';
+                $goodInfo['publish_type'] = isset($merchProduct['publishType'])? strtolower($merchProduct['publishType']) : '';
                 $status = isset($merchProduct['status'])? trim($merchProduct['status']) : '';
                 $goodInfo['status'] = strtolower($status) == 'active'? 1 : 3;
 

+ 95 - 0
app/index/service/Users.php

@@ -0,0 +1,95 @@
+<?php
+/**
+ * 短信服务
+ * @author wesmiler
+ */
+
+namespace app\index\service;
+use app\index\model\UserModel;
+
+class Users
+{
+    /**
+     * 更新数据
+     * @param $params
+     * @return int|string
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public static function saveData($params){
+        $id = isset($params['id'])? intval($params['id']) : 0;
+        $data = [
+            'mobile'=> isset($params['mobile'])? trim($params['mobile']) : '',
+            'user_login'=> isset($params['mobile'])? trim($params['mobile']) : '',
+            'user_nickname'=> isset($params['user_nickname'])? trim($params['user_nickname']) : '',
+            'user_type'=> isset($params['user_type'])? intval($params['user_type']) : 2,
+            'user_status'=> isset($params['user_status'])? intval($params['user_status']) : 1,
+            'avatar'=> isset($params['avatar'])? trim($params['avatar']) : '',
+        ];
+
+        $userPass = isset($params['password'])? trim($params['password']) : '';
+        if($userPass){
+            $data['user_pass'] = cmf_password($userPass);
+        }
+
+
+        if($id){
+            return UserModel::where(['id'=> $id])->update($data);
+        }else{
+            return UserModel::insertGetId($data);
+        }
+    }
+
+
+    /**
+     * 获取会员信息
+     * @param $where 条件
+     * @param string $field 字段
+     * @return array|false|\PDOStatement|string|Model
+     */
+    public static function getInfo($where, $field = "")
+    {
+        $field = $field ? $field : 'id,openid,user_nickname,user_type,avatar,user_login,user_status,mobile,balance,user_status';
+        $info = UserModel::where($where)->field($field)->find();
+
+        return $info ? $info->toArray() : [];
+    }
+
+    /**
+     * 用户登录
+     * @param $params 参数,mobile-必填,password-必填
+     * @return array|int
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public static function login($params){
+        $mobile = isset($params['mobile'])? trim($params['mobile']) : '';
+        $password = isset($params['password'])? trim($params['password']) : '';
+
+        $userInfo = UserModel::where(['mobile|user_login'=> $mobile])
+            ->field('id,user_login,mobile,user_pass,user_nickname,user_status,avatar')
+            ->find();
+
+        if(is_null($userInfo) || empty($userInfo)){
+            return 1015;
+        }
+
+        $userPassword = isset($userInfo['user_pass'])? $userInfo['user_pass'] : '';
+        if(!cmf_compare_password($password, $userPassword)){
+            return 1016;
+        }
+
+        $userStatus = isset($userInfo['user_status'])? intval($userInfo['user_status']) : 0;
+        if($userStatus != 1){
+            return 1017;
+        }
+        $userInfo['mobile'] = formatName($userInfo['mobile']);
+        $userInfo['user_login'] = formatName($userInfo['user_login']);
+        unset($userInfo['user_pass']);
+        session('UID', $userInfo['id']);
+        $token = md5($userInfo['id'].'qxq');
+        PRedis::set('tokens:'.$token, $userInfo, 24*3600);
+        return ['token'=> $token, 'userInfo'=> $userInfo];
+    }
+}

+ 53 - 0
app/index/validate/GoodValidate.php

@@ -0,0 +1,53 @@
+<?php
+// +----------------------------------------------------------------------
+// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+// +----------------------------------------------------------------------
+// | Author: 小夏 < 449134904@qq.com>
+// +----------------------------------------------------------------------
+namespace app\index\validate;
+
+use think\Validate;
+
+class GoodValidate extends Validate
+{
+    protected $rule = [
+        'goods_name' => 'require|chsDash|length:2,50',
+        'sku' => 'require|chsDash|length:2,30',
+        'score' => 'require|number|length:1,10',
+        'stock' => 'require|number|length:1,10',
+        'cate_id' => 'require|number|length:1,10',
+        'albums' => 'require',
+    ];
+    protected $message = [
+        'goods_name.require' => '商品名称不为空',
+        'goods_name.*' => '商品名称格式不正确',
+        'score.require' => '商品兑换所需积分不为空',
+        'score.*' => '商品兑换所需积分格式错误',
+        'sku.require' => '商品库存不为空',
+        'sku.*' => '商品库存格式不正确',
+        'cate_id.require' => '商品分类不为空',
+        'cate_id.*' => '商品分类格式错误',
+        'albums.require' => '商品相册不为空',
+    ];
+
+    protected $field = [
+        'goods_name'=> '商品名称',
+        'score'=> '兑换所需积分',
+        'stock'=> '商品库存',
+        'cate_id'=> '商品分类',
+        'albums'=> '商品相册',
+    ];
+
+    protected $regex = [
+        'mobile'=> '/^((13[0-9])|(14[5,7])|(15[0-9])|(16[6-8])|(17[0,1,3,5-8])|(18[0-9])|(19[8,9]))\\d{8}$/',
+        'pwd'=> '/^[0-9a-zA-Z][0-9a-zA-Z\_\!\@\#\$\%\^\&\*\(\)]{2,19}/',
+    ];
+
+    protected $scene = [
+        'info'  => ['goods_name','score','stock','cate_id','albums'],
+    ];
+}

+ 69 - 0
app/index/validate/UsersValidate.php

@@ -0,0 +1,69 @@
+<?php
+// +----------------------------------------------------------------------
+// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
+// +----------------------------------------------------------------------
+// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
+// +----------------------------------------------------------------------
+// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+// +----------------------------------------------------------------------
+// | Author: 小夏 < 449134904@qq.com>
+// +----------------------------------------------------------------------
+namespace app\index\validate;
+
+use think\Validate;
+
+class UsersValidate extends Validate
+{
+    protected $rule = [
+        'mobile' => 'require|mobile|length:11,20',
+        'code' => 'require|alphaNum|length:4,8',
+        'password' => 'require|pwd|length:4,20',
+        'realname' => 'require|chs',
+        'nickname' => 'require',
+        'account' => 'require|alphaNum|length:2,30',
+    ];
+    protected $message = [
+        'mobile.require' => '手机号码不为空',
+        'mobile.mobile' => '手机号码格式不正确',
+        'mobile.length' => '手机号码格式不正确',
+        'code.require' => '手机验证码不为空',
+        'code.alphaNum' => '手机验证码格式不正确',
+        'code.length' => '手机验证码格式不正确',
+        'password.require' => '登录密码不为空',
+        'password.pwd' => '登录密码格式不正确',
+        'password.length' => '登录密码格式不正确',
+        'now_address.require' => '请选择现居地址',
+        'now_address.*' => '现居地址格式不正确',
+        'home_address.require' => '请选择家乡地址',
+        'realname.require' => '真实姓名不为空',
+        'realname.chs' => '真实姓名格式不正确',
+        'nickname.require' => '请填写昵称',
+        'nickname.chs' => '昵称格式不正确',
+        'height.require' => '请填写身高信息',
+        'height.length' => '身高格式不正确',
+        'weight.require' => '请填写体重信息',
+        'weight.length' => '身高格式不正确',
+        'weight.integer' => '体重格式错误',
+        'sex.require' => '请选择性别',
+        'brithday.require' => '请选择出生日期',
+        'married.require' => '请选择婚姻状况',
+        'wechat_code.require' => '请填写微信号',
+        'idcard.require' => '请填写身份证号码',
+        'idcard.idcard' => '请填写正确格式的身份证号码',
+        'graduate.require' => '请填写毕业学校名称',
+        'eduacation.require' => '请选择您的学历',
+        'company.require' => '请填写就职公司名称',
+        'occupation.require' => '请选择职业',
+    ];
+
+    protected $regex = [
+        'mobile'=> '/^((13[0-9])|(14[5,7])|(15[0-9])|(16[6-8])|(17[0,1,3,5-8])|(18[0-9])|(19[1-9]))\\d{8}$/',
+        'pwd'=> '/^[0-9a-zA-Z][0-9a-zA-Z\_\!\@\#\$\%\^\&\*\(\)]{2,19}/',
+        'idcard'=> '/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/',
+    ];
+
+    protected $scene = [
+        'reg'  => ['nickname','mobile','password'],
+        'login'  => ['mobile','password'],
+    ];
+}

+ 1 - 1
public/themes/default/index/block/footer.html

@@ -1,3 +1,3 @@
-<script src="__TMPL__/weixin/public/assets/lib/jweixin-1.4.0.js?v={$version}"></script>
+<script src="__TMPL__/index/public/assets/lib/jweixin-1.4.0.js?v={$version}"></script>
 </body>
 </html>

+ 13 - 14
public/themes/default/index/block/footer_nav.html

@@ -1,24 +1,23 @@
 <footer class="bottom">
     <ul>
-        <a href="/weixin/match/index#list_1">
+        <!--<a href="/index/goods/collect">
             <li>
-                <img v-if="curNav=='match'" src="__TMPL__/weixin/public/assets/img/tubiao51.png">
-                <img v-else src="__TMPL__/weixin/public/assets/img/tubiao5.png">
-                <p>脱单</p>
+                <img v-if="curNav=='match'" src="__TMPL__/index/public/assets/img/tubiao51.png">
+                <img v-else src="__TMPL__/index/public/assets/img/tubiao5.png">
+                <p>收藏</p>
             </li>
-        </a>
+        </a>-->
         <a href="/">
-            <li>
-                <img v-if="curNav=='index' || curNav==''" src="__TMPL__/weixin/public/assets/img/activity-active.png">
-                <img v-else src="__TMPL__/weixin/public/assets/img/activity.png">
-                <!--<img v-else src="__TMPL__/weixin/public/assets/img/tubiao6.png">-->
-                <p>活动</p>
+            <li :class="curNav=='index' || curNav==''? 'active' : 'nav'">
+                <img v-if="curNav=='index' || curNav==''" src="__TMPL__/index/public/assets/img/listen-active.png">
+                <img v-else src="__TMPL__/index/public/assets/img/listen.png">
+                <p>监控</p>
             </li>
         </a>
-        <a href="/weixin/member/index">
-            <li>
-                <img v-if="curNav=='member'" src="__TMPL__/weixin/public/assets/img/tubiao71.png">
-                <img v-else src="__TMPL__/weixin/public/assets/img/tubiao7.png">
+        <a href="/index/member/index">
+            <li :class="curNav=='member'? 'active' : 'nav'">
+                <img v-if="curNav=='member'" src="__TMPL__/index/public/assets/img/tubiao71.png">
+                <img v-else src="__TMPL__/index/public/assets/img/tubiao7.png">
                 <p>我的</p>
             </li>
         </a>

+ 8 - 7
public/themes/default/index/block/header.html

@@ -9,12 +9,13 @@
     <meta name="author" content="{$site_info.author|default='拾光单身'}">
     <meta name="keywords" content="{$site_info.keywords|default='拾光单身'}">
     <meta name="description" content="{$site_info.description|default='拾光单身'}">
-    <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/weui.min.css?v={$version}">
-    <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/jquery-weui.min.css?v={$version}">
-    <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/font-awesome.min.css?v={$version}">
-    <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/base.css?v={$version}">
-    <script src="__TMPL__/weixin/public/assets/lib/jquery.min.js?v={$version}"></script>
-    <script src="__TMPL__/weixin/public/assets/lib/vue.min.js?v={$version}"></script>
-    <script src="__TMPL__/weixin/public/assets/lib/jquery-weui.min.js?v={$version}"></script>
+    <link rel="stylesheet" href="__TMPL__/index/public/assets/css/weui.min.css?v={$version}">
+    <link rel="stylesheet" href="__TMPL__/index/public/assets/css/jquery-weui.min.css?v={$version}">
+    <link rel="stylesheet" href="__TMPL__/index/public/assets/css/font-awesome.min.css?v={$version}">
+    <link rel="stylesheet" href="__TMPL__/index/public/assets/css/base.css?v={$version}">
+    <script src="__TMPL__/index/public/assets/lib/jquery.min.js?v={$version}"></script>
+    <script src="__TMPL__/index/public/assets/lib/vue.min.js?v={$version}"></script>
+    <script src="__TMPL__/index/public/assets/lib/jquery-weui.min.js?v={$version}"></script>
+    <script src="__TMPL__/index/public/assets/js/common.js?v={$version}"></script>
 </head>
 <body>

+ 38 - 14
public/themes/default/index/index.html

@@ -1,17 +1,41 @@
 <include file="index@block:header"/>
-<title>抓取列表</title>
-<div id="app" >
-        <div>
-            <iframe src="http://www.nike.com/launch?s=upcoming" frameborder="0"></iframe>
-        </div>
-    <script>
-        
-    </script>
-
+<title>新品预售发布监控</title>
+<link rel="stylesheet" href="__TMPL__/index/public/assets/css/goods.css?v={$version}">
+<div id="app" v-cloak>
+    <div class="fanhui2"><h1>新品预售发布监控</h1></div>
+    <div class="tips" v-if="hasFollow==0"><a @click="showFollow()">关注拾光公众号,接收微信申请和结果反馈</a><span @click="hasFollow=true">x</span></div>
+    <div class="huod_bj"></div>
+    <div :class="!hasFollow? 'huodo_lb hasFollow' : 'huodo_lb'">
+        <ul>
+            <li v-if="dataList.length<=0" class="empty"><span>暂无数据</span></li>
+            <li v-else v-for="(item,k) in dataList">
+                <div class="biaot">
+                    <img class="hdzut thumb" src="" :data-src="item.thumb" onerror="this.src='__TMPL__/index/public/assets/img/no-pic.png'">
+                    <div :class="'zhuangt status'+ item.status">
+                        <span v-if="item.status == 1">待发布</span>
+                        <span v-else-if="item.status == 2">进行中</span>
+                        <span v-else>已结束</span>
+                    </div>
+                </div>
+                <h1 v-text="item.full_title"></h1>
+                <div class="hdbt"><img src="__TMPL__/index/public/assets/img/price.png">
+                    <p>
+                        <span class="price" v-text="item.currency+''+item.current_price"></span>
+                        <span v-if="item.publish_type=='flow'">FLOW排队</span>
+                        <span v-else-if="item.publish_type=='launch'">LAUNCH发布</span>
+                        <span v-else-if="item.publish_type=='leo'">LEO排队抽签</span>
+                        <span v-else-if="item.publish_type=='dan'">DAN抽签</span>
+                        <span v-else>其他</span>
+                    </p>
+                </div>
+                <div class="hdbt"><img src="__TMPL__/index/public/assets/img/time.png">
+                    <p>{{item.start_date}}</p>
+                </div>
+            </li>
+        </ul>
+    </div>
+    <!-- 底部菜单 -->
+    <include file="index@block:footer_nav"/>
 </div>
-<script>
-    /*$.load('https://www.nike.com/launch?s=upcoming', function(res){
-        console.log(res)
-    })*/
-</script>
+<script src="__TMPL__/index/public/assets/js/goods.js?v={$version}"></script>
 <include file="index@block:footer"/>

+ 3 - 3
public/themes/default/index/index/about.html

@@ -1,10 +1,10 @@
 <include file="weixin@block:header"/>
 <!--<title>关于拾光</title>-->
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/about.css?v={$version}">
+<link rel="stylesheet" href="__TMPL__/index/public/assets/css/about.css?v={$version}">
 <div id="app" v-cloak>
     <div class="fanhui2">
         <h1 v-text="info.post_title">关于拾光</h1>
-        <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a href="/weixin/member/index"><img src="__TMPL__/index/public/assets/img/tubiao37.png"></a>
     </div>
     <div class="main">
         <div class="huodxq_nr" v-html="info.post_content">
@@ -12,5 +12,5 @@
         </div>
     </div>
 </div>
-<script src="__TMPL__/weixin/public/assets/js/about.js?v={$version}"></script>
+<script src="__TMPL__/index/public/assets/js/about.js?v={$version}"></script>
 <include file="weixin@block:footer"/>

+ 4 - 4
public/themes/default/index/index/custom.html

@@ -1,10 +1,10 @@
 <include file="weixin@block:header"/>
 <!--<title>客服中心</title>-->
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/custom.css?v={$version}">
+<link rel="stylesheet" href="__TMPL__/index/public/assets/css/custom.css?v={$version}">
 <div id="app" v-cloak>
     <div class="fanhui2">
         <h1>客服列表</h1>
-        <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a href="/weixin/member/index"><img src="__TMPL__/index/public/assets/img/tubiao37.png"></a>
     </div>
     <div class="main">
         <div class="shouc_lb">
@@ -26,6 +26,6 @@
         </div>
     </div>
 </div>
-<script src="__TMPL__/weixin/public/assets/lib/clipboard.min.js?v={$version}"></script>
-<script src="__TMPL__/weixin/public/assets/js/custom.js?v={$version}"></script>
+<script src="__TMPL__/index/public/assets/lib/clipboard.min.js?v={$version}"></script>
+<script src="__TMPL__/index/public/assets/js/custom.js?v={$version}"></script>
 <include file="weixin@block:footer"/>

+ 0 - 60
public/themes/default/index/index/entry - 副本.html

@@ -1,60 +0,0 @@
-<include file="weixin@block:header"/>
-<title>完善资料</title>
-<link rel="stylesheet" type="text/css" href="__TMPL__/weixin/public/assets/css/entry.css?v={$version}" />
-<link rel="stylesheet" type="text/css" href="__TMPL__/weixin/public/assets/css/lcalendar.css?v={$version}" />
-<div id="app" v-cloak>
-    <div class="tox_box">
-        <div class="xixi_tox" @click="showPop">
-            <img id="avatar" :src="params.avatar? params.avatar : '__TMPL__/weixin/public/assets/img/tup1.jpg'">
-        </div>
-        <p>点击头像上传真实靓照可以获得更多关注哦</p>
-    </div>
-
-    <div class="gerxix_box">
-        <ul>
-            <li><h1>昵称</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="nickname" class="tianx" type="text" placeholder="请填写" v-model="params.nickname"></li>
-            <li><h1>姓名</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="realname" class="tianx" type="text" placeholder="请填写" v-model="params.realname"></li>
-            <li><h1>手机号</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="mobile" class="tianx" type="text" v-model="params.mobile" placeholder="请填写" ></li>
-            <li><h1>验证码</h1>
-                <input id="btnSendCode" type="button" class="yanzm" :value="timeText" @Click="sendCode()"/>
-                <input id="code1" type="text" class="yanzm_wb" v-model="params.code" autocomplete="off" placeholder="短信验证码">
-            </li>
-            <li><h1>出生日期</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input class="tianx" type="text" name="date" id="birthday" placeholder="请选择" readonly /></li>
-            <li><h1>性别</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="sex" class="tianx select-value3"  type="text" placeholder="请选择" ></li>
-            <li><h1>身高</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="height" class="tianx select-value4" type="text" placeholder="请选择" ></li>
-            <li><h1>体重</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="weight" class="tianx select-value5" type="text" placeholder="请选择" ></li>
-            <li><h1>现居</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="now_address" class="tianx select-value" :value="defaults.address"  type="text" placeholder="请选择" ></li>
-            <li><h1>家乡</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="home_address" class="tianx select-value1" type="text" :value="defaults.address"  placeholder="请选择" ></li>
-            <li><h1>婚姻状况</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="married" class="tianx select-value6" type="text" placeholder="请选择" ></li>
-        </ul>
-    </div>
-    <div class="ger_banc">
-        <h1 @click="postSubmit();">完成</h1>
-    </div>
-    <div class="pop" v-show="uploadBox">
-        <div class="guanbi"></div>
-        <div class="popMain">
-            <div class="popMiddle">
-                <ul>
-                    <h1>请上传本人真实正面照,以下形式的图片将不会通过审核</h1>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp1.jpg"><p>大头照</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp2.jpg"><p>不雅照</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp3.jpg"><p>动漫图片</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp4.jpg"><p>模糊照片</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp5.jpg"><p>证件照</p></li>
-
-                </ul>
-                <h2 class="select-pic">从相册选择照片<input type="file" accept="image/*" id="upload" class="upload" @change="selectImg($event,'#avatar')" value="上传"></h2>
-                <!--<h2>拍摄</h2>-->
-            </div>
-
-            <div class="popBottom" @click="showPop">取消</div>
-        </div>
-
-    </div>
-</div>
-<include file="weixin@block:footer"/>
-<script src="__TMPL__/weixin/public/assets/lib/city-picker.min.js?v={$version}"></script>
-<script src="__TMPL__/weixin/public/assets/lib/lcalendar.js?v={$version}" type="text/javascript"></script>
-<!--<script src="__TMPL__/weixin/public/assets/js/profile.js?v={$version}" type="text/javascript"></script>-->
-<script src="__TMPL__/weixin/public/assets/js/entry.js?v={$version}" type="text/javascript"></script>

+ 0 - 91
public/themes/default/index/index/entry.html

@@ -1,91 +0,0 @@
-<include file="weixin@block:header"/>
-<title>注册用户</title>
-<link rel="stylesheet" type="text/css" href="/static/lib/cropper/cropper.css?v={$version}"/>
-<link rel="stylesheet" type="text/css" href="__TMPL__/weixin/public/assets/css/entry.css?v={$version}" />
-<link rel="stylesheet" type="text/css" href="__TMPL__/weixin/public/assets/css/lcalendar.css?v={$version}" />
-<div id="app" v-cloak>
-    <div class="tox_box">
-        <div class="xixi_tox" @click="showPop()">
-            <img id="avatar" :src="params.avatar? params.avatar : '__TMPL__/weixin/public/assets/img/tup1.jpg'">
-        </div>
-        <p>点击头像上传真实靓照可以获得更多关注哦</p>
-    </div>
-    <div class="gerxix_box">
-        <ul>
-            <li><h1>昵称</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="nickname" class="tianx" type="text" placeholder="请填写" v-model="params.nickname"></li>
-            <!--<li><h1>姓名</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="realname" class="tianx" type="text" placeholder="请填写" v-model="params.realname"></li>-->
-            <li><h1>微信号</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="wechat_code" class="tianx" type="text" placeholder="请填写" v-model="params.wechat_code"></li>
-            <li><h1>手机号</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="mobile" class="tianx" type="text" v-model="params.mobile" placeholder="请填写" maxlength="11"></li>
-            <li><h1>验证码</h1>
-                <input id="btnSendCode" type="button" class="yanzm" :value="timeText" @Click="sendCode()"/>
-                <input id="code" type="text" class="yanzm_wb" v-model="params.code" maxlength="6" autocomplete="off" placeholder="短信验证码">
-            </li>
-            <li><h1>出生日期</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input class="tianx" type="text" name="date" id="birthday" placeholder="请选择"  /></li>
-            <li><h1>性别</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="sex" class="tianx select-value3" type="text" placeholder="请选择" :data-code="params.sex"></li>
-            <li><h1>身高</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="height" class="tianx select-value4" type="text" placeholder="请选择" data-code="0"></li>
-            <li><h1>体重</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="weight" class="tianx select-value5" type="text" placeholder="请选择" data-code="0"></li>
-            <li><h1>现居</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="now_address" class="tianx select-value" type="text" placeholder="请选择" code="" data-code=""></li>
-            <li><h1>家乡</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="home_address" class="tianx select-value1" type="text"  placeholder="请选择" code="" data-code=""></li>
-            <li><h1>婚姻状况</h1><img class="minzu" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><input id="married" class="tianx select-value6" type="text" placeholder="请选择" data-code="0"></li>
-        </ul>
-    </div>
-    <div class="ger_banc">
-        <h1 @click="postSubmit();">完成</h1>
-    </div>
-    <div class="pop" v-show="uploadBox">
-        <div class="guanbi"></div>
-        <div class="popMain">
-            <div class="popMiddle">
-                <ul>
-                    <h1>请上传本人真实正面照,以下形式的图片将不会通过审核</h1>
-                    <li><img src="__TMPL__/weixin/public/assets/img/cuowzp1.jpg?v=1"><p>大头照</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp2.jpg"><p>不雅照</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp3.jpg"><p>动漫图片</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp4.jpg"><p>模糊照片</p></li>
-                    <li><img src="__TMPL__/weixin/public/assets/img/error_avatar/cuowzp5.jpg"><p>证件照</p></li>
-
-                </ul>
-                <h2 class="select-pic">从相册选择照片<input type="file" accept="image/*" id="upload" class="upload" @change="selectImg($event,'avatar')" value="上传"></h2>
-                <!--<h2>拍摄</h2>-->
-            </div>
-
-            <div class="popBottom" @click="showPop()">取消</div>
-        </div>
-
-    </div>
-    <div id="cropBox" class="weui-popup__container">
-        <div class="weui-popup__overlay"></div>
-        <div class="weui-popup__modal">
-            <div class="crop-preview">
-                <div id="preview" class="preview">
-                    <div class="del" @click="cropCancel('avatar')"><img src="__TMPL__/weixin/public/assets/img/icon/del.png" alt=""></div>
-                    <div id="preview_box" class="preview-box">
-                        <img id="preview_avatar" class="preview-img" src="" data-src="" alt="">
-                    </div>
-                    <div id="cropPreview" class="preview-box">
-
-                    </div>
-                    <div class="desc">
-                        个人描述
-                    </div>
-                    <div class="tips">
-                        <span> <img src="__TMPL__/weixin/public/assets/img/icon/size.png" alt="">拖拽</span>
-                        <span><img src="__TMPL__/weixin/public/assets/img/icon/scroll.png" alt="">移动</span>
-                    </div>
-                </div>
-            </div>
-            <div class="crop-actions">
-                <a class="weui-btn weui-btn_default" @click="cropReset('avatar')">重置</a>
-                <a class="weui-btn weui-btn_default" @click="cropConfirm('avatar')">完成</a>
-            </div>
-
-        </div>
-    </div>
-</div>
-<include file="weixin@block:footer"/>
-<script src="/static/lib/cropper/cropper.js?v={$version}" type="text/javascript"></script>
-<script src="__TMPL__/weixin/public/assets/lib/city-picker.min.js?v={$version}"></script>
-<script src="__TMPL__/weixin/public/assets/lib/lcalendar.js?v={$version}" type="text/javascript"></script>
-<!--<script src="__TMPL__/weixin/public/assets/js/profile.js?v={$version}" type="text/javascript"></script>-->
-<script src="__TMPL__/weixin/public/assets/lib/html2canvas.min.js?v={$version}" type="text/javascript"></script>
-<script src="__TMPL__/weixin/public/assets/js/entry.js?v={$version}" type="text/javascript"></script>

+ 2 - 2
public/themes/default/index/index/match.html

@@ -1,6 +1,6 @@
 <include file="weixin@block:header"/>
 <title>南宁拾光单身活动</title>
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/match.css?v={$version}">
+<link rel="stylesheet" href="__TMPL__/index/public/assets/css/match.css?v={$version}">
 <style>
     body {
         background: #fff;
@@ -65,5 +65,5 @@
         </div>
     </div>
 </div>
-<script src="__TMPL__/weixin/public/assets/js/match-test.js?v={$version}"></script>
+<script src="__TMPL__/index/public/assets/js/match-test.js?v={$version}"></script>
 <include file="weixin@block:footer"/>

+ 0 - 16
public/themes/default/index/index/rule.html

@@ -1,16 +0,0 @@
-<include file="weixin@block:header"/>
-<!--<title>违规处罚</title>-->
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/about.css?v={$version}">
-<div id="app" v-cloak>
-    <div class="fanhui2">
-        <h1 v-text="info.post_title">违规行为处罚规则</h1>
-        <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
-    </div>
-    <div class="main">
-        <div class="huodxq_nr" v-html="info.post_content">
-            暂无内容
-        </div>
-    </div>
-</div>
-<script src="__TMPL__/weixin/public/assets/js/rule.js?v={$version}"></script>
-<include file="weixin@block:footer"/>

+ 22 - 0
public/themes/default/index/login/index.html

@@ -0,0 +1,22 @@
+<include file="index@block:header"/>
+<title>用户登录</title>
+<link rel="stylesheet" type="text/css" href="__TMPL__/index/public/assets/css/login.css?v={$version}" />
+<div id="app" v-cloak>
+    <div class="tox_box">
+        <div class="xixi_tox" >
+            <img id="avatar" :src="params.avatar? params.avatar : '__TMPL__/index/public/assets/img/tup1.jpg'">
+        </div>
+    </div>
+    <div class="gerxix_box">
+        <ul>
+            <li><h1>手机号</h1><img class="minzu" src="__TMPL__/index/public/assets/img/tubiao10.png"><input id="mobile" class="tianx" type="text" v-model="params.mobile" placeholder="请填写" maxlength="11"></li>
+            <li><h1>登录密码</h1><img class="minzu" src="__TMPL__/index/public/assets/img/tubiao10.png"><input id="password" class="tianx" type="password" v-model="params.password" placeholder="请填写" maxlength="20"></li>
+        </ul>
+    </div>
+    <div class="ger_banc">
+        <h1 @click="postSubmit();">登录</h1>
+        <a class="login" href="/index/register/index">没有账号,去注册</a>
+    </div>
+</div>
+<include file="index@block:footer"/>
+<script src="__TMPL__/index/public/assets/js/login.js?v={$version}" type="text/javascript"></script>

+ 26 - 0
public/themes/default/index/login/register.html

@@ -0,0 +1,26 @@
+<include file="index@block:header"/>
+<title>注册用户</title>
+<link rel="stylesheet" type="text/css" href="__TMPL__/index/public/assets/css/register.css?v={$version}" />
+<div id="app" v-cloak>
+    <div class="tox_box">
+        <div class="xixi_tox" >
+            <img id="preview_avatar" :src="params.avatar? params.avatar : '__TMPL__/index/public/assets/img/tup1.jpg'">
+            <input type="file" accept="image/*" id="upload" class="upload" @change="selectImg($event,'avatar')" value="上传">
+        </div>
+        <p>点击头像上传</p>
+    </div>
+    <div class="gerxix_box">
+        <ul>
+            <li><h1>昵称</h1><img class="minzu" src="__TMPL__/index/public/assets/img/tubiao10.png"><input id="nickname" class="tianx" type="text" placeholder="请填写" v-model="params.nickname"></li>
+            <li><h1>手机号</h1><img class="minzu" src="__TMPL__/index/public/assets/img/tubiao10.png"><input id="mobile" class="tianx" type="text" v-model="params.mobile" placeholder="请填写" maxlength="11"></li>
+            <li><h1>登录密码</h1><img class="minzu" src="__TMPL__/index/public/assets/img/tubiao10.png"><input id="password" class="tianx" type="password" v-model="params.password" placeholder="请填写" maxlength="20"></li>
+            <li><h1>确认密码</h1><img class="minzu" src="__TMPL__/index/public/assets/img/tubiao10.png"><input id="checkPassword" class="tianx" type="password" v-model="params.checkPassword" placeholder="请填写" maxlength="20"></li>
+        </ul>
+    </div>
+    <div class="ger_banc">
+        <h1 @click="postSubmit();">注册</h1>
+        <a class="login" href="/index/login/index">已有账号,去登录</a>
+    </div>
+</div>
+<include file="index@block:footer"/>
+<script src="__TMPL__/index/public/assets/js/register.js?v={$version}" type="text/javascript"></script>

+ 50 - 0
public/themes/default/index/member/index.html

@@ -0,0 +1,50 @@
+<include file="index@block:header"/>
+<title>我的</title>
+<link rel="stylesheet" href="__TMPL__/index/public/assets/css/member.css?v={$version}">
+<div id="app" v-cloak >
+    <div id="main" class="main-box">
+        <div class="tox_box">
+            <!--<img src="__TMPL__/index/public/assets/img/tubiao9.png">-->
+            <div class="tox_xx">
+                <div class="tox"> <img :src="memberInfo.avatar? memberInfo.avatar : '__TMPL__/index/public/assets/img/avatar.png'"  onerror="this.src='__TMPL__/index/public/assets/img/avatar.png'"></div>
+                <div class="wod_xim">
+                    <h1 v-text="memberInfo.user_nickname? memberInfo.user_nickname : '游客'"></h1>
+                    <p><a href="/index/member/profile">查看/编辑个人信息</a></p>
+                </div>
+            </div>
+        </div>
+        <div class="zhobu_box">
+            <div class="zhubu">
+                <a href="/index/goods/listen">
+                    <h1 v-text="memberInfo.goods_listen? memberInfo.goods_listen : 0">0</h1>
+                    <p>我的监控</p>
+                </a>
+            </div>
+            <div class="zhubu">
+                <a href="/index/goods/collect">
+                    <h1 v-text="memberInfo.goods_collect? memberInfo.goods_collect : 0">0</h1>
+                    <p>我的收藏</p>
+                </a>
+            </div>
+        </div>
+        <div class="liebr_box">
+            <ul>
+                <a href="/index/goods/listen">
+                    <li><img src="__TMPL__/index/public/assets/img/listen-small.png">
+                        <p>我的监控</p><img class="rjiant" src="__TMPL__/index/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/index/member/account">
+                    <li><img src="__TMPL__/index/public/assets/img/account.png">
+                        <p>快抢账号</p><img class="rjiant" src="__TMPL__/index/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/index/page/about">
+                    <li class="bangd_s"><img src="__TMPL__/index/public/assets/img/about.png">
+                        <p>关于平台</p><img class="rjiant" src="__TMPL__/index/public/assets/img/tubiao10.png"></li>
+                </a>
+            </ul>
+        </div>
+    </div>
+    <include file="index@block:footer_nav"/>
+</div>
+<script src="__TMPL__/index/public/assets/js/member.js?v={$version}"></script>
+<include file="index@block:footer"/>

+ 13 - 6
public/themes/default/index/public/assets/css/base.css

@@ -7,14 +7,14 @@ body{background: #efefef; overflow-x: hidden;width: 100%;height: 100%; margin: 0
 .fanhui img{width: 60%;margin-top: 20%;margin-left: 12%;}
 
 .fanhui2{
-	height: 40px;
-	background: #ffd132;
+	height: 50px;
+	background: #ff9c32;
 	padding: 0 2%;
 	position: fixed;
 	width: 96%;
 	z-index: 99;
 }
-.fanhui2 h1{font-size: 18px;color: #333;text-align: center;line-height: 40px;}
+.fanhui2 h1{font-size: 18px;color: #fff;text-align: center;line-height: 50px;}
 .fanhui2 img{width: 20px;position: absolute;top: 10px;}
 [v-cloak]{
 	display: none;
@@ -75,17 +75,24 @@ body{background: #efefef; overflow-x: hidden;width: 100%;height: 100%; margin: 0
 
 /* 地区弹窗样式调整 */
 .toolbar .picker-button {
-	color: #ffd132;
+	color: #ff9c32;
 }
 
 .weui-picker-modal .picker-item.picker-selected {
-	color: #ffd132;
+	color: #ff9c32;
 }
 /* end*/
 
 /* 底部菜单 */
 .bottom{height: 49px;background: #fff;width: 100%; position: fixed;bottom: 0;z-index: 999;border-top: 1px solid #e6e6e6;}
-.bottom li{display: block;width:33.333%;height: 49px;text-align: center;float: left;}
+.bottom li{display: block;width:50%;height: 49px;text-align: center;float: left;}
+/*.bottom li{display: block;width:33.333%;height: 49px;text-align: center;float: left;}*/
 .bottom img{width: 22px;margin-top: 5px;}
 .bottom li p{font-size: 12px;color: #f1c21f;line-height: 12px;}
+.bottom li.nav p {
+  color: #bfbfbf;
+}
 
+.bottom li.active p {
+	color: #ff9c32;
+}

+ 127 - 0
public/themes/default/index/public/assets/css/goods.css

@@ -0,0 +1,127 @@
+.fanhui2{position: fixed;top: 0;width: 100%;padding: 0;z-index: 9999;}
+.huod_bj{width: 100%;position:fixed;top: 0px;z-index: -9999;}
+.huod_bj img{width: 100%;}
+
+
+.huodo_lb{padding: 0 15px;margin-bottom: 60px;overflow: hidden;margin-top: 60px;}
+.huodo_lb li{
+    overflow: hidden;
+    width: 100%;
+    margin-top: 15px;
+    background: #fff;
+    display: block;
+    border-radius: 6px;
+}
+.huodo_lb li.loaded {
+    background: none;
+}
+
+.price {
+    color: #ff9c32;
+    font-weight: bold;
+}
+.huodo_lb li.empty {
+    background: none;
+}
+.tips {
+    height: 30px;
+    background: #2f2e2e;
+    width: 100%;
+    position: fixed;
+    top: 0;
+    z-index: 999;
+    color: #fff;
+    text-align: center;
+    line-height: 30px;
+    font-size: 14px;
+}
+.follow img {
+    width: 100%;
+    height: 100%;
+}
+.tips a {
+    color: #fff;
+}
+.tips span {
+    float: right;
+    margin-right: .5rem;
+    border-radius: 100%;
+    display: inline-block;
+    width: 20px;
+    text-align: center;
+    background: #ccc;
+    height: 20px;
+    line-height: 20px;
+    margin-top: 5px;
+}
+.huodo_lb.hasFollow {
+    margin-top: 40px;
+}
+.biaot{
+    width: 100%;
+    /*height: 160px;*/
+    overflow: hidden;
+    position: relative;
+    border-bottom: 1px solid #ccc;
+    background: #fff;
+}
+.hdzut{width: 100%;display: block;height: 100%; height: ;  background-color: #e3e3db;}
+.zhuangt{position: absolute;top: 10px;right: 0;background:#e62977;padding:4px 8px 4px  14px;font-size: 12px;color: #fff;border-radius: 20px 0 0 20px;}
+.tomin{width: 100%;height: 34px;position: absolute;bottom: 0;}
+.tomin img{width: 22px;height: 22px;float: left;overflow: hidden;border-radius: 50%;border: 1px solid #fff;margin-left:6px;}
+
+.tomin p{font-size: 14px;color: #fff;line-height: 24px;margin-left:10px;float: left;}
+
+
+.hdbt{width:100%;overflow: hidden;}
+.hdbt img{
+    width: 20px;
+    height: 20px;
+    float: left;
+    margin-top: 8px;
+    margin-left: 4px;
+}
+.hdbt p{
+    font-size: 14px;
+    line-height: 36px;
+    color: #999;
+    margin-left: 4px;
+    float: left;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 1;
+    overflow: hidden;
+    max-width: 80%;
+}
+
+.huodo_lb li h1{
+    width: 95%;
+    font-size: 16px;
+    line-height: 30px;
+    color: #333;
+    font-weight: bold;
+    word-break: break-all;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+    overflow: hidden;
+    margin-left: 4px;
+}
+
+
+
+.huodo_lb .status1 {
+    /*background: #d4d4d4;*/
+    background: #ff9c32;
+}
+
+.huodo_lb .status2 {
+    background: #e62977;
+}
+
+.huodo_lb .status3 {
+    /*background: #ff9c32;*/
+    background: #d4d4d4;
+}

+ 412 - 0
public/themes/default/index/public/assets/css/login.css

@@ -0,0 +1,412 @@
+html,body{
+    width: 100%;
+    font-family: "微软雅黑";
+    font-size: 1em;
+    margin: 0;
+    padding: 0;
+    height: 100%;
+}
+img{
+    width: 100%;
+    margin: 0;
+    padding: 0;
+}
+
+.need {
+    color: red;
+    margin: 10px .05rem;
+    display: inline-block;
+    height: 20px;
+    line-height: 20px;
+    margin-top: 10px;
+}
+
+.xixi_tox img {
+    width: 100%;
+    height: 100%;
+}
+/*index*/
+.main_page{
+    width: 100%;
+    height: 100%;
+}
+.top_div{
+    width: 100%;
+    height: 40vw;
+    background: #506695;
+    overflow: hidden;
+}
+.logo{
+    width: 18%;
+    margin: 10px auto 5px auto;
+}
+.top_text_1,.top_text_2{
+    width: 100%;
+    text-align: center;
+    line-height: 7vw;
+    color: white;
+    font-size: 4.5vw;
+}
+.top_text_2{
+    margin-bottom: 5vw;
+}
+.nine_button{
+    width: 100%;
+}
+.button{
+    width: 33.33%;
+    height: 33.33vw;
+    float: left;
+    font-size: 4vw;
+}
+.button_img{
+    width: 20%;
+    margin: 30% auto 5% auto;
+}
+.button_text{
+    width: 100%;
+    text-align: center;
+}
+/*release_record*/
+.release_main{
+    width: 100%;
+}
+.release_title{
+    width: 100%;
+    height: 15vw;
+    overflow: hidden;
+    background: #f2f2f2;
+}
+.release_title_left{
+    width: 49.5%;
+    height: 10vw;
+    margin:2.5vw 0;
+    float: left;
+    border-right: 2px solid #8E97AF;
+    overflow: hidden;
+}
+.left_img{
+    width: 15%;
+    margin: 1.4vw 3% 1.6vw 15%;
+    float: left;
+}
+.left_text{
+    width: 67%;
+    float: left;
+    font-size: 3vw;
+    line-height: 4vw;
+    margin-top: 1.5vw;
+    color: #506695;
+}
+.release_title_right{
+    width: 49.5%;
+    height: 10vw;
+    margin:2.5vw 0;
+    float: right;
+}
+.right_img{
+    width: 15%;
+    margin: 1.4vw 3% 1.6vw 15%;
+    float: left;
+}
+.right_text{
+    width: 67%;
+    float: left;
+    font-size: 3vw;
+    line-height: 4vw;
+    margin-top: 1.5vw;
+    color: #506695;
+}
+.gray_text{
+    color: #8D8D8D;
+}
+.release_records{
+    width: 100%;
+}
+.record{
+    width: 100%;
+    height:13vw ;
+    border-bottom: 1px solid #ECECEC;
+}
+.record_left{
+    width: 47%;
+    padding-left: 3%;
+    float: left;
+    text-align: left;
+    margin-top: 1vw;
+}
+.record_right{
+    width: 47%;
+    padding-right: 3%;
+    float: left;
+    text-align: right;
+    margin-top: 1vw;
+}
+.record_left_top,.record_right_top{
+    font-size: 4.1vw;
+    line-height: 7vw;
+}
+.record_left_bottom,.record_right_bottom{
+    font-size: 3.5vw;
+    color: #8D8D8D;
+}
+.record_small{
+    font-size: 2.5vw;
+    color: #8D8D8D;
+}
+/*select_record*/
+.select_start_date{
+    width: 100%;
+    height: 12vw;
+    font-size: 4vw;
+    color: #666666;
+    overflow: hidden;
+    line-height: 12vw;
+    border-bottom: 1px solid darkgray;
+}
+.start_date_left{
+    width: 47%;
+    padding-left: 3%;
+    float: left;
+}
+.start_date_right{
+    width: 47%;
+    padding-right: 3%;
+    text-align: right;
+    float: left;
+}
+.start_date_right input{
+    background:transparent;
+    border: none;
+    font-size: 4vw;
+    color: #666666;
+    text-align: center;
+}
+.select_records{
+    width: 100%;
+    margin-top: 6vw;
+}
+
+.gear.date_dd {
+    display: none;
+}
+.date_grid{
+    display: block;
+    text-indent: -90rem;
+}
+.date_roll>div:nth-child(1), .datetime_roll>div:nth-child(1),.date_roll>div:nth-child(2), .datetime_roll>div:nth-child(2)  {
+    -webkit-box-flex: 4;
+    -webkit-flex: 4;
+    -ms-flex: 4;
+    flex: 4;
+}
+
+.tox_box{position: 0 15px;background: #ff9c32;overflow: hidden;padding-bottom: 15px;border-radius:0 0 10px 10px;}
+.tox_box p{font-size: 16px;color: #fff;text-align: center;}
+.xixi_tox{height: 100px;width: 100px;background: #fff;margin: auto;border-radius: 100%;overflow: hidden;margin-top:30px;margin-bottom: 15px;position: relative}
+
+.gerxix_box{padding: 0px 15px;background: #fff;margin-top: 10px;border-radius:10px;}
+
+.xixi_bt2{height: 56px;}
+
+.xixi_bt h1{border-left: 4px solid #ff9c32;font-size: 16px;color: #333;font-weight: bold;padding-left: 10px;height: 22px;line-height:22px;margin-top: 9px;}
+
+.xixi_bt p{font-size: 12px;color: #999;line-height: 20px;margin-top: 6px;}
+
+.gerxix_box li{height: 40px;width: 100%;border-bottom: 1px solid #efefef;overflow: hidden;list-style: none}
+
+.gerxix_box li h1{float: left;font-size: 14px;line-height:40px;}
+
+.tianx{font-size: 14px;color: #333;width: 55%;height: 40px;float: right;line-height: 40px;margin-right: 15px;text-align: right;border: none;outline: medium;}
+
+.minzu{float: right;width:12px;margin-top:14px;}
+
+
+.ger_banc{margin-top: 10px; padding: 15px;background: #fff;border-radius:10px 10px 0 0 ;}
+
+.ger_banc h1{font-size: 18px;height: 45px;line-height: 45px;text-align: center;background: #ff9c32;color: #fff;border-radius: 6px;margin-top: 20px;}
+
+.yanzm_wb{font-size: 14px;color: #333;width:35%;height: 40px;float: right;line-height: 40px;margin-right: 15px;text-align: left;border: none;outline: medium;}
+.yanzm{font-size: 12px;color: #333;width:20%;height: 26px;float: right;line-height: 26px;border: none;outline: medium;background: #ff9c32;margin-top: 7px;width: 80px;text-align: center;border-radius: 4px;}
+
+input:-internal-autofill-selected{background-color: #fff;}
+
+/* 上传 */
+#cropPreview {
+    display: none;
+}
+.select-pic {
+    position: relative;
+}
+.upload {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+    z-index: 2;
+    opacity: 0;
+}
+
+/*	头像弹窗样式开始*/
+.pop{
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 999999;
+    overflow-y: hidden;
+}
+.guanbi{
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background: rgba(0, 0, 0, 0.6);
+
+}
+.popMiddle{background: #fff;overflow: hidden;}
+.pop .popMain{
+    width: 100%;
+    position: absolute;
+    bottom: 0;
+    z-index: 99999;
+}
+.popMiddle h1{text-align: center;padding: 15px;color: #666;font-size: 12px;}
+.popMiddle ul{width: 100%;overflow: hidden;padding-bottom: 15px;}
+.popMiddle h2{
+    text-align: center;
+    color: #333;
+    font-size: 16px;
+    line-height: 44px;
+    border-top: 1px solid #d2d2d2;
+    border-bottom: 1px solid #d2d2d2;
+}
+.popMiddle li{width: 20%;overflow: hidden;text-align: center;float: left;}
+.popMiddle li img{width: 92%;border-radius: 10px;overflow: hidden;}
+.popMiddle p{font-size: 12px; color: #666;margin-top: 6px;}
+.popBottom{
+    position: relative;
+    bottom: 0;
+    left: 0;
+    display: block;
+    text-align: center;
+    width: 100%;
+    height: 45px;
+    background: #fff;
+    font-size: 16px;
+    line-height: 45px;
+}
+
+/*	头像弹窗样式结束*/
+
+/* 地区弹窗样式调整 */
+.toolbar .picker-button {
+    color: #ff9c32;
+}
+
+.weui-picker-modal .picker-item.picker-selected {
+    color: #ff9c32;
+}
+/* end*/
+
+
+/* 裁剪 */
+.crop-preview {
+    margin-top: 40px;
+    height: calc(100% - 105px);
+}
+.crop-preview .preview {
+    height: 100%;
+    background: rgba(152, 147, 147, 0.2);
+    position: relative;
+    width: 100%;
+}
+.crop-preview .preview-box {
+    height: 425px;
+    width: 343px;
+    position: absolute;
+    right: 0;
+    left: 0;
+    margin: auto;
+    overflow: hidden;
+    bottom: 102px;
+    border-top-left-radius: 4px;
+    border-top-right-radius: 4px;
+}
+
+.crop-preview .desc {
+    position: absolute;
+    bottom: 42px;
+    text-align: center;
+    color: #666;
+    height: 60px;
+    line-height: 60px;
+    width: 343px;
+    border: 1px solid #fff;
+    margin: 0 auto;
+    left: 0;
+    right: 0;
+    background: #fff;
+    border-bottom-left-radius: 4px;
+    border-bottom-right-radius: 4px;
+}
+.crop-preview .del {
+    position: absolute;
+    top: 5px;
+    right: 5px;
+}
+.crop-preview .del img {
+    height: 30px;
+    width: 30px;
+}
+.crop-preview .tips {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    text-align: center;
+}
+.crop-preview .tips span {
+    color: #999;
+}
+.crop-preview .tips img {
+    width: 30px;
+    margin-right: 10px;
+}
+.crop-preview .preview-box .preview-img {
+    width: 100%;
+    height: 100%;
+}
+.crop-actions {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    text-align: center;
+    margin: 10px 0;
+}
+
+.crop-actions a {
+    width: 47%;
+    display: inline-block;
+    margin-left: 2%;
+    padding: 0;
+    margin-top: 0 !important;
+    float: left;
+}
+
+.crop-actions a:last-child {
+    color: #fff;
+    background: #ff9c32;
+}
+
+.login {
+    color: #000;
+    font-size: 14px;
+    line-height: 40px;
+    text-align: center;
+    width: 100%;
+    display: block;
+    margin: .5rem auto;
+}
+/*end */

+ 54 - 0
public/themes/default/index/public/assets/css/member.css

@@ -0,0 +1,54 @@
+.tox_box{width: 100%;    background: #ff9d32;background-size: 100%;overflow: hidden;margin-top: -10px;min-height: 220px;}
+.tox_box img{width: 100%;position: relative;top: 0;}
+.tox_xx{margin-top: 50px;position: absolute;top: 0;left: 15px;}
+.tox{width: 88px;height: 88px;background: #fff;margin: auto;border-radius: 50%;float: left;}
+.wod_xim{float: left;margin-left: 20px;}
+.tox_box h1{color: #fff;font-size: 18px;margin-top: 16px;}
+.tox_box p{color: #fff;font-size: 14px;margin-top: 6px;}
+
+
+
+.zhobu_box{width: 100%;height:86px;overflow: hidden;background: #fff;margin-top: -2px;}
+.zhubu{width: 50%;text-align: center;float: left;margin-top: 10px;}
+.zhubu h1{font-size: 26px;color: #ff9d32;font-weight: bold;}
+.zhubu p{font-size: 14px;color: #666;margin-top:5px;letter-spacing:1px;}
+.zhubu a {color: #ff9d32;}
+
+.main-box {
+    margin-bottom: 60px;
+}
+.liebr_box{width: 100%;overflow: hidden;margin-top: 10px;}
+.liebr_box li{display: block;width: 100%;height: 44px;background: #fff;border-bottom: 1px solid #efefef;}
+.liebr_box li img{width: 28px;float: left;margin-left: 12px;margin-top: 8px;}
+.liebr_box li p{font-size: 14px;line-height: 44px;float: left;margin-left: 10px;color: #666;}
+.liebr_box li h2.no{font-size: 12px;background:  #ff9d32;width: 50px;height: 22px;line-height: 22px;float: right;text-align: center;border-radius: 4px;color: #333;margin-top: 11px;}
+.liebr_box li h2.auth{background: none; float: right;margin-top: 8px;}
+.liebr_box li h3{font-size: 12px;background:  #ff9d32;float: right;text-align: center;border-radius: 130px;color: #333;margin-top: 11px;padding: 4px 8.5px;}
+.wod_xim  p a {
+    color: #fff;
+    text-decoration: none;
+}
+.bangd_s{border-bottom: none!important;}
+.tox img {
+    width: 100%;
+    height: 100%;
+    border-radius: 100%;
+}
+
+.liebr_box li .rule {
+    height: 22px;
+    width: 22px;
+    padding: 0px 3px;
+}
+
+.liebr_box li span img {
+    vertical-align: middle;
+    margin: 0;
+    width: auto;
+}
+
+.rjiant{width:12px!important;float: right!important;margin-right: 15px;margin-top:16px!important;}
+.yaoqrk{background: #fff;padding-bottom:20px;position: relative;}
+.yaoqrk h2{font-size: 16px;padding:6px;text-align: center;border:1px solid  #ff9d32;overflow: hidden;margin: 0 20px;color:#f5c432;border-radius: 6px;}
+
+.yaoqrk img{position: absolute;right: 30px;top: 11px;width: 14px;}

+ 412 - 0
public/themes/default/index/public/assets/css/register.css

@@ -0,0 +1,412 @@
+html,body{
+    width: 100%;
+    font-family: "微软雅黑";
+    font-size: 1em;
+    margin: 0;
+    padding: 0;
+    height: 100%;
+}
+img{
+    width: 100%;
+    margin: 0;
+    padding: 0;
+}
+
+.need {
+    color: red;
+    margin: 10px .05rem;
+    display: inline-block;
+    height: 20px;
+    line-height: 20px;
+    margin-top: 10px;
+}
+
+.xixi_tox img {
+    width: 100%;
+    height: 100%;
+}
+/*index*/
+.main_page{
+    width: 100%;
+    height: 100%;
+}
+.top_div{
+    width: 100%;
+    height: 40vw;
+    background: #506695;
+    overflow: hidden;
+}
+.logo{
+    width: 18%;
+    margin: 10px auto 5px auto;
+}
+.top_text_1,.top_text_2{
+    width: 100%;
+    text-align: center;
+    line-height: 7vw;
+    color: white;
+    font-size: 4.5vw;
+}
+.top_text_2{
+    margin-bottom: 5vw;
+}
+.nine_button{
+    width: 100%;
+}
+.button{
+    width: 33.33%;
+    height: 33.33vw;
+    float: left;
+    font-size: 4vw;
+}
+.button_img{
+    width: 20%;
+    margin: 30% auto 5% auto;
+}
+.button_text{
+    width: 100%;
+    text-align: center;
+}
+/*release_record*/
+.release_main{
+    width: 100%;
+}
+.release_title{
+    width: 100%;
+    height: 15vw;
+    overflow: hidden;
+    background: #f2f2f2;
+}
+.release_title_left{
+    width: 49.5%;
+    height: 10vw;
+    margin:2.5vw 0;
+    float: left;
+    border-right: 2px solid #8E97AF;
+    overflow: hidden;
+}
+.left_img{
+    width: 15%;
+    margin: 1.4vw 3% 1.6vw 15%;
+    float: left;
+}
+.left_text{
+    width: 67%;
+    float: left;
+    font-size: 3vw;
+    line-height: 4vw;
+    margin-top: 1.5vw;
+    color: #506695;
+}
+.release_title_right{
+    width: 49.5%;
+    height: 10vw;
+    margin:2.5vw 0;
+    float: right;
+}
+.right_img{
+    width: 15%;
+    margin: 1.4vw 3% 1.6vw 15%;
+    float: left;
+}
+.right_text{
+    width: 67%;
+    float: left;
+    font-size: 3vw;
+    line-height: 4vw;
+    margin-top: 1.5vw;
+    color: #506695;
+}
+.gray_text{
+    color: #8D8D8D;
+}
+.release_records{
+    width: 100%;
+}
+.record{
+    width: 100%;
+    height:13vw ;
+    border-bottom: 1px solid #ECECEC;
+}
+.record_left{
+    width: 47%;
+    padding-left: 3%;
+    float: left;
+    text-align: left;
+    margin-top: 1vw;
+}
+.record_right{
+    width: 47%;
+    padding-right: 3%;
+    float: left;
+    text-align: right;
+    margin-top: 1vw;
+}
+.record_left_top,.record_right_top{
+    font-size: 4.1vw;
+    line-height: 7vw;
+}
+.record_left_bottom,.record_right_bottom{
+    font-size: 3.5vw;
+    color: #8D8D8D;
+}
+.record_small{
+    font-size: 2.5vw;
+    color: #8D8D8D;
+}
+/*select_record*/
+.select_start_date{
+    width: 100%;
+    height: 12vw;
+    font-size: 4vw;
+    color: #666666;
+    overflow: hidden;
+    line-height: 12vw;
+    border-bottom: 1px solid darkgray;
+}
+.start_date_left{
+    width: 47%;
+    padding-left: 3%;
+    float: left;
+}
+.start_date_right{
+    width: 47%;
+    padding-right: 3%;
+    text-align: right;
+    float: left;
+}
+.start_date_right input{
+    background:transparent;
+    border: none;
+    font-size: 4vw;
+    color: #666666;
+    text-align: center;
+}
+.select_records{
+    width: 100%;
+    margin-top: 6vw;
+}
+
+.gear.date_dd {
+    display: none;
+}
+.date_grid{
+    display: block;
+    text-indent: -90rem;
+}
+.date_roll>div:nth-child(1), .datetime_roll>div:nth-child(1),.date_roll>div:nth-child(2), .datetime_roll>div:nth-child(2)  {
+    -webkit-box-flex: 4;
+    -webkit-flex: 4;
+    -ms-flex: 4;
+    flex: 4;
+}
+
+.tox_box{position: 0 15px;background: #ff9c32;overflow: hidden;padding-bottom: 15px;border-radius:0 0 10px 10px;}
+.tox_box p{font-size: 16px;color: #fff;text-align: center;}
+.xixi_tox{height: 100px;width: 100px;background: #fff;margin: auto;border-radius: 100%;overflow: hidden;margin-top:30px;margin-bottom: 15px;position: relative}
+
+.gerxix_box{padding: 0px 15px;background: #fff;margin-top: 10px;border-radius:10px;}
+
+.xixi_bt2{height: 56px;}
+
+.xixi_bt h1{border-left: 4px solid #ff9c32;font-size: 16px;color: #333;font-weight: bold;padding-left: 10px;height: 22px;line-height:22px;margin-top: 9px;}
+
+.xixi_bt p{font-size: 12px;color: #999;line-height: 20px;margin-top: 6px;}
+
+.gerxix_box li{height: 40px;width: 100%;border-bottom: 1px solid #efefef;overflow: hidden;list-style: none}
+
+.gerxix_box li h1{float: left;font-size: 14px;line-height:40px;}
+
+.tianx{font-size: 14px;color: #333;width: 55%;height: 40px;float: right;line-height: 40px;margin-right: 15px;text-align: right;border: none;outline: medium;}
+
+.minzu{float: right;width:12px;margin-top:14px;}
+
+
+.ger_banc{margin-top: 10px; padding: 15px;background: #fff;border-radius:10px 10px 0 0 ;}
+
+.ger_banc h1{font-size: 18px;height: 45px;line-height: 45px;text-align: center;background: #ff9c32;color: #fff;border-radius: 6px;margin-top: 20px;}
+
+.yanzm_wb{font-size: 14px;color: #333;width:35%;height: 40px;float: right;line-height: 40px;margin-right: 15px;text-align: left;border: none;outline: medium;}
+.yanzm{font-size: 12px;color: #333;width:20%;height: 26px;float: right;line-height: 26px;border: none;outline: medium;background: #ff9c32;margin-top: 7px;width: 80px;text-align: center;border-radius: 4px;}
+
+input:-internal-autofill-selected{background-color: #fff;}
+
+/* 上传 */
+#cropPreview {
+    display: none;
+}
+.select-pic {
+    position: relative;
+}
+.upload {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+    z-index: 2;
+    opacity: 0;
+}
+
+/*	头像弹窗样式开始*/
+.pop{
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 999999;
+    overflow-y: hidden;
+}
+.guanbi{
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background: rgba(0, 0, 0, 0.6);
+
+}
+.popMiddle{background: #fff;overflow: hidden;}
+.pop .popMain{
+    width: 100%;
+    position: absolute;
+    bottom: 0;
+    z-index: 99999;
+}
+.popMiddle h1{text-align: center;padding: 15px;color: #666;font-size: 12px;}
+.popMiddle ul{width: 100%;overflow: hidden;padding-bottom: 15px;}
+.popMiddle h2{
+    text-align: center;
+    color: #333;
+    font-size: 16px;
+    line-height: 44px;
+    border-top: 1px solid #d2d2d2;
+    border-bottom: 1px solid #d2d2d2;
+}
+.popMiddle li{width: 20%;overflow: hidden;text-align: center;float: left;}
+.popMiddle li img{width: 92%;border-radius: 10px;overflow: hidden;}
+.popMiddle p{font-size: 12px; color: #666;margin-top: 6px;}
+.popBottom{
+    position: relative;
+    bottom: 0;
+    left: 0;
+    display: block;
+    text-align: center;
+    width: 100%;
+    height: 45px;
+    background: #fff;
+    font-size: 16px;
+    line-height: 45px;
+}
+
+/*	头像弹窗样式结束*/
+
+/* 地区弹窗样式调整 */
+.toolbar .picker-button {
+    color: #ff9c32;
+}
+
+.weui-picker-modal .picker-item.picker-selected {
+    color: #ff9c32;
+}
+/* end*/
+
+
+/* 裁剪 */
+.crop-preview {
+    margin-top: 40px;
+    height: calc(100% - 105px);
+}
+.crop-preview .preview {
+    height: 100%;
+    background: rgba(152, 147, 147, 0.2);
+    position: relative;
+    width: 100%;
+}
+.crop-preview .preview-box {
+    height: 425px;
+    width: 343px;
+    position: absolute;
+    right: 0;
+    left: 0;
+    margin: auto;
+    overflow: hidden;
+    bottom: 102px;
+    border-top-left-radius: 4px;
+    border-top-right-radius: 4px;
+}
+
+.crop-preview .desc {
+    position: absolute;
+    bottom: 42px;
+    text-align: center;
+    color: #666;
+    height: 60px;
+    line-height: 60px;
+    width: 343px;
+    border: 1px solid #fff;
+    margin: 0 auto;
+    left: 0;
+    right: 0;
+    background: #fff;
+    border-bottom-left-radius: 4px;
+    border-bottom-right-radius: 4px;
+}
+.crop-preview .del {
+    position: absolute;
+    top: 5px;
+    right: 5px;
+}
+.crop-preview .del img {
+    height: 30px;
+    width: 30px;
+}
+.crop-preview .tips {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    text-align: center;
+}
+.crop-preview .tips span {
+    color: #999;
+}
+.crop-preview .tips img {
+    width: 30px;
+    margin-right: 10px;
+}
+.crop-preview .preview-box .preview-img {
+    width: 100%;
+    height: 100%;
+}
+.crop-actions {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    text-align: center;
+    margin: 10px 0;
+}
+
+.crop-actions a {
+    width: 47%;
+    display: inline-block;
+    margin-left: 2%;
+    padding: 0;
+    margin-top: 0 !important;
+    float: left;
+}
+
+.crop-actions a:last-child {
+    color: #fff;
+    background: #ff9c32;
+}
+
+.login {
+    color: #000;
+    font-size: 14px;
+    line-height: 40px;
+    text-align: center;
+    width: 100%;
+    display: block;
+    margin: .5rem auto;
+}
+/*end */

BIN
public/themes/default/index/public/assets/img/about.png


BIN
public/themes/default/index/public/assets/img/account.png


BIN
public/themes/default/index/public/assets/img/activity-active.png


BIN
public/themes/default/index/public/assets/img/activity.png


BIN
public/themes/default/index/public/assets/img/avatar.png


BIN
public/themes/default/index/public/assets/img/cuowzp1.jpg


BIN
public/themes/default/index/public/assets/img/cuowzp2.jpg


BIN
public/themes/default/index/public/assets/img/cuowzp3.jpg


BIN
public/themes/default/index/public/assets/img/cuowzp4.jpg


BIN
public/themes/default/index/public/assets/img/cuowzp5.jpg


BIN
public/themes/default/index/public/assets/img/education.png


BIN
public/themes/default/index/public/assets/img/error_avatar/cuowzp1.jpg


BIN
public/themes/default/index/public/assets/img/error_avatar/cuowzp2.jpg


BIN
public/themes/default/index/public/assets/img/error_avatar/cuowzp3.jpg


BIN
public/themes/default/index/public/assets/img/error_avatar/cuowzp4.jpg


BIN
public/themes/default/index/public/assets/img/error_avatar/cuowzp5.jpg


BIN
public/themes/default/index/public/assets/img/icon/del.png


BIN
public/themes/default/index/public/assets/img/icon/scroll.png


BIN
public/themes/default/index/public/assets/img/icon/size.png


BIN
public/themes/default/index/public/assets/img/info/birthday.png


BIN
public/themes/default/index/public/assets/img/info/education.png


BIN
public/themes/default/index/public/assets/img/info/height.png


BIN
public/themes/default/index/public/assets/img/info/map.png


BIN
public/themes/default/index/public/assets/img/info/married.png


BIN
public/themes/default/index/public/assets/img/info/position.png


BIN
public/themes/default/index/public/assets/img/listen-active.png


BIN
public/themes/default/index/public/assets/img/listen-small.png


BIN
public/themes/default/index/public/assets/img/listen.png


BIN
public/themes/default/index/public/assets/img/logo.jpg


BIN
public/themes/default/index/public/assets/img/love.png


BIN
public/themes/default/index/public/assets/img/no-pic.png


BIN
public/themes/default/index/public/assets/img/position.png


BIN
public/themes/default/index/public/assets/img/price.png


BIN
public/themes/default/index/public/assets/img/property.png


BIN
public/themes/default/index/public/assets/img/qr_backage - 副本.jpg


BIN
public/themes/default/index/public/assets/img/qrcode.jpg


BIN
public/themes/default/index/public/assets/img/recommend_bg.png


BIN
public/themes/default/index/public/assets/img/rule - 副本.png


BIN
public/themes/default/index/public/assets/img/rule.png


BIN
public/themes/default/index/public/assets/img/share.png


BIN
public/themes/default/index/public/assets/img/time.png


BIN
public/themes/default/index/public/assets/img/tubiao1.png


BIN
public/themes/default/index/public/assets/img/tubiao10.png


BIN
public/themes/default/index/public/assets/img/tubiao16.png


BIN
public/themes/default/index/public/assets/img/tubiao17.png


BIN
public/themes/default/index/public/assets/img/tubiao19.png


BIN
public/themes/default/index/public/assets/img/tubiao2.png


BIN
public/themes/default/index/public/assets/img/tubiao24.png


BIN
public/themes/default/index/public/assets/img/tubiao25.png


BIN
public/themes/default/index/public/assets/img/tubiao26.png


BIN
public/themes/default/index/public/assets/img/tubiao27.png


BIN
public/themes/default/index/public/assets/img/tubiao28.png


BIN
public/themes/default/index/public/assets/img/tubiao29.png


BIN
public/themes/default/index/public/assets/img/tubiao30.png


BIN
public/themes/default/index/public/assets/img/tubiao31.png


BIN
public/themes/default/index/public/assets/img/tubiao32.png


BIN
public/themes/default/index/public/assets/img/tubiao33.png


BIN
public/themes/default/index/public/assets/img/tubiao34.png


BIN
public/themes/default/index/public/assets/img/tubiao35.png


BIN
public/themes/default/index/public/assets/img/tubiao36.png


BIN
public/themes/default/index/public/assets/img/tubiao37.png


BIN
public/themes/default/index/public/assets/img/tubiao38.png


BIN
public/themes/default/index/public/assets/img/tubiao39.png


BIN
public/themes/default/index/public/assets/img/tubiao40.png


+ 0 - 0
public/themes/default/index/public/assets/img/tubiao41.png


Некоторые файлы не были показаны из-за большого количества измененных файлов