Browse Source

wesmiler 更新第5期更新代码合并

wesmiler 4 years ago
parent
commit
5aaece20ec
46 changed files with 2293 additions and 1024 deletions
  1. 2 6
      app/api/controller/AccountController.php
  2. 113 1
      app/api/controller/MemberController.php
  3. 1 1
      app/weixin/controller/IndexController.php
  4. 9 0
      app/weixin/controller/MemberController.php
  5. 64 0
      app/weixin/model/AccountLog.php
  6. 1 1
      app/weixin/model/Member.php
  7. 623 598
      app/weixin/model/Payment.php
  8. 118 0
      app/weixin/model/SignMeal.php
  9. 2 0
      app/weixin/model/UserLog.php
  10. 1 1
      app/weixin/service/Award.php
  11. 2 2
      data/config/weixin.php
  12. 17 5
      data/lang/admin_menu.php
  13. 87 0
      public/themes/admin_simpleboot3/admin/setting/sign_set.html
  14. 69 0
      public/themes/admin_simpleboot3/admin/setting/signs.html
  15. 8 0
      public/themes/admin_simpleboot3/admin/setting/site.html
  16. 11 3
      public/themes/admin_simpleboot3/user/admin_index/index.html
  17. 14 32
      public/themes/default/weixin/account/index.html
  18. 54 0
      public/themes/default/weixin/account/index_back.html
  19. 1 1
      public/themes/default/weixin/account/recharge.html
  20. 22 22
      public/themes/default/weixin/auth/hand.html
  21. 45 38
      public/themes/default/weixin/market/index.html
  22. 3 3
      public/themes/default/weixin/member/home.html
  23. 207 36
      public/themes/default/weixin/member/home_back.html
  24. 73 56
      public/themes/default/weixin/member/index.html
  25. 112 0
      public/themes/default/weixin/member/index_back.html
  26. 88 88
      public/themes/default/weixin/member/invite.html
  27. 31 0
      public/themes/default/weixin/member/signs.html
  28. 29 7
      public/themes/default/weixin/public/assets/css/account-index.css
  29. 7 0
      public/themes/default/weixin/public/assets/css/home.css
  30. 49 56
      public/themes/default/weixin/public/assets/css/market.css
  31. 0 5
      public/themes/default/weixin/public/assets/css/member-activity.css
  32. 55 47
      public/themes/default/weixin/public/assets/css/member.css
  33. 184 0
      public/themes/default/weixin/public/assets/css/sign.css
  34. 0 0
      public/themes/default/weixin/public/assets/img/help.png
  35. BIN
      public/themes/default/weixin/public/assets/img/new-award.png
  36. BIN
      public/themes/default/weixin/public/assets/img/new-market.png
  37. BIN
      public/themes/default/weixin/public/assets/img/new-red.png
  38. BIN
      public/themes/default/weixin/public/assets/img/new-user.png
  39. 15 2
      public/themes/default/weixin/public/assets/js/account-index.js
  40. 2 2
      public/themes/default/weixin/public/assets/js/entry.js
  41. 9 0
      public/themes/default/weixin/public/assets/js/home.js
  42. 2 2
      public/themes/default/weixin/public/assets/js/profile/info.js
  43. 99 0
      public/themes/default/weixin/public/assets/js/signs.js
  44. 45 1
      vendor/thinkcmf/cmf-app/src/admin/controller/SettingController.php
  45. 11 8
      vendor/thinkcmf/cmf-app/src/user/controller/AdminIndexController.php
  46. 8 0
      vendor/thinkcmf/cmf/src/lang/zh-cn.php

+ 2 - 6
app/api/controller/AccountController.php

@@ -4,6 +4,7 @@
  * @author wesmiler
  */
 namespace app\api\controller;
+use app\weixin\model\AccountLog;
 use app\weixin\model\HeartMeal;
 use app\weixin\model\Member;
 use app\weixin\model\Wechat;
@@ -106,12 +107,7 @@ class AccountController extends BaseController
         $type = input('lt',2);
         $pageSize = input('pageSize',20);
         $params['user_id'] = $this->userId;
-        if($type == 1){
-            $dataList = Member::getScoreLogs($params, $pageSize);
-        }else{
-            $dataList = Member::getBalanceLogs($params, $pageSize);
-        }
-
+        $dataList = AccountLog::getLogs($params, $pageSize);
         showJson(1005,1001, $dataList);
     }
 

+ 113 - 1
app/api/controller/MemberController.php

@@ -9,6 +9,7 @@ namespace app\api\controller;
 use app\weixin\model\Advice;
 use app\weixin\model\Complain;
 use app\weixin\model\HeartMeal;
+use app\weixin\model\SignMeal;
 use app\weixin\service\FaceAuth;
 use app\weixin\service\IdnAuth;
 use function AlibabaCloud\Client\value;
@@ -100,6 +101,16 @@ class MemberController extends BaseController
                 $memberInfo['invite_count'] = Member::getInviteCount($userId);
                 $memberInfo['profile_complete'] = UserProfile::checkUserProfile($userId) ? 1 : 0;
 //                $memberInfo['avatar'] = Wechat::loadImage($memberInfo['avatar'],'avatar');
+
+                $memberInfo['signed'] = 0;
+                $signDay = isset($memberInfo['sign_day'])? $memberInfo['sign_day'] : 0;
+                $signAt = isset($memberInfo['sign_at'])? $memberInfo['sign_at'] : '';
+                if($signDay && (empty($signAt) || $signAt <= date('Y-m-d', strtotime(date('Y-m-d')) - 86400))){
+                    $memberInfo['sign_day'] = 0;
+                    $memberInfo['sign_at'] = '';
+                }else if($signDay && (empty($signAt) || $signAt >= date('Y-m-d'))){
+                    $memberInfo['signed'] = 1;
+                }
             }
 
             if ($type == 3) {
@@ -1342,6 +1353,68 @@ class MemberController extends BaseController
     }
 
     /**
+     * 邀请认证
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public function inviteAuth(){
+        // 验证
+        $this->checkUser();
+        $uid = input('uid', 0);
+        $type = input('type', 1);
+        if($this->userId == $uid){
+            showJson(1004, 2009);
+        }
+        $info = Member::where(['id' => $this->userId, 'user_status'=> 1])->field('user_nickname,openid,vip_auth,vip_expire')->find();
+        if(empty($info)){
+            showJson(1004, 2140);
+        }
+        $nickname = isset($info['user_nickname'])? $info['user_nickname'] : '';
+
+
+        $memberInfo = Member::where(['id' => $uid, 'user_status'=> 1])->field('user_nickname,openid,vip_auth,vip_expire')->find();
+        if(empty($memberInfo)){
+            showJson(1004, 2140);
+        }
+
+        $cacheKey = 'messages:inviteAuth:' . $this->userId . '_' . $uid.'_'.$type;
+        if(PRedis::get($cacheKey)){
+            showJson(1004, 2141);
+        }
+
+        $nickname1 = isset($memberInfo['user_nickname'])? $memberInfo['user_nickname'] : '';
+        $openid = isset($memberInfo['openid'])? $memberInfo['openid'] : '';
+        $typeNames = [1=>'实名认证',2=>'工作认证',3=>'学历认证'];
+        if(empty($openid)){
+            showJson(1004, 2009);
+        }
+
+        $params = [
+            'title' => "您好亲亲{$nickname1},用户{$nickname}邀请您完成认证",
+            'remark' => "完成认证,可以让更多多人认识你哦!",
+            'type' => 'contact_confirm',
+            'keywords' => [
+                'keyword1' => [
+                    'value' => isset($typeNames[$type])? $typeNames[$type] : '认证',
+                    'color' => '#173177',
+                ],
+                'keyword2' => [
+                    'value' => '邀请认证',
+                    'color' => '#173177',
+                ],
+            ],
+            'url' => url("/weixin/auth/".($type==1? 'idcard': ($type==2? 'position':'education')), '', '', true),
+        ];
+
+
+        PRedis::set($cacheKey, ['info' => $info, 'data' => $memberInfo, 'params' => $params], 6*3600);
+        Wechat::sendTplMsg($openid, $params);
+
+        showJson(1005, 1008);
+    }
+
+    /**
      * 认识审核确认
      */
     public function contactConfirm()
@@ -1376,11 +1449,25 @@ class MemberController extends BaseController
         showJson(1005, 1001, Meals::getList($type));
     }
 
+    /**
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
     public function heartMeals(){
         showJson(1005, 1001, HeartMeal::getList());
     }
 
     /**
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public function signMeals(){
+        showJson(1005, 1001, SignMeal::getList());
+    }
+
+    /**
      * 购买VIP套餐
      * @throws \think\db\exception\DataNotFoundException
      * @throws \think\db\exception\ModelNotFoundException
@@ -1727,7 +1814,7 @@ class MemberController extends BaseController
 
         // 注销信息
         Member::where(['id' => $this->userId, 'user_type' => 2])
-            ->update(['user_status' => -1, 'vip_auth' => 0, 'is_heart' => 0, 'vip_expire' => 0, 'is_reg_profile' => 2, 'is_tuijian' => 0]);
+            ->update(['user_status' => -1, 'vip_auth' => 0, 'is_heart' => 0,'catch_time'=> date('Y-m-d H:i:s'), 'vip_expire' => 0, 'is_reg_profile' => 2, 'is_tuijian' => 0]);
         $cacheKey = "weixin:auth:" . session('openid');
         PRedis::del($cacheKey);
         session('userInfo', null);
@@ -1778,5 +1865,30 @@ class MemberController extends BaseController
             showJson(1004, $res ? $res : 8303);
         }
     }
+
+    /**
+     * 签到
+     * @throws \think\Exception
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function sign(){
+        // 验证
+        $this->checkUser();
+
+        if (UserProfile::where(['userid' => $this->userId])->value('idcard_check') != 2) {
+            showJson(1006, 2132, ['url' => Wechat::makeRedirectUrl(url('/weixin/auth/idcard', '', '', true))]);
+        }
+
+        $params = input();
+        $res = SignMeal::catchSign($this->userId, $params);
+        if (is_array($res)) {
+            showJson(1005, 2146);
+        }else {
+            showJson(1004, $res ? $res : 2147);
+        }
+    }
 }
 

+ 1 - 1
app/weixin/controller/IndexController.php

@@ -35,7 +35,7 @@ class IndexController extends BaseController
         $needRegProfile = session('needRegProfile');
         $isRegProfile = Member::where(['id'=> $this->userId])->value('is_reg_profile');
         if($isRegProfile == 1 || $needRegProfile==false){
-           Wechat::redirectUrl(url('/weixin/match/index','','',true));
+//           Wechat::redirectUrl(url('/weixin/match/index','','',true));
         }
         
         return $this->fetch('entry');

+ 9 - 0
app/weixin/controller/MemberController.php

@@ -270,5 +270,14 @@ class MemberController extends BaseController
     public function advice(){
         return $this->fetch();
     }
+
+    /**
+     * 签到
+     * @return mixed]
+     */
+    public function signs()
+    {
+        return $this->fetch();
+    }
 }
 

+ 64 - 0
app/weixin/model/AccountLog.php

@@ -8,4 +8,68 @@ class AccountLog extends Model
 {
     protected $table = 'sg_account_log';
 
+    /**
+     * 账户明细
+     * @param $params
+     * @param int $pageSize
+     * @return array
+     * @throws \think\exception\DbException
+     */
+    public static function getLogs($params, $pageSize = 15)
+    {
+        $userId = isset($params['user_id']) ? $params['user_id'] : 0;
+        $where = ['b.user_id' => $userId,'b.account_type'=> 1];
+        $changeType = isset($params['change_type']) ? $params['change_type'] : 0;
+        if ($changeType) {
+            $where['b.change_type'] = $changeType;
+        }
+        $type = isset($params['type']) ? $params['type'] : 0;
+        $types = [
+            '爱心充值'=> '爱心充值',
+            '活动报名'=> '活动报名',
+            '完善资料奖励'=> '完善资料奖励',
+            '学历认证成功奖励'=> '学历认证成功奖励',
+            '工作认证成功奖励'=> '工作认证成功奖励',
+            '职业认证成功奖励'=> '职业认证成功奖励',
+            '认识'=> '申请微信认识',
+            '审核超时,退还'=> '申请微信认识退还',
+            '单身推荐送'=> '加入单身推荐赠送',
+            '注销扣除'=> '账户注销扣除',
+            '注册奖励'=> '',
+        ];
+
+        $dataList = AccountLog::alias('b')
+            ->leftJoin('user u', 'u.id=b.user_id')
+            ->where($where)
+            ->where(function ($query) use ($type){
+                if($type == 1){
+                    $query->where(['type'=> 1])->whereIn('status',[1,2]);
+                }else if ($type == 5){
+                    $query->where(['status'=> 2])->whereIn('type',[3,5,9,10]);
+                }else if ($type > 0){
+                    $query->where(['type'=> $type,'status'=> 2]);
+                }
+            })
+            ->field('b.*,u.user_nickname')
+            ->order("b.created_at desc")
+            ->paginate($pageSize)
+            ->each(function ($item, $k) use ($types) {
+               $item['money'] = floatval($item['money']);
+
+                $typeArr = [1=>"充值",2=>"支付",3=>"退款",4=>"平台奖励",5=>"平台处理",6=>"VIP购买",7=>"人工牵线付费",8=>"提现",9=>"活动退款"];
+                $type = isset($item['type']) ? $item['type'] : 0;
+                $remark = isset($item['remark']) ? $item['remark'] : '';
+                $remarkReg = $remark? explode('昵称', $remark) : '';
+                $remarkReg = isset($remarkReg[1]) && $remarkReg[1]? '邀请用户'.$remarkReg[1] : '邀请用户注册';
+                $item['remark_text'] = $remark? $remark : (isset($typeArr[$type])? $typeArr[$type] : '爱心变动');
+                foreach ($types as $k => $v){
+                    if(preg_match("/{$k}/", $remark)){
+                        $item['remark_text'] = $v? $v : $remarkReg;
+                    }
+                }
+                return $item;
+            });
+        $dataList = $dataList ? $dataList->toArray() : [];
+        return $dataList;
+    }
 }

+ 1 - 1
app/weixin/model/Member.php

@@ -155,7 +155,7 @@ class Member extends Model
      */
     public static function getInfo($where, $field = "")
     {
-        $field = $field ? $field : 'id,openid,user_nickname,user_type,agent_type,agent_status,avatar,user_login,collect_expire,lat,lng,address,real_name,redheart,is_reg_profile,mobile,balance,user_status,wechat_account as wechat_code,is_heart,vip_auth,vip_expire,is_follow,freezing_choose';
+        $field = $field ? $field : 'id,openid,user_nickname,user_type,agent_type,sign_day,sign_at,agent_status,avatar,user_login,collect_expire,lat,lng,address,real_name,redheart,is_reg_profile,mobile,balance,user_status,wechat_account as wechat_code,is_heart,vip_auth,vip_expire,is_follow,freezing_choose';
         $info = self::where($where)->field($field)->order('user_status desc,id desc')->find();
         return $info ? $info->toArray() : [];
     }

File diff suppressed because it is too large
+ 623 - 598
app/weixin/model/Payment.php


+ 118 - 0
app/weixin/model/SignMeal.php

@@ -0,0 +1,118 @@
+<?php
+
+namespace app\weixin\model;
+
+use app\weixin\service\PRedis;
+use think\Model;
+
+class SignMeal extends Model
+{
+    protected $table = 'sg_sign_meals';
+    /**
+     * 获取信息
+     * @param $where 条件
+     * @param string $field 字段
+     * @return array|false|\PDOStatement|string|Model
+     */
+    public static function getInfo($where, $field = "*")
+    {
+        $info = self::where($where)->field($field)->find();
+        return $info? $info->toArray() : [];
+    }
+
+    /**
+     * 获取套餐列表
+     * @return array|bool|\PDOStatement|string|\think\Collection
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public static function getList(){
+        $cacheKey = "cache:signMeals";
+        $dataList = PRedis::get($cacheKey);
+        if($dataList){
+            return $dataList;
+        }
+        $where = ['status'=> 1];
+        $dataList = SignMeal::where($where)
+            ->field('id,name,give_num,remark,day,status')
+            ->select();
+        $dataList = $dataList? $dataList->toArray() : [];
+        if($dataList){
+            PRedis::set($cacheKey, $dataList,  3600);
+        }
+
+        return $dataList;
+    }
+
+    /**
+     * 签到处理
+     * @param $userId
+     * @param $params
+     * @return array|false|int
+     * @throws \think\Exception
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public static function catchSign($userId, $params){
+       $memberInfo = Member::where(['id' => $userId,'user_status'=> 1])->field('id,openid,sign_day,user_nickname,sign_at,redheart')->find();
+        if(empty($memberInfo)){
+            return false;
+        }
+
+        $signDay = isset($params['day'])? $params['day'] : 0;
+        $signGive = isset($params['give_num'])? $params['give_num'] : 0;
+        $signMealId = isset($params['id'])? $params['id'] : 0;
+        $curSignDay = isset($memberInfo['sign_day'])? $memberInfo['sign_day'] : 0;
+        $curSignAt = isset($memberInfo['sign_at'])? $memberInfo['sign_at'] : '';
+        if($curSignDay && (empty($curSignAt) || $curSignAt <= date('Y-m-d', strtotime(date('Y-m-d')) - 86400))){
+            $curSignDay = 0;
+        }
+
+        if($curSignAt >= date('Y-m-d') && $curSignDay){
+            return 2143;
+        }
+
+        if(db('account_log')->where('created_at','>=',date('Y-m-d'))->where('remark','like',"连续签到%")->where(['type'=> 4,'status'=> 2])->value('id')){
+            return 2143;
+        }
+
+        if($curSignDay != $signDay-1){
+            return 2142;
+        }
+
+        // 处理
+        db()->startTrans();
+        if(!db()->name('user')->where(['id' => $userId])->update(['sign_day'=> $signDay,'sign_at'=> date('Y-m-d H:i:s')])){
+            db()->rollback();
+            return 2144;
+        }
+
+        if($signGive>0){
+            if(!db()->name('user')->where(['id' => $userId])->setInc('redheart',$signGive)){
+                db()->rollback();
+                return 2145;
+            }
+
+            $accountData = [
+                'type' => 4,
+                'account_type' => 1,
+                'change_type' => 1,
+                'user_id' => $userId,
+                'money' => $signGive,
+                'balance' => isset($memberInfo['redheart'])? $memberInfo['redheart'] : 0,
+                'created_at' => date('Y-m-d H:i:s'),
+                'remark' => "连续签到{$signDay}天",
+            ];
+            PRedis::set('cache:signs:account_' . $userId, ['params' => $params, 'log' => $accountData,'user'=> $memberInfo], 600);
+            db('account_log')->insertGetId($accountData);
+        }
+
+        db()->commit();
+
+        return ['id'=> $userId];
+
+    }
+}

+ 2 - 0
app/weixin/model/UserLog.php

@@ -2,6 +2,7 @@
 
 namespace app\weixin\model;
 
+use app\weixin\service\PRedis;
 use think\Model;
 
 class UserLog extends Model
@@ -24,6 +25,7 @@ class UserLog extends Model
             $day = $userLogDay? $userLogDay : 7;
             UserLog::where('created_at','<', date('Y-m-d H:i:s', strtotime("-{$day} days")))->delete();
         }
+        PRedis::set("logs:users:user_".$data['user_id'].'_'.$data['type'], $data, 360 * 24 * 3600);
         return UserLog::insertGetId($data);
     }
 }

+ 1 - 1
app/weixin/service/Award.php

@@ -134,7 +134,7 @@ class Award
 
         // 旧用户不结算
         $createTime = isset($sourceInfo['create_time'])? $sourceInfo['create_time'] : 0;
-        if ($createTime && $createTime <= strtotime('2021-02-01')) {
+        if ($createTime && $createTime <= strtotime('2021-02-20')) {
         	$logData['error'] = '审核用户注册时间不在结算范围内';
             PRedis::set("{$cacheKey}:error_user_reg_time", $logData, 7200);
             return false;

+ 2 - 2
data/config/weixin.php

@@ -37,7 +37,7 @@ return [
     // 调用生成菜单接口密钥
     'callKey' => 'sdf2ds3g521sdf36g4sd156',
     // 发送消息记录保存时间
-    'message_expire' => 7,
+    'message_expire' => 180,
     // 单页文章
     'articles' => [
         'about' => 5, // 关于我们文章ID
@@ -83,7 +83,7 @@ return [
     // 用户操作记录清除
     'userLogDel' => true,
     // 操作日志只保留多久的数据,默认7天
-    'userLogDay' => 7,
+    'userLogDay' => 180,
     // 年龄段
     'ages' => [
         1 => ['value1' => 18, 'value2'=> 24],

+ 17 - 5
data/lang/admin_menu.php

@@ -16,23 +16,27 @@ return array (
   'ADMIN_LINK_INDEX' => '友情链接',
   'ADMIN_LINK_LISTORDER' => '友情链接排序',
   'ADMIN_LINK_TOGGLE' => '友情链接显示隐藏',
-  'ADMIN_LOVE_INDEX' => '爱心明细',
+  'ADMIN_LOVE_INDEX' => '账户明细',
+  'ADMIN_LOVE_INDEXALL' => '交易明细',
   'ADMIN_MAILER_INDEX' => '邮箱配置',
   'ADMIN_MAILER_INDEXPOST' => '邮箱配置提交保存',
   'ADMIN_MAILER_TEMPLATE' => '邮件模板',
   'ADMIN_MAILER_TEMPLATEPOST' => '邮件模板提交',
   'ADMIN_MAILER_TEST' => '邮件发送测试',
   'ADMIN_MARKET_DEFAULT' => '分销管理',
-  'ADMIN_MARKET_DEFAULT1' => '分销中心',
   'ADMIN_MARKET_DEFAULT2' => '审核中心',
   'ADMIN_MARKET_DEFAULT3' => '账户中心',
-  'ADMIN_MARKET_MARKETEXAMINE' => '分销员审核',
+  'ADMIN_MARKET_MARKETEXAMINE' => '分销员待审核',
+  'ADMIN_MARKET_MARKETLOGOUT' => '分销注销',
   'ADMIN_MARKET_MARKETONEUSER' => '一级分销',
   'ADMIN_MARKET_MARKETRECORD' => '分销记录',
-  'ADMIN_MARKET_MARKETSET' => '分销设置',
-  'ADMIN_MARKET_MARKETTRANS' => '奖励交易记录',
+  'ADMIN_MARKET_MARKETSETLIST' => '分销设置',
+  'ADMIN_MARKET_MARKETTRANS' => '分销账户明细',
   'ADMIN_MARKET_MARKETTWOUSER' => '二级分销',
   'ADMIN_MARKET_MARKETUSER' => '分销用户',
+  'ADMIN_MARKET_WITHDRAW' => '提现审核',
+  'ADMIN_MARKET_WITHDRAWRECORD' => '分销员提现记录',
+  'ADMIN_MARKETSETLIST_DEFAULT1' => '分销中心',
   'ADMIN_MENU_ADD' => '后台菜单添加',
   'ADMIN_MENU_ADDPOST' => '后台菜单添加提交保存',
   'ADMIN_MENU_DELETE' => '后台菜单删除',
@@ -63,6 +67,7 @@ return array (
   'ADMIN_PLUGIN_TOGGLE' => '插件启用禁用',
   'ADMIN_PLUGIN_UNINSTALL' => '卸载插件',
   'ADMIN_PLUGIN_UPDATE' => '插件更新',
+  'ADMIN_PULLWIRE_INDEX' => '牵线明细',
   'ADMIN_RBAC_AUTHORIZE' => '设置角色权限',
   'ADMIN_RBAC_AUTHORIZEPOST' => '角色授权提交',
   'ADMIN_RBAC_INDEX' => '角色管理',
@@ -90,6 +95,7 @@ return array (
   'ADMIN_SETTING_DEFAULT' => '设置',
   'ADMIN_SETTING_PASSWORD' => '密码修改',
   'ADMIN_SETTING_PASSWORDPOST' => '密码修改提交',
+  'ADMIN_SETTING_SIGNS' => '签到参数设置',
   'ADMIN_SETTING_SITE' => '网站信息',
   'ADMIN_SETTING_SITEPOST' => '网站信息设置提交',
   'ADMIN_SETTING_UPLOAD' => '上传设置',
@@ -147,14 +153,20 @@ return array (
   'USER_ADMININDEX_DEFAULT' => '用户管理',
   'USER_ADMININDEX_DEFAULT1' => '用户组',
   'USER_ADMININDEX_INDEX' => '本站用户',
+  'USER_ADMININDEX_PULLWIRE' => '牵线用户',
+  'USER_ADMININDEX_SCREEN' => '筛选用户',
   'USER_ADMININDEX_USERBAN' => '冻结用户',
   'USER_ADMININDEX_USERLOGOUT' => '注销用户',
+  'USER_ADMININDEX_VIPRECHANGE' => 'vip用户',
   'USER_ADMINOAUTH_DELETE' => '删除第三方用户绑定',
   'USER_ADMINOAUTH_INDEX' => '第三方用户',
   'USER_ADMINUSERACTION_EDIT' => '编辑用户操作',
   'USER_ADMINUSERACTION_EDITPOST' => '编辑用户操作提交',
   'USER_ADMINUSERACTION_INDEX' => '用户操作管理',
   'USER_ADMINUSERACTION_SYNC' => '同步用户操作',
+  'USER_ADMIN_INDEX_COMPLAIN' => '举报用户',
+  'USER_ADMIN_INDEX_DOCOMPLAIN' => '已处理用户',
+  'USER_ADMIN_INDEX_FEEDBACK' => '反馈建议',
   'USER_CPYEXAMINE_INDEX' => '职位审核',
   'USER_EDUEXAMINE_INDEX' => '学历审核',
   'USER_EXAMINE_DEFAULT' => '审核管理',

+ 87 - 0
public/themes/admin_simpleboot3/admin/setting/sign_set.html

@@ -0,0 +1,87 @@
+<include file="public@header"/>
+</head>
+<body>
+<div class="wrap js-check-wrap">
+
+    <ul class="nav nav-tabs">
+
+        <li><a href="{:url('setting/signs')}">签到设置列表</a></li>
+        <if condition="$Request.param.id neq ''">
+            <li  class="active"><a href="#">编辑参数设置</a></li>
+            <else/>
+            <li  class="active"><a href="#">添加参数设置</a></li>
+        </if>
+    </ul>
+    <form class="form-horizontal js-ajax-form margin-top-20" role="form" action="{:url('setting/signSet')}"
+          method="post">
+        <input type="hidden" name="id" value="{$info.id}">
+        <input type="hidden" name="op" value="edit">
+
+    <fieldset>
+        <div class="tabbable">
+            <div class="tab-content">
+                <div class="tab-pane active" id="A">
+                    <div class="form-group">
+                        <label for="input-site-name" class="col-sm-2 control-label"><span
+                                class="form-required">*</span>名称</label>
+                        <div class="col-md-6 col-sm-10">
+                            <input type="text" class="form-control" id="name" name="name"
+                                   value="{$info.name|default=''}">
+                        </div>
+                    </div>
+
+
+                    <div class="form-group">
+                        <label for="input-close1" class="col-sm-2 control-label">状态</label>
+                        <div class="col-md-6 col-sm-10">
+
+                            <label for="input-close1" class="radio-inline">
+                                <input type="radio" id="status1" name="status" <if condition="$info['status'] == 1">checked</if> value="1">开启
+                            </label>
+                            <label for="input-close2" class="radio-inline">
+                                <input type="radio" id="status2" name="status" <if condition="$info['status'] == 2">checked</if> value="2">关闭
+                            </label>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label for="access_ip" class="col-sm-2 control-label">天数值</label>
+                        <div class="col-md-8 col-sm-8">
+                            <input type="text" class="form-control" style="width: 60%;float:left;" id="day" name="day" value="{$info.day|default='0'}" >
+
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label for="access_ip" class="col-sm-2 control-label">赠送爱心数</label>
+                        <div class="col-md-8 col-sm-8">
+                            <input type="text" class="form-control" style="width: 60%;float:left;" id="give_num" name="give_num" value="{$info.give_num|default='0'}" >
+
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label for="follow_msg" class="col-sm-2 control-label">备注</label>
+                        <div class="col-md-8 col-sm-8">
+                            <textarea name="remark" id="remark" style="border: 1px solid #ddd" cols="80" rows="3" maxlength="150">{$info.remark|default=''}</textarea>
+
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <div class="col-sm-offset-2 col-sm-10">
+                            <button type="submit" class="btn btn-primary js-ajax-submit" data-refresh="1">
+                                {:lang('SAVE')}
+                            </button>
+                        </div>
+                    </div>
+                </div>
+
+
+            </div>
+        </div>
+</div>
+</fieldset>
+</form>
+
+</div>
+
+
+</body>
+</html>

+ 69 - 0
public/themes/admin_simpleboot3/admin/setting/signs.html

@@ -0,0 +1,69 @@
+<include file="public@header"/>
+</head>
+<body>
+<div class="wrap js-check-wrap">
+    <ul class="nav nav-tabs">
+        <li class="active"><a href="{:url('setting/signs')}">签到设置列表</a></li>
+    </ul>
+    <form class="js-ajax-form" method="post">
+        <div class="table-actions">
+        </div>
+        <table class="table table-hover table-bordered table-list">
+            <thead>
+            <tr>
+                <th width="16">
+                    <label>
+                        <input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x">
+                    </label>
+                </th>
+                <th >ID</th>
+                <th>名称</th>
+                <th>天数值</th>
+                <th>赠送爱心</th>
+                <th >时间</th>
+                <th >状态</th>
+                <th >备注</th>
+                <th width="80">操作</th>
+            </tr>
+            </thead>
+            <foreach name="list" item="vo">
+                <tr>
+                    <td>
+                        <input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]"
+                               value="{$vo.id}">
+                    </td>
+                    <td>{$vo.id}</td>
+                    <td>{$vo.name}</td>
+                    <td>{$vo.day}</td>
+                    <td>{$vo.give_num}</td>
+                    <td>{$vo.updated_at}</td>
+                    <td>
+                        <switch name="vo.status">
+                            <case value="1">
+                                <span style="color:green">开启</span>
+                            </case>
+                            <case value="2">
+                                <span style="color:red">关闭</span>
+                            </case>
+                        </switch>
+
+                    </td>
+                    <td>{$vo['remark']}</td>
+
+
+                    <td>
+                        <a class="btn btn-xs btn-primary" href="{:url('setting/signSet',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
+                    </td>
+                </tr>
+            </foreach>
+
+        </table>
+
+        <div class="pagination">{$page}</div>
+    </form>
+
+</div>
+<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
+
+</body>
+</html>

+ 8 - 0
public/themes/admin_simpleboot3/admin/setting/site.html

@@ -188,6 +188,14 @@
                             </div>
                         </div>
                         <div class="form-group">
+                            <label for="input-custom_openid" class="col-sm-2 control-label">平台客服OPENID</label>
+                            <div class="col-md-4 col-sm-8">
+                                <input type="text" class="form-control" id="input-custom_openid"
+                                       name="options[custom_openid]" value="{$site_info.custom_openid|default=''}">
+                                <span class="help-block">平台客服OPENID,接收模版消息</span>
+                            </div>
+                        </div>
+                        <div class="form-group">
                             <label for="input-map_key" class="col-sm-2 control-label">百度地图key</label>
                             <div class="col-md-4 col-sm-8">
                                 <input type="text" class="form-control" id="input-map_key"

+ 11 - 3
public/themes/admin_simpleboot3/user/admin_index/index.html

@@ -267,8 +267,12 @@
                 </if>
               
 
-                <if condition="$Request.action eq 'userban' || $Request.param.u eq 3">
-                  <th>冻结时间</th>
+                <if condition="$Request.action eq 'userban'  || $Request.param.u eq 3">
+                    <th>冻结时间</th>
+                    <elseif condition=" $Request.action eq 'userlogout' ">
+                  <th>注销时间</th>
+                        <elseif condition=" $Request.action eq 'viprechange' ">
+                            <th>开通时间</th>
                 <else/>
                 <th>{:lang('REGISTRATION_TIME')}</th>
                 </if>
@@ -311,7 +315,7 @@
                          <td>
                            <if condition="$vo.vip_expire gt time()">
                            
-                                <span style="color: blue">未过期</span>
+                                <span style="color: blue" title="{:date('Y-m-d H:i',$vo['vip_expire'])}到期">未过期</span>
                            <else/>
                                 <span style="color: red">已过期</span>
                               
@@ -351,6 +355,10 @@
                     
                   <if condition="$Request.action eq 'userban' || $Request.param.u eq 3">
                        <td>{$vo.updated_at}</td>
+                      <elseif condition=" $Request.action eq 'userlogout' ">
+                          <td>{$vo.updated_at}</td>
+                          <elseif condition=" $Request.action eq 'viprechange' ">
+                              <td>{$vo.updated_at}</td>
                         <else/> 
                          <td>{:date('Y-m-d H:i',$vo['create_time'])}</td>
                     </if>

+ 14 - 32
public/themes/default/weixin/account/index.html

@@ -3,46 +3,28 @@
 <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/account-index.css?v={$version}">
 <div id="app" v-cloak>
     <div class="fanhui2">
-        <h1>消费记录</h1>
+        <h1>爱心明细</h1>
         <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
     </div>
+    <div class="huxian">
+        <ul>
+            <li class="active" @click="switchType($event, 0)">全部</li>
+            <li @click="switchType($event, 2)">支出</li>
+            <li @click="switchType($event, 1)">充值</li>
+            <li @click="switchType($event, 4)">收益</li>
+            <li @click="switchType($event, 5)">其他</li>
+        </ul>
+    </div>
     <div class="dataList">
         <div v-if="dataList.length<=0" class="empty">暂无数据</div>
         <div v-else class="chonjl_box" v-for="(item,k) in dataList">
             <div v-if="item.type==1">
-                <h1 v-if="item.status==2" class="status2">充值成功</h1>
-                <h1 v-else> 充值失败</h1>
-                <p> 充值数量:<b v-text="item.money">0</b>个<span v-if="item.give_num">(赠送{{item.give_num}})</span></p>
-                <p> 支付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
-                <p>时间:<span v-text="item.format_time"></span></p>
-                <p>单号:<span v-text="item.order_sn"></span></p>
-            </div>
-            <div v-else-if="item.type==4">
-                <h1 v-if="item.status==2" class="status2">购买VIP成功</h1>
-                <h1 v-else> 购买VIP失败</h1>
-                <p> 购买时长:
-                    <b v-if="item.money==6">半年</b>
-                    <b v-else-if="item.money==12">一年</b>
-                    <b v-else v-text="item.money+'个月'"></b>
-                </p>
-                <p> 支付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
-                <p>时间:<span v-text="item.format_time"></span></p>
-                <p>单号:<span v-text="item.order_sn"></span></p>
-            </div>
-            <div v-else-if="item.type==5">
-                <h1 v-if="item.status==2" class="status2">人工牵线付费成功</h1>
-                <h1 v-else> 人工牵线付费失败</h1>
-                <p> 支付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
-                <p>时间:<span v-text="item.format_time"></span></p>
-                <p>单号:<span v-text="item.order_sn"></span></p>
+                <h1 class="title">爱心充值</h1>
+                <p><span class="time" v-text="item.created_at"></span><span class="status"><em class="money">{{(item.change_type==1?'+':'-')}}{{item.money|0}}</em>爱心</span></p>
             </div>
             <div v-else>
-                <h1 v-if="item.status==2" class="status2">支付成功</h1>
-                <h1 v-else> 支付失败</h1>
-                <p> 支付金额:<img src="__TMPL__/weixin/public/assets/img/money.png"><b v-text="item.money">0</b></p>
-                <p> 实付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
-                <p>时间:<span v-text="item.format_time"></span></p>
-                <p>单号:<span v-text="item.order_sn"></span></p>
+                <h1 class="title" v-text="item.remark_text"></h1>
+                <p><span class="time" v-text="item.created_at"></span><span :class="'status status'+(item.change_type)"><em class="money">{{(item.change_type==1?'+':'-')}}{{item.money|0}}</em>爱心</span></p>
             </div>
         </div>
         <div class="loaded" v-if="status.loaded && dataList.length">

+ 54 - 0
public/themes/default/weixin/account/index_back.html

@@ -0,0 +1,54 @@
+<include file="weixin@block:header"/>
+<!--<title>我的爱心</title>-->
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/account-index.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>
+    </div>
+    <div class="dataList">
+        <div v-if="dataList.length<=0" class="empty">暂无数据</div>
+        <div v-else class="chonjl_box" v-for="(item,k) in dataList">
+            <div v-if="item.type==1">
+                <h1 v-if="item.status==2" class="status2">充值成功</h1>
+                <h1 v-else> 充值失败</h1>
+                <p> 充值数量:<b v-text="item.money">0</b>个<span v-if="item.give_num">(赠送{{item.give_num}})</span></p>
+                <p> 支付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
+                <p>时间:<span v-text="item.format_time"></span></p>
+                <p>单号:<span v-text="item.order_sn"></span></p>
+            </div>
+            <div v-else-if="item.type==4">
+                <h1 v-if="item.status==2" class="status2">购买VIP成功</h1>
+                <h1 v-else> 购买VIP失败</h1>
+                <p> 购买时长:
+                    <b v-if="item.money==6">半年</b>
+                    <b v-else-if="item.money==12">一年</b>
+                    <b v-else v-text="item.money+'个月'"></b>
+                </p>
+                <p> 支付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
+                <p>时间:<span v-text="item.format_time"></span></p>
+                <p>单号:<span v-text="item.order_sn"></span></p>
+            </div>
+            <div v-else-if="item.type==5">
+                <h1 v-if="item.status==2" class="status2">人工牵线付费成功</h1>
+                <h1 v-else> 人工牵线付费失败</h1>
+                <p> 支付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
+                <p>时间:<span v-text="item.format_time"></span></p>
+                <p>单号:<span v-text="item.order_sn"></span></p>
+            </div>
+            <div v-else>
+                <h1 v-if="item.status==2" class="status2">支付成功</h1>
+                <h1 v-else> 支付失败</h1>
+                <p> 支付金额:<img src="__TMPL__/weixin/public/assets/img/money.png"><b v-text="item.money">0</b></p>
+                <p> 实付金额:<b style="margin: 0;">¥</b><b v-text="item.pay_money">0</b></p>
+                <p>时间:<span v-text="item.format_time"></span></p>
+                <p>单号:<span v-text="item.order_sn"></span></p>
+            </div>
+        </div>
+        <div class="loaded" v-if="status.loaded && dataList.length">
+            已加载完全部
+        </div>
+    </div>
+</div>
+<script src="__TMPL__/weixin/public/assets/js/account-index.js?v={$version}"></script>
+<include file="weixin@block:footer"/>

+ 1 - 1
public/themes/default/weixin/account/recharge.html

@@ -6,7 +6,7 @@
         <h1>爱心充值</h1>
         <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
         <div class="hr">
-            <a href="/weixin/account/index">充值明细</a>
+            <a href="/weixin/account/index">爱心明细</a>
         </div>
     </div>
     <div class="main" v-if="memberInfo.id">

+ 22 - 22
public/themes/default/weixin/auth/hand.html

@@ -1,23 +1,23 @@
-<include file="weixin@block:header"/>
-<title></title>
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/auth-hand.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>
-    </div>
-    <div class="main">
-        <div class="shenf_bt"><h1>人工牵线服务</h1></div>
-        <div class="ger_banc" @click="handPay()" v-if="mealInfo.id">
-            <h1>立即以<span v-text="mealInfo.price"></span>元<span>购买</span><span v-text="mealInfo.name"></span>服务</h1>
-        </div>
-        <div class="tis">
-            <P>
-                1.工作人员帮您邀约联系,获取6位喜欢的异性的联系方式,未邀约成功不算次数;<br>
-                2.赠送3个月VIP会员,可以在怦然心动自定义(年龄、身高、学历、城市、婚姻状况等)设置好后系统每晚8点推荐异性,推荐到喜欢的工作人员帮您联系Ta;<br>
-                3.脱单栏目或是平台中看到任何喜欢的异性。<br>说明:人工牵线服务特点是工作人员帮您获取平台中任何一位想认识异性的联系方式,快速建立线上的联系,未邀约成功是指未成功添加微信好友,则不计算次数。<br>
-            </P>
-        </div>
-    </div>
-</div>
-<script src="__TMPL__/weixin/public/assets/js/auth-hand.js?v={$version}"></script>
+<include file="weixin@block:header"/>
+<title></title>
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/auth-hand.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>
+    </div>
+    <div class="main">
+        <div class="shenf_bt"><h1>人工牵线服务</h1></div>
+        <div class="ger_banc" @click="handPay()" v-if="mealInfo.id">
+            <h1>立即以<span v-text="mealInfo.price"></span>元<span>购买</span><span v-text="mealInfo.name"></span>服务</h1>
+        </div>
+        <div class="tis">
+            <P>
+                1.工作人员帮您邀约联系,获取6位喜欢的异性的联系方式,未邀约成功不算次数;<br>
+                2.赠送3个月VIP会员,可以在怦然心动自定义(年龄、身高、学历、城市、婚姻状况等)设置好后系统每晚8点推荐异性,推荐到喜欢的工作人员帮您联系Ta;<br>
+                3.脱单栏目或是平台中看到任何喜欢的异性。<br>说明:人工牵线服务特点是工作人员帮您获取平台中任何一位想认识异性的联系方式,快速建立线上的联系,未邀约成功是指未成功添加微信好友,则不计算次数。<br>
+            </P>
+        </div>
+    </div>
+</div>
+<script src="__TMPL__/weixin/public/assets/js/auth-hand.js?v={$version}"></script>
 <include file="weixin@block:footer"/>

+ 45 - 38
public/themes/default/weixin/market/index.html

@@ -21,10 +21,6 @@
                 </div>
             </div>
         </div>
-        <div class="switch" v-if="memberInfo.id>0">
-            <a v-if="memberInfo.is_reg_profile==1&&memberInfo.user_status>=0" @click="goHome()"><span class="type1">交友中心</span></a>
-            <a v-else href="/weixin/index/entry"><span class="type1">注册交友会员</span></a>
-        </div>
         <div class="zhobu_box">
             <div class="zhubu">
                 <a href="/weixin/account/withdraw">
@@ -49,40 +45,51 @@
             <a :href="'/weixin/market/invite?sid='+memberInfo.id"><h2>立即分享推荐会员获得更多收益</h2><img  src="__TMPL__/weixin/public/assets/img/tubiao42.png"></a>
         </div>
         <div class="liebr_box">
-            <ul>
-                <a href="/weixin/market/team">
-                    <li><img src="__TMPL__/weixin/public/assets/img/team.png">
-                        <span>我的团队</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><h3>团队作战,收益多多</h3></li>
-                </a>
-                <a href="/weixin/market/teamInvite">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-invite.png">
-                        <span>团队邀请</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><h3>团队邀请码,扩充团队成员</h3></li>
-                </a>
-                <a href="/weixin/market/rank" v-if="memberInfo.rank_count>=10">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-rank.png">
-                        <span>收益排行榜</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/market/income" >
-                    <li><img src="__TMPL__/weixin/public/assets/img/income.png">
-                        <span>收益明细</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/account/withdrawLog">
-                    <li><img src="__TMPL__/weixin/public/assets/img/withdraw.png">
-                        <span>提现记录</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/page/custom?type=2">
-                    <li><img src="__TMPL__/weixin/public/assets/img/custom.png">
-                        <span>我的客服</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/page/marketAgree">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-rule.png">
-                        <span>奖励规则</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/page/about">
-                    <li class="bangd_s"><img src="__TMPL__/weixin/public/assets/img/about.png">
-                        <span>关于拾光</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-            </ul>
+            <div class="menu-list">
+                <div class="title">推广中心</div>
+                <div class="menu-box">
+                    <a @click="goHome()" v-if="memberInfo.id>0 && memberInfo.is_reg_profile==1&&memberInfo.user_status>=0">
+                        <img src="__TMPL__/weixin/public/assets/img/new-user.png">
+                        <span>会员中心</span>
+                    </a>
+                    <a href="/weixin/index/entry" v-else-if="memberInfo.id>0">
+                        <img src="__TMPL__/weixin/public/assets/img/new-user.png">
+                        <span>注册会员</span>
+                    </a>
+                    <a href="/weixin/market/team">
+                        <img src="__TMPL__/weixin/public/assets/img/team.png">
+                        <span>我的团队</span>
+                    </a>
+                    <a href="/weixin/market/teamInvite">
+                        <img src="__TMPL__/weixin/public/assets/img/new-invite.png">
+                        <span>团队邀请</span>
+                    </a>
+                    <a href="/weixin/market/rank" v-if="memberInfo.rank_count>=10">
+                        <img src="__TMPL__/weixin/public/assets/img/new-rank.png">
+                        <span>收益排行榜</span>
+                    </a>
+                    <a href="/weixin/market/income">
+                        <img src="__TMPL__/weixin/public/assets/img/income.png">
+                        <span>收益明细</span>
+                    </a>
+                    <a href="/weixin/account/withdrawLog">
+                        <img src="__TMPL__/weixin/public/assets/img/withdraw.png">
+                        <span>提现明细</span>
+                    </a>
+                    <a href="/weixin/page/custom?type=2">
+                        <img src="__TMPL__/weixin/public/assets/img/custom.png">
+                        <span>我的客服</span>
+                    </a>
+                    <a href="/weixin/page/marketAgree?type=2">
+                        <img src="__TMPL__/weixin/public/assets/img/new-award.png">
+                        <span>奖励注册</span>
+                    </a>
+                    <a href="/weixin/page/about">
+                        <img src="__TMPL__/weixin/public/assets/img/about.png">
+                        <span>关于拾光</span>
+                    </a>
+                </div>
+            </div>
         </div>
         <div class="pop" v-show="uploadBox">
             <div class="guanbi"></div>

+ 3 - 3
public/themes/default/weixin/member/home.html

@@ -107,7 +107,7 @@
                                      alt="">
                             </div>
                             <div class="auth-type" >
-                                <p v-if="homeInfo.idcard_check==2">实名已认证</p><p v-else>实名未认证</p>
+                                <p v-if="homeInfo.idcard_check==2">实名已认证</p><p v-else>实名未认证<a @click="inviteAuth(1)">邀请Ta认证</a></p>
                                 <p class="type" v-if="homeInfo.idcard_type==1 && homeInfo.front_idcard">认证方式:居民身份证</p>
                                 <p class="type" v-else-if="homeInfo.idcard_type==1">认证方式:人脸核验</p>
                                 <p class="type" v-else-if="homeInfo.idcard_type==2">认证方式:港澳台身份证</p>
@@ -125,7 +125,7 @@
                                      alt="">
                             </div>
                             <div class="auth-type">
-                                    <p v-if="homeInfo.position_check==2">工作已认证</p><p v-else>工作未认证</p>
+                                    <p v-if="homeInfo.position_check==2">工作已认证</p><p v-else>工作未认证<a @click="inviteAuth(2)">邀请Ta认证</a></p>
                                     <p class="type">认证方式:
                                         <span v-if="homeInfo.position_type==1">支付宝社保截图/社保证明</span>
                                         <span v-else-if="homeInfo.position_type==2">钉钉或企业微信名片</span>
@@ -148,7 +148,7 @@
                                      alt="">
                             </div>
                             <div class="auth-type">
-                                    <p v-if="homeInfo.education_check==2">学历已认证</p><p v-else>学历未认证</p>
+                                    <p v-if="homeInfo.education_check==2">学历已认证</p><p v-else>学历未认证<a @click="inviteAuth(3)">邀请Ta认证</a></p>
                                     <p class="type">认证方式:
                                         <span v-if="homeInfo.education_type==1">毕业证/学位证书照片</span>
                                         <span v-else-if="homeInfo.education_type==2">学信网学籍、学历图片</span>

+ 207 - 36
public/themes/default/weixin/member/home_back.html

@@ -1,16 +1,16 @@
 <include file="weixin@block:header"/>
 <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/swiper.min.css?v={$version}">
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/home.css?v={$version}">
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/home.css?v=1{$version}">
 <div id="app" class="scroll" v-cloak>
-    <div class="fanhui2">
+    <div class="fanhui2" v-if="show=1">
         <h1>个人主页</h1>
         <a onclick="goBack()"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
     </div>
     <div class="main" v-if="homeInfo.id">
         <div class="swiper-container">
             <div class="swiper-wrapper">
-                <div class="swiper-slide"><img :src="'/api/storage/imgThumb?url='+homeInfo.avatar"></div>
-                <div class="swiper-slide" v-for="(item,k) in homeInfo.albums"><img :src="'/api/storage/imgThumb?url='+item"></div>
+                <div class="swiper-slide"><img class="lazyimg" :src="homeInfo.avatar"></div>
+                <div class="swiper-slide" v-for="(item,k) in homeInfo.albums"><img class="lazyimg" :src="item"></div>
             </div>
             <!-- Add Pagination -->
             <div class="swiper-pagination"></div>
@@ -18,58 +18,193 @@
         <div class="ger_xix">
             <h1 class="nickname">
                 <span v-text="homeInfo.user_nickname"></span>
-                <span v-if="homeInfo.idcard_check==2"><img @click="showAuth('idcard')" src="__TMPL__/weixin/public/assets/img/idcard.png" alt="" width="24" height="24"><em v-show="showStatus.idcard">身份已认证</em></span>
+                <span v-if="homeInfo.id != memberInfo.id" class="complain" @click="showPopup()">举报用户</span>
+                <!--<span v-if="homeInfo.idcard_check==2"><img @click="showAuth('idcard')" src="__TMPL__/weixin/public/assets/img/idcard.png" alt="" width="24" height="24"><em v-show="showStatus.idcard">身份已认证</em></span>
                 <span v-if="homeInfo.education_check==2"><img @click="showAuth('education')" src="__TMPL__/weixin/public/assets/img/education.png" alt="" width="24" height="24"><em v-show="showStatus.education">学历已认证</em></span>
-                <span v-if="homeInfo.position_check==2"><img @click="showAuth('position')" src="__TMPL__/weixin/public/assets/img/position.png" alt="" width="24" height="24"><em v-show="showStatus.position">职业已认证</em></span>
+                <span v-if="homeInfo.position_check==2"><img @click="showAuth('position')" src="__TMPL__/weixin/public/assets/img/position.png" alt="" width="24" height="24"><em v-show="showStatus.position">职业已认证</em></span>-->
             </h1>
+            <div class="location" v-if="locations.distance!='' && homeInfo.id!= memberInfo.id"><img
+                    src="__TMPL__/weixin/public/assets/img/location.png" alt=""><span>距离你 {{locations.distance}}·{{locations.district? locations.district : '未知'}}</span>
+            </div>
             <div class="info_box">
-                <p v-if="homeInfo.birthday_day || homeInfo.height_txt"><img src="__TMPL__/weixin/public/assets/img/info/birthday.png" alt=""><span class="birthday" v-text="homeInfo.birthday_day"></span><img src="/themes/default/weixin/public/assets/img/info/height.png?v=2" class="height-icon"><span class="height ext" v-text="homeInfo.height_txt?homeInfo.height_txt+' - ':''"></span><span class="weight ext" v-text="homeInfo.weight_txt"></span></p>
-                <p v-if="(homeInfo.show_graduate && homeInfo.graduate) || homeInfo.education_txt"><img src="__TMPL__/weixin/public/assets/img/info/education.png" alt=""><span v-if="homeInfo.show_graduate" v-text="homeInfo.graduate?homeInfo.graduate+' · ':''"></span> <span v-text="homeInfo.education_txt"></span></p>
-                <p v-if="homeInfo.married_txt"><img src="__TMPL__/weixin/public/assets/img/info/married.png" alt=""><span  v-text="homeInfo.married_txt"></span></p>
-                <p v-if="(homeInfo.show_company && homeInfo.company) || homeInfo.occupation"><img src="__TMPL__/weixin/public/assets/img/info/position.png" alt=""><span v-if="homeInfo.show_company" v-text="homeInfo.company?homeInfo.company+' · ': ''"></span> <span v-text="homeInfo.occupation? homeInfo.occupation : '无'"></span></p>
-                <p v-if="homeInfo.show_company || homeInfo.home_city"><img src="__TMPL__/weixin/public/assets/img/info/map.png" alt=""><span v-text="homeInfo.city? '现居'+homeInfo.city+' · ' : ''"></span><span v-text="homeInfo.home_city? homeInfo.home_city+'人' : ''"></span></p>
+                <p v-if="homeInfo.birthday_day || homeInfo.height_txt"><img
+                        src="__TMPL__/weixin/public/assets/img/info/birthday.png" alt=""><span class="birthday"
+                                                                                               v-text="homeInfo.birthday_day"></span><img
+                        src="/themes/default/weixin/public/assets/img/info/height.png?v=2" class="height-icon"><span
+                        class="height ext" v-text="homeInfo.height_txt?homeInfo.height_txt+' - ':''"></span><span
+                        class="weight ext" v-text="homeInfo.weight_txt"></span></p>
+                <p><img src="__TMPL__/weixin/public/assets/img/icon/icon-start.png" alt=""><span
+                        class="start ext" v-text="homeInfo.start"></span></p>
+                <p v-if="(homeInfo.show_graduate && homeInfo.graduate) || homeInfo.education_txt"><img
+                        src="__TMPL__/weixin/public/assets/img/info/education.png" alt=""><span
+                        v-if="homeInfo.show_graduate" v-text="homeInfo.graduate?homeInfo.graduate+' · ':''"></span>
+                    <span v-text="homeInfo.education_txt"></span></p>
+
+                <p v-if="homeInfo.married_txt"><img src="__TMPL__/weixin/public/assets/img/info/married.png"
+                                                    alt=""><span v-text="homeInfo.married_txt"></span></p>
+                <p v-if="(homeInfo.show_company && homeInfo.company) || homeInfo.occupation"><img
+                        src="__TMPL__/weixin/public/assets/img/info/position.png" alt=""><span
+                        v-if="homeInfo.show_company" v-text="homeInfo.company?homeInfo.company+' · ': ''"></span> <span
+                        v-text="homeInfo.occupation? homeInfo.occupation : '无'"></span></p>
+                <p v-if="homeInfo.show_company || homeInfo.home_city"><img
+                        src="__TMPL__/weixin/public/assets/img/info/map.png" alt=""><span
+                        v-text="homeInfo.city? '现居'+homeInfo.city+' · ' : ''"></span><span
+                        v-text="homeInfo.home_city? homeInfo.home_province+''+homeInfo.home_city+'人' : ''"></span></p>
+            </div>
+        </div>
+        <div class="tix_box auth-box">
+            <div class="tix_xix pic-info"><h1>身份认证</h1></div>
+            <div class="info-item">
+                <div class="auth-list" v-show="!showAuth">
+                    <div class="auth-item">
+                        <div class="info idcard">
+                            <div class="img">
+                                <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/idcard_check.png" alt="">
+                                <img v-if="homeInfo.idcard_check==2" class="check"
+                                     src="__TMPL__/weixin/public/assets/img/auth/confirm_ok.png" alt="">
+                                <img v-else class="check" src="__TMPL__/weixin/public/assets/img/auth/confirm_no.png"
+                                     alt="">
+                            </div>
+                            <div class="auth-type" v-if="homeInfo.idcard_check==2">实名已认证</div>
+                            <div class="auth-type" v-else>实名未认证</div>
+                        </div>
+                    </div>
+                    <div class="auth-item">
+                        <div class="info position">
+                            <div class="img">
+                                <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/work.png" alt="">
+                                <img v-if="homeInfo.position_check==2" class="check"
+                                     src="__TMPL__/weixin/public/assets/img/auth/confirm_ok.png" alt="">
+                                <img v-else class="check" src="__TMPL__/weixin/public/assets/img/auth/confirm_no.png"
+                                     alt="">
+                            </div>
+                            <div class="auth-type" v-if="homeInfo.position_check==2">工作已认证</div>
+                            <div class="auth-type" v-else>工作未认证</div>
+                        </div>
+                    </div>
+                    <div class="auth-item">
+                        <div class="info education">
+                            <div class="img">
+                                <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/education_check.png" alt="">
+                                <img v-if="homeInfo.education_check==2" class="check"
+                                     src="__TMPL__/weixin/public/assets/img/auth/confirm_ok.png" alt="">
+                                <img v-else class="check" src="__TMPL__/weixin/public/assets/img/auth/confirm_no.png"
+                                     alt="">
+                            </div>
+                            <div class="auth-type" v-if="homeInfo.education_check==2">学历已认证</div>
+                            <div class="auth-type" v-else>学历未认证</div>
+                        </div>
+                    </div>
+                </div>
+                <div class="auth-list auth-row" v-show="showAuth">
+                    <div class="auth-item">
+                        <div class="info idcard">
+                            <div class="img">
+                                <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/idcard_check.png" alt="">
+                                <img v-if="homeInfo.idcard_check==2" class="check"
+                                     src="__TMPL__/weixin/public/assets/img/auth/confirm_ok.png" alt="">
+                                <img v-else class="check" src="__TMPL__/weixin/public/assets/img/auth/confirm_no.png"
+                                     alt="">
+                            </div>
+                            <div class="auth-type" >
+                                <p v-if="homeInfo.idcard_check==2">实名已认证</p><p v-else>实名未认证</p>
+                                <p class="type" v-if="homeInfo.idcard_type==1 && homeInfo.front_idcard">认证方式:居民身份证</p>
+                                <p class="type" v-else-if="homeInfo.idcard_type==1">认证方式:人脸核验</p>
+                                <p class="type" v-else-if="homeInfo.idcard_type==2">认证方式:港澳台身份证</p>
+                                <p class="type" v-else-if="homeInfo.idcard_type==3">认证方式:护照</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="auth-item">
+                        <div class="info position">
+                            <div class="img">
+                                <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/work.png" alt="">
+                                <img v-if="homeInfo.position_check==2" class="check"
+                                     src="__TMPL__/weixin/public/assets/img/auth/confirm_ok.png" alt="">
+                                <img v-else class="check" src="__TMPL__/weixin/public/assets/img/auth/confirm_no.png"
+                                     alt="">
+                            </div>
+                            <div class="auth-type">
+                                <p v-if="homeInfo.position_check==2">工作已认证</p><p v-else>工作未认证</p>
+                                <p class="type">认证方式:
+                                    <span v-if="homeInfo.position_type==1">支付宝社保截图/社保证明</span>
+                                    <span v-else-if="homeInfo.position_type==2">钉钉或企业微信名片</span>
+                                    <span v-else-if="homeInfo.position_type==3">在职证明/劳动合同/营业执照</span>
+                                    <span v-else-if="homeInfo.position_type==4">工牌/名片/工作证等</span>
+                                    <span v-else-if="homeInfo.position_type==5">录取offer/工资单</span>
+                                    <span v-else-if="homeInfo.position_type==6">学生相关证件</span>
+                                    <span v-else>其他</span>
+                                </p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="auth-item">
+                        <div class="info education">
+                            <div class="img">
+                                <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/education_check.png" alt="">
+                                <img v-if="homeInfo.education_check==2" class="check"
+                                     src="__TMPL__/weixin/public/assets/img/auth/confirm_ok.png" alt="">
+                                <img v-else class="check" src="__TMPL__/weixin/public/assets/img/auth/confirm_no.png"
+                                     alt="">
+                            </div>
+                            <div class="auth-type">
+                                <p v-if="homeInfo.education_check==2">学历已认证</p><p v-else>学历未认证</p>
+                                <p class="type">认证方式:
+                                    <span v-if="homeInfo.education_type==1">毕业证/学位证书照片</span>
+                                    <span v-else-if="homeInfo.education_type==2">学信网学籍、学历图片</span>
+                                    <span v-else-if="homeInfo.education_type==3">港澳台或海外学历认证</span>
+                                    <span v-else>其他</span>
+                                </p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="op">
+                    <span @click="switchAuthBox()" :class="showAuth? 'up' : 'down'"><img src="__TMPL__/weixin/public/assets/img/auth/icon-up.png" alt=""></span>
+                </div>
             </div>
         </div>
         <div class="tix_box">
-            <div class="tix_xix"><h1>自我描述</h1>
+            <div class="tix_xix pic-info"><h1>自我描述</h1>
                 <div class="info-item">
                     <div v-if="homeInfo.introduce" v-html="homeInfo.introduce"></div>
-                    <img v-if="homeInfo.introduce_img" :src="'/api/storage/imgThumb?url='+homeInfo.introduce_img_preview"/>
+                    <img v-if="homeInfo.introduce_img" class="lazyimg" :src="homeInfo.introduce_img_preview"
+                         data-type="introduce"/>
                     <div v-if="!homeInfo.introduce && !homeInfo.introduce_img">暂无</div>
                 </div>
             </div>
-            <div class="tix_xix"><h1>家庭背景</h1>
+            <div class="tix_xix pic-info"><h1>家庭背景</h1>
                 <div class="info-item">
                     <div v-if="homeInfo.family" v-html="homeInfo.family"></div>
-                    <img v-if="homeInfo.family_img" :src="'/api/storage/imgThumb?url='+homeInfo.family_img_preview"/>
+                    <img v-if="homeInfo.family_img" class="lazyimg" :src="homeInfo.family_img_preview"/>
                     <div v-if="!homeInfo.family && !homeInfo.family_img">暂无</div>
                 </div>
             </div>
-            <div class="tix_xix"><h1>兴趣爱好</h1>
+            <div class="tix_xix pic-info"><h1>兴趣爱好</h1>
                 <div class="info-item">
                     <div v-if="homeInfo.hobby" v-html="homeInfo.hobby"></div>
-                    <img v-if="homeInfo.hobby_img" :src="'/api/storage/imgThumb?url='+homeInfo.hobby_img_preview"/>
+                    <img v-if="homeInfo.hobby_img" class="lazyimg" :src="homeInfo.hobby_img_preview"/>
                     <div v-if="!homeInfo.hobby && !homeInfo.hobby_img">暂无</div>
                 </div>
             </div>
-            <div class="tix_xix"><h1>理想的另一半</h1>
+            <div class="tix_xix pic-info"><h1>理想的另一半</h1>
                 <div class="info-item">
                     <div v-if="homeInfo.purpose" v-html="homeInfo.purpose"></div>
-                    <img v-if="homeInfo.purpose_img" :src="'/api/storage/imgThumb?url='+homeInfo.purpose_img_preview"/>
+                    <img v-if="homeInfo.purpose_img" class="lazyimg" :src="homeInfo.purpose_img_preview"/>
                     <div v-if="!homeInfo.purpose && !homeInfo.purpose_img">暂无</div>
                 </div>
             </div>
-            <div class="tix_xix"><h1>我为什么单身</h1>
-                <div class="info-item" >
+            <div class="tix_xix pic-info"><h1>我为什么单身</h1>
+                <div class="info-item">
                     <div v-if="homeInfo.cause" v-html="homeInfo.cause"></div>
-                    <img v-if="homeInfo.cause_img" :src="'/api/storage/imgThumb?url='+homeInfo.cause_img_preview"/>
+                    <img v-if="homeInfo.cause_img" class="lazyimg" :src="homeInfo.cause_img_preview"/>
                     <div v-if="!homeInfo.cause && !homeInfo.cause_img">暂无</div>
                 </div>
             </div>
-            <div class="tix_xix"><h1>遇到对的人,我期待什么样的生活</h1>
+            <div class="tix_xix pic-info"><h1>遇到对的人,我期待什么样的生活</h1>
                 <div class="info-item">
                     <div v-if="homeInfo.expect" v-html="homeInfo.expect"></div>
-                    <img v-if="homeInfo.expect_img" :src="'/api/storage/imgThumb?url='+homeInfo.expect_img_preview"/>
+                    <img v-if="homeInfo.expect_img" class="lazyimg" :src="homeInfo.expect_img_preview"/>
                     <div v-if="!homeInfo.expect && !homeInfo.expect_img">暂无</div>
                 </div>
             </div>
@@ -82,33 +217,69 @@
                 <div class="info-item brief" v-html="homeInfo.brief">
                 </div>
             </div>
+            <div class="tix_xix" v-if="homeInfo.tags && homeInfo.tags.length>0">
+                <h1>我的标签</h1>
+                <div class="info-item tags">
+                    <span class="tag" v-for="(v,k) in homeInfo.tags" :key="k" v-text="v"></span>
+                </div>
+            </div>
         </div>
 
-        <div class="xuanfi" v-if="siteInfo.contact_type==1 || type==1">
+        <div class="xuanfi type1" v-if="siteInfo.contact_type==1 || type==1">
             <ul v-if="memberInfo.id != homeInfo.id">
-                <li class="has" v-if="memberInfo.is_collect" @click="collect(2)"><img src="__TMPL__/weixin/public/assets/img/collect.png"><span>已收藏</span></li>
-                <li v-else @click="collect(1)"><img src="__TMPL__/weixin/public/assets/img/collect.png"><span>收藏</span></li>
-                <li class="xuanfi_ann2" v-if="cInfo && cInfo.status==1 && cInfo.contact_uid==memberInfo.id" @click="contactConfirm(cInfo.id)"><img src="__TMPL__/weixin/public/assets/img/love.png"><span>通知处理</span></li>
-                <li class="xuanfi_ann2" v-else-if="cInfo && cInfo.status==1 && cInfo.contact_uid!=memberInfo.id" ><img src="__TMPL__/weixin/public/assets/img/love.png"><span>已申请</span></li>
-                <li class="xuanfi_ann2" v-else-if="cInfo && cInfo.status==2 && cInfo.contact_uid==memberInfo.id"><img src="__TMPL__/weixin/public/assets/img/love.png"><span>已通过</span></li>
-                <li class="xuanfi_ann2" v-else-if="cInfo && cInfo.status==3"><img src="__TMPL__/weixin/public/assets/img/love.png"><span>已拒绝</span></li>
-                <li class="xuanfi_ann2" v-else @click="contact()"><img src="__TMPL__/weixin/public/assets/img/love.png"><span>申请微信</span></li>
+                <li class="has" v-if="memberInfo.is_collect" @click="collect(2)"><img
+                        src="__TMPL__/weixin/public/assets/img/collect.png"><span>已关注</span></li>
+                <li v-else @click="collect(1)"><img src="__TMPL__/weixin/public/assets/img/collect.png"><span>关注</span>
+                </li>
+                <li class="xuanfi_ann2" v-if="cInfo && cInfo.status==1 && cInfo.contact_uid==memberInfo.id"
+                    @click="contactConfirm(cInfo.id)"><img
+                        src="__TMPL__/weixin/public/assets/img/love.png"><span>通知处理</span></li>
+                <li class="xuanfi_ann2" v-else-if="cInfo && cInfo.status==1 && cInfo.contact_uid!=memberInfo.id"><img
+                        src="__TMPL__/weixin/public/assets/img/love.png">
+                    <span v-if="cInfo.is_read">申请已读</span>
+                    <span v-else>申请未读</span>
+                </li>
+                <li class="xuanfi_ann2" v-else-if="cInfo && cInfo.status==2"><img
+                        src="__TMPL__/weixin/public/assets/img/love.png"><span>已通过</span></li>
+                <li class="xuanfi_ann2" v-else-if="cInfo && cInfo.status==3"><img
+                        src="__TMPL__/weixin/public/assets/img/love.png"><span>已拒绝</span></li>
+                <li class="xuanfi_ann2" v-else @click="contact()"><img src="__TMPL__/weixin/public/assets/img/love.png"><span>申请微信</span>
+                </li>
                 <li @click="sharePopup=true"><img src="__TMPL__/weixin/public/assets/img/share.png"><span>分享</span></li>
             </ul>
             <ul v-else>
-                <li class="share" @click="sharePopup=true"><img src="__TMPL__/weixin/public/assets/img/share.png"><span>分享</span></li>
+                <li class="share" @click="sharePopup=true"><img src="__TMPL__/weixin/public/assets/img/share.png"><span>分享</span>
+                </li>
             </ul>
         </div>
-        <div class="xuanfi" v-else-if="siteInfo.contact_type==2 && type==2">
+        <div class="xuanfi type2" v-else-if="type==2">
             <ul>
-                <li class="share" @click="sharePopup=true"><img src="__TMPL__/weixin/public/assets/img/share.png"><span>分享</span></li>
+                <li class="has collect" v-if="memberInfo.is_collect" @click="collect(2)"><img
+                        src="__TMPL__/weixin/public/assets/img/collect.png"><span>已关注</span></li>
+                <li class="collect" v-else @click="collect(1)"><img src="__TMPL__/weixin/public/assets/img/collect.png"><span>关注</span>
+                </li>
+                <li class="share" @click="sharePopup=true"><img src="__TMPL__/weixin/public/assets/img/share.png"><span>分享</span>
+                </li>
             </ul>
         </div>
         <div class="tanc" v-show="sharePopup">
             <img src="__TMPL__/weixin/public/assets/img/tubiao38.png">
         </div>
+
+        <div id="popupBox" class="weui-popup__container show-info">
+            <div class="weui-popup__overlay"></div>
+            <div class="weui-popup__modal" v-if="content">
+                <div class="fanhui2">
+                    <h1>举报用户</h1>
+                    <a @click="hidePopup()"><img src="__TMPL__/weixin/public/assets/img/icon/del.png"></a>
+                </div>
+                <div class="cont" v-html="showContent"
+                     style="overflow: hidden;-webkit-overflow-scrolling:touch;width:100%;">
+                </div>
+            </div>
+        </div>
     </div>
 </div>
 <script src="__TMPL__/weixin/public/assets/lib/swiper.min.js?v={$version}"></script>
-<script src="__TMPL__/weixin/public/assets/js/home.js?v={$version}"></script>
+<script src="__TMPL__/weixin/public/assets/js/home.js?v={$version}2"></script>
 <include file="weixin@block:footer"/>

+ 73 - 56
public/themes/default/weixin/member/index.html

@@ -20,9 +20,6 @@
                 </div>
             </div>
         </div>
-        <div class="switch" v-if="memberInfo.agent_type==1">
-            <a href="/weixin/market/index"><span class="type1">推广中心</span></a>
-        </div>
         <div class="zhobu_box">
             <div class="zhubu">
                 <a href="/weixin/account/recharge">
@@ -49,61 +46,81 @@
                 </a>
             </div>
         </div>
-        <div class="yaoqrk">
-            <a href="/weixin/member/invite"><h2>每邀请一位好友,免费得10颗爱心</h2><img  src="__TMPL__/weixin/public/assets/img/tubiao42.png"></a>
+       <div class="yaoqrk">
+            <a href="/weixin/member/invite"><h2>每邀请一位好友,免费得20颗爱心</h2><img  src="__TMPL__/weixin/public/assets/img/tubiao42.png"></a>
         </div>
         <div class="liebr_box">
-            <ul>
-                <a href="/weixin/auth/vip">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-vip.png">
-                        <span>会员中心</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><h2 class="expire" v-if="memberInfo.vip_expire_near">即将到期请及时续费</h2></li>
-                </a>
-                <a href="/weixin/auth/index">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-auth.png">
-                        <span>我的认证</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"/><h2 v-if="memberInfo.id" :class="memberInfo.is_auth?'auth' : 'no'"><span v-if="memberInfo.is_auth"><img src="__TMPL__/weixin/public/assets/img/auth.png" width="130" height="36"/></span><span v-else>去认证</span></h2></li>
-
-                </a>
-                <a href="/weixin/member/activity">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-activity.png">
-                        <span>我的活动</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/member/heartbeat">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-heart.png">
-                        <span>怦然心动</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <!--<a href="/weixin/account/index">
-                    <li><img src="__TMPL__/weixin/public/assets/img/tubiao43.png">
-                        <span>充值记录</p><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><h3 v-text="memberInfo.rechargeCount" v-if="memberInfo.rechargeCount">0</h3></li>
-                </a>-->
-                <a href="/weixin/auth/hand">
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-hand.png" >
-                        <span>人工牵线</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/page/custom?type=1">
-                    <li><img src="__TMPL__/weixin/public/assets/img/custom.png">
-                        <span>我的客服</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/member/privacy" >
-                    <li><img src="__TMPL__/weixin/public/assets/img/new-privacy.png">
-                        <span>隐私设置</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/page/rule">
-                    <li><img  src="__TMPL__/weixin/public/assets/img/new-rule.png">
-                        <span>违规处罚</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/member/complain">
-                    <li><img  src="__TMPL__/weixin/public/assets/img/user_black.png">
-                        <span>举报用户</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/member/advice">
-                    <li><img  src="__TMPL__/weixin/public/assets/img/advice.png">
-                        <span>反馈建议</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-                <a href="/weixin/page/about">
-                    <li class="bangd_s"><img src="__TMPL__/weixin/public/assets/img/new-about.png">
-                        <span>关于拾光</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
-                </a>
-            </ul>
+            <div class="menu-list">
+                <div class="title">个人中心</div>
+                <div class="menu-box">
+                    <a href="/weixin/auth/index">
+                        <img src="__TMPL__/weixin/public/assets/img/new-auth.png">
+                        <span>我的认证</span>
+                    </a>
+                    <a href="/weixin/member/activity">
+                        <img src="__TMPL__/weixin/public/assets/img/new-activity.png">
+                        <span>我的活动</span>
+                    </a>
+                    <a href="/weixin/member/heartbeat">
+                        <img src="__TMPL__/weixin/public/assets/img/new-heart.png">
+                        <span>匹配设置</span>
+                    </a>
+                    <a href="/weixin/auth/vip">
+                        <img src="__TMPL__/weixin/public/assets/img/new-vip.png">
+                        <span>开通会员</span>
+                    </a>
+                    <a href="/weixin/auth/hand">
+                        <img src="__TMPL__/weixin/public/assets/img/new-hand.png">
+                        <span>人工牵线</span>
+                    </a>
+                    <a href="/weixin/page/custom?type=1">
+                        <img src="__TMPL__/weixin/public/assets/img/custom.png">
+                        <span>联系客服</span>
+                    </a>
+                </div>
+            </div>
+            <div class="menu-list">
+                <div class="title">拾光副业</div>
+                <div class="menu-box">
+                    <a href="/weixin/market/index" v-if="memberInfo.agent_type==1">
+                        <img src="__TMPL__/weixin/public/assets/img/new-market.png">
+                        <span>推广中心</span>
+                    </a>
+                    <a href="https://mp.weixin.qq.com/s/TKdSAyZ0_Q1FqjCK48nJ0A">
+                        <img src="__TMPL__/weixin/public/assets/img/new-red.png">
+                        <span>推广红娘</span>
+                    </a>
+                    <a href="/weixin/page/marketAgree">
+                        <img src="__TMPL__/weixin/public/assets/img/new-award.png">
+                        <span>奖励注册</span>
+                    </a>
+                </div>
+            </div>
+            <div class="menu-list">
+                <div class="title">其他</div>
+                <div class="menu-box">
+                    <a href="/weixin/member/privacy">
+                        <img src="__TMPL__/weixin/public/assets/img/new-privacy.png">
+                        <span>隐私设置</span>
+                    </a>
+                    <a href="/weixin/page/rule">
+                        <img src="__TMPL__/weixin/public/assets/img/new-rule.png">
+                        <span>违规处罚规则</span>
+                    </a>
+                    <a href="/weixin/member/complain">
+                        <img src="__TMPL__/weixin/public/assets/img/user_black.png">
+                        <span>黑名单用户</span>
+                    </a>
+                    <a href="/weixin/member/advice">
+                        <img src="__TMPL__/weixin/public/assets/img/advice.png">
+                        <span>反馈建议</span>
+                    </a>
+                    <a href="/weixin/page/about">
+                        <img src="__TMPL__/weixin/public/assets/img/new-about.png">
+                        <span>关于拾光</span>
+                    </a>
+                </div>
+            </div>
         </div>
     </div>
     <include file="weixin@block:footer_nav"/>

+ 112 - 0
public/themes/default/weixin/member/index_back.html

@@ -0,0 +1,112 @@
+<include file="weixin@block:header"/>
+<title>个人中心</title>
+<link rel="stylesheet" href="__TMPL__/weixin/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__/weixin/public/assets/img/tubiao9.png">
+            <div class="tox_xx">
+                <div class="tox"> <img :src="memberInfo.avatar? memberInfo.avatar : '__TMPL__/weixin/public/assets/img/tubiao7.png'"  onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao7.png'"></div>
+                <div class="wod_xim">
+                    <h1 v-text="memberInfo.user_nickname? memberInfo.user_nickname : '游客'"></h1>
+                    <p><a href="/weixin/member/profile">查看/编辑个人主页</a></p>
+                    <p v-if="memberInfo.id">
+                        <a href="/weixin/auth/vip">
+                        <span v-if="memberInfo.vip_auth==1" v-text="'您的VIP会员于'+memberInfo.vip_expire+'到期'"></span>
+                        <span v-else-if="memberInfo.vip_expire" v-text="'您的VIP会员于'+memberInfo.vip_expire+'已到期'"></span>
+                        <span v-else>升级成为VIP</span>
+                        </a>
+                    </p>
+                </div>
+            </div>
+        </div>
+        <div class="switch" v-if="memberInfo.agent_type==1">
+            <a href="/weixin/market/index"><span class="type1">推广中心</span></a>
+        </div>
+        <div class="zhobu_box">
+            <div class="zhubu">
+                <a href="/weixin/account/recharge">
+                    <h1 v-text="memberInfo.redheart? memberInfo.redheart : 0">0</h1>
+                    <p>我的爱心</p>
+                </a>
+            </div>
+            <div class="zhubu">
+                <a href="/weixin/member/message">
+                    <h1 v-text="memberInfo.messageCount? memberInfo.messageCount : 0">0</h1>
+                    <p>我的消息</p>
+                </a>
+            </div>
+            <div class="zhubu">
+                <a href="/weixin/member/collect">
+                    <h1 v-text="memberInfo.collectCount? memberInfo.collectCount : 0">0</h1>
+                    <p>我的关注</p>
+                </a>
+            </div>
+            <div class="zhubu">
+                <a href="/weixin/member/access">
+                    <h1 v-text="memberInfo.accessCount? memberInfo.accessCount : 0">0</h1>
+                    <p>最近来访</p>
+                </a>
+            </div>
+        </div>
+        <div class="yaoqrk">
+            <a href="/weixin/member/invite"><h2>每邀请一位好友,免费得10颗爱心</h2><img  src="__TMPL__/weixin/public/assets/img/tubiao42.png"></a>
+        </div>
+        <div class="liebr_box">
+            <ul>
+                <a href="/weixin/auth/vip">
+                    <li><img src="__TMPL__/weixin/public/assets/img/new-vip.png">
+                        <span>会员中心</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><h2 class="expire" v-if="memberInfo.vip_expire_near">即将到期请及时续费</h2></li>
+                </a>
+                <a href="/weixin/auth/index">
+                    <li><img src="__TMPL__/weixin/public/assets/img/new-auth.png">
+                        <span>我的认证</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"/><h2 v-if="memberInfo.id" :class="memberInfo.is_auth?'auth' : 'no'"><span v-if="memberInfo.is_auth"><img src="__TMPL__/weixin/public/assets/img/auth.png" width="130" height="36"/></span><span v-else>去认证</span></h2></li>
+
+                </a>
+                <a href="/weixin/member/activity">
+                    <li><img src="__TMPL__/weixin/public/assets/img/new-activity.png">
+                        <span>我的活动</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/member/heartbeat">
+                    <li><img src="__TMPL__/weixin/public/assets/img/new-heart.png">
+                        <span>怦然心动</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <!--<a href="/weixin/account/index">
+                    <li><img src="__TMPL__/weixin/public/assets/img/tubiao43.png">
+                        <span>充值记录</p><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"><h3 v-text="memberInfo.rechargeCount" v-if="memberInfo.rechargeCount">0</h3></li>
+                </a>-->
+                <a href="/weixin/auth/hand">
+                    <li><img src="__TMPL__/weixin/public/assets/img/new-hand.png" >
+                        <span>人工牵线</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/page/custom?type=1">
+                    <li><img src="__TMPL__/weixin/public/assets/img/custom.png">
+                        <span>我的客服</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/member/privacy" >
+                    <li><img src="__TMPL__/weixin/public/assets/img/new-privacy.png">
+                        <span>隐私设置</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/page/rule">
+                    <li><img  src="__TMPL__/weixin/public/assets/img/new-rule.png">
+                        <span>违规处罚</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/member/complain">
+                    <li><img  src="__TMPL__/weixin/public/assets/img/user_black.png">
+                        <span>举报用户</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/member/advice">
+                    <li><img  src="__TMPL__/weixin/public/assets/img/advice.png">
+                        <span>反馈建议</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+                <a href="/weixin/page/about">
+                    <li class="bangd_s"><img src="__TMPL__/weixin/public/assets/img/new-about.png">
+                        <span>关于拾光</span><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
+                </a>
+            </ul>
+        </div>
+    </div>
+    <include file="weixin@block:footer_nav"/>
+</div>
+<script src="__TMPL__/weixin/public/assets/js/member.js?v={$version}"></script>
+<include file="weixin@block:footer"/>

+ 88 - 88
public/themes/default/weixin/member/invite.html

@@ -1,89 +1,89 @@
-<include file="weixin@block:header"/>
-<!--<title>我的爱心</title>-->
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/invite.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>
-    </div>
-    <div class="main scroll" v-if="memberInfo.id">
-        <div class="aix_box"><img src="__TMPL__/weixin/public/assets/img/tup11.jpg"></div>
-        <div class="aix_nr">
-            <div class="aix_cz"><img src="__TMPL__/weixin/public/assets/img/tubiao28.png">
-                <h1 v-text="memberInfo.redheart"></h1>
-                <h2><a href="/weixin/account/recharge">获取更多爱心</a></h2>
-            </div>
-            <ul>
-                <!--<li><h1>完善资料</h1>
-                    <h2><a href="/weixin/member/profile">
-                        <span v-if="memberInfo.profile_complete==1">已完善</span>
-                        <span v-else>去完善</span>
-                    </a></h2></li>-->
-                <li><h1>学历认证送10颗<b>❤</b></h1>
-                    <h2><a href="/weixin/auth/education">
-                        <span v-if="memberInfo.education_check==1">待审核</span>
-                        <span v-else-if="memberInfo.education_check==2">已认证</span>
-                        <span v-else-if="memberInfo.education_check==3">认证失败</span>
-                        <span v-else>去认证</span>
-                    </a></h2></li>
-                <li><h1>工作认证送10颗<b>❤</b></h1>
-                    <h2><a href="/weixin/auth/position">
-                        <span v-if="memberInfo.position_check==1">待审核</span>
-                        <span v-else-if="memberInfo.position_check==2">已认证</span>
-                        <span v-else-if="memberInfo.position_check==3">认证失败</span>
-                        <span v-else>去认证</span>
-                    </a></h2></li>
-                <li><h1>VIP会员中心免<b>❤</b></h1>
-                    <h2><a href="/weixin/auth/vip">
-                        <span v-if="memberInfo.vip_auth==1">已开通</span>
-                        <span v-else>去开通</span>
-                    </a></h2></li>
-                <li><h1>解救单身青年送10颗<b>❤</b></h1>
-                    <h2><a @click="share()">去分享</a></h2></li>
-            </ul>
-        </div>
-        <div class="erweim_box">
-            <img :src="memberInfo.qrcode? memberInfo.qrcode : '__TMPL__/weixin/public/assets/img/qrcode.jpg'">
-            <div class="invite-num">(您已成功邀请<span v-text="memberInfo.invite_count? memberInfo.invite_count : 0">0</span>位小伙伴)</div>
-            <div class="jiaj" @click="share()">解救单身青年</div>
-        </div>
-        <div id="share" class="share">
-            <div class="box">
-                <div id="invite" class="content" v-show="!showImg">
-                    <div class="invite-box">
-                        <img class="bg" src="/themes/default/weixin/public/assets/img/qr_backage.jpg?v={$version}"/>
-                        <div class="text-box">
-                            <div class="avatar"><img src="" onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao7.png'" crossorigin="anonymous"></div>
-                            <div class="text">
-                                <div class="item">
-                                    <p class="title">接受<span v-text="memberInfo.user_nickname"></span>的邀请</p>
-                                    <p>加入被身边多个朋友推荐相见恨晚的脱单平台</p>
-                                </div>
-                                <div class="item">
-                                    <p>汇聚南宁优质单身青年,本硕博海归占比超78%,脱单来这里就够了</p>
-                                </div>
-                                <div class="qrcode">
-                                    <p>(长按关注,立即加入)</p>
-                                    <p class="img">
-                                        <img src="" crossOrigin="anonymous"  onerror="this.src='__TMPL__/weixin/public/assets/img/qrcode.jpg'">
-                                    </p>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div id="shareImg" class="shareImg" v-show="showImg">
-                    <img  src="" alt="">
-                </div>
-                <div class="tips"><p>长按发送给朋友,好友关注即可获得奖励</p></div>
-                <div class="btn"><a @click="switchShare(2)">返回</a></div>
-            </div>
-        </div>
-        <div class="invite">
-
-        </div>
-    </div>
-</div>
-<script src="__TMPL__/weixin/public/assets/lib/html2canvas.min.js?v={$version}"></script>
-<script src="__TMPL__/weixin/public/assets/js/invite.js?v={$version}"></script>
+<include file="weixin@block:header"/>
+<!--<title>我的爱心</title>-->
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/invite.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>
+    </div>
+    <div class="main scroll" v-if="memberInfo.id">
+        <div class="aix_box"><img src="__TMPL__/weixin/public/assets/img/tup11.jpg"></div>
+        <div class="aix_nr">
+            <div class="aix_cz"><img src="__TMPL__/weixin/public/assets/img/tubiao28.png">
+                <h1 v-text="memberInfo.redheart"></h1>
+                <h2><a href="/weixin/account/recharge">获取更多爱心</a></h2>
+            </div>
+            <ul>
+                <!--<li><h1>完善资料</h1>
+                    <h2><a href="/weixin/member/profile">
+                        <span v-if="memberInfo.profile_complete==1">已完善</span>
+                        <span v-else>去完善</span>
+                    </a></h2></li>-->
+                <li><h1>学历认证送10颗<b>❤</b></h1>
+                    <h2><a href="/weixin/auth/education">
+                        <span v-if="memberInfo.education_check==1">待审核</span>
+                        <span v-else-if="memberInfo.education_check==2">已认证</span>
+                        <span v-else-if="memberInfo.education_check==3">认证失败</span>
+                        <span v-else>去认证</span>
+                    </a></h2></li>
+                <li><h1>工作认证送10颗<b>❤</b></h1>
+                    <h2><a href="/weixin/auth/position">
+                        <span v-if="memberInfo.position_check==1">待审核</span>
+                        <span v-else-if="memberInfo.position_check==2">已认证</span>
+                        <span v-else-if="memberInfo.position_check==3">认证失败</span>
+                        <span v-else>去认证</span>
+                    </a></h2></li>
+                <li><h1>VIP会员中心免<b>❤</b></h1>
+                    <h2><a href="/weixin/auth/vip">
+                        <span v-if="memberInfo.vip_auth==1">已开通</span>
+                        <span v-else>去开通</span>
+                    </a></h2></li>
+                <li><h1>解救单身青年送20颗<b>❤</b></h1>
+                    <h2><a @click="share()">去分享</a></h2></li>
+            </ul>
+        </div>
+        <div class="erweim_box">
+            <img :src="memberInfo.qrcode? memberInfo.qrcode : '__TMPL__/weixin/public/assets/img/qrcode.jpg'">
+            <div class="invite-num">(您已成功邀请<span v-text="memberInfo.invite_count? memberInfo.invite_count : 0">0</span>位小伙伴)</div>
+            <div class="jiaj" @click="share()">解救单身青年</div>
+        </div>
+        <div id="share" class="share">
+            <div class="box">
+                <div id="invite" class="content" v-show="!showImg">
+                    <div class="invite-box">
+                        <img class="bg" src="/themes/default/weixin/public/assets/img/qr_backage.jpg?v={$version}"/>
+                        <div class="text-box">
+                            <div class="avatar"><img src="" onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao7.png'" crossorigin="anonymous"></div>
+                            <div class="text">
+                                <div class="item">
+                                    <p class="title">接受<span v-text="memberInfo.user_nickname"></span>的邀请</p>
+                                    <p>加入被身边多个朋友推荐相见恨晚的脱单平台</p>
+                                </div>
+                                <div class="item">
+                                    <p>汇聚南宁优质单身青年,本硕博海归占比超78%,脱单来这里就够了</p>
+                                </div>
+                                <div class="qrcode">
+                                    <p>(长按关注,立即加入)</p>
+                                    <p class="img">
+                                        <img src="" crossOrigin="anonymous"  onerror="this.src='__TMPL__/weixin/public/assets/img/qrcode.jpg'">
+                                    </p>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div id="shareImg" class="shareImg" v-show="showImg">
+                    <img  src="" alt="">
+                </div>
+                <div class="tips"><p>长按发送给朋友,好友关注即可获得奖励</p></div>
+                <div class="btn"><a @click="switchShare(2)">返回</a></div>
+            </div>
+        </div>
+        <div class="invite">
+
+        </div>
+    </div>
+</div>
+<script src="__TMPL__/weixin/public/assets/lib/html2canvas.min.js?v={$version}"></script>
+<script src="__TMPL__/weixin/public/assets/js/invite.js?v={$version}"></script>
 <include file="weixin@block:footer"/>

+ 31 - 0
public/themes/default/weixin/member/signs.html

@@ -0,0 +1,31 @@
+<include file="weixin@block:header"/>
+<!--<title>我的爱心</title>-->
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/sign.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>
+    </div>
+    <div class="main" v-if="memberInfo.id">
+        <div class="chiz_box">
+            <div class="aix_cz">
+               <div class="title">签到领爱心!</div>
+               <div class="info">
+                   <p class="day" v-text="mealInfo.name">第1天</p>
+                   <p class="remark" v-if="memberInfo.signed">今日已签到获得<span class="heart" v-text="mealInfo.give_num">1</span>个爱心</p>
+                   <p class="remark" v-else>今日签到可获得<span class="heart" v-text="mealInfo.give_num">1</span>个爱心</p>
+               </div>
+            </div>
+            <div class="chuz_sl">
+                <div :class="'list-item'+(memberInfo.sign_day>=v.day? ' active': (mealInfo.id==v.id && !memberInfo.signed?' active current':''))" v-for="(v,k) in mealList">
+                    <div class="title" v-text="v.name"></div>
+                    <div class="img"><b>❤<span v-if="memberInfo.sign_day>=v.day"></span></b></div>
+                    <div class="give" v-text="'+'+v.give_num"></div>
+                </div>
+
+        </div>
+        <div class="ger_banc" @click="postSubmit()"><h1>签到</h1></div>
+    </div>
+</div>
+<script src="__TMPL__/weixin/public/assets/js/signs.js?v={$version}"></script>
+<include file="weixin@block:footer"/>

+ 29 - 7
public/themes/default/weixin/public/assets/css/account-index.css

@@ -6,11 +6,33 @@
     width: 100%;
 }
 .dataList {
-    margin-top: 65px;
+    margin-top: 90px;
+}
+.chonjl_box{position: relative; background: #fff;margin: 5px 0;padding: 15px 20px;border-radius: 10px;letter-spacing:0.5px;font-size: 14px;}
+.chonjl_box h1{font-size: 16px;color: #333; letter-spacing:1px;}
+.chonjl_box .time {
+    color: #999;
+}
+.chonjl_box .status {
+    position: absolute;
+    bottom: 20px;
+    right: 15px;
+    color: #999;
+    font-size: 14px;
+}
+.chonjl_box .status em {
+    font-style: normal;
+    color: #ffd132;
+    margin-right: 2px;
+}
+
+.chonjl_box .status2 em{
+    color: red;
+}
+
+.huxian{background: #fff;height: 45px;margin-top: 40px;position: fixed;z-index: 9999;width: 100%;}
+.huxian ul{padding: 0 15px;overflow: hidden;}
+.huxian li{font-size: 16px;color: #333;float: left;overflow: hidden;width: 20%;text-align: center;line-height: 43px;}
+.huxian li.active {
+    color: #ffd132;
 }
-.chonjl_box{background: #fff;margin: 20px;padding: 15px 20px;border-radius: 10px;letter-spacing:0.5px;}
-.chonjl_box h1{font-size: 22px;height: 35px;color: #333;letter-spacing:1px;}
-.chonjl_box h1.status2{color: #ffd132;}
-.chonjl_box p{font-size: 18px;color: #666;line-height: 34px;}
-.chonjl_box img{width: 18px;}
-.chonjl_box p b{margin-left: 6px;color: #333;}

+ 7 - 0
public/themes/default/weixin/public/assets/css/home.css

@@ -105,6 +105,7 @@ body {
     text-align: left;
     margin: 0 15px;
     width: auto;
+    position: relative;
 }
 
 .auth-item .info .img {
@@ -197,6 +198,12 @@ body {
     -webkit-transform:rotate(180deg); /* Safari 和 Chrome */
     -o-transform:rotate(180deg); 	/* Opera */
 }
+
+.auth-row .auth-item .auth-type p a {
+    position: absolute;
+    right: 10px;
+    color: #ffd132;
+}
 /*	底部悬浮*/
 
 .xuanfi{width: 100%;height: 50px;position: fixed;bottom: 0; background: url(../img/beij.png)no-repeat;background-size: 100% 100%;padding-bottom: 15px;}

+ 49 - 56
public/themes/default/weixin/public/assets/css/market.css

@@ -15,7 +15,16 @@
     font-size: 10px;
 }
 .tox_box p{color: #fff;font-size: 14px;margin-top: 6px;}
-
+.wod_xim  p a {
+    color: #fff;
+    text-decoration: none;
+}
+.bangd_s{border-bottom: none!important;}
+.tox img {
+    width: 100%;
+    height: 100%;
+    border-radius: 100%;
+}
 
 
 .zhobu_box{width: 100%;height:86px;overflow: hidden;background: #fff;margin-top: -2px;}
@@ -32,68 +41,52 @@
 .main-box {
     margin-bottom: 60px;
 }
-.liebr_box{width: 100%;overflow: hidden;margin-top: 10px;}
-.liebr_box a {
-    display: block;
-    overflow: hidden;
-    height: 44px;
-}
-.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;display: inline-block;}
-.liebr_box li p{font-size: 14px;line-height: 44px;float: left;margin-left: 10px;color: #666;}
-.liebr_box li > span{font-size: 14px;line-height: 44px;float: left;margin-left: 10px;color: #666;}
-.liebr_box li h2.no{font-size: 12px;background:  #ffd132;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: #ffd132; */
-    float: right;
-    text-align: center;
-    border-radius: 130px;
-    margin-top: 11px;
-    padding: 4px 0;
-    color: #ffd132;
-}
-.wod_xim  p a {
-    color: #fff;
-    text-decoration: none;
+
+/* 新菜单样式 */
+body {
+    background: #fbf9f5;
 }
-.bangd_s{border-bottom: none!important;}
-.tox img {
-    width: 100%;
-    height: 100%;
-    border-radius: 100%;
+.menu-list {
+    background: #fff;
+    margin: 10px 10px 0;
+    border-radius: 6px;
+    padding: 10px 10px;
 }
 
-.liebr_box li .rule {
-    height: 22px;
-    width: 22px;
-    padding: 0px 3px;
+.menu-list .title {
+    padding: 10px 0;
+    font-size: 16px;
+    font-weight: bold;
+    color: #666;
 }
-.liebr_box li .expire {
-    font-size: 14px;
-    line-height: 45px;
-    float: right;
-    color: red;
-}
-/*.liebr_box li span {*/
-    /*float: right;*/
-    /*margin-top: 8px;*/
-/*}*/
-.liebr_box li span img {
-    vertical-align: middle;
-    margin: 0;
-    width: auto;
+.menu-list .menu-box {
+    font-size: 0;
 }
-
-.liebr_box li .rjiant {
-    width: 12px!important;
-    float: right!important;
-    margin-right: 15px;
-    margin-top: 16px!important;
-    height: 12px;
+.menu-list .menu-box a {
     display: inline-block;
+    width: 32%;
+    margin-right: 1%;
+    margin-bottom: 15px;
+    text-align: center;
+    font-size: 14px;
+}
+.menu-list .menu-box img {
+    display: block;
+}
+.menu-list .menu-box img {
+    max-width: 42px;
+    display: block;
+    width: 75%;
+    margin: 0 auto;
+    margin-bottom: 4px;
 }
+.menu-list .menu-box span {
+    display: block;
+    color: #666;
+}
+
+/* 菜单样式 end */
+
 .yaoqrk{background: #fff;padding-bottom:20px;position: relative;}
 .yaoqrk h2{font-size: 16px;padding:6px;text-align: center;border:1px solid  #ffd132;overflow: hidden;margin: 0 20px;color:#f5c432;border-radius: 6px;}
 

+ 0 - 5
public/themes/default/weixin/public/assets/css/member-activity.css

@@ -6,11 +6,6 @@
 }
 
 
-
-
-
-
-
 /*	活动列表*/
 
 .fanhui2{position: fixed;top: 0;width: 100%;padding: 0;z-index: 9999;}

+ 55 - 47
public/themes/default/weixin/public/assets/css/member.css

@@ -5,8 +5,61 @@
 .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;}
+.wod_xim  p a {
+    color: #fff;
+    text-decoration: none;
+}
+.bangd_s{border-bottom: none!important;}
+.tox img {
+    width: 100%;
+    height: 100%;
+    border-radius: 100%;
+}
+
+/* 新菜单样式 */
+body {
+    background: #fbf9f5;
+}
+.menu-list {
+    background: #fff;
+    margin: 10px 10px 0;
+    border-radius: 6px;
+    padding: 10px 10px;
+}
 
+.menu-list .title {
+    padding: 10px 0;
+    font-size: 16px;
+    font-weight: bold;
+    color: #666;
+}
+.menu-list .menu-box {
+    font-size: 0;
+}
+.menu-list .menu-box a {
+    display: inline-block;
+    width: 32%;
+    margin-right: 1%;
+    margin-bottom: 15px;
+    text-align: center;
+    font-size: 14px;
+}
+.menu-list .menu-box img {
+    display: block;
+}
+.menu-list .menu-box img {
+    max-width: 42px;
+    display: block;
+    width: 75%;
+    margin: 0 auto;
+    margin-bottom: 4px;
+}
+.menu-list .menu-box span {
+    display: block;
+    color: #666;
+}
 
+/* 菜单样式 end */
 
 .zhobu_box{width: 100%;height:86px;overflow: hidden;background: #fff;margin-top: -2px;}
 .zhubu{width: 25%;text-align: center;float: left;margin-top: 10px;}
@@ -22,53 +75,7 @@
 .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 a {
-    display: block;
-    overflow: hidden;
-    height: 44px;
-}
-.liebr_box li img{width: 28px; height: 28px;float: left;margin-left: 12px;margin-top: 8px;display: inline-block;}
-.liebr_box li > span{font-size: 14px;line-height: 44px;float: left;margin-left: 10px;color: #666;}
-.liebr_box li  p{font-size: 14px;line-height: 44px;float: left;margin-left: 10px;color: #666;}
-/*.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:  #ffd132;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:  #ffd132;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 .expire {
-    font-size: 14px;
-    line-height: 45px;
-    float: right;
-    color: red;
-}
-/*.liebr_box li span {*/
-    /*float: right;*/
-    /*margin-top: 8px;*/
-/*}*/
-.liebr_box li span img {
-    vertical-align: middle;
-    margin: 0;
-    width: auto;
-}
-
-.liebr_box li .rjiant{display: inline-block;width:12px!important;float: right!important;margin-right: 15px;margin-top:16px!important; height: 12px;}
 .yaoqrk{background: #fff;padding-bottom:20px;position: relative;}
 .yaoqrk h2{font-size: 16px;padding:6px;text-align: center;border:1px solid  #ffd132;overflow: hidden;margin: 0 20px;color:#f5c432;border-radius: 6px;}
 
@@ -90,4 +97,5 @@
     border-bottom-right-radius: 0;
     background-color: #e62977;
     color: #fff;
-}
+}
+

+ 184 - 0
public/themes/default/weixin/public/assets/css/sign.css

@@ -0,0 +1,184 @@
+body {
+    background: #fff;
+}
+
+.fanhui2 .hr {
+    display: inline-block;
+    position: absolute;
+    right: 15px;
+    height: 40px;
+    line-height: 40px;
+    top: 0;
+    color: #333;
+}
+
+.fanhui2 .hr a {
+    color: #333;
+}
+
+.chiz_box {
+    overflow: hidden;
+}
+
+.aix_cz {
+    overflow: hidden;
+    margin: 0 15px;
+    padding: 15px 0;
+    text-align: center;
+    padding-top: 30px;
+    margin-bottom: 20px;
+}
+.aix_cz .title {
+    font-size: 20px;
+    font-weight: bold;
+    color: #666;
+}
+.aix_cz .day {
+    padding: 5px 0;
+    color: #f2447d;
+}
+.aix_cz .heart {
+    font-weight: bold;
+    color: #f2447d;
+}
+.aix_cz h1 {
+    font-weight: bold;
+    color: #ffcb18;
+    font-size: 30px;
+    line-height: 40px;
+}
+
+.chuz_sl {
+    /*overflow: hidden;*/
+    padding-bottom: 10px;
+    /*overflow-x: scroll;*/
+    width: 96%;
+    margin: 0 auto;
+}
+.chuz_sl .list-item {
+    display: inline-block;
+    width: calc(22% - 2px);
+    margin: 0 1%;
+    background-color: #fffdf8;
+    border: 2px solid #ddd;
+    position: relative;
+    text-align: center;
+    border-radius: 8px;
+    padding: 10px 0;
+    font-size: 14px;
+    margin-bottom: 8px;
+    color: #666;
+}
+.chuz_sl .list-item .title {
+    font-size: 14px;
+    padding: 5px 0;
+    font-weight: bold;
+}
+.chuz_sl .list-item .give {
+    font-size: 14px;
+    font-weight: bold;
+}
+
+.chuz_sl .list-item .img {
+    color: #ffd132;
+    font-size: 22px;
+}
+.chuz_sl .list-item .name {
+    color: #ffd132;
+    font-size: 18px;
+}
+.chuz_sl .list-item.active {
+    border-color: #e9d285;
+    background-color: #e9d285;
+    color: #fff;
+}
+.chuz_sl .list-item.current {
+    border-color: #ffd132;
+    background-color: #ffd132;
+    color: #fff;
+}
+.chuz_sl .list-item:last-child {
+    width: calc(46% - 2px);
+}
+
+.chuz_sl .list-item.active .img, .chuz_sl .list-item.active .give {
+    color: #fff;
+}
+
+.chuz_sl .list-item .limit {
+    position: absolute;
+    top: -10px;
+    left: 0;
+    margin: auto;
+    background-color: #f2447d;
+    color: #fff;
+    font-size: 12px;
+    padding: 0px 2px;
+    border-radius: 8px 0px 8px 4px;
+    width: 80px;
+    right: 0;
+}
+.chuz_sl .list-item .give {
+    height: 24px;
+    font-size: 12px;
+    color: #999;
+}
+
+
+
+
+.zffs {
+    padding: 0 30px;
+    overflow: hidden;
+}
+
+.zffs h1 {
+    font-size: 14px;
+    line-height: 35px;
+    float: left;
+}
+
+.zffs img {
+    width: 18px;
+    float: right;
+    margin-top: 10px;
+    margin-right: 6px;
+}
+
+.zffs h2 {
+    font-size: 14px;
+    line-height: 35px;
+    float: right;
+}
+
+
+.ger_banc {
+    position: relative;
+    width: 90%;
+    bottom: 0;
+    margin: 10px auto;
+    right: 0;
+    left: 0;
+}
+
+.ger_banc h1 {
+    font-size: 18px;
+    height: 45px;
+    line-height: 45px;
+    text-align: center;
+    background: #ffd132;
+    color: #fff;
+    border-radius: 6px;
+    margin-top: 20px;
+    padding: 0 30px;
+}
+
+.intro {
+    font-size: 12px;
+    margin: 5px 10px;
+    color: #888;
+}
+
+.intro span {
+    color: red;
+}

+ 0 - 0
public/themes/default/weixin/public/assets/img/help.png


BIN
public/themes/default/weixin/public/assets/img/new-award.png


BIN
public/themes/default/weixin/public/assets/img/new-market.png


BIN
public/themes/default/weixin/public/assets/img/new-red.png


BIN
public/themes/default/weixin/public/assets/img/new-user.png


+ 15 - 2
public/themes/default/weixin/public/assets/js/account-index.js

@@ -7,7 +7,7 @@ var app = new Vue({
         params: {
             page: 1,
             pageSize: 12,
-            type: 1,
+            type: 0,
         },
         // 数据列表
         dataList: [],
@@ -40,6 +40,18 @@ var app = new Vue({
         })
     },
     methods: {
+        // 切换
+        switchType(ele, type){
+            var _this = this
+            if(this.params.type != type){
+                $(ele.target).addClass('active').siblings().removeClass('active');
+                _this.params.page = 1;
+                _this.params.type = type;
+                _this.status.loaded = false;
+                _this.dataList = [];
+                _this.getDataList(false);
+            }
+        },
         // 获取列表数据
         getDataList: function(more){
             var _this = this;
@@ -48,7 +60,8 @@ var app = new Vue({
                 _this.dataList = [];
             }
             $.showLoading("数据加载中...");
-            $.post('/api/account/getRechargeLog', _this.params, function (res) {
+            $.post('/api/account/getAccountLogs', _this.params, function (res) {
+                // $.post('/api/account/getRechargeLog', _this.params, function (res) {
                 _this.status.loading = false;
                 $.hideLoading();
                 if (res.code == 'success') {

+ 2 - 2
public/themes/default/weixin/public/assets/js/entry.js

@@ -152,8 +152,8 @@ var app = new Vue({
         // 生日
         var years = [];
         var date = new Date();
-        var year = date.getFullYear()-20;
-        for(var i=20;i>=0;i--){
+        var year = date.getFullYear()-21;
+        for(var i=26;i>=0;i--){
             years.push(year-i);
         }
         var code = $("#birthday").val();

+ 9 - 0
public/themes/default/weixin/public/assets/js/home.js

@@ -107,6 +107,15 @@ var app = new Vue({
             $.closePopup()
             this.showContent = '内容加载中...'
         },
+        // 邀请认证
+        inviteAuth(type){
+            var _this = this;
+            $.showLoading("操作处理中...");
+            $.post('/api/member/inviteAuth', {uid: _this.homeInfo.id, type: type}, function (res) {
+                $.hideLoading()
+                $.toast(res.message, 'text');
+            },"json");
+        },
         // 获取用户信息
         getMemberInfo: function () {
             var _this = this;

+ 2 - 2
public/themes/default/weixin/public/assets/js/profile/info.js

@@ -165,8 +165,8 @@ var app = new Vue({
             // 生日
             var years = [];
             var date = new Date();
-            var year = date.getFullYear()-20;
-            for(var i=20;i>=0;i--){
+            var year = date.getFullYear()-21;
+            for(var i=26;i>=0;i--){
                 years.push(year-i);
             }
             _this.params.birthday_code = _this.params.birthday_code? _this.params.birthday_code+' ' : (year-10)+'-01-01 ';

+ 99 - 0
public/themes/default/weixin/public/assets/js/signs.js

@@ -0,0 +1,99 @@
+var app = new Vue({
+    'el': '#app',
+    'data': {
+        // 当前导航
+        curNav: 'member',
+        // 用户信息
+        memberInfo: {},
+        mealList: [],
+        // 参数
+        mealInfo: {
+            give_num: 0,
+            id: 0,
+            name: '第1天',
+        },
+    },
+    created: function(){
+        this.getMeal();
+        this.getMemberInfo();
+    },
+    methods: {
+        // 选择套餐
+        selectMeal: function(ele, data){
+            if(data.heart<=0 || data.price<=0){
+                $.toast('套餐参数错误,请联系客服处理', 'text');
+                return false;
+            }
+            $(ele.currentTarget).addClass('active').siblings().removeClass('active');
+            // this.mealInfo = data
+        },
+        // 获取套餐
+        getMeal: function(){
+            var _this = this;
+            $.post('/api/member/signMeals', {type: 1}, function (res) {
+                if (res.code == 'success'){
+                    _this.mealList = res.data
+                    _this.initMeal();
+                }else if(res.code == 'exception'){
+                    $.showLoading(res.message);
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        },
+        // 初始化
+        initMeal(){
+            var signDay = this.memberInfo.signed? this.memberInfo.sign_day-1 : this.memberInfo.sign_day;
+            var info = typeof(this.mealList[signDay]) != 'undefined'? this.mealList[signDay] : [];
+            if(info){
+                this.mealInfo = info
+            }
+        },
+        // 获取用户信息
+        getMemberInfo: function(){
+            var _this = this;
+            $.showLoading("数据加载中...");
+            $.post('/api/member/getInfo', {type: 2}, function (res) {
+                $.hideLoading();
+                if (res.code == 'success'){
+                    _this.memberInfo = res.data
+                    _this.initMeal();
+                }else if(res.code == 'exception'){
+                    var url = res.data.url;
+                    $.showLoading(res.message,'text');
+                    if(url){
+                        setTimeout(function(){
+                            $.hideLoading();
+                            location.href = url;
+                        }, 500)
+                    }
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        },
+        // 签到
+        postSubmit: function(){
+            var _this = this;
+            if(_this.mealInfo.id<=0){
+                $.toast('请选择签到天数', "text");
+                return false;
+            }
+
+            $.showLoading("处理中...");
+            $.post('/api/member/sign', this.mealInfo, function (res) {
+                $.hideLoading();
+                if (res.code == 'success'){
+                    $.toast(res.message, 'text');
+                }else if(res.code == 'exception'){
+                    $.showLoading(res.message);
+                    setTimeout(function (){
+                        $.hideLoading()
+                    }, 2000)
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        }
+    }
+})

+ 45 - 1
vendor/thinkcmf/cmf-app/src/admin/controller/SettingController.php

@@ -317,5 +317,49 @@ class SettingController extends AdminBaseController
         return $this->fetch();
     }
 
+    /**
+     * 签到参数
+     * @return mixed
+     * @throws \think\exception\DbException
+     */
+    public function signs(){
+        $list = Db::name('sign_meals')->whereIn('status',[1,2])
+            //待审核
+            ->order("id DESC")
+            ->paginate(10,false,['query'=>request()->param()]);
+        $page = $list->render();
+        $this->assign('list', $list);
+        $this->assign('page', $page);
+        return $this->fetch();
+    }
+
+    /**
+     * 签到参数设置界面
+     */
+    public function signSet(){
+        $id = input('id');
+        if(input('op') == 'edit'){
+            $data = [
+                'name'=> input('name'),
+                'give_num'=> input('give_num'),
+                'day'=> input('day'),
+                'remark'=> input('remark'),
+                'status'=> input('status'),
+            ];
+            if(Db::name('sign_meals')->where('id', $id)->find()){
+                Db::name('sign_meals')->where('id', $id)->update($data);
+            }else{
+                Db::name('sign_meals')->insertGetId($data);
+            }
+            $this->success('保存成功!',url('setting/signs'));
+        }else{
+            //信息
+            $info=Db::name('sign_meals')->where('id',input('id'))->find();
+
+            $this->assign('info', $info);
+            return $this->fetch();
+        }
+
+
 
-}
+    }}

+ 11 - 8
vendor/thinkcmf/cmf-app/src/user/controller/AdminIndexController.php

@@ -380,7 +380,7 @@ class AdminIndexController extends AdminBaseController
 
             //判断冻结原因不能为空
             if ($id) {
-                $result = Db::name("user")->where(["id" => $id, "user_type" => 2])->setField(array('user_status'=>0,'freezing'=>input('freezing'),'freezing_choose'=>input('freezing_choose')));
+                $result = Db::name("user")->where(["id" => $id, "user_type" => 2])->setField(array('user_status'=>0,'catch_time'=> date('Y-m-d H:i:s'),'freezing'=>input('freezing'),'freezing_choose'=>input('freezing_choose')));
 
                 if ($result) {
                     //发送给客户具体冻结的原因。
@@ -440,7 +440,7 @@ class AdminIndexController extends AdminBaseController
                    
                     Db::startTrans();
                     //冻结被举报人
-                     $userresult2=Db::name('user')->where('id',$result['c_uid'])->update(['user_status'=>0,'freezing'=>$result['remark']]);
+                     $userresult2=Db::name('user')->where('id',$result['c_uid'])->update(['user_status'=>0,'catch_time'=> date('Y-m-d H:i:s'),'freezing'=>$result['remark']]);
                             if($userresult2){
 
                                     //奖励举报人爱心,并且发送模板消息
@@ -1300,7 +1300,7 @@ class AdminIndexController extends AdminBaseController
         if (isset($param['ids']) && isset($param["yes"])) {
             $ids = $this->request->param('ids/a');
 
-            Db::name('user')->where('id', 'in', $ids)->update(['user_status' => -1]);
+            Db::name('user')->where('id', 'in', $ids)->update(['user_status' => -1,'catch_time'=> date('Y-m-d H:i:s')]);
 
             $this->success("注销成功!");
 
@@ -1464,7 +1464,7 @@ class AdminIndexController extends AdminBaseController
 
         $data = $this->request->param();
 
-        $list = Db::name('user')->field('u.id,u.user_login,u.user_nickname,u.real_name,u.redheart,u.is_tuijian,u.create_time,u.is_heart,u.user_status,u.mobile,u.freezing,u.updated_at,
+        $list = Db::name('user')->field('u.id,u.user_login,u.user_nickname,u.real_name,u.redheart,u.is_tuijian,u.create_time,u.is_heart,u.user_status,u.mobile,u.freezing,u.catch_time as updated_at,
             up.idcard_check,up.position_check,up.education_check,last_login_time')
             ->alias('u')
             ->join('user_profile up','u.id=up.userid','left')
@@ -1566,6 +1566,7 @@ class AdminIndexController extends AdminBaseController
             })
 
             //待审核
+            ->order("u.catch_time DESC")
             ->order("u.updated_at DESC")
             ->paginate(10,false,['query'=>request()->param()]);
         //echo Db::name('user')->getLastSql();die;
@@ -1742,7 +1743,7 @@ class AdminIndexController extends AdminBaseController
 
         $data = $this->request->param();
 
-        $list = Db::name('user')->field('u.id,u.user_login,u.user_nickname,u.real_name,u.redheart,u.is_tuijian,u.create_time,u.is_heart,u.user_status,u.mobile,u.freezing,u.updated_at,up.idcard,
+        $list = Db::name('user')->field('u.id,u.user_login,u.user_nickname,u.real_name,u.redheart,u.is_tuijian,u.create_time,u.is_heart,u.user_status,u.mobile,u.freezing,u.catch_time as updated_at,up.idcard,
             up.idcard_check,up.position_check,up.education_check,last_login_time')
             ->alias('u')
             ->join('user_profile up','u.id=up.userid','left')
@@ -1842,6 +1843,7 @@ class AdminIndexController extends AdminBaseController
             })
 
             //待审核
+            ->order("u.catch_time DESC")
             ->order("u.updated_at DESC")
             ->paginate(10,false,['query'=>request()->param()]);
         //echo Db::name('user')->getLastSql();die;
@@ -1886,7 +1888,7 @@ class AdminIndexController extends AdminBaseController
         }
 
         // 修改 end
-        $list = Db::name('user')->field('u.id,u.user_login,u.user_nickname,u.real_name,u.redheart,u.is_tuijian,u.create_time,u.is_heart,u.user_status,u.mobile,u.freezing,u.updated_at,u.last_login_time,u.vip_auth,u.vip_expire,up.idcard,
+        $list = Db::name('user')->field('u.id,u.user_login,u.user_nickname,u.real_name,u.redheart,u.is_tuijian,u.create_time,u.is_heart,u.user_status,u.mobile,u.freezing,u.vip_time as updated_at,u.last_login_time,u.vip_auth,u.vip_expire,up.idcard,
             up.idcard_check,up.position_check,rl.money,rl.pay_money,up.education_check')
             ->alias('u')
             ->join('user_profile up','u.id=up.userid','left')
@@ -1904,7 +1906,8 @@ class AdminIndexController extends AdminBaseController
             })
 
             //待审核
-            ->order("rl.created_at DESC")
+            ->order("u.vip_time DESC")
+            ->order("u.updated_at DESC")
             ->paginate(10,false,['query'=>request()->param()]);
       // echo Db::name('user')->getLastSql();die;
         // 获取分页显示
@@ -2177,7 +2180,7 @@ class AdminIndexController extends AdminBaseController
             if($result){
                 
                 //冻结被举报人, //进行奖励
-                     $userresult2=Db::name('user')->where('id',$result['c_uid'])->update(['user_status'=>0,'freezing'=>$result['remark']]);
+                     $userresult2=Db::name('user')->where('id',$result['c_uid'])->update(['user_status'=>0,'catch_time'=> date('Y-m-d H:i:s'),'freezing'=>$result['remark']]);
                     if($userresult2){
 
                         $comsel_result=Db::name('complain')->field('uid')->where('c_uid',$result['c_uid'])->select();

+ 8 - 0
vendor/thinkcmf/cmf/src/lang/zh-cn.php

@@ -174,6 +174,14 @@ return [
     '2137'=>'爱心不足请先充值',
     '2138'=>'身份在线验证失败',
     '2139'=>'您的拒绝申请操作已撤回',
+    '2140'=>'用户不存在',
+    '2141'=>'近期您已经邀请过',
+    '2142'=>'签到参数错误,请刷新重试',
+    '2143'=>'您今日已签到,请明天再来',
+    '2144'=>'签到失败,更新签到数据错误',
+    '2145'=>'签到失败,更新爱心奖励错误',
+    '2146'=>'签到成功',
+    '2147'=>'签到失败',
 
 
     /* 文件上传 */