Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Hooke
/
tswj
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
hookehuyr
2022-05-09 10:47:51 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b37866084e58a9997d73eadc57cb7552dcbff0ea
b3786608
1 parent
e0b1c161
✨ feat(实名认证页面): 接口预联调
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
79 additions
and
72 deletions
src/views/me/verifyUser.vue
src/views/me/verifyUser.vue
View file @
b378660
...
...
@@ -5,14 +5,19 @@
<van-config-provider :theme-vars="themeVars">
<van-form ref="form" @submit="onSubmit">
<div class="van-hairline--bottom">
<van-field v-model="parent" label="家长姓名" placeholder="请输入你真实的姓名" :rules="[{ required: true, message: '请填写家长姓名' }]" />
<van-field v-model="user_name" label="家长姓名" placeholder="请输入你真实的姓名"
:rules="[{ required: true, message: '请填写家长姓名' }]" />
</div>
<div class="van-hairline--bottom">
<van-field v-if="use_widget" v-model="phone" name="phone" label="手机号" placeholder="手机号" readonly clickable @touchstart.stop="showKeyboard" />
<van-field v-else v-model="phone" name="phone" label="手机号" placeholder="手机号" :rules="[{ validator, message: '请输入正确手机号' }]" />
<van-field v-if="use_widget" v-model="phone" name="phone" label="手机号" placeholder="手机号" readonly clickable
:rules="[{ validator, message: '请输入正确手机号' }]"
@touchstart.stop="showKeyboard" />
<van-field v-else v-model="phone" name="phone" label="手机号" placeholder="手机号"
:rules="[{ validator, message: '请输入正确手机号' }]" />
</div>
<div class="van-hairline--bottom">
<van-field v-model="code" center clearable name="code" label="短信验证码" placeholder="请输入短信验证码" :formatter="formatter" :rules="[{ required: true, message: '请填写验证码' }]" >
<van-field v-model="pin" center clearable name="pin" label="短信验证码" placeholder="请输入短信验证码"
:formatter="formatter" :rules="[{ required: true, message: '请填写验证码' }]">
<template #button>
<van-button @click="sendCode" size="small" type="primary" :disabled="disabled">
<span v-if="countDown === 60">发送验证码</span>
...
...
@@ -30,25 +35,19 @@
<my-button @on-click="submit" type="primary">保存</my-button>
</div>
<van-number-keyboard
v-model="phone"
:show="keyboard_show"
:maxlength="11"
@blur="onBlur"
/>
<van-number-keyboard v-model="phone" :show="keyboard_show" :maxlength="11" @blur="onBlur" />
</template>
<script setup>
import MyButton from '@/components/MyButton/index.vue'
import { wxInfo } from '@/utils/tools';
import qs from 'Qs'
import { ref,
reactive, onMounted
} from 'vue'
import { useRoute
, useRoute
r } from 'vue-router'
import { ref,
onMounted, nextTick
} from 'vue'
import { useRouter } from 'vue-router'
import axios from '@/utils/axios';
import $ from 'jquery'
import { Toast } from 'vant';
const $route = useRoute();
const $router = useRouter();
const themeVars = {
...
...
@@ -57,54 +56,35 @@ const themeVars = {
buttonPrimaryColor: '#713610',
};
const parent = ref('')
/******************** 输入框控件 START ********************/
// 判断是否显示控件
let use_widget = ref(true);
/**
* 手机号码校验
* 函数返回 true 表示校验通过,false 表示不通过
* @param {*} val
*/
const validator = (val) => {
let flag = false;
// 简单判断手机号位数
if (/1\d{10}/.test(val) && phone.value.length === 11) {
disabled.value = false;
flag = true;
} else {
disabled.value = true;
flag = false;
}
return flag
};
onMounted(() => {
/**
* 判断微信环境看是否弹出控件框
* 桌面微信直接输入
* 其他环境弹出输入框
*/
if (wxInfo().isiOS || wxInfo().isAndroid) {
let use_widget = ref(true);
if (wxInfo().isiOS || wxInfo().isAndroid) {
use_widget.value = true;
} else {
} else {
use_widget.value = false;
}
})
}
// 手机号输入控件
控制
// 手机号输入控件
const keyboard_show = ref(false);
const showKeyboard = () => { // 弹出数字弹框
keyboard_show.value = true;
};
const onBlur = () => { // 数字键盘失焦回调
keyboard_show.value = false;
if (phone.value.length === 11) {
if (phone.value.length === 11) {
// 手机号码位数正确时可以发送验证码
disabled.value = false;
}
};
// 设置发送短信倒计时
/******************** 发送验证码模块 START ********************/
// TODO:发送验证码接口待调,验证码写默认8888
const countDown = ref(60);
const countDownHandle = () => {
// 倒计时
...
...
@@ -119,10 +99,9 @@ const countDownHandle = () => {
}
const sendCode = () => { // 发送验证码
if (countDown.value === 60) {
axios.post('/srv/?f=shzl_comment&a=bind_phone&t=get_code',
qs.stringify({
axios.post('/srv/?a=bind_phone&t=get_code', {
phone: phone.value
})
)
})
.then(res => {
if (res.data.code === 1) {
Toast.success('发送成功');
...
...
@@ -141,24 +120,63 @@ const sendCode = () => { // 发送验证码
}
};
/******************** 表单业务逻辑 START ********************/
const user_name = ref('')
const phone = ref('');
const
code
= ref('');
const
pin
= ref('');
const disabled = ref(true);
// 过滤输入的数字 只能四位
// 表单填写验证
const form = ref(null);
let valid = null;
let submit = () => {
valid = form.value.validate();
valid
.then(() => {
form.value.submit();
})
.catch(error => {
console.error(error);
Toast({
message: '请检查后再次提交',
icon: 'cross',
});
})
};
/**
* 手机号码校验
* 函数返回 true 表示校验通过,false 表示不通过
* @param {*} val
*/
const validator = (val) => {
let flag = false;
// 简单判断手机号位数
if (/1\d{10}/.test(val) && phone.value.length === 11) {
disabled.value = false;
flag = true;
} else {
disabled.value = true;
flag = false;
}
return flag
};
// 过滤输入的验证码 只能四位
const formatter = (value) => value.substring(0, 4);
// 保存用户信息
const onSubmit = (values) => {
axios.post('/srv/?
f=shzl_comment&a=bind_phone&t=bind',
qs.stringify({
axios.post('/srv/?
a=c_auth', {
user_name: values.user_name,
phone: values.phone,
code: values.code
,
})
)
pin: values.pin
,
})
.then(res => {
if (res.data.code === 1) {
$router.push({
path: '/'
});
Toast.success('录入成功')
$router.go(-1);
} else {
console.warn(res.data);
Toast({
...
...
@@ -171,6 +189,9 @@ const onSubmit = (values) => {
console.error(err);
})
};
/****************************************/
</script>
<script>
...
...
@@ -178,29 +199,15 @@ import mixin from 'common/mixin';
export default {
mixins: [mixin.init],
data
() {
data() {
return {
}
},
mounted
() {
mounted() {
},
methods: {
submit () {
let valid = this.$refs.form.validate();
valid
.then(() => {
this.$refs.form.submit();
})
.catch(error => {
console.error(error);
this.$toast({
message: '请检查后再次提交',
icon: 'cross',
});
})
}
}
}
</script>
...
...
Please
register
or
login
to post a comment