瀏覽代碼

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

wesmiler 4 年之前
父節點
當前提交
addecc0629
共有 71 個文件被更改,包括 2058 次插入256 次删除
  1. 0 0
      public/themes/.htaccess
  2. 8 0
      public/themes/admin_simpleboot3/admin/setting/site.html
  3. 10 0
      public/themes/admin_simpleboot3/user/admin_index/editID.html
  4. 18 0
      public/themes/admin_simpleboot3/user/admin_index/editcompany.html
  5. 26 1
      public/themes/admin_simpleboot3/user/admin_index/editschool.html
  6. 1 1
      public/themes/default/weixin/activity/book_detail.html
  7. 15 8
      public/themes/default/weixin/auth/education.html
  8. 2 2
      public/themes/default/weixin/auth/idcard.html
  9. 79 29
      public/themes/default/weixin/auth/index.html
  10. 42 0
      public/themes/default/weixin/auth/index_back.html
  11. 8 8
      public/themes/default/weixin/auth/position.html
  12. 16 0
      public/themes/default/weixin/index/auth.html
  13. 1 0
      public/themes/default/weixin/index/custom.html
  14. 1 1
      public/themes/default/weixin/match/hearts.html
  15. 12 14
      public/themes/default/weixin/match/index.html
  16. 43 0
      public/themes/default/weixin/member/access/index.html
  17. 164 22
      public/themes/default/weixin/member/home.html
  18. 6 0
      public/themes/default/weixin/member/index.html
  19. 3 2
      public/themes/default/weixin/member/message/detail.html
  20. 1 0
      public/themes/default/weixin/member/message/index.html
  21. 78 24
      public/themes/default/weixin/public/assets/css/auth-education.css
  22. 19 8
      public/themes/default/weixin/public/assets/css/auth-idcard.css
  23. 149 27
      public/themes/default/weixin/public/assets/css/auth-position.css
  24. 150 9
      public/themes/default/weixin/public/assets/css/auth.css
  25. 429 0
      public/themes/default/weixin/public/assets/css/hearts.css
  26. 117 0
      public/themes/default/weixin/public/assets/css/home.css
  27. 6 3
      public/themes/default/weixin/public/assets/css/match.css
  28. 103 0
      public/themes/default/weixin/public/assets/css/member-access.css
  29. 6 1
      public/themes/default/weixin/public/assets/css/member-message.css
  30. 1 1
      public/themes/default/weixin/public/assets/css/member.css
  31. 6 1
      public/themes/default/weixin/public/assets/css/message-detail.css
  32. 二進制
      public/themes/default/weixin/public/assets/img/auth/confirm_no.png
  33. 二進制
      public/themes/default/weixin/public/assets/img/auth/confirm_ok.png
  34. 二進制
      public/themes/default/weixin/public/assets/img/auth/education_check.png
  35. 二進制
      public/themes/default/weixin/public/assets/img/auth/help.png
  36. 二進制
      public/themes/default/weixin/public/assets/img/auth/icon-add.png
  37. 二進制
      public/themes/default/weixin/public/assets/img/auth/icon-up.png
  38. 二進制
      public/themes/default/weixin/public/assets/img/auth/idcard_check.png
  39. 二進制
      public/themes/default/weixin/public/assets/img/auth/left.png
  40. 二進制
      public/themes/default/weixin/public/assets/img/auth/work.png
  41. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-1.jpg
  42. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-2.jpg
  43. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-3.jpg
  44. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-4.jpg
  45. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-5.jpg
  46. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-6.jpg
  47. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-7.jpg
  48. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-8.jpg
  49. 0 0
      public/themes/default/weixin/public/assets/img/avatar/1-9.jpg
  50. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-1.jpg
  51. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-2.jpg
  52. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-3.jpg
  53. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-4.jpg
  54. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-5.jpg
  55. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-6.jpg
  56. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-7.jpg
  57. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-8.jpg
  58. 0 0
      public/themes/default/weixin/public/assets/img/avatar/2-9.jpg
  59. 0 0
      public/themes/default/weixin/public/assets/img/icon/rank1.png
  60. 0 0
      public/themes/default/weixin/public/assets/img/icon/rank2.png
  61. 0 0
      public/themes/default/weixin/public/assets/img/icon/rank3.png
  62. 二進制
      public/themes/default/weixin/public/assets/img/icon/rank_1-1.png
  63. 81 11
      public/themes/default/weixin/public/assets/js/auth-education.js
  64. 29 0
      public/themes/default/weixin/public/assets/js/auth-help.js
  65. 2 2
      public/themes/default/weixin/public/assets/js/auth-idcard.js
  66. 54 1
      public/themes/default/weixin/public/assets/js/auth-position.js
  67. 29 0
      public/themes/default/weixin/public/assets/js/auth.js
  68. 91 51
      public/themes/default/weixin/public/assets/js/home.js
  69. 82 28
      public/themes/default/weixin/public/assets/js/match.js
  70. 163 0
      public/themes/default/weixin/public/assets/js/member-access.js
  71. 7 1
      public/themes/default/weixin/public/assets/js/member-message.js

+ 0 - 0
public/themes/.htaccess


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

@@ -343,6 +343,14 @@
                             </div>
                         </div>
                         <div class="form-group">
+                            <label for="input-lock_access_pay" class="col-sm-3 control-label">解锁访问信息扣除爱心数量</label>
+                            <div class="col-md-4 col-sm-10">
+                                <input type="text" class="form-control" id="input-lock_access_pay"
+                                       name="account_config[lock_access_pay]" value="{$account_config.lock_access_pay|default='1'}" min="1" max="100000">
+                                <span class="help-block">解锁用户访问信息扣除爱心数量,最低1个</span>
+                            </div>
+                        </div>
+                        <div class="form-group">
                             <label for="input-min_withdraw" class="col-sm-3 control-label">收益最低提现金额</label>
                             <div class="col-md-4 col-sm-10">
                                 <input type="text" class="form-control" id="input-min_withdraw"

+ 10 - 0
public/themes/admin_simpleboot3/user/admin_index/editID.html

@@ -52,6 +52,16 @@
             </div>
         </div>
         <div class="form-group">
+            <label for="input-user_online" class="col-sm-2 control-label">在线认证</label>
+            <div class="col-md-6 col-sm-10">
+                <if condition="$userresult.idcard_online_check==1">
+                    <span>已通过</span>
+                    <else/>
+                    <span>未通过</span>
+                </if>
+            </div>
+        </div>
+        <div class="form-group">
             <label for="input-user_login" class="col-sm-2 control-label">身份证正面</label>
             <div class="col-md-6 col-sm-10">
                <img id="photo-preview1" src="{:cmf_get_image_preview_url($userresult['front_idcard'])}"

+ 18 - 0
public/themes/admin_simpleboot3/user/admin_index/editcompany.html

@@ -44,6 +44,24 @@
                  <input type="text" class="form-control" id="company" name="company" value="{$userresult.company}" >
             </div>
         </div>
+        <php>$types=[1=>'支付宝社保截图/社保证明', 2=>'钉钉或企业微信名片(带二维码)', 3=>'在职证明/劳动合同/营业执照', 4=>'工牌/名片/工作证等', 5=>'录取offer/工资单',
+           6=>'学生相关证件']</php>
+
+        <div class="form-group">
+            <label for="input-user_type" class="col-sm-2 control-label">认证方式</label>
+            <div class="col-md-6 col-sm-10">
+                <select class="form-control" name="position_type" id="type">
+                    <option value="none">--请选择--</option>
+                    <volist name="$types" id="vo">
+                        <if condition="$userresult.position_type eq $key">
+                            <option value="{$key}" selected="">{$vo}</option>
+                            <else/>
+                            <option value="{$key}">{$vo}</option>
+                        </if>
+                    </volist>
+                </select>
+            </div>
+        </div>
     <div class="form-group">
         <label for="input-user_login" class="col-sm-2 control-label">个人职位</label>
         <div class="col-md-6 col-sm-10">

+ 26 - 1
public/themes/admin_simpleboot3/user/admin_index/editschool.html

@@ -43,7 +43,22 @@
                  <input type="text" class="form-control" id="graduate" name="graduate" value="{$userresult.graduate}" >
             </div>
         </div>
-         <php>$educationarray=array(1=>'大专',2=>'本科',3=>'硕士',4=>'博士');</php>
+         <php>$educationarray=array(1=>'大专',2=>'本科',3=>'硕士',4=>'博士');$types=[1=>'毕业证/学位证书照片', 2=>'学信网学籍、学历图片', 3=>'港澳台或海外学历认证',]</php>
+        <div class="form-group">
+            <label for="input-user_type" class="col-sm-2 control-label">认证方式</label>
+            <div class="col-md-6 col-sm-10">
+                <select class="form-control" name="education_type" id="type">
+                    <option value="none">--请选择--</option>
+                    <volist name="$types" id="vo">
+                        <if condition="$userresult.education_type eq $key">
+                            <option value="{$key}" selected="">{$vo}</option>
+                            <else/>
+                            <option value="{$key}">{$vo}</option>
+                        </if>
+                    </volist>
+                </select>
+            </div>
+        </div>
       <div class="form-group">
           <label for="input-user_login" class="col-sm-2 control-label">认证学历</label>
           <div class="col-md-6 col-sm-10">
@@ -62,6 +77,15 @@
                
           </div>
       </div>
+        <if condition="$userresult.education_type eq 2">
+            <div class="form-group">
+                <label for="input-user_code" class="col-sm-2 control-label">学信网在线验证码</label>
+                <div class="col-md-6 col-sm-10">
+                    <input type="text" class="form-control" id="education_code" name="education_code" readonly value="{$userresult.education_code}" >
+                </div>
+            </div>
+        </if>
+        <if condition="$userresult.education_type neq 2">
         <div class="form-group">
             <label for="input-user_login" class="col-sm-2 control-label">证明照片</label>
             <div class="col-md-6 col-sm-10">
@@ -79,6 +103,7 @@
                         
             </div>
         </div>
+        </if>
 
         <div class="form-group">
             <label for="input-user_login" class="col-sm-2 control-label">学历审核失败原因</label>

+ 1 - 1
public/themes/default/weixin/activity/book_detail.html

@@ -13,7 +13,7 @@
             <div class="book-info hdbt">
                 <p class="time">
                     <!--<img src="__TMPL__/weixin/public/assets/img/tubiao40.png">-->
-                    活动地点:{{info.address}}
+                    活动地点:{{info.join_address}}
                 </p>
                 <p class="time" v-if="info.activity_time">活动时间:{{info.activity_time}}</p>
                 <p class="time" v-else>活动时间:{{info.start_at}} 至 {{info.end_at}}</p>

+ 15 - 8
public/themes/default/weixin/auth/education.html

@@ -10,19 +10,26 @@
             <p>认证信息仅用于学历审核,所有信息都会自动打上码,拾光承诺绝对不会将用户资料用于任何第三方场景。</p></div>
         <div class="gerxix_box">
             <ul>
-                <li><h1>院校:</h1><input class="tianx" type="text" placeholder="请填写" v-model="authInfo.graduate" :readonly="authInfo.education_check==2? true : false"></li>
-                <li><h1>认证学历:</h1> <input class="tianx select-value7" id="education" type="text" placeholder="请选择" readonly :data-code="authInfo.education" :disabled="authInfo.education_check==2? true : false"></li>
+                <li><h1>认证方式:</h1><input class="tianx select-value4" id="education_type" type="text" placeholder="请选择" readonly :data-code="authInfo.education_type" :disabled="authInfo.education_check==2? true: false"></li>
+                <li v-if="education_type!=2"><h1>毕业院校:</h1><input class="tianx" id="graduate" type="text" placeholder="请填写" :value="authInfo.graduate" :readonly="authInfo.education_check==2? true : false"></li>
+                <li v-if="education_type!=2"><h1>认证学历:</h1> <input class="tianx select-value7" id="education" type="text" placeholder="请选择" readonly :data-code="authInfo.education" :disabled="authInfo.education_check==2? true : false"></li>
+                <li v-if="education_type==2"><h1>在线验证码:</h1> <input class="tianx select-value7" id="education_code" type="text" :value="authInfo.education_code" placeholder="请填入验证码" :disabled="authInfo.education_check==2? true : false"></li>
+                <li v-if="education_type==2" class="online" @click="showHelp()"><a target="_blank" ><h1>获取学信网在线验证码:</h1><img
+                        src="__TMPL__/weixin/public/assets/img/tubiao10.png" alt=""></a></li>
             </ul>
         </div>
-        <div class="xiangce_tj">
+        <div class="xiangce_tj" v-if="education_type!=2">
             <h1 class="tis">照片仅供审核他人无法查看,我们将加密处理</h1>
             <p class="error" v-if="authInfo.education_check==3">失败原因:<span v-text="authInfo.education_fail? authInfo.education_fail : '无'"></span></p>
             <ul>
-                <li><img id="education_img" :src="authInfo.education_img_preview? authInfo.education_img_preview : '__TMPL__/weixin/public/assets/img/tubiao20.png'" onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao20.png'"><input type="file" accept="image/*" @change="selectImg($event,'education_img')" :disabled="authInfo.education_check==2? true : false"></li>
-                <li><h1>支持以下证明方式</h1>
-                    <div class="zhic_lb"><p><b>●</b>学位证照</p>
-                        <p><b>●</b>毕业证主页照</p>
-                        <p><b>●</b>学信网证照</p></div>
+                <li>
+                    <p>
+                        <img id="education_img" :class="(authInfo.education_img_preview || authInfo.preview)? 'pic' : ''" :src="authInfo.education_img_preview? authInfo.education_img_preview : '__TMPL__/weixin/public/assets/img/auth/icon-add.png'" onerror="this.src='__TMPL__/weixin/public/assets/img/icon-add.png'">
+                        <input type="file" accept="image/*" @change="selectImg($event,'education_img')" :disabled="authInfo.education_check==2? true : false">
+                    </p>
+                    <p class="tip">
+                        <span v-text="authInfo.education_img_preview? tips[authInfo.education_type]: '点击上传'"></span>
+                    </p>
                 </li>
             </ul>
         </div>

+ 2 - 2
public/themes/default/weixin/auth/idcard.html

@@ -7,7 +7,7 @@
     </div>
     <div class="main">
         <div class="shenf"><h1>身份认证</h1>
-            <p>认证信息仅用于身份审核,所有信息都会自动打上码,拾光承诺绝对不会将用户资料用于任何第三方场景。</p></div>
+            <p>认证信息仅用于身份审核,信息将会同步验证公安系统,请确保您信息的真实性,拾光承诺绝对不会将用户资料用于任何第三方场景。</p></div>
         <div class="gerxix_box">
             <ul>
                 <li><h1>真实姓名:</h1><input v-model="authInfo.realname" class="tianx" type="text" placeholder="请填写" :readonly="authInfo.idcard_check==2? true : false"></li>
@@ -15,7 +15,7 @@
             </ul>
         </div>
         <div class="xiangce_tj">
-            <h1>请上传两张正反面身份证照片(点击图片上传)生日、身高、婚姻状态通过认证后无法修改</h1>
+            <h1>请上传两张正反面身份证照片(点击图片上传)生日、身高、婚姻状态通过认证后无法修改(可选)</h1>
             <p class="error" v-if="authInfo.idcard_check==3">失败原因:<span v-text="authInfo.idcard_fail? authInfo.idcard_fail : '无'"></span></p>
             <ul>
                 <li><img id="front_idcard" :src="authInfo.front_idcard_preview? authInfo.front_idcard_preview : '__TMPL__/weixin/public/assets/img/tubiao20.png'" onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao20.png'"><input type="file" accept="image/*" @change="selectImg($event,'front_idcard')" :disabled="authInfo.idcard_check==2? true : false"></li>

+ 79 - 29
public/themes/default/weixin/auth/index.html

@@ -1,42 +1,92 @@
 <include file="weixin@block:header"/>
 <title></title>
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/swiper.min.css?v={$version}">
 <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/auth.css?v={$version}">
 <div id="app" v-cloak>
     <div class="fanhui2"><h1>我的认证</h1>
-        <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/auth/left.png"></a>
     </div>
     <div class="main">
-        <div class="shenf_bt"><h1>实名认证</h1>
-            <p>为了保证平台所有用户的真实性,我们要求用户必须完成身份认证后,才能使用平台。拾光希望与小伙伴们一起维护一个真实、安全、优质的交友环境。</p></div>
-        <a href="/weixin/auth/idcard">
-            <div class="shenf">
-                <h1>身份认证</h1>
-                <h2 v-if="memberInfo.idcard_check==1">审核中</h2>
-                <h2 v-else-if="memberInfo.idcard_check==2">已认证</h2>
-                <h2 v-else-if="memberInfo.idcard_check==3">审核失败</h2>
-                <h2 v-else>点击认证</h2>
+        <div class="shenf_bt">
+            <div class="header">
+                <div><h1>为什么要认证<a href="/weixin/page/auth"><img src="__TMPL__/weixin/public/assets/img/auth/help.png" width="30"></a></h1></div>
+                <div class="card">
+                    <span>更真实</span><span>更优质</span><span>更靠谱</span>
+                </div>
+                <div class="notice" v-if="authLogs.length>0">
+                    <div class="swiper-wrapper">
+                        <div class="swiper-slide" v-for="(v,k) in authLogs" :key="k">
+                            <p><img :src="v.avatar" alt=""><span>{{v.nickname}}刚刚完成了{{v.type==1?'实名':(v.type==2?'工作':'学历')}}认证</span></p>
+                        </div>
+                    </div>
+                </div>
             </div>
-        </a>
-        <a href="/weixin/auth/education">
-            <div class="shenf">
-                <h1>学历认证</h1>
-                <h2 v-if="memberInfo.education_check==1">审核中</h2>
-                <h2 v-else-if="memberInfo.education_check==2">已认证</h2>
-                <h2 v-else-if="memberInfo.education_check==3">审核失败</h2>
-                <h2 v-else>点击认证</h2>
+        </div>
+        <div class="nav">
+            <a href="/weixin/auth/idcard">
+                <div class="shenf">
+                    <div class="info idcard">
+                        <div class="img">
+                            <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/idcard_check.png" alt="">
+                            <img v-if="memberInfo.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="text">
+                            <h2>实名认证</h2>
+                            <p>将与公安系统验证身份真实性</p>
+                            <span v-if="memberInfo.idcard_check==1">审核中</span>
+                            <span v-else-if="memberInfo.idcard_check==2">已通过</span>
+                            <span v-else-if="memberInfo.idcard_check==3">未通过</span>
+                            <span v-else>点击认证</span>
+                        </div>
+                    </div>
+                </div>
+            </a>
+            <a href="/weixin/auth/position">
+                <div class="shenf">
+                    <div class="info">
+                        <div class="img">
+                            <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/work.png" alt="">
+                            <img v-if="memberInfo.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="text">
+                            <h2>工作认证</h2>
+                            <p>IT/金融/体制内等职场单身聚集地</p>
+                            <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>
+                        </div>
+                    </div>
+                </div>
+            </a>
+            <a href="/weixin/auth/education">
+                <div class="shenf">
+                    <div class="info education">
+                        <div class="img">
+                            <img class="icon" src="__TMPL__/weixin/public/assets/img/auth/education_check.png" alt="">
+                            <img v-if="memberInfo.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="text">
+                            <h2>学历认证</h2>
+                            <p>优秀扽学历人群都在这啦</p>
+                            <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>
+                        </div>
+                    </div>
+                </div>
+            </a>
+            <div class="tis">确保信息真实才可在平台交友,与官方数据联网对比,承诺保障信息安全,已有大量用户认证。</div>
+            <div class="custom">
+                <a href="/weixin/page/custom?type=3"><img src="__TMPL__/weixin/public/assets/img/custom.png" width="36">联系客服</a>
             </div>
-        </a>
-        <a href="/weixin/auth/position">
-            <div class="shenf">
-                <h1>工作认证</h1>
-                <h2 v-if="memberInfo.position_check==1">审核中</h2>
-                <h2 v-else-if="memberInfo.position_check==2">已认证</h2>
-                <h2 v-else-if="memberInfo.position_check==3">审核失败</h2>
-                <h2 v-else>点击认证</h2>
-            </div>
-        </a>
-        <div class="tis">小提示:认证学历和工作都会得到十颗<img src="__TMPL__/weixin/public/assets/img/tubiao28.png">哦!</div>
+        </div>
     </div>
 </div>
+<script src="__TMPL__/weixin/public/assets/lib/swiper.min.js?v={$version}"></script>
 <script src="__TMPL__/weixin/public/assets/js/auth.js?v={$version}"></script>
 <include file="weixin@block:footer"/>

+ 42 - 0
public/themes/default/weixin/auth/index_back.html

@@ -0,0 +1,42 @@
+<include file="weixin@block:header"/>
+<title></title>
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/auth.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>
+            <p>为了保证平台所有用户的真实性,我们要求用户必须完成身份认证后,才能使用平台。拾光希望与小伙伴们一起维护一个真实、安全、优质的交友环境。</p></div>
+        <a href="/weixin/auth/idcard">
+            <div class="shenf">
+                <h1>身份认证</h1>
+                <h2 v-if="memberInfo.idcard_check==1">审核中</h2>
+                <h2 v-else-if="memberInfo.idcard_check==2">已认证</h2>
+                <h2 v-else-if="memberInfo.idcard_check==3">审核失败</h2>
+                <h2 v-else>点击认证</h2>
+            </div>
+        </a>
+        <a href="/weixin/auth/education">
+            <div class="shenf">
+                <h1>学历认证</h1>
+                <h2 v-if="memberInfo.education_check==1">审核中</h2>
+                <h2 v-else-if="memberInfo.education_check==2">已认证</h2>
+                <h2 v-else-if="memberInfo.education_check==3">审核失败</h2>
+                <h2 v-else>点击认证</h2>
+            </div>
+        </a>
+        <a href="/weixin/auth/position">
+            <div class="shenf">
+                <h1>工作认证</h1>
+                <h2 v-if="memberInfo.position_check==1">审核中</h2>
+                <h2 v-else-if="memberInfo.position_check==2">已认证</h2>
+                <h2 v-else-if="memberInfo.position_check==3">审核失败</h2>
+                <h2 v-else>点击认证</h2>
+            </div>
+        </a>
+        <div class="tis">小提示:认证学历和工作都会得到十颗<img src="__TMPL__/weixin/public/assets/img/tubiao28.png">哦!</div>
+    </div>
+</div>
+<script src="__TMPL__/weixin/public/assets/js/auth.js?v={$version}"></script>
+<include file="weixin@block:footer"/>

+ 8 - 8
public/themes/default/weixin/auth/position.html

@@ -10,6 +10,7 @@
             <p>认证信息仅用于工作审核,所有信息都会自动打上码,拾光承诺绝对不会将用户资料用于任何第三方场景。</p></div>
         <div class="gerxix_box">
             <ul>
+                <li><h1>认证方式:</h1><input class="tianx select-value4" id="position_type" type="text" placeholder="请选择" readonly :data-code="authInfo.position_type" :disabled="authInfo.position_check==2? true: false"></li>
                 <li><h1>公司名称:</h1><input class="tianx" type="text" placeholder="请填写" v-model="authInfo.company"></li>
                 <li><h1>个人职位:</h1><input type="text" id="position" v-model="authInfo.occupation" class="tianx" placeholder="请填写" :readonly="authInfo.position_check==2? true : false"></li>
             </ul>
@@ -19,14 +20,13 @@
             <p class="error" v-if="authInfo.position_check==3">失败原因:<span v-text="authInfo.position_fail? authInfo.position_fail : '无'"></span></p>
             <ul>
                 <li>
-                    <img id="position_img" :src="authInfo.position_img_preview? authInfo.position_img_preview : '__TMPL__/weixin/public/assets/img/tubiao20.png'" onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao20.png'"><input type="file" accept="image/*" @change="selectImg($event,'position_img')" :disabled="authInfo.position_check==2? true : false">
-                </li>
-                <li><h1>支持以下证明方式</h1>
-                    <div class="zhic_lb"><p><b>●</b>劳动合同</p>
-                        <p><b>●</b>社保截图</p>
-                        <p><b>●</b>工作证明</p>
-                        <p><b>●</b>钉钉截图</p>
-                        <p style="width: 100%;"><b>●</b>工牌</p></div>
+                    <p>
+                        <img id="position_img" :class="(authInfo.position_img_preview || authInfo.preview)? 'pic' : ''" :src="authInfo.position_img_preview? authInfo.position_img_preview : '__TMPL__/weixin/public/assets/img/auth/icon-add.png'" onerror="this.src='__TMPL__/weixin/public/assets/img/icon-add.png'">
+                        <input type="file" accept="image/*" @change="selectImg($event,'position_img')" :disabled="authInfo.position_check==2? true : false">
+                    </p>
+                    <p class="tip">
+                        <span v-text="authInfo.position_img_preview? tips[authInfo.position_type]: '点击上传'"></span>
+                    </p>
                 </li>
             </ul>
         </div>

+ 16 - 0
public/themes/default/weixin/index/auth.html

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

+ 1 - 0
public/themes/default/weixin/index/custom.html

@@ -6,6 +6,7 @@
         <h1>客服列表</h1>
         <a v-if="type == 1" href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
         <a v-else-if="type==2" href="/weixin/market/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a v-else-if="type==3" href="javascript: history.go(-1);"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
         <a v-else href="/"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
     </div>
     <div class="main">

+ 1 - 1
public/themes/default/weixin/match/hearts.html

@@ -1,7 +1,7 @@
 <include file="weixin@block:header"/>
 <title>推荐</title>
 <link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/swiper.min.css?v={$version}">
-<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/match.css?v={$version}">
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/hearts.css?v={$version}">
 <div id="app" v-cloak>
     <div :class="!hasFollow? 'top_lieb hasFollow' : 'top_lieb'">
         <ul>

+ 12 - 14
public/themes/default/weixin/match/index.html

@@ -18,32 +18,30 @@
             </div>
             <div class="join"><a href="/weixin/activity/book?id=15">我要推荐</a></div>
             <div v-if="total<=0" class="empty recommends"><span>暂无数据</span></div>
-            <div v-show="total>0" class="swiper-container recommends">
+            <div v-show="total>0" class="swiper-container hearts">
                 <div class="swiper-wrapper ">
-                    <div class="swiper-slide" v-for="(item,k) in dataList" @click="goDetail(item.id)" :key="k">
-                        <div class="info-box" :id="'list_'+item.id">
+                    <div class="swiper-slide" v-for="(item,k) in dataList" @click="goDetail(item.id)">
+                        <div class="info-box">
                             <div class="info">
                                 <img class="avatar" :src="item.avatar">
                                 <div class="td_xix">
                                     <h1>
                                         <span class="nickname" v-text="item.user_nickname"></span>
                                         <i v-if="item.idcard_check==2 || item.education_check==2 || item.position_check==2" class="auth" @click.stop="showAuth(item)"><img src="/themes/default/weixin/public/assets/img/auth.png" width="28" height="28"></i>
-<!--                                        <i v-if="item.vip_auth" class="vip-auth"><img  src="/themes/default/weixin/public/assets/img/vip-auth.png" width="24" height="24"><span>已认证</span></i>-->
-                                        <span class="pics"><img src="/themes/default/weixin/public/assets/img/pic.png">{{item.pic_count}}</span>
+                                        <!--                                    <i v-if="item.vip_auth" class="vip-auth"><img  src="/themes/default/weixin/public/assets/img/vip-auth.png" width="24" height="24"><span>已认证</span></i>-->
                                     </h1>
-                                    <p class="location" v-if="item.distance!=''">距离你 {{item.distance}}{{item.district? '·'+item.district : ''}}</p>
-                                    <p><span v-text="item.birthday_day?item.birthday_day+' | ':''"></span><span
-                                            v-text="item.height_txt?item.height_txt+' | ':''"></span><span
+                                    <p class="location" v-if="item.distance!=''"><span>距离你 {{item.distance}}{{item.district? '·'+item.district : ''}}</span><span class="pics"><img
+                                            src="/themes/default/weixin/public/assets/img/pic.png">{{item.pic_count}}</span></p>
+                                    <p><span v-text="item.birthday_day?item.birthday_day+'|':''"></span><span
+                                            v-text="item.height_txt?item.height_txt+'|':''"></span><span
                                             v-text="item.education_txt? item.education_txt+'|':''"></span><span v-text="item.occupation"></span></p>
                                     <p><span v-text="item.city? '现居'+item.city : ''"></span><span v-text="item.home_province? '·'+item.home_province+'人' : ''"></span>
-                                    </p>
-                                </div>
+                                        <span class="pics" v-if="item.distance==''"><img
+                                                src="/themes/default/weixin/public/assets/img/pic.png">{{item.pic_count}}</span>
+                                    </p></div>
                             </div>
-                            <!--<div class="desc">
+                            <div class="desc">
                                 <p v-html="item.introduce? item.introduce: '这个人很懒,什么也没留下~'"></p>
-                            </div>-->
-                            <div class="down-more" v-if="(k+1) == dataList.length" @click.stop="loadMore()">
-                                <span ><img src="/themes/default/weixin/public/assets/img/down.png" width="36" height="36"></span>
                             </div>
                         </div>
                     </div>

+ 43 - 0
public/themes/default/weixin/member/access/index.html

@@ -0,0 +1,43 @@
+<include file="weixin@block:header"/>
+<!--<title>个人中心</title>-->
+<link rel="stylesheet" href="__TMPL__/weixin/public/assets/css/member-access.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="huxian">
+        <ul>
+            <li :class="params.status==1? 'active':''" @click="switchStatus(1)">今日访客<span v-text="total1">0</span></li>
+            <li :class="params.status==2? 'active':''" @click="switchStatus(2)">总访客数<span v-text="total2">0</span></li>
+        </ul>
+    </div>
+    <div class="main">
+        <div class="shouc_lb">
+            <ul>
+                <li v-if="dataList.length<=0" class="empty">暂无数据</li>
+                <li v-else v-for="(item,k) in dataList" :class="item.is_lock==2? 'lock-list' : ''">
+                    <div class="wodx" >
+                        <img :src="item.avatar" :onerror="getAvatar(item)">
+                    </div>
+                    <div class="wodx_xim">
+                        <h1><span>{{item.user_nickname? item.user_nickname : item.user_login}}</span></h1>
+                        <p class="wodx_item info">
+                            <span v-text="item.year"></span><span v-if="item.city" v-text="'现居'+item.city"></span><span v-text="item.start"></span>
+                        </p>
+                        <p class="wodx_item time">
+                            <span>最近访问:{{item.created_at_text}}</span>
+                        </p>
+                        <p class="wodx_item btn">
+                            <span class="lock" v-if="item.is_lock==2" @click="unlock(item.user_id,item.access_uid)">立即解锁</span>
+                            <span v-else @click="goHome(item.access_uid)">Ta的主页</span>
+                        </p>
+                    </div>
+                </li>
+                <li v-show="dataList.length>0 && status.loaded" class="loaded"><span>已加载完全部</span></li>
+            </ul>
+        </div>
+    </div>
+</div>
+<script src="__TMPL__/weixin/public/assets/js/member-access.js?v={$version}"></script>
+<include file="weixin@block:footer"/>

+ 164 - 22
public/themes/default/weixin/member/home.html

@@ -19,29 +19,158 @@
             <h1 class="nickname">
                 <span v-text="homeInfo.user_nickname"></span>
                 <p class="auth">
-                    <i v-if="homeInfo.idcard_check==2 || homeInfo.education_check==2 || homeInfo.position_check==2" class="info-auth" @click="showAuth(homeInfo)"><img src="/themes/default/weixin/public/assets/img/auth.png" width="28" height="28"></i>
+                    <i v-if="homeInfo.idcard_check==2 || homeInfo.education_check==2 || homeInfo.position_check==2"
+                       class="info-auth" @click="showAuth(homeInfo)"><img
+                            src="/themes/default/weixin/public/assets/img/auth.png" width="28" height="28"></i>
 
-<!--                    <i v-if="homeInfo.vip_auth" class="vip-auth"><img  src="/themes/default/weixin/public/assets/img/vip-auth.png" width="24" height="24"><span>已认证</span></i>-->
+                    <!--                    <i v-if="homeInfo.vip_auth" class="vip-auth"><img  src="/themes/default/weixin/public/assets/img/vip-auth.png" width="24" height="24"><span>已认证</span></i>-->
                 </p>
                 <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>-->
             </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="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_province+''+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 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.position_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">认证方式:居民身份证</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 pic-info"><h1>自我描述</h1>
                 <div class="info-item">
                     <div v-if="homeInfo.introduce" v-html="homeInfo.introduce"></div>
-                    <img v-if="homeInfo.introduce_img" class="lazyimg" :src="homeInfo.introduce_img_preview" data-type="introduce"/>
+                    <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>
@@ -67,7 +196,7 @@
                 </div>
             </div>
             <div class="tix_xix pic-info"><h1>我为什么单身</h1>
-                <div class="info-item" >
+                <div class="info-item">
                     <div v-if="homeInfo.cause" v-html="homeInfo.cause"></div>
                     <img v-if="homeInfo.cause_img" class="lazyimg" :src="homeInfo.cause_img_preview"/>
                     <div v-if="!homeInfo.cause && !homeInfo.cause_img">暂无</div>
@@ -99,27 +228,39 @@
 
         <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">
+                <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 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 type2" v-else-if="type==2">
             <ul>
-                <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>
+                <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">
@@ -133,7 +274,8 @@
                     <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 class="cont" v-html="showContent"
+                     style="overflow: hidden;-webkit-overflow-scrolling:touch;width:100%;">
                 </div>
             </div>
         </div>

+ 6 - 0
public/themes/default/weixin/member/index.html

@@ -42,6 +42,12 @@
                     <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>每邀请一位好友,免费得十颗爱心</h2><img  src="__TMPL__/weixin/public/assets/img/tubiao42.png"></a>

+ 3 - 2
public/themes/default/weixin/member/message/detail.html

@@ -36,12 +36,13 @@
                     </div>
                     <div class="tix_xix"><h1>审核状态</h1>
                         <div class="info-item" v-if="info.type==1">
-                            <p class="p1"><span>收到申请</span> <span v-text="info.created_at"></span></p>
+                            <p class="p1"><span>收到申请</span> <span v-text="info.created_at"></span></p>
                             <p class="p2"><span :class="info.status==4? 'out' : 'in'" v-html="info.time"></span> <span v-if="info.status!=1" v-text="info.updated_at"></span></p>
                         </div>
                         <div class="info-item" v-if="info.type==2">
-                            <p class="p1"><span>发出申请</span> <span v-text="info.created_at"></span></p>
+                            <p class="p1"><span>发出申请</span> <span v-text="info.created_at"></span></p>
                             <p class="p2"><span v-html="info.time"></span> <span v-if="info.status!=1" v-text="info.updated_at"></span><span class="out" v-if="info.status==1 && info.is_read">已读</span></p>
+                            <p class="p3" v-if="info.status==2"><span>对方微信号</span><span>{{info.wechat_code}}</span></p>
                         </div>
                     </div>
                 </div>

+ 1 - 0
public/themes/default/weixin/member/message/index.html

@@ -32,6 +32,7 @@
                             <span v-if="item.status==1&&params.type==1" class="action agree" @click="contactConfirm(item.id, 2)">同意</span>
                             <span v-if="item.status==1&&params.type==1" class="action degree" @click="contactConfirm(item.id, 3)">不合适</span>
                             <span v-if="item.status!=1||params.type==2" class="action detail" @click="showDetail(item.id)">查看</span>
+                            <span v-if="item.status==3&&params.type==1" class="action cancel" @click="contactConfirm(item.id, 5)">撤回</span>
                         </p>
                     </div>
                 </li>

+ 78 - 24
public/themes/default/weixin/public/assets/css/auth-education.css

@@ -1,40 +1,79 @@
 body{background: #fff;}
-.shenf{background:#ffd132;margin: 0 15px;border-radius: 4px;margin-top:15px;overflow: hidden;}
-.shenf h1{font-size: 20px;margin-left: 10px;margin-top: 15px;}
-.shenf p{font-size: 14px;margin-left: 10px;margin-top: 15px;margin-bottom: 10px;
+.shenf{margin: 0 15px;border-radius: 4px;margin-top:15px;overflow: hidden;}
+.shenf h1{font-size: 20px;margin-top: 15px;}
+.shenf p{font-size: 14px;margin-top: 15px;margin-bottom: 10px;color: #666;
+}
+.main {
+    margin-top: 50px;
 }
-
 .gerxix_box{padding: 15px 15px 0 15px;background: #fff;}
 .gerxix_box li{height: 50px;width: 100%;border-bottom: 1px solid #efefef;overflow: hidden;}
-.gerxix_box li h1{float: left;font-size: 16px;line-height:50px;}
-.tianx{font-size: 16px;color: #333;width: 55%;height: 50px;float: right;line-height: 50px;margin-right: 15px;text-align: right;border: none;outline: medium;    background: none;}
+.gerxix_box li h1{float: left;font-size: 14px;line-height:50px;}
+.tianx{font-size: 14px;color: #333;width: 55%;height: 50px;float: right;line-height: 50px;margin-right: 15px;text-align: right;border: none;outline: medium;    background: none;}
+.gerxix_box ul li.online {
+    background-color: #f9e6c469;
+    border-radius: 4px;
+    border-bottom: none;
+}
+.gerxix_box ul li a {
+    display: block;
+    color: #333;
+    width: 100%;
+    height: 100%;
+}
+.gerxix_box ul li a img {
+    width: 20px;
+    margin-top: 16px;
+    float: right;
+    margin-right: 15px;
+}
+.xiangce_tj{width: 100%;}
+.tis{font-size: 14px;margin-top: 10px;line-height: 40px;margin-left: 15px;color: #666;}
 
-.main {
-    margin-top: 50px;
+.xiangce_tj ul {
+    margin-top: 10px;
+    overflow: hidden;
 }
 
-.xiangce_tj{width: 100%;}
-.tis{font-size: 16px;margin-top: 10px;line-height: 40px;margin-left: 15px;color: #666;}
-.xiangce_tj ul{margin-left: 3%;margin-top: 10px;overflow: hidden;}
-.xiangce_tj li{
-    width: 46%;
-    margin: 0 1%;
+.xiangce_tj li {
+    width: 60%;
     border-radius: 4px;
-    float: left;
     overflow: hidden;
     position: relative;
-    height: 8rem;
+    height: 7rem;
     text-align: center;
+    padding: 20px 20px 20px;
+    margin: 0 auto;
+
 }
-.xiangce_tj li img{
-    position: absolute;
-    width: 100%;
-    height: 100%;
+
+.xiangce_tj li:first-child {
+    background-color: #eee;
+}
+
+.xiangce_tj li p:first-child {
+    height: 80%;
     top: 0;
     left: 0;
     z-index: 1;
+    background-color: #fff;
+    border: none;
+    position: relative;
 }
 
+.xiangce_tj li p img {
+    width: 50px;
+    position: absolute;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    top: 0;
+    margin: auto;
+}
+.xiangce_tj li p img.pic {
+    width: 100%;
+    height: 100%;
+}
 .xiangce_tj ul li input {
     width: 100%;
     height: 100%;
@@ -60,7 +99,22 @@ body{background: #fff;}
 }
 .zhic_lb p b{color: #ffd132;margin-right: 5px;}
 
-
-
-.baoc_ann{margin: 0 15px;margin-top: 30px;}
-.baoc_ann h1{font-size: 18px;height: 45px;line-height: 45px;text-align: center;background: #ffd132;color: #333;border-radius: 6px;margin-top: 20px;}
+.baoc_ann{margin: 0 15px;margin-top: 30px;margin-bottom: 20px;}
+.baoc_ann h1 {
+    font-size: 18px;
+    height: 45px;
+    line-height: 45px;
+    text-align: center;
+    background: #ffd132;
+    color: #fff;
+    width: 64%;
+    border-radius: 20px;
+    margin: 0 auto;
+    margin-top: 20px;
+}
+.tip {
+    height: 30px;
+    margin-top: 10px;
+    color: #666;
+    font-size: 14px;
+}

+ 19 - 8
public/themes/default/weixin/public/assets/css/auth-idcard.css

@@ -1,19 +1,19 @@
 body{background: #fff;}
-.shenf{background:#ffd132;margin: 0 15px;border-radius: 4px;margin-top:15px;overflow: hidden;}
-.shenf h1{font-size: 20px;margin-left: 10px;margin-top: 15px;}
-.shenf p{font-size: 14px;margin-left: 10px;margin-top: 15px;margin-bottom: 10px;
+.shenf{/*background:#ffd132;*/margin: 0 15px;border-radius: 4px;margin-top:15px;overflow: hidden;}
+.shenf h1{font-size: 20px;margin-top: 15px;}
+.shenf p{font-size: 14px;margin-top: 15px;margin-bottom: 10px;color: #666;
 }
 
 .gerxix_box{padding: 15px 15px 0 15px;background: #fff;}
 .gerxix_box li{height: 50px;width: 100%;border-bottom: 1px solid #efefef;overflow: hidden;}
-.gerxix_box li h1{float: left;font-size: 16px;line-height:50px;}
-.tianx{font-size: 16px;color: #333;width: 55%;height: 50px;float: right;line-height: 50px;margin-right: 15px;text-align: right;border: none;outline: medium;}
+.gerxix_box li h1{float: left;font-size: 14px;line-height:50px;}
+.tianx{font-size: 14px;color: #333;width: 55%;height: 50px;float: right;line-height: 50px;margin-right: 15px;text-align: right;border: none;outline: medium;}
 .main {
     margin-top: 50px;
 }
 
 .xiangce_tj{width: 100%;}
-.xiangce_tj h1{font-size: 16px;margin-top: 10px;line-height: 40px;margin-left: 15px;color: #666;}
+.xiangce_tj h1{font-size: 14px;margin-top: 10px;line-height: 28px;margin-left: 15px;color: #666;}
 .xiangce_tj ul{margin-left: 3%;margin-top: 10px;overflow: hidden;}
 .xiangce_tj li{
     width: 46%;
@@ -49,5 +49,16 @@ body{background: #fff;}
     margin: 0 15px;
     color: red;
 }
-.baoc_ann{margin: 0 15px;margin-top: 30px;}
-.baoc_ann h1{font-size: 18px;height: 45px;line-height: 45px;text-align: center;background: #ffd132;color: #333;border-radius: 6px;margin-top: 20px;}
+.baoc_ann{margin: 0 15px;margin-top: 30px;margin-bottom: 20px;}
+.baoc_ann h1 {
+    font-size: 18px;
+    height: 45px;
+    line-height: 45px;
+    text-align: center;
+    background: #ffd132;
+    color: #fff;
+    width: 64%;
+    border-radius: 20px;
+    margin: 0 auto;
+    margin-top: 20px;
+}

+ 149 - 27
public/themes/default/weixin/public/assets/css/auth-position.css

@@ -1,25 +1,70 @@
-body{background: #fff;}
-.shenf{background:#ffd132;margin: 0 15px;border-radius: 4px;margin-top:15px;overflow: hidden;}
-.shenf h1{font-size: 20px;margin-left: 10px;margin-top: 15px;}
-.shenf p{font-size: 14px;margin-left: 10px;margin-top: 15px;margin-bottom: 10px;
+body {
+    background: #fff;
+}
+
+.shenf { /*background:#ffd132;*/
+    margin: 0 15px;
+    border-radius: 4px;
+    margin-top: 15px;
+    overflow: hidden;
+}
+
+.shenf h1 {
+    font-size: 20px;
+    margin-top: 15px;
+}
+
+.shenf p {
+    font-size: 14px;
+    margin-top: 15px;
+    margin-bottom: 10px;
+}
+
+.gerxix_box {
+    padding: 15px 15px 0 15px;
+    background: #fff;
+}
+
+.gerxix_box li {
+    height: 50px;
+    width: 100%;
+    border-bottom: 1px solid #efefef;
+    overflow: hidden;
+}
+
+.gerxix_box li h1 {
+    float: left;
+    font-size: 14px;
+    line-height: 50px;
+}
+
+.tianx {
+    font-size: 14px;
+    color: #333;
+    width: 55%;
+    height: 50px;
+    float: right;
+    line-height: 50px;
+    margin-right: 15px;
+    text-align: right;
+    border: none;
+    outline: medium;
 }
 
-.gerxix_box{padding: 15px 15px 0 15px;background: #fff;}
-.gerxix_box li{height: 50px;width: 100%;border-bottom: 1px solid #efefef;overflow: hidden;}
-.gerxix_box li h1{float: left;font-size: 16px;line-height:50px;}
-.tianx{font-size: 16px;color: #333;width: 55%;height: 50px;float: right;line-height: 50px;margin-right: 15px;text-align: right;border: none;outline: medium;}
 .main {
     margin-top: 50px;
 }
+
 .gerxix_box ul li label {
     width: 60px;
     display: inline-block;
     float: right;
     text-align: center;
     line-height: 50px;
-    font-size: 16px;
+    font-size: 14px;
     color: #666;
 }
+
 .gerxix_box ul li label input {
     opacity: 0;
     position: absolute;
@@ -28,28 +73,62 @@ body{background: #fff;}
     z-index: 2;
 }
 
-.xiangce_tj{width: 100%;}
-.tis{font-size: 16px;margin-top: 10px;line-height: 40px;margin-left: 15px;color: #666;}
-.xiangce_tj ul{margin-left: 3%;margin-top: 10px;overflow: hidden;}
-.xiangce_tj li{
-    width: 46%;
-    margin: 0 1%;
+.xiangce_tj {
+    width: 100%;
+}
+
+.tis {
+    font-size: 14px;
+    margin-top: 10px;
+    line-height: 40px;
+    margin-left: 15px;
+    color: #666;
+}
+
+.xiangce_tj ul {
+    margin-top: 10px;
+    overflow: hidden;
+}
+
+.xiangce_tj li {
+    width: 60%;
     border-radius: 4px;
-    float: left;
     overflow: hidden;
     position: relative;
-    height: 9rem;
+    height: 7rem;
     text-align: center;
+    padding: 20px 20px 20px;
+    margin: 0 auto;
+
 }
-.xiangce_tj li img{
-    position: absolute;
-    width: 100%;
-    height: 100%;
+
+.xiangce_tj li:first-child {
+    background-color: #eee;
+}
+
+.xiangce_tj li p:first-child {
+    height: 80%;
     top: 0;
     left: 0;
     z-index: 1;
+    background-color: #fff;
+    border: none;
+    position: relative;
 }
 
+.xiangce_tj li p img {
+    width: 50px;
+    position: absolute;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    top: 0;
+    margin: auto;
+}
+.xiangce_tj li p img.pic {
+    width: 100%;
+    height: 100%;
+}
 .xiangce_tj ul li input {
     width: 100%;
     height: 100%;
@@ -59,22 +138,65 @@ body{background: #fff;}
     left: 0;
     opacity: 0;
 }
+
+
 .error {
     margin-bottom: 10px;
     margin: 0 15px;
     color: red;
 }
-.xiangce_tj li h1{font-size: 18px;color: #333;position: absolute;top: 10px;left:10px;text-align: right;}
-.zhic_lb{position: absolute;top: 40px;left: 10px;}
-.zhic_lb p{
+
+.xiangce_tj li h1 {
+    font-size: 18px;
+    color: #333;
+    position: absolute;
+    top: 10px;
+    left: 10px;
+    text-align: right;
+}
+
+.zhic_lb {
+    position: absolute;
+    top: 40px;
+    left: 10px;
+}
+
+.zhic_lb p {
     width: 100%;
     /* float: left; */
     line-height: 30px;
     font-size: 12px;
     text-align: left;
 }
-.zhic_lb p b{color: #ffd132;margin-right: 5px;}
 
+.zhic_lb p b {
+    color: #ffd132;
+    margin-right: 5px;
+}
 
-.baoc_ann{margin: 0 15px;margin-top: 30px;}
-.baoc_ann h1{font-size: 18px;height: 45px;line-height: 45px;text-align: center;background: #ffd132;color: #333;border-radius: 6px;margin-top: 20px;}
+
+.baoc_ann {
+    margin: 0 15px;
+    margin-top: 30px;
+    margin-bottom: 20px;
+}
+
+.baoc_ann h1 {
+    font-size: 18px;
+    height: 45px;
+    line-height: 45px;
+    text-align: center;
+    background: #ffd132;
+    color: #fff;
+    width: 64%;
+    border-radius: 20px;
+    margin: 0 auto;
+    margin-top: 20px;
+}
+
+.tip {
+    height: 30px;
+    margin-top: 10px;
+    color: #666;
+    font-size: 14px;
+}

+ 150 - 9
public/themes/default/weixin/public/assets/css/auth.css

@@ -1,13 +1,154 @@
-body{background: #fff;}
-.shenf_bt{padding:0 15px;overflow: hidden;margin-top: 10px;padding-top: 15px;}
-.shenf_bt h1{font-size: 24px;color: #333;}
-.shenf_bt p{font-size: 14px;margin-top: 10px;}
+body {
+    background: #f7f7f7;
+}
+.fanhui2 h1 {
+    color: #fff;
+}
+.shenf_bt {
+    padding: 15px 15px 45px;
+    overflow: hidden;
+    margin-top: 10px;
+    background-color: #ffd132;
+}
+.shenf_bt .header h1 {
+    font-size: 16px;
+    color: #fff;
+}
+.shenf_bt .header h1 img {
+    width: 18px;
+    margin-left: 5px;
+    vertical-align: middle;
+    margin-bottom: 4px;
+}
+.shenf_bt .card span {
+    background-color: rgba(232, 198, 78, 0.32);
+    border-radius: 4px;
+    padding: 2px 6px;
+    margin-right: 4px;
+    color: #fff;
+    font-size: 12px;
+}
+.notice {
+    margin-top: 5px;
+    height: 36px;
+    line-height: 36px;
+    overflow: hidden;
+    font-size: 12px;
 
+}
+.notice p {
+    color: #fff;
+    border-radius: 20px;
+    padding-left: 2px;
 
-.shenf{margin: 0 15px;border-radius: 4px;height:80px;margin-top:20px;overflow: hidden;border: 1px solid #ffd132;background: #ffd132;}
-.shenf h1{font-size: 18px;margin-left: 15px;float: left;line-height: 80px;color: #333;}
-.shenf h2{float: right;font-size: 14px;margin-right: 15px;background: #fff;padding: 4px 10px;border-radius: 3px;margin-top: 26px;color: #333;}
-.tis{padding: 15px;font-size: 14p;color: #999;}
-.tis img{width: 16px;margin: 0 5px;}
+    background: -ms-linear-gradient(right, #ffd132,  rgba(245, 244, 242, 0.36));        /* IE 10 */
+
+    background:-moz-linear-gradient(right, #ffd132,rgba(245, 244, 242, 0.36));/*火狐*/
+
+    background:-webkit-gradient(linear, 0% 0%, 0% 100%,from(#ffd132), to(rgba(245, 244, 242, 0.36)));/*谷歌*/
+
+    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffd132), to(rgba(245, 244, 242, 0.36)));      /* Safari 4-5, Chrome 1-9*/
+
+    background: -webkit-linear-gradient(right, #ffd132, rgba(245, 244, 242, 0.36));   /*Safari5.1 Chrome 10+*/
+
+    background: -o-linear-gradient(right, #ffd132, rgba(245, 244, 242, 0.36));  /*Opera 11.10+*/
+}
+.notice p img {
+    width: 24px;
+    height: 24px;
+    margin-right: 5px;
+    vertical-align: middle;
+    border-radius: 100%;
+}
+
+.main .nav {
+    position: relative;
+    top: -50px;
+}
+
+
+.shenf {
+    margin: 0 15px;
+    border-radius: 4px;
+    min-height: 80px;
+    margin-top: 20px;
+    overflow: hidden;
+    border: 1px solid #fff;
+    background: #fff;
+    position: relative;
+}
+
+.shenf .info .img {
+    display: inline-block;
+    min-width: 42px;
+    margin: 0px 8px;
+    vertical-align: middle;
+    position: relative;
+}
+.shenf .info .img .icon {
+    width: 42px;
+    margin-top: 20px;
+}
+.shenf .idcard .img .icon {
+    width: 32px;
+    padding: 5px;
+    background: #eee;
+    border-radius: 100%;
+}
+.shenf .education .img .icon {
+    width: 36px;
+}
+.shenf .info .img .check {
+    width: 14px;
+    position: absolute;
+    right: -5px;
+    bottom: 5px;
+}
+.shenf .info .text {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.shenf .text h2 {
+    font-size: 16px;
+    color: #333;
+}
+.shenf .info .text p {
+    font-size: 12px;
+    color: #999;
+}
+.shenf .text span {
+    right: 0px;
+    top: 0;
+    position: absolute;
+    font-size: 12px;
+    margin-right: 10px;
+    padding: 4px 6px;
+    border-radius: 3px;
+    margin-top: 26px;
+    color: #f1b428;
+    background: #f9f9f9;
+}
+
+.tis {
+    padding: 15px;
+    font-size: 12px;
+    color: #999;
+}
+
+.custom {
+    padding: 15px;
+    font-size: 12px;
+    text-align: center;
+}
+.custom a {
+    color: #f1b428;
+}
+
+.custom img {
+    vertical-align: middle;
+    width: 20px;
+    margin: 0 5px;
+}
 
 

+ 429 - 0
public/themes/default/weixin/public/assets/css/hearts.css

@@ -0,0 +1,429 @@
+/* 首页 */
+html {
+    height: 100%;
+}
+body {
+    /*overflow-y: scroll;*/
+
+}
+.box {
+    padding: 0 15px;
+    overflow-y: scroll !important;
+    height: calc(100% - 134px);
+    position: relative;
+    margin-bottom: 0;
+ }
+.box.recommend {
+    background: none;
+    padding: 0;
+    width: 100%;
+    /*margin-left: 15px;*/
+}
+.box.has {
+    margin-top: 85px;
+    height: calc(100% - 156px);
+}
+.recommend.has {
+    height: calc(100% - 145px);
+}
+.box .swiper-container {
+    height: 100%;
+}
+
+.box .hearts .swiper-slide {
+    height: calc(100% - 20px);
+    width: calc(100% - 30px);
+    margin: 0 auto;
+}
+.recommend-box {
+    height: 100%;
+    position: relative;
+}
+.box .recommends .swiper-slide {
+    height: calc(95% - 20px);
+    /*height: calc(100% - 20px);*/
+    margin: 0 auto;
+}
+.recommend-box .info-box {
+    margin: 0;
+    margin-bottom: 20px;
+    height: calc(100% - 20px);
+    border-radius: 8px;
+    position: relative;
+    border-bottom: 10px solid #dcd8cd;
+    /*height: 100%;*/
+}
+.recommend-box .info-box .info {
+    height: 100%;
+    /*height: 100%;*/
+}
+.recommend-box .info .avatar {
+    border-radius: 8px;
+    /*border-bottom-left-radius: 8px;*/
+    /*border-bottom-right-radius: 8px;*/
+}
+.top_lieb ul {
+    position: relative;
+}
+.top_lieb li {
+    background-color: transparent;
+    color: #333;
+}
+.more {
+    text-align: center;
+    margin-top: 20px;
+}
+.more a {
+    color: #f1c21f;
+}
+.top_lieb li.active {
+    background-color: #f1c21f;
+    color: #fff;
+}
+.top_lieb li.active a {
+    color: #fff;
+}
+.top_lieb li a {
+    color: #333;
+}
+.top_lieb ul .filter {
+    position: absolute;
+    right: 4px;
+    top: 8px;
+}
+.top_lieb ul .filter img {
+    width: 24px;
+    height: 24px;
+    display: inline-block;
+}
+.hearts .info-box {
+    /*margin: 0 15px;*/
+    margin-left: 15px;
+    height: 100%;
+    border-radius: 8px;
+    background-color: #fff;
+    border: 1px solid #e5e2e2;
+    box-shadow: 0px 2px 2px 2px #e7e8e5;
+    position: relative;
+
+}
+.recommend-box .pics {
+    float: right;
+    margin-right: 8px;
+    font-weight: normal;
+    font-size: 14px;
+    line-height: 24px;
+}
+.info-box .info {
+    position: relative;
+    height: calc(100% - 100px);
+}
+.info .avatar {
+    height: 100%;
+    width: 100%;
+    display: block;
+    border-top-left-radius: 8px;
+    border-top-right-radius: 8px;
+}
+.followTips {
+    height: 30px;
+    background: #2f2e2e;
+    width: 100%;
+    position: fixed;
+    top: 0;
+    z-index: 999;
+    color: #fff;
+    text-align: center;
+    line-height: 30px;
+    font-size: 14px;
+}
+.follow img {
+    width: 100%;
+    height: 100%;
+}
+.followTips a {
+    color: #fff;
+    background: #f1c21f;
+    border-radius: 4px;
+    padding: 2px 5px;
+    margin-left: 5px;
+}
+.followTips span {
+    float: right;
+    margin-right: .5rem;
+    border-radius: 100%;
+    display: inline-block;
+    width: 20px;
+    text-align: center;
+    background: #ccc;
+    height: 20px;
+    line-height: 20px;
+    margin-top: 5px;
+}
+.top_lieb.hasFollow {
+    top: 30px;
+}
+.info .td_xix{
+    width: 100%;
+    min-height: 5.2rem;
+    /*background-color: rgba(160, 159, 159, 0.4);*/
+    background-color: rgba(195 ,194 ,194 , 0.37);
+    position: absolute;
+    bottom: 0;
+    color: #fff;
+}
+.info .td_xix h1{
+    font-size: 20px;
+    margin-left: 12px;
+    line-height: 36px;
+    margin-top: 6px;
+    font-weight: bold;
+    color: #fff;
+}
+.info .auth {
+    vertical-align: middle;
+    display: inline-block;
+    /*line-height: 24px;*/
+    height: 28px;
+}
+.info .vip-auth {
+    background-color: #f1c21f;
+    display: inline-block;
+    vertical-align: middle;
+    padding: 2px 6px;
+    border-radius: 6px;
+    line-height: 24px;
+    font-style: normal;
+    font-size: 12px;
+}
+.info .vip-auth img {
+    display: inline-block;
+    vertical-align: middle;
+}
+.info .vip-auth span {
+    display: inline-block;
+    vertical-align: middle;
+    margin-left: 6px;
+    color: #fff;
+}
+.info .td_xix p{
+    font-size: 14px;
+    line-height: 26px;
+    margin-left: 12px;
+    color: #fff;
+}
+.info-box .desc {
+    /*height: 100px;*/
+
+}
+
+.info-box .desc p {
+    margin: 20px;
+    line-height: 28px;
+    text-align: center;
+    color: #666;
+    font-weight: 200;
+    word-break: break-all;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+    overflow: hidden;
+}
+.info-box .down-more {
+    position: absolute;
+    right: 8px;
+    bottom: 8px;
+   /* position: absolute;
+    bottom: -60px;
+    left: 0;
+    right: 0;
+    margin: auto;
+    width: 36px;*/
+}
+
+.pics {
+    float: right;
+    margin-right: 8px;
+}
+.pics img {
+    width: 24px;
+    height: 24px;
+    vertical-align: middle;
+}
+
+.nomore {
+    padding-left: 15px;
+    background: url('/themes/default/weixin/public/assets/img/recommend_bg.png?v=1') no-repeat 100%/100%;
+    font-size: 16px;
+}
+.nomore .head {
+    text-align: center;
+    margin: 20px;
+    font-size: 20px;
+}
+.nomore .time {
+    margin: 15px 0 20px;
+    text-align: center;
+}
+.nomore .time span {
+    color: red;
+}
+.nomore .tips {
+    margin: 10px auto;
+    line-height: 36px;
+    text-align: center;
+    margin-right: 15px;
+}
+
+.join {
+    position: fixed;
+    z-index: 99;
+    right: 0;
+    background: #e62977;
+    padding: 4px 8px 4px 14px;
+    font-size: 12px;
+    color: #fff;
+    border-radius: 20px 0 0 20px;
+    top: 20%;
+}
+
+.join a {
+    color: #fff;
+}
+
+.top_lieb{height: 46px;background: #fff;width: 100%; position: fixed;top: 0;z-index: 999;border-bottom: 1px solid #e6e6e6;}
+.top_lieb ul{padding: 0 10px;}
+.top_lieb li{float: left;overflow: hidden;width:30%;margin: 0 9%;margin-top:10px;border-radius: 14px;}
+.top_lieb li h1{font-size: 16px;text-align: center;height:26px;margin: auto;line-height: 26px;}
+
+.box{/*padding-left: 15px;*/margin-top:58px;margin-bottom: 49px; background: #fff;overflow: hidden;padding-top: 15px;    position: relative;}
+.tuod_ne{position: relative;width: 100%;margin-bottom: 15px;border-radius: 10px;overflow: hidden;height: 425px;}
+.tuod_ne img{width: 100%;top: 0;position: absolute;width: 100%;height: 100%;}
+.tuod_ne::before{display: block;content: '';width: 100%;padding-top: 100%;}
+
+.item .td_xix{width: 100%; height: 5rem;background-color: rgba(160, 159, 159, 0.4);position: absolute;bottom: 0;}
+.item .td_xix h1{font-size: 16px;margin-left: 12px;line-height: 26px;margin-top: 6px;font-weight: bold;color: #fff;}
+.item .td_xix p{font-size: 14px;line-height: 20px;margin-left: 12px;color: #fff;}
+
+.filterBox {
+    width: 100%;
+    position: fixed;
+    z-index: 100;
+    background-color: rgba(137, 133, 133, 0.38);
+    top: 47px;
+    left: 0;
+    height: 100%;
+}
+.filterBox.has {
+    top: 77px;
+}
+.prxd_box{padding:0 15px;overflow: hidden; background-color: #fff; padding-bottom: 15px}
+.prxd_box ul{margin-top:20px;}
+.prxd_box li{overflow: hidden;}
+
+.prxd_bt{height: 40px; background: #fff;}
+
+.prxd_bt h1{font-size: 14px;color: #333;font-weight: bold;height: 22px;line-height:22px;margin-top: 0px;}
+
+.choose-item h1.active {
+    border: 1px solid #ffd132;
+    color: #fff;
+    background: #ffd132;
+}
+
+.prxd_nr{height: 40px;width: 100%;overflow: hidden;}
+.prxd_nr2,.prxd_nr3 {height: 50px;width: 100%;overflow: hidden;}
+.prxd_nr h1{float: left;font-size: 14px;line-height:40px;}
+.prxd_nr2 h1,.prxd_nr3 h1,.prxd_nr4 h1{float: left;font-size: 12px;padding: 5px 10px;border: 1px solid #ccc;margin-right: 20px;border-radius: 4px;    margin-bottom: 15px;}
+
+.tianx{font-size: 14px;color: #333;width: 55%;height: 40px;float: right;line-height: 40px;margin-right: 15px;text-align: right;border: none;outline: medium;}
+.prxd_nr label {
+    position: relative;
+    display: inline-block;
+    width: 55%;
+    float: right;
+}
+.prxd_nr label input {
+    width: 100%;
+}
+.prxd_nr label input.input {
+    position: absolute;
+    z-index: 1;
+    right: 0;
+}
+.prxd_nr label input.sel {
+    opacity: 0;
+    position: relative;
+    /*position: absolute;*/
+    z-index: 2;
+    right: 0;
+}
+
+.minzu {
+    float: right;
+    width: 12px;
+    margin-top: 14px;
+}
+.tianx {
+    font-size: 14px;
+    color: #333;
+    width: 55%;
+    height: 40px;
+    float: right;
+    line-height: 40px;
+    margin-right: 15px;
+    text-align: right;
+    border: none;
+    outline: medium;
+}
+
+.ger_banc {
+    margin-top: 10px;
+    height: 80px;
+    background: #fff;
+}
+
+.ger_banc h1 {
+    font-size: 18px;
+    height: 40px;
+    line-height: 40px;
+    text-align: center;
+    background: #ffd132;
+    color: #333;
+    border-radius: 6px;
+    margin-top: 20px;
+    padding: 0 20px;
+}
+
+/* 提示 */
+
+.tips {
+    position: fixed;
+    top: 12%;
+    background: #ffd132;
+    z-index: 99;
+    border-radius: 16px;
+    padding: 0px 8px;
+    width: 85%;
+    text-align: center;
+    right: -100%;
+    height: 30px;
+    line-height: 30px;
+    overflow: hidden;
+    display: none;
+}
+
+.tips a {
+    display: block;
+    color: red;
+    width: 100%;
+    min-width: 296px;
+    font-size: 14px;
+}
+
+.tips a em {
+    font-style: normal;
+    max-width: 50px;
+    overflow: hidden;
+}

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

@@ -80,6 +80,123 @@ body {
     color: #ffd132;
 }
 
+/* 认证 */
+.auth-box {
+    margin: 10px 0px;
+    padding: 0;
+}
+.auth-list {
+    overflow: hidden;
+    padding-bottom: 5px;
+    border-bottom: 1px solid #f1f1f1;
+}
+.tix_box .info-item .auth-item {
+    width: 33.3%;
+    float: left;
+    vertical-align: top;
+}
+
+.auth-box .info-item {
+    text-align: center;
+}
+.tix_box .auth-row .auth-item {
+    float: none;
+    border-bottom: 1px solid #f1f1f1;
+    text-align: left;
+    margin: 0 15px;
+    width: auto;
+}
+
+.auth-item .info .img {
+    display: inline-block;
+    min-width: 42px;
+    margin: 0px 8px;
+    vertical-align: middle;
+    position: relative;
+}
+.auth-item .info .img .icon {
+    width: 42px;
+    margin-top: 20px;
+}
+.auth-item .idcard .img .icon {
+    width: 32px;
+    padding: 5px;
+    background: #eee;
+    border-radius: 100%;
+}
+.auth-item .education .img .icon {
+    width: 30px;
+    border-radius: 100%;
+    padding: 6px;
+    background-color: #edf7ef;
+    margin-top: 20px;
+}
+.auth-item .info .img .check {
+    width: 14px;
+    position: absolute;
+    right: -5px;
+    bottom: 5px;
+}
+.auth-item .info .text {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.auth-item .auth-type {
+    font-size: 12px;
+    color: #666;
+}
+.auth-item .info {
+    width: 100%;
+    overflow: hidden;
+}
+.auth-row {
+    border: none;
+    height: 0;
+}
+.auth-row .auth-item .img {
+    float: left;
+}
+.auth-row .auth-item .img .icon {
+    margin-top: 10px;
+}
+.auth-row .auth-item .auth-type {
+    float: left;
+    vertical-align: top;
+    margin-top: 10px;
+    margin-left: 10px;
+    color: #333;
+    font-size: 14px;
+}
+.auth-row .auth-item .auth-type .type {
+    font-size: 12px;
+    color: #999;
+}
+.auth-box .info-item .op {
+    padding: 15px;
+    margin-top: 5px;
+}
+.auth-box .info-item .op span {
+    padding: 2px;
+    border: 1px solid #d3d3ce;
+    border-radius: 10px;
+    display: block;
+    width: 40px;
+    height: 14px;
+    line-height: 14px;
+    color: #f1f1f1;
+    margin: 0 auto;
+}
+.auth-box .info-item .op span img {
+    width: 14px;
+}
+.auth-box .info-item .op .down {
+    transform:rotate(180deg);
+    -ms-transform:rotate(180deg); 	/* IE 9 */
+    -moz-transform:rotate(180deg); 	/* Firefox */
+    -webkit-transform:rotate(180deg); /* Safari 和 Chrome */
+    -o-transform:rotate(180deg); 	/* Opera */
+}
 /*	底部悬浮*/
 
 .xuanfi{width: 100%;height: 50px;position: fixed;bottom: 0; background: url(../img/beij.png)no-repeat;background-size: 100% 100%;padding-bottom: 15px;}

+ 6 - 3
public/themes/default/weixin/public/assets/css/match.css

@@ -54,11 +54,11 @@ body {
     /*height: 100%;*/
 }
 .recommend-box .info-box .info {
-    height: 100%;
+    /*height: 100%;*/
     /*height: 100%;*/
 }
 .recommend-box .info .avatar {
-    border-radius: 8px;
+    /*border-radius: 8px;*/
     /*border-bottom-left-radius: 8px;*/
     /*border-bottom-right-radius: 8px;*/
 }
@@ -107,6 +107,9 @@ body {
     position: relative;
 
 }
+.hearts .swiper-wrapper .swiper-slide:first-child .info-box{
+    margin-left: 0;
+}
 .recommend-box .pics {
     float: right;
     margin-right: 8px;
@@ -297,7 +300,7 @@ body {
 .top_lieb li{float: left;overflow: hidden;width:30%;margin: 0 9%;margin-top:10px;border-radius: 14px;}
 .top_lieb li h1{font-size: 16px;text-align: center;height:26px;margin: auto;line-height: 26px;}
 
-.box{padding-left: 15px;margin-top:58px;margin-bottom: 49px; background: #fff;overflow: hidden;padding-top: 15px;    position: relative;}
+.box{/*padding-left: 15px;*/margin-top:58px;margin-bottom: 49px; background: #fff;overflow: hidden;padding-top: 15px;    position: relative;}
 .tuod_ne{position: relative;width: 100%;margin-bottom: 15px;border-radius: 10px;overflow: hidden;height: 425px;}
 .tuod_ne img{width: 100%;top: 0;position: absolute;width: 100%;height: 100%;}
 .tuod_ne::before{display: block;content: '';width: 100%;padding-top: 100%;}

+ 103 - 0
public/themes/default/weixin/public/assets/css/member-access.css

@@ -0,0 +1,103 @@
+body{background: #fff;}
+.huxian li span {
+    margin-left: 4px;
+}
+.daojis{background: #fff;width: 100%;overflow: hidden; border-top: 4px solid  #efefef;border-bottom: 4px solid  #efefef;}
+.daojis h1{float: left;font-size: 14px;line-height: 40px;color: #333;margin-left: 15px;}
+.daojis b{margin: 0 5px;color: #eabc1d;}
+.time-item{float: right;margin-right: 15px;}
+.time-item p{float: left;color: #333;line-height: 40px;font-size: 12px;}
+.time-item strong{background:#eabc1d;color:#fff;line-height:40px;font-size:12px;font-family:Arial;padding:2px 4px;border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,0.2);}
+#day_show{float:left;line-height:42px;color:#333;font-size:14px;margin:0 8px;font-family:Arial, Helvetica, sans-serif;}
+.item-title .unit{background:none;line-height:49px;font-size:24px;padding:0 10px;float:left;}
+.time-item strong span {
+    min-width: 18px;
+    display: inline-block;
+}
+.switch {
+    position: fixed;
+    z-index: 99;
+    right: 0;
+    top: 4.2rem;
+}
+.switch span {
+    display: block;
+    padding: 2px 4px;
+    text-align: center;
+    border-radius: 8px;
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+    background-color: #e62977;
+    color: #fff;
+}
+.shouc_lb{background: #fff;padding:0 15px; margin-bottom: 15px;}
+.shouc_lb li{overflow: hidden;border-bottom: 1px solid #f1f1f1;padding: 15px 0;}
+.shouc_lb li.loaded, .shouc_lb li.empty {
+    border-bottom: 1px solid transparent;
+}
+.wodx{width: 60px;height: 60px;background: #fff;margin: auto;float: left;border-radius: 50%;margin-left: 4px;}
+.wodx img{width: 100%;height: 100%;display: block;border-radius: 100%;overflow: hidden;border: 1px solid #ffd132;}
+.wodx p{text-align: center;font-size: 12px;color: #333;margin-top: 8px;}
+.wodx_xim{float: left;margin-left: 15px;width: calc(100% - 80px);position: relative;}
+.wodx_xim h1{color: #333;font-size: 16px; margin-top: 4px;position: relative;z-index: 1;}
+.wodx_xim p{color: #999;font-size: 12px;margin-top: 4px;}
+.wodx_xim .info {
+    color: #ffd132;
+}
+
+.lock-list .wodx{position: relative;filter: blur(4px);user-select: none;}
+.lock-list .wodx::after{position: absolute;top: 0;left: 0;width: 100%;height: 100%;border-radius: 100%;content: '';display: block;background: rgba(44, 44, 43,0.6);}
+
+
+.lock-list .wodx_xim h1 span{position: relative;filter: blur(4px);user-select: none;}
+.lock-list .wodx_xim h1 span::after{position: absolute;top: 0;left: 0;width: 100%;height: 100%;content: '';display: block;background: rgba(76, 76, 74, 0.3);}
+
+.wodx_xim .info span {
+    margin-right: 8px;
+}
+.huxian {
+    height: 45px;
+    margin-top: 40px;
+    position: fixed;
+    z-index: 99;
+    width: 100%;
+    border-bottom: 1px solid #f1f1f1;
+}
+.huxian ul {
+    padding: 0 15px;
+    overflow: hidden;
+}
+.main {
+    margin-top: 85px;
+}
+.huxian li {
+    font-size: 14px;
+    color: #333;
+    float: left;
+    overflow: hidden;
+    width: 49.8%;
+    text-align: center;
+    line-height: 43px;
+}
+
+.huxian li.active {
+    color: #ffd132;
+}
+
+.wodx_xim .btn span {
+    display: block;
+    padding: 4px 8px;
+    background-color: rgba(247,246,241,0.7);
+    position: absolute;
+    right: 4px;
+    top: 30px;
+    border-radius: 15px;
+    color: #e62977;
+
+}
+
+.wodx_xim .btn span.lock {
+    background-color: #ffd132;
+    position: absolute;
+    color: #fff;
+}

+ 6 - 1
public/themes/default/weixin/public/assets/css/member-message.css

@@ -34,7 +34,7 @@ body{background: #fff;}
 .shouc_lb li.loaded, .shouc_lb li.empty {
     border-bottom: 1px solid transparent;
 }
-.wodx{width: 72px;height: 72px;background: #fff;margin: auto;float: left;border-radius: 50%;}
+.wodx{width: 60px;height: 60px;background: #fff;margin: auto;float: left;border-radius: 50%;}
 .wodx img{width: 100%;height: 100%;display: block;border-radius: 100%;overflow: hidden;border: 1px solid #ffd132;}
 .wodx p{text-align: center;font-size: 12px;color: #333;margin-top: 8px;}
 .wodx_xim{float: left;margin-left: 15px;width: 70%;position: relative;}
@@ -94,3 +94,8 @@ body{background: #fff;}
     background-color: #ffd132;
     color: #fff;
 }
+
+.wodx_item .cancel {
+    background-color: #e62977;
+    color: #fff;
+}

+ 1 - 1
public/themes/default/weixin/public/assets/css/member.css

@@ -9,7 +9,7 @@
 
 
 .zhobu_box{width: 100%;height:86px;overflow: hidden;background: #fff;margin-top: -2px;}
-.zhubu{width: 33.33%;text-align: center;float: left;margin-top: 10px;}
+.zhubu{width: 25%;text-align: center;float: left;margin-top: 10px;}
 .zhubu h1{
     font-size: 24px;
     color: #ffd132;

+ 6 - 1
public/themes/default/weixin/public/assets/css/message-detail.css

@@ -108,6 +108,9 @@ p.auth {
 .tix_xix p span:nth-child(2) {
     float: right;
 }
+.p2 em {
+    font-style: normal;
+}
 .p2 .out {
     color: #ee5bb1;
 }
@@ -115,7 +118,9 @@ p.auth {
     font-style: normal;
     color: #ee5bb1;
 }
-
+.p3 span:nth-child(2){
+    color: #ee5bb1;
+}
 .btn-box .action {
     width: 48%;
     display: inline-block;

二進制
public/themes/default/weixin/public/assets/img/auth/confirm_no.png


二進制
public/themes/default/weixin/public/assets/img/auth/confirm_ok.png


二進制
public/themes/default/weixin/public/assets/img/auth/education_check.png


二進制
public/themes/default/weixin/public/assets/img/auth/help.png


二進制
public/themes/default/weixin/public/assets/img/auth/icon-add.png


二進制
public/themes/default/weixin/public/assets/img/auth/icon-up.png


二進制
public/themes/default/weixin/public/assets/img/auth/idcard_check.png


二進制
public/themes/default/weixin/public/assets/img/auth/left.png


二進制
public/themes/default/weixin/public/assets/img/auth/work.png


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-1.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-2.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-3.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-4.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-5.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-6.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-7.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-8.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/1-9.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-1.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-2.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-3.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-4.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-5.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-6.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-7.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-8.jpg


+ 0 - 0
public/themes/default/weixin/public/assets/img/avatar/2-9.jpg


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


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


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


二進制
public/themes/default/weixin/public/assets/img/icon/rank_1-1.png


+ 81 - 11
public/themes/default/weixin/public/assets/js/auth-education.js

@@ -7,15 +7,34 @@ var app = new Vue({
         authInfo: {},
         // 已选文件
         files: [],
+        education_type: 0,
         // 学历
         educations: [],
         // 提交状态
         submitting: {'submit': null},
+        tipText: '点击上传',
+        tips: [
+            '需要露出学校和您的姓名',
+            '需要露出学籍和您的姓名',
+            '需要露出学校',
+        ],
+        types: [
+            '毕业证/学位证书照片',
+            '学信网学籍、学历图片',
+            '港澳台或海外学历认证',
+        ]
     },
     created: function(){
         this.getParams();
     },
+    updated(){
+        this.initData();
+    },
     methods: {
+        //
+        showHelp(){
+          location.href = 'https://www.chsi.com.cn/xlcx/rhsy.jsp'
+        },
         // 初始化参数
         getParams: function(){
             var _this = this;
@@ -42,7 +61,10 @@ var app = new Vue({
                 if (res.code == 'success'){
                     _this.memberInfo = res.data
                     _this.authInfo = res.data? res.data.authInfo : [];
-                    _this.initData();
+                    _this.authInfo.education_type = typeof(res.data.authInfo.education_type) != 'undefined'? res.data.authInfo.education_type : 0;
+                    _this.education_type = _this.authInfo.education_type
+                    _this.authInfo.preview = false
+
                 }else if(res.code == 'exception'){
                     $.modal({
                         id: "status",
@@ -94,6 +116,38 @@ var app = new Vue({
                 ]
             });
 
+            var education_type = _this.authInfo.education_type;
+            console.log(_this.authInfo)
+            $.each(_this.types, function(k, item){
+                if(education_type && education_type-1 == k){
+                    $("#education_type").val(item);
+                    //_this.authInfo.education_type = item;
+                }
+            });
+
+            $("#education_type").picker({
+                title: "请选择认证方式",
+                cols: [
+                    {
+                        textAlign: 'center',
+                        values: _this.types,
+                    }
+                ],
+                onChange: function (data) {
+                    $("#education_type").attr('data-code', data.cols[0].activeIndex+1);
+                    _this.education_type = data.cols[0].activeIndex+1;
+                    _this.authInfo.education_type = data.cols[0].activeIndex+1;
+                    // $("#education_type").val(data.cols[0].value);
+                    _this.tipText = typeof(_this.tips[data.cols[0].activeIndex]) != 'undefined'? _this.tips[data.cols[0].activeIndex] : ''
+                    console.log(_this.authInfo)
+                },
+                onConfirm: function (data) {
+                    var code = data.cols[0].value;
+                    _this.authInfo.education_type = data.cols[0].activeIndex+1;
+                    _this.tipText = typeof(_this.tips[data.cols[0].activeIndex]) != 'undefined'? _this.tips[data.cols[0].activeIndex] : ''
+                },
+            });
+
         },
         // 选择图片
         selectImg: function(ele, previewId){
@@ -105,6 +159,8 @@ var app = new Vue({
                 reader.onloadend = function (even) {
                     _this.files[previewId] = selectFile;
                     $('#'+previewId).attr('src', even.currentTarget.result);
+                    _this.authInfo.preview = true
+                    _this.authInfo.education_img_preview = even.currentTarget.result
                 }
             }
         },
@@ -115,22 +171,36 @@ var app = new Vue({
             if(_this.submitting.submit){
                 return false;
             }
+            params.graduate = $("#graduate").val();
+            params.graduate = typeof (params.graduate) != 'undefined'? params.graduate : '';
+            params.education_code = $("#education_code").val();
+            params.education_code = typeof (params.education_code) != 'undefined'? params.education_code : '';
+            params.education_type = $("#education_type").attr('data-code');
 
-            if(params.graduate == '' || params.graduate == null){
-                $.toast('请填写学校名称', 'text');
-                return false;
+            if(params.education_type!=2){
+                if(params.graduate == '' || params.graduate == null){
+                    $.toast('请填写学校名称', 'text');
+                    return false;
+                }
+                params.education = $("#education").attr('data-code');
+                if(params.education <= 0 || params.education == null){
+                    $.toast('请选择学历', 'text');
+                    return false;
+                }
+            }else{
+                if(params.education_code == '' || params.education_code == null){
+                    $.toast('请填写在线验证码', 'text');
+                    return false;
+                }
             }
 
-            params.education = $("#education").attr('data-code');
-            if(params.education <= 0 || params.education == null){
-                $.toast('请选择学历', 'text');
-                return false;
-            }
 
             var formData = new FormData();
             formData.append('scene', 'education');
             $.each(params, function(k,item){
-                formData.append(k, item);
+                if(k != 'education_img_preview'){
+                    formData.append(k, item);
+                }
             })
 
             // 照片
@@ -171,7 +241,7 @@ var app = new Vue({
                                         setTimeout(function(){
                                             $.hideLoading();
                                             _this.getInfo();
-                                            location.href = '/weixin/auth/index';
+                                            //location.href = '/weixin/auth/index';
                                         }, 500)
                                     }else if (res.code == 'login'){
                                         var url = res.data.url;

+ 29 - 0
public/themes/default/weixin/public/assets/js/auth-help.js

@@ -0,0 +1,29 @@
+var app = new Vue({
+    'el': '#app',
+    'data': {
+        // 活动信息
+        info: {},
+    },
+    created: function(){
+        this.getInfo();
+    },
+    methods: {
+        // 获取活动信息
+        getInfo: function(){
+            var _this = this;
+            $.showLoading("数据加载中...");
+            var id = getParam('id');
+            $.post('/api/index/getPage', {type: 'auth'}, function (res) {
+                $.hideLoading();
+                if (res.code == 'success'){
+                    _this.info = res.data
+                }else{
+                    $.showLoading(res.message);
+                    setTimeout(function(){
+                        location.href = '/weixin/index/index'
+                    }, 500);
+                }
+            }, "json");
+        },
+    }
+})

+ 2 - 2
public/themes/default/weixin/public/assets/js/auth-idcard.js

@@ -145,7 +145,7 @@ var app = new Vue({
                 return false;
             }*/
 
-            if(params.front_idcard == '' || params.front_idcard == null){
+           /* if(params.front_idcard == '' || params.front_idcard == null){
                 $.toast('请上传身份证正面照', 'text');
                 return false;
             }
@@ -153,7 +153,7 @@ var app = new Vue({
             if(params.back_idcard == '' || params.back_idcard == null){
                 $.toast('请上传身份证反面照', 'text');
                 return false;
-            }
+            }*/
 
 
             $.modal({

+ 54 - 1
public/themes/default/weixin/public/assets/js/auth-position.js

@@ -11,6 +11,23 @@ var app = new Vue({
         positions: [],
         // 提交状态
         submitting: {'submit': null},
+        tipText: '点击上传',
+        tips: [
+            '需露出参保公司和您等姓名',
+            '需带二维码',
+            '需带单位盖章',
+            '需露出单位和您带姓名职位',
+            '需露出您的姓名和单位',
+            '需露出学校和您的姓名'
+        ],
+        types: [
+            '支付宝社保截图/社保证明',
+            '钉钉或企业微信名片(带二维码)',
+            '在职证明/劳动合同/营业执照',
+            '工牌/名片/工作证等',
+            '录取offer/工资单',
+            '学生相关证件'
+        ]
     },
     created: function(){
         this.getParams();
@@ -37,6 +54,8 @@ var app = new Vue({
                 if (res.code == 'success'){
                     _this.memberInfo = res.data
                     _this.authInfo = res.data? res.data.authInfo : [];
+                    _this.authInfo.position_type = typeof(res.data.authInfo.position_type) != 'undefined'? res.data.authInfo.position_type : 0;
+                    _this.authInfo.preview = false
                     _this.initData();
                 }else if(res.code == 'exception'){
                     $.modal({
@@ -96,6 +115,34 @@ var app = new Vue({
                 ]
             });
 
+            var position_type = _this.authInfo.position_type;
+            console.log(_this.authInfo)
+            $.each(_this.types, function(k, item){
+                if(position_type && position_type-1 == k){
+                    $("#position_type").val(item);
+                    //_this.authInfo.position_type = item;
+                }
+            });
+
+            $("#position_type").picker({
+                title: "请选择认证方式",
+                cols: [
+                    {
+                        textAlign: 'center',
+                        values: _this.types,
+                    }
+                ],
+                onChange: function (data) {
+                    $("#position_type").attr('data-code', data.cols[0].activeIndex+1);
+                    _this.tipText = typeof(_this.tips[data.cols[0].activeIndex]) != 'undefined'? _this.tips[data.cols[0].activeIndex] : ''
+                },
+                onConfirm: function (data) {
+                    var code = data.cols[0].value;
+                    _this.authInfo.position_type = data.cols[0].activeIndex+1;
+                    _this.tipText = typeof(_this.tips[data.cols[0].activeIndex]) != 'undefined'? _this.tips[data.cols[0].activeIndex] : ''
+                },
+            });
+
         },
         // 选择图片
         selectImg: function(ele, previewId){
@@ -107,6 +154,9 @@ var app = new Vue({
                 reader.onloadend = function (even) {
                     _this.files[previewId] = selectFile;
                     $('#'+previewId).attr('src', even.currentTarget.result);
+                    _this.authInfo.preview = true
+                    _this.authInfo.position_img_preview = even.currentTarget.result
+                    console.log(_this.authInfo)
                 }
             }
         },
@@ -124,6 +174,7 @@ var app = new Vue({
             }
             var occupation = $("#position").attr('data-code');
             var occupation_text = $.trim($("#position").val());
+            params.position_type = $("#position_type").attr('data-code');
             if(typeof(occupation) != 'undefined'){
                 params.occupation = $("#occupation").attr('data-code');
             }
@@ -139,7 +190,9 @@ var app = new Vue({
             var formData = new FormData();
             formData.append('scene', 'position');
             $.each(params, function(k,item){
-                formData.append(k, item);
+                if(k != 'position_img_preview'){
+                    formData.append(k, item);
+                }
             })
 
             // 照片

+ 29 - 0
public/themes/default/weixin/public/assets/js/auth.js

@@ -3,11 +3,40 @@ var app = new Vue({
     'data': {
         // 用户信息
         memberInfo: {},
+        authLogs: [],
     },
     created: function(){
         this.getInfo();
+        this.getLogs();
+    },
+    updated(){
+        new Swiper('.notice', {
+            loop: true, // 循环模式选项
+            autoplay: {
+                delay: 2500,//1秒切换一次
+            },
+            speed: 500,
+            freeModeSticky:true,
+            freeMode: false,
+            observer: true,//修改swiper自己或子元素时,自动初始化swiper
+            observeParents: false,//修改swiper的父元素时,自动初始化swiper
+            direction: 'vertical',
+            slidesPerView: 'auto',
+        })
     },
     methods: {
+        getLogs: function(){
+            var _this = this
+            $.post('/api/member/getAuthNotice', {}, function (res) {
+                $.hideLoading();
+                if (res.code == 'success'){
+                    _this.authLogs = res.data
+
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        },
         // 获取用户信息
         getInfo: function(){
             var _this = this;

File diff suppressed because it is too large
+ 91 - 51
public/themes/default/weixin/public/assets/js/home.js


+ 82 - 28
public/themes/default/weixin/public/assets/js/match.js

@@ -3,6 +3,7 @@ var app = new Vue({
     'data': {
         // 当前导航
         curNav: 'match',
+        slideIndex: 0,
         // 数据请求参数
         params: {
             page: 1,
@@ -12,7 +13,7 @@ var app = new Vue({
             height: '',
             education: 0,
             married: 0,
-            pageSize: 50,
+            pageSize: 3,
             type: 1,
             lat: '',
             lng: '',
@@ -51,6 +52,7 @@ var app = new Vue({
         // 记录数
         total: 1,
         type: 1,
+        loadSlide: false,
         // 是否已经推荐过
         redommended: false,
         showFilterBox: false,
@@ -61,12 +63,12 @@ var app = new Vue({
             locading: false,
             loaded: false,
         },
+        switchStatus: false,
         rSwiper: null,
         timerId: null,
         tipsTimerId: null,
         tipsLoadTimerId: null,
         loadedCount: 0,
-        slideIndex: 0,
         locaded: false,
         tipsArr: [],
         tips: {
@@ -81,31 +83,30 @@ var app = new Vue({
     created: function () {
         var reset = getParam('rs');
         var slideIndex = sessionStorage.getItem('slideIndex');
+        var total = sessionStorage.getItem('total');
         var dataList = sessionStorage.getItem('dataList')
         dataList = typeof (dataList) != 'undefined' && dataList != null? JSON.parse(dataList) : []
         if(dataList && dataList.length>0 && !reset){
             this.slideIndex = typeof (slideIndex) != 'undefined' && slideIndex>0? slideIndex : 0
             this.slideIndex = this.slideIndex <= dataList.length? this.slideIndex : 0
-            this.total = dataList.length;
+            this.total = typeof (total) != 'undefined' && total>0? total : dataList.length
             this.params.page = Math.ceil(dataList.length/this.params.pageSize);
             this.dataList = dataList;
         }else{
             this.slideIndex = 0;
             this.getDataList(false);
         }
-
         this.getInfo();
         this.getParams();
         this.initShare();
+
+
     },
     updated: function () {
         var _this = this;
         _this.initData();
 
-        _this.initSwiper()
-
-        // 懒加载
-        this.lazyload();
+        this.initSwiper()
 
         // 选项选中
         $(".choose-item h1").click(function(){
@@ -116,8 +117,6 @@ var app = new Vue({
     mounted: function () {
         var _this = this;
 
-        _this.initSwiper()
-
         _this.timeLockTips();
 
         // 分类导航切换
@@ -391,6 +390,7 @@ var app = new Vue({
 
             $.post('/api/member/getRecommendList', _this.params, function (res) {
                 _this.status.loading = false;
+                _this.loadSlide = false;
                 $.hideLoading();
                 if (res.code == 'success') {
                     if (res.data === true) {
@@ -423,6 +423,7 @@ var app = new Vue({
                     }
 
                     sessionStorage.setItem('dataList', JSON.stringify(_this.dataList));
+                    sessionStorage.setItem('total', _this.total);
                 } else {
                     $.toast(res.message, 'text');
                 }
@@ -430,33 +431,86 @@ var app = new Vue({
         },
         initSwiper: function(){
             var _this = this;
-            if(_this.rSwiper != null && _this.dataList.length>0){
-                //return false;
-                _this.rSwiper.destroy(true);
-            }
-
-            console.log(_this.slideIndex);
-            setTimeout(function(){
+            this.$nextTick(()=>{
+                console.log(65)
+                console.log(_this.dataList)
+                if(_this.swiper || _this.dataList.length<=0){
+                    return false;
+                }
+                console.log(_this.slideIndex+'+dd+')
                 // 单身推荐列表
-                _this.rSwiper = new Swiper('.recommends', {
-                    // loop: false, // 循环模式选项
-                    // autoplay: false,
+                _this.swiper = new Swiper('.hearts', {
+                    loop: false, // 循环模式选项
+                    autoplay: false,
                     initialSlide: _this.slideIndex,// 默认显示
-                    freeModeSticky:true,
-                    freeMode: false,
+                    // freeMode : true,//是否滑动
                     observer: true,//修改swiper自己或子元素时,自动初始化swiper
-                    observeParents: false,//修改swiper的父元素时,自动初始化swiper
-                    direction: 'vertical',
+                    observeParents: true,//修改swiper的父元素时,自动初始化swiper
                     slidesPerView: 'auto',
                     on: {
-                        touchEnd: function(){
-                            sessionStorage.setItem('slideIndex', this.activeIndex+1);
+                        slideChange:function(event){
+                            if(_this.switchStatus){
+                                return false;
+                            }
+
+                            _this.switchStatus = true;
+                            let count = _this.dataList.length-1
+                            let swipeDirection = typeof(this.swipeDirection) != 'undefined'? this.swipeDirection : '';
+                            if(!swipeDirection){
+                                console.log('未触发'+this.swipeDirection)
+                                _this.switchStatus = false;
+                                return false;
+                            }
+
+                            if(swipeDirection == 'next'){
+                                console.log(_this.total+'++'+count+'++'+_this.slideIndex)
+                                if(this.realIndex >= count || _this.slideIndex>=count){
+                                    if(_this.total >= (_this.params.page+1*_this.params.pageSize) && !_this.loadSlide){
+                                        _this.switchStatus = false;
+                                        _this.loadSlide = true;
+                                        _this.slideIndex++;
+                                        console.log(_this.slideIndex+'+++')
+                                        sessionStorage.setItem('slideIndex', _this.slideIndex);
+                                        sessionStorage.setItem('dataList', null);
+
+                                        _this.params.page++;
+                                        console.log(_this.dataList)
+                                        _this.getDataList(true)
+                                    }
+                                    _this.switchStatus = false;
+                                    return false;
+                                }else if(count>0){
+                                    _this.slideIndex++;
+                                    sessionStorage.setItem('slideIndex', _this.slideIndex);
+                                    this.slideTo(_this.slideIndex)
+                                    _this.switchStatus = false;
+                                }
+                            }else{
+                                if(this.realIndex <=0 || _this.slideIndex<=0){
+                                    _this.slideIndex = 0;
+                                }else{
+                                    _this.slideIndex = _this.slideIndex-1<=0? 0 : _this.slideIndex-1;
+                                }
+                                console.log('记录')
+                                _this.slideIndex = this.realIndex
+                                sessionStorage.setItem('slideIndex', _this.slideIndex);
+                                this.slideTo(_this.slideIndex)
+                                _this.switchStatus = false;
+                            }
+                            console.log('触摸停止');
+                            console.log(this.swipeDirection)
                         },
-
                     },
                 })
 
-            }, 300)
+                if(_this.slideIndex>0){
+                    _this.swiper.slideTo(_this.slideIndex)
+                }
+            })
+
+            // 懒加载
+            //this.lazyload();
+
         },
         // 提示消息
         showMessage: function(msg, time){

+ 163 - 0
public/themes/default/weixin/public/assets/js/member-access.js

@@ -0,0 +1,163 @@
+var app = new Vue({
+    'el': '#app',
+    'data': {
+        // 数据请求参数
+        params: {
+            page: 1,
+            pageSize: 12,
+            status: 1,
+            type: 1,
+        },
+        // 数据列表
+        dataList: [],
+        // 用户信息
+        memberInfo: {},
+        // 总数
+        total: 0,
+        // 总数1
+        total1: 0,
+        total2: 0,
+        // 加载状态
+        status: {
+            locading: false,
+            loaded: false,
+        },
+    },
+    created: function(){
+        this.getInfo();
+        this.getDataList(0);
+    },
+    // 渲染数据
+    mounted: function(){
+        var _this = this;
+
+        // 滚动加载更多
+        $(window).scroll(function(){
+            var scrollHeight = $(this).scrollTop();
+            var height = $('body')[0].scrollHeight;
+            var docHeight = $(this).outerHeight();
+            if(docHeight+scrollHeight >= height){
+                if(_this.status.loading || _this.status.loaded){
+                    return false;
+                }
+                _this.params.page++;
+                _this.getDataList(true);
+            }
+        })
+    },
+    methods: {
+        // 获取用户信息
+        getInfo: function(){
+            var _this = this;
+            $.showLoading("数据加载中...");
+            $.post('/api/member/getInfo', {type: 9}, function (res) {
+                $.hideLoading();
+                if (res.code == 'success'){
+                    _this.memberInfo = res.data;
+
+                    if (_this.memberInfo.user_status != 1) {
+                        $.showLoading('账号已被冻结,请联系客服', 'text');
+                        setTimeout(function () {
+                            $.hideLoading();
+                            location.href = '/weixin/page/custom';
+                        }, 500)
+                    }
+                }else if(res.code == 'exception'){
+                    $.showLoading(res.message);
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        },
+        // 获取列表数据
+        getDataList: function(more){
+            var _this = this;
+            _this.status.loading = true;
+            if(_this.params.page == 1){
+                _this.dataList = [];
+            }
+            $.showLoading("数据加载中...");
+            $.post('/api/member/getUserAccess', _this.params, function (res) {
+                _this.status.loading = false;
+                $.hideLoading();
+                if (res.code == 'success') {
+                    var dataList = res.data? res.data.data : [];
+                    _this.total1 = res.data? res.data.todayCount : res.data.todayCount;
+                    _this.total2 = res.data? res.data.total : res.data.total;
+                    if(dataList && dataList.length<=0 && _this.params.page > 1){
+                        _this.status.loaded = true;
+                        return false;
+                    }
+                    if(more){
+                        $.each(dataList, function(k,item){
+                            _this.dataList.push(item);
+                        });
+
+                    }else{
+                        _this.dataList = dataList
+                    }
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        },
+        // 查看主页
+        goHome: function(id){
+            location.href = '/weixin/member/home?type=2&id='+id;
+        },
+        // 获取默认头像
+        getAvatar: function(info){
+            var sex = info.sex;
+            sex = sex == 1? sex : 2;
+            var name = 'this.src="'+'/themes/default/weixin/public/assets/img/avatar/'+sex+'-'+(info.id%9)+'.jpg"';
+            return name;
+        },
+        // 解锁
+        unlock: function (uid, cuid) {
+            var _this = this;
+            $.modal({
+                title: '确定要支付'+_this.memberInfo.lock_access_pay+'颗爱心解锁对方信息?',
+                text: "",
+                buttons: [
+                    {
+                        text: "取消", className: "default", onClick: function () {
+                            return false;
+                        }
+                    },
+                    {
+                        text: "确认操作", onClick: function () {
+                            $.showLoading("数据提交中...");
+                            $.post('/api/member/unlock', {uid: uid, cuid: cuid}, function (res) {
+                                $.hideLoading();
+                                if (res.code == 'success') {
+                                    $.showLoading(res.message);
+                                    setTimeout(function () {
+                                        $.hideLoading();
+                                        _this.getDataList();
+                                    }, 1200)
+                                } else if (res.code == 'exception') {
+                                    $.showLoading(res.message);
+                                    var url = res.data.url ? res.data.url : '';
+                                    if (url) {
+                                        setTimeout(function () {
+                                            location.href = url;
+                                        }, 1200)
+                                    }
+                                } else {
+                                    $.toast(res.message, 'text');
+                                    if(status == 5){
+                                        setTimeout(function () {
+                                            $.hideLoading();
+                                            _this.getDataList();
+                                        }, 800)
+                                    }
+                                }
+                            }, "json");
+                        }
+                    }
+                ]
+            });
+
+        },
+    }
+})

+ 7 - 1
public/themes/default/weixin/public/assets/js/member-message.js

@@ -136,7 +136,7 @@ var app = new Vue({
         contactConfirm: function (cid, status) {
             var _this = this;
             $.modal({
-                title: status==2?"同意对方申请你的微信":'拒绝对方申请你的微信',
+                title: status==2?"同意对方申请你的微信":(status==3? '拒绝对方申请你的微信' :'撤回您的拒绝操作'),
                 text: "",
                 buttons: [
                     {
@@ -165,6 +165,12 @@ var app = new Vue({
                                     }
                                 } else {
                                     $.toast(res.message, 'text');
+                                    if(status == 5){
+                                        setTimeout(function () {
+                                            $.hideLoading();
+                                            _this.getDataList();
+                                        }, 500)
+                                    }
                                 }
                             }, "json");
                         }