Преглед изворни кода

贷款-会员协议、会员注册优化

panyong пре 4 година
родитељ
комит
6301d33bba

+ 10 - 1
htmldev/loan/src/router/index.js

@@ -29,7 +29,11 @@ const routes = [
   {
     path: '/loan/register', // 注册
     name: 'loanRegister',
-    component: () => import(/* webpackChunkName: "loan_register" */ '../views/loan/register')
+    component: () => import(/* webpackChunkName: "loan_register" */ '../views/loan/register'),
+    meta: {
+      isUseCache: false,
+      keepAlive: true
+    }
   },
   {
     path: '/loan/mine', // 我的
@@ -89,6 +93,11 @@ const routes = [
     name: 'loanAgreement',
     component: () => import(/* webpackChunkName: "loan_agreement" */ '../views/loan/agreement')
   },
+  {
+    path: '/loan/vipAgreement', // 会员协议
+    name: 'loanVipAgreement',
+    component: () => import(/* webpackChunkName: "loan_vipAgreement" */ '../views/loan/vipAgreement')
+  },
   {
     path: '/loan/help', // 还款助手
     name: 'loanHelp',

+ 1 - 1
htmldev/loan/src/views/loan/attest/index.vue

@@ -8,7 +8,7 @@
           <span>主贷人征信报告</span>
           <span>(近10天,详版)</span>
         </p>
-        <a class="btn-help" href="javascript:;">如何获取?</a>
+        <a class="btn-help" href="javascript:;" style="visibility: hidden;">如何获取?</a>
       </div>
       <MyUploader :maxCount="2"
                   :uploadType="uploadType0"

+ 64 - 5
htmldev/loan/src/views/loan/register/index.vue

@@ -11,7 +11,7 @@
               <span>注册代表您同意</span>
               <router-link :to="{path: '/loan/privacy'}">《用户隐私协议》</router-link>
               <span>和</span>
-              <router-link :to="{path: '/loan/privacy'}">《会员协议》</router-link>
+              <router-link :to="{path: '/loan/vipAgreement'}">《会员协议》</router-link>
             </p>
           </div>
         </li>
@@ -62,7 +62,8 @@
             <span class="label-city" v-for="(str, index) in '城市:城市'" :key="index">{{ str }}</span>
           </label>
           <div class="value-wrap" @click="showPicker0 = true">
-            <p class="value-city" v-show="postData.orderUserProvince">{{ postData.orderUserProvince + postData.orderUserCity +
+            <p class="value-city" v-show="postData.orderUserProvince">{{ postData.orderUserProvince +
+              postData.orderUserCity +
               postData.orderUserDistrict}}</p>
             <p class="value-city init" v-show="!postData.orderUserProvince">请选择所在城市</p>
             <img class="icon_next" src="./image/btn_next@2x.png" alt="">
@@ -132,6 +133,7 @@
   import { Picker, Popup, Toast } from 'vant'
   import { getChinaArea, sendSMS } from '../../../api/common'
   import { register } from './api'
+  import { getUserInfo } from '../mine/api'
 
   const STRCAPTURE = process.env.API_DOMAIN + '/api/captcha'
   export default {
@@ -182,9 +184,6 @@
         timer: null
       }
     },
-    created () {
-      this.funGetChinaArea()
-    },
     async mounted () {
       await this.$nextTick()
       const textarea = this.$refs.myTextarea
@@ -196,6 +195,48 @@
           textarea.addEventListener('input', this.handleTextarea(textarea, 1), false)
         })
       }
+    },
+    activated () {
+      if (!this.$route.meta.isUseCache) {
+        this.showEditInfo = false
+        this.postData = {
+          orderUserName: '', // 用户名称
+          orderUserPhone: '', // 手机号码
+          code: '',
+          capture: '',
+          orderUserProvince: '', // 省份
+          orderUserCity: '', // 城市
+          orderUserDistrict: '', // 区域
+          orderCommunity: '', // 小区
+          orderBuilding: '', // 楼号
+          orderRoom: '' // 房号
+        }
+        this.arrErrorList = []
+        this.showPicker0 = false
+        this.columnsOfCity = []
+        this.showPicker1 = false
+        this.columnsOfCommunity = [
+          {
+            values: ['东海水景城'],
+            defaultIndex: 0
+          }
+        ]
+        this.showPicker2 = false
+        this.columnsOfBuildingy = [
+          {
+            values: BUILDING(),
+            defaultIndex: 0
+          },
+          {
+            values: ROOM(),
+            defaultIndex: 0
+          }
+        ]
+        this.strCapture = STRCAPTURE
+        this.funGetChinaArea()
+      }
+      this.numCount = 60
+      clearInterval(this.timer)
       if (!this.scroll) {
         this.scroll = new BScroll(this.$refs.wrapper, {
           click: true,
@@ -207,6 +248,8 @@
       } else {
         this.scroll.refresh()
       }
+      this.funInit()
+      this.$route.meta.isUseCache = false
     },
     methods: {
       funGetChinaArea () {
@@ -311,6 +354,16 @@
       funUpdateCapture () {
         this.strCapture = STRCAPTURE + '?' + new Date().getTime()
       },
+      funInit () {
+        getUserInfo().then(res => {
+          const { status } = res
+          if (status) {
+            this.$router.replace({ path: '/loan/mine' })
+          }
+        }).catch((err) => {
+          Toast(err)
+        })
+      },
       funSubmit () {
         const { orderUserName, orderUserPhone, code, orderUserProvince, orderUserCity, orderUserDistrict, orderCommunity, orderBuilding, orderRoom } = this.postData
         const postData = {
@@ -344,6 +397,12 @@
       if (this.scroll) {
         this.scroll.destroy()
       }
+    },
+    beforeRouteLeave (to, from, next) {
+      if (['loanPrivacy', 'loanVipAgreement'].includes(to.name)) {
+        from.meta.isUseCache = true
+      }
+      next()
     }
   }
 

+ 145 - 0
htmldev/loan/src/views/loan/vipAgreement/index.vue

@@ -0,0 +1,145 @@
+<template>
+  <div class="container">
+    <h4>驼驼银服会员付费服务协议</h4>
+    <p class="mt-10">重要提示</p>
+    <p class="mt-10">欢迎使用驼驼银服付费会员(以下简称“付费会员”)服务,为了保障您的权益,请在使用付费会员服务之前,<b>详细阅读此服务协议(以下简称“本协议”)所有内容,特别是限制或免除责任条款(本协议可能以字体加粗形式提示您注意)。未成年人则应在法定监护人陪同下阅读。</b>
+    </p>
+    <p class="mt-10"><b>除非您已阅读并接受本协议所有条款,否则您无权使用付费会员服务。您对付费会员服务的购买和/或使用行为即视为您已阅读并充分理解本协议各项条款并同意接受本协议的约束。</b></p>
+    <div class="mt-20">
+      <p><b>第一条 服务协议的接受</b></p>
+      <p><b>1.1
+        本协议内容包括协议正文、《驼驼银服用户服务协议》、《隐私权政策》及驼驼银服将来可能发布采并取合理途径通知的协议或规则。所有规则均为本协议不可分割的组成部分,与协议正文具有同等法律效力,本协议正文与前述规则存在冲突的,以本协议正文为准。除另行明确声明外,您使用付费会员服务均受本协议约束。</b>
+      </p>
+      <p><b>1.2
+        驼驼银服将根据业务发展需要酌情修订本协议及相关服务条款,并以驼驼银服平台公告的形式进行更新。经修订的条款在平台公布之日起7日后,即产生效力。如您不同意相关修订,您可以选择停止使用付费会员服务。如您继续使用付费会员服务,则将视为您已接受经修订的条款,当您与本协议发生争议时,应以更新后的服务协议条款为准。</b>
+      </p>
+    </div>
+    <div class="mt-20">
+      <p><b>第二条 签约主体</b></p>
+      <p>2.1“用户”是指享受驼驼银服提供的付费会员服务的个人或单一实体,在本协议中亦会称为“您”。</p>
+    </div>
+    <div class="mt-20">
+      <p><b>第三条 定义</b></p>
+      <p>3.1 付费会员:<b>指驼驼银服为您提供的增值服务,您在成为付费会员后可以依本协议享有一定的特权优惠或参加活动,具体服务内容以驼驼银服提供的为准。</b>付费会员的种类包括但不限于:驼驼银服VIP会员和驼驼银服超级VIP会员。付费会员的所有权和运营权,以及付费会员制度和活动的制订权均归驼驼银服所有,驼驼银服在法律规定的范围内拥有解释权。
+      </p>
+    </div>
+    <div class="mt-20">
+      <p><b>第四条 成为付费会员</b></p>
+      <p>4.1
+        如您希望使用付费会员服务的,需先登录您的驼驼银服帐号,或注册驼驼银服帐号并登录。在成功登录驼驼银服帐号的基础上,申请开通付费会员服务。如您选用其他第三方帐号登录驼驼银服的,您应保证第三方帐号的稳定性、真实性以及可用性,如因第三方帐号原因(如第三方帐号被封号等)致使您无法登录驼驼银服的,您应与第三方帐号的所属公司联系。您在使用付费会员服务时登录的驼驼银服帐号是驼驼银服确认您身份的唯一依据。</p>
+      <p>4.2 您可以在开通服务界面通过驼驼银服认可的支付方式完成支付来开通付费会员服务。<b>您在开通服务时,应仔细核对帐号名称、开通服务类型与时长等具体信息。如因您个人原因造成充错帐号、开通错服务或时长,驼驼银服不予退还已收取的费用。</b>
+      </p>
+      <p><b>4.3 付费会员均采用月结方式,月结日期为开通付费会员之日起的第31天,如果您未在月结日之前使用完相应特权,其将在月结日后到期。</b></p>
+    </div>
+    <div class="mt-20">
+      <p><b>第五条 付费会员资格的有关规定</b></p>
+      <p><b>5.1 付费会员服务仅限于申请帐号自行使用,且不能在不同的驼驼银服帐号之间转移。</b></p>
+      <p><b>5.2 在已开通的付费会员有效期内,若您中途主动取消或终止付费会员资格的,将不会获得付费会员费用的退还。</b></p>
+      <p>5.3 付费会员资格取消/终止后,您不能再参加由驼驼银服组织的活动并不可再享有由驼驼银服提供的各项特权服务及增值服务,即不再享有付费会员服务。</p>
+    </div>
+    <div class="mt-20">
+      <p><b>第六条 付费会员使用规则</b></p>
+      <p>6.1
+        您确认:您是具备完全民事权利能力和完全民事行为能力的自然人、法人或其他组织,有能力对您使用付费会员服务的一切行为独立承担责任。若您不具备前述主体资格,驼驼银服在依据法律规定或本协议约定要求您承担责任时,有权向您的监护人或其他责任方追偿。若您是自然人,应向驼驼银服提供真实姓名、电子邮箱、联系电话等信息;若您是法人或其他组织的,应提供名称、住址、联系人等信息。</p>
+      <p>6.2
+        您应妥善保存有关帐号、密码,并对该帐号进行的所有活动和行为负责,禁止赠与、借用、租用、转让或售卖该帐号。您应自行负责妥善保管、使用、维护您在驼驼银服申请取得的帐号、帐号信息及帐号密码。非驼驼银服原因致使您帐号密码泄漏以及因您保管、使用、维护不当造成损失的,驼驼银服无须承担与此有关的任何责任。</p>
+      <p><b>6.3
+        如您实施了下列行为之一,驼驼银服有权在不通知您的情况下,终止提供付费会员服务,并有权限制、冻结或终止与该服务相关联的驼驼银服帐号使用。驼驼银服无须给予任何补偿和退费,由此产生的责任由您自行独立承担。因此给驼驼银服或第三方造成损失的,您应负责全额赔偿:</b>
+      </p>
+      <p><b>(1) 以营利为目的为自己或他人获得付费会员服务;</b></p>
+      <p><b>(2) 将付费会员帐号以出租、出借、出售等任何形式提供给第三方使用;</b></p>
+      <p><b>(3) 将通过付费会员服务获得的任何内容用于个人学习、研究或欣赏之外的用途;</b></p>
+      <p><b>(4) 盗用他人驼驼银服帐号进行付费会员注册或使用;</b></p>
+      <p><b>(5) 以任何机器人软件、蜘蛛软件、爬虫软件、刷屏软件或其它非正规方式获得付费会员服务;</b></p>
+      <p><b>(6) 通过不正当手段或以违反诚实信用原则的行为获得付费会员服务。</b></p>
+      <p><b>6.4
+        如发生下列任何一种情形,驼驼银服有权根据实际情况,在不通知您的情况下中断或终止向您提供的一项或多项或全部服务,由此产生的损失由您承担,驼驼银服无需给与任何补偿和退费。若因此给驼驼银服或第三方造成损失的,您应负责全额赔偿:</b>
+      </p>
+      <p><b>(1) 您提供的个人资料不真实或与注册时信息不一致又未能提供合理证明;</b></p>
+      <p><b>(2)
+        经国家行政或司法机关的生效法律文书确认您存在违法或侵权行为,或者驼驼银服根据自身的判断,认为您的行为涉嫌违反《驼驼银服用户服务协议》、本协议内容或驼驼银服不时公布的使用规则等内容,或涉嫌违反法律法规的规定的;</b></p>
+      <p><b>(3) 您的行为干扰了驼驼银服任何部分或功能的正常运行;</b></p>
+      <p><b>(4) 您未经驼驼银服允许,利用驼驼银服开展未经驼驼银服同意的行为,包括但不限于对通过驼驼银服获得的信息进行商业化活动,如附加广告、商业内容或链接等;</b></p>
+      <p><b>(5) 您的个人信息、发布内容等违反国家法律法规规定,有悖社会道德伦理、公序良俗、侵犯他人合法权益、政治色彩强烈,引起任何争议,或违反本协议、驼驼银服平台公示的要求的;</b></p>
+      <p><b>(6) 您利用驼驼银服进行任何违法行为的。</b></p>
+    </div>
+    <div class="mt-20">
+      <p><b>第七条 责任声明</b></p>
+      <p><b>7.1 如果您行使本协议规定的权利而购买/接受驼驼银服以外的第三方商户提供的商品或服务,如因此发生纠纷的,您应向销售/提供该商品或服务的第三方商户主张权利,与驼驼银服无关。</b></p>
+      <p><b>7.2 您须对您自身及您所邀请的宾客在参加驼驼银服组织的活动或使用由驼驼银服提供的各项优惠及增值服务时的实施的一切行为承担全部法律责任。</b></p>
+      <p><b>7.3
+        驼驼银服不对您因第三方的行为或不作为造成的损失、不可抗力原因造成的损失承担任何责任,包括但不限于支付服务、网络接入服务、电信部门的通讯线路故障、通讯技术问题、网络、电脑故障、系统不稳定性、任意第三方的侵权行为等。</b>
+      </p>
+      <p><b>7.4 您理解并同意,在使用付费会员服务的过程中,可能会遇到不可抗力等风险因素,使该服务发生中断。如出现上述情况,驼驼银服承诺将尽快与相关单位配合进行修复,但不承担由此对您造成的任何损失且不退还付费会员费用。</b>
+      </p>
+    </div>
+    <div class="mt-20">
+      <p><b>第八条 其他约定</b></p>
+      <p><b>8.1
+        服务中止、中断及终止:驼驼银服根据自身商业决策、政府行为、不可抗力等原因可能会选择中止、中断及终止付费会员服务。如有此等情形发生,驼驼银服会采取公告的形式通知您,但不承担由此对您造成的任何损失且不退还付费会员费用。</b>
+      </p>
+      <p>8.2 法律与争议解决:本协议适用中华人民共和国的法律,并且排除一切冲突法规定的适用。</p>
+      <p>8.3 驼驼银服不行使、未能及时行使或者未充分行使本协议或者按照法律规定所享有的权利,不应被视为放弃该权利,也不影响驼驼银服在将来行使该权利。</p>
+    </div>
+    <div class="mt-20">
+      <p><b></b></p>
+    </div>
+    <div class="mt-20">
+      <p><b></b></p>
+    </div>
+  </div>
+</template>
+
+<script>
+  export default {
+    name: 'vipAgreement'
+  }
+</script>
+
+<style lang="scss" scoped>
+  .mt-10 {
+    margin-top: 10px;
+  }
+
+  .mt-20 {
+    margin-top: 20px;
+  }
+
+  .indent-2 {
+    text-indent: 2em;
+  }
+
+  .container {
+    width: 100%;
+    padding: 20px 10px 50px;
+    margin: 0 auto;
+    overflow: hidden;
+    color: #333;
+    background: #fff;
+  }
+
+  h4 {
+    width: 100%;
+    line-height: 20px;
+    font-size: 14px;
+    font-weight: 700;
+    text-align: center;
+  }
+
+  h3 {
+    width: 100%;
+    margin-bottom: 20px;
+    font-size: 14px;
+  }
+
+  p, a {
+    line-height: 20px;
+    font-size: 12px;
+    color: inherit;
+  }
+
+  b, u {
+    font-weight: 700;
+    color: #000;
+  }
+</style>