bindingNumber.vue
3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<template>
<el-dialog
v-model="show"
:show-close="false"
title="绑定手机号"
width="30%"
align-center
:close-on-press-escape="false"
>
<el-form ref="pwdRef" :model="user" :rules="rules" label-width="40px" style="padding-right: 40px">
<el-form-item label="" prop="phone">
<el-input
v-model.trim="user.phone" prefix-icon="user" style="height: 38px;" placeholder="请输入手机号" @keyup.enter="handelSubmit"
/>
</el-form-item>
<el-form-item prop="captcha">
<captcha ref="codeRef" v-model.trim="user.captcha" v-model:uuid="user.uuid" />
</el-form-item>
<el-form-item label="" prop="code">
<captchaSms
ref="codeRef" v-model="user.code" v-model:uuid="user.uuid" style="height: 38px;" :verify="checkCaptchaSms"
@keyup.enter="handelSubmit" @error="getCode"
/>
</el-form-item>
<br>
<el-row justify="center">
<el-button type="primary" @click="submit">确定</el-button>
<!-- <el-button @click="show=!show">取消</el-button>-->
</el-row>
</el-form>
</el-dialog>
</template>
<script setup>
import { editPhone } from '@/api/system/user'
import useUserStore from '@/store/modules/user'
import { ref, getCurrentInstance } from 'vue'
import captchaSms from '@/views/login/components/captchaSms.vue'
import { ElMessage } from 'element-plus'
import Captcha from '/@/views/login/components/captcha.vue'
const show = ref(false)
const { proxy } = getCurrentInstance()
const user = ref({
phone: '',
captcha: '',
code: '',
uuid: ''
})
const rules = ref({
phone: [
{ required: true, message: '手机号码不能为空', trigger: 'blur' },
{ required: true, message: '手机号码不能为空', trigger: 'blur' }],
captcha: [{ required: true, message: '图形验证码不能为空', trigger: 'blur' }],
code: [{ required: true, message: '手机验证码不能为空', trigger: 'blur' }]
})
/** 提交按钮 */
async function submit() {
await proxy.$refs['pwdRef'].validate()
await editPhone(user.value)
await proxy.$modal.msgSuccess('修改成功')
setTimeout(() => {
window.location.reload()
}, 1000)
}
function open() {
show.value = true
}
function handelSubmit() {
}
function checkCaptchaSms() {
// 判断手机号正确
if (!user.value.phone) {
ElMessage({
showClose: true,
message: '请输入手机号',
type: 'error'
})
return Promise.reject()
}
// 判断验证码填了没
if (!user.value.captcha) {
ElMessage({
showClose: true,
message: '请输入图形验证码',
type: 'error'
})
return Promise.reject()
}
const strTemp = /^1[2|3|4|5|6|7|8|9][0-9]{9}$/
if (!strTemp.test(user.value.phone)) {
ElMessage({
showClose: true,
message: '请输入正确的手机号',
type: 'error'
})
return Promise.reject()
}
return Promise.resolve({
uuid: user.value.uuid,
telNo: user.value.phone,
captcha: user.value.captcha
})
}
function getCode() {
proxy.$refs['codeRef'].getCode()
}
defineExpose({
open
})
</script>