|
@@ -1,13 +1,134 @@
|
|
|
<template>
|
|
|
- <h1>支付</h1>
|
|
|
+ <div style="width: 70%;margin:0 auto">
|
|
|
+ <div class="fx-row jc-between ai-center pd10 pt10 mb20">
|
|
|
+ <el-image class="pointer" @click="$router.push('/login')" :src="`${$imgBase}index/login/icon_logo_medium@2x.png`" fit="contain"
|
|
|
+ style="width: 152px;"></el-image>
|
|
|
+ <div>
|
|
|
+ <img class="icon16" src="../../assets/images/icon_tel2.png"/>
|
|
|
+ <span class="pl8">服务热线:400-1797-985</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px" label-position="right">
|
|
|
+ <el-row :gutter="20" class="border pd20">
|
|
|
+ <el-col :span="12"><el-image :src="require('../../assets/images/pay_banner.png')"/></el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <p class="f24 bold text-center">名学金榜学生卡</p>
|
|
|
+ <el-form-item label="价格:"><span>¥{{cardActive.price/100}}</span></el-form-item>
|
|
|
+ <el-form-item label="有效期:">{{cardActive.outTime}}</el-form-item>
|
|
|
+ <el-form-item label="入学年份:">
|
|
|
+ <el-button @click="cardActive = card" :type="card.greadId == cardActive.greadId ? 'primary' : ''" v-for="card in cardList">
|
|
|
+ {{card.year}}
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="手机号:" prop="phoneNumber">
|
|
|
+ <el-input v-model="form.phoneNumber"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="短信验证码:" prop="captcha">
|
|
|
+ <div class="fx-row">
|
|
|
+ <el-input class="mr30" v-model="form.captcha"></el-input>
|
|
|
+ <el-button type="plain" @click="getCode">{{ captchaBtnText }}</el-button>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item >
|
|
|
+ <el-button type="primary" @click="validate">购买</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div class="tips">
|
|
|
+ <p class="f20">购卡须知</p>
|
|
|
+ <p>1、您将购买的是电子卡,不同的入学年份有效期和价格不同。</p>
|
|
|
+ <p>2、购买后系统默认激活当前的登录帐号,若忘记账号请联系客服。</p>
|
|
|
+ <p>3、由于产品特性,本电子卡不适用“7天无理由退换货”。</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { getEcardPrices, sendSmsNoValidation, validateSms } from '@/api/webApi/pay/idnex'
|
|
|
+
|
|
|
export default {
|
|
|
- name: 'PayIndex'
|
|
|
+ name: 'PayIndex',
|
|
|
+ created() {
|
|
|
+ this.getEcardPrices()
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ let checkPhone = (rule, value, callback) => {
|
|
|
+ let reg = /^1[345789]\d{9}$/
|
|
|
+ if (!reg.test(value)) {
|
|
|
+ callback(new Error('手机号格式不正确!'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ rules: {
|
|
|
+ // required: true 是否必填,如不设置,则会根据校验规则自动生成
|
|
|
+ phoneNumber: [
|
|
|
+ { required: true, message: '请输入手机号', trigger: 'blur' },
|
|
|
+ { type: 'number', validator: checkPhone, message: '请输入11位有效手机号号码', trigger: ['blur', 'change'] }
|
|
|
+ ],
|
|
|
+ captcha: { required: true, message: '短信验证码不能为空', trigger: 'change' },
|
|
|
+ },
|
|
|
+ form:{
|
|
|
+ phoneNumber:'',
|
|
|
+ captcha:''
|
|
|
+ },
|
|
|
+ captchaBtnText: '免费获取',
|
|
|
+ cardActive:{},
|
|
|
+ cardList:[],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ getCode() {
|
|
|
+ this.$refs.form.validateField('phoneNumber',(res)=>{
|
|
|
+ if(res == '') {
|
|
|
+ // 通过
|
|
|
+ sendSmsNoValidation({
|
|
|
+ mobile:this.form.phoneNumber,
|
|
|
+ smsType:1
|
|
|
+ }).then(res => {
|
|
|
+ if(res.code == 200) {
|
|
|
+ this.$message.success('发送成功,请在手机上查收')
|
|
|
+ // 成功60秒不让点击
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getEcardPrices(){
|
|
|
+ getEcardPrices().then(res =>{
|
|
|
+ this.cardList = res.data
|
|
|
+ this.cardActive = res?.data[0]
|
|
|
+ console.log(res)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ validate() {
|
|
|
+ this.$refs.form.validate(valid => {
|
|
|
+ if(!valid)return
|
|
|
+ validateSms({
|
|
|
+ mobile:this.form.phoneNumber,
|
|
|
+ code:this.form.captcha,
|
|
|
+ }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-
|
|
|
+.border{
|
|
|
+ border: 1px solid #e2e2e2;
|
|
|
+}
|
|
|
+>>> .el-form-item{
|
|
|
+ margin-bottom: 22px;
|
|
|
+}
|
|
|
+.tips{
|
|
|
+ padding: 20px 0;
|
|
|
+}
|
|
|
+.tips > p{
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
</style>
|