oil-station/gasStation-uni/pagesMy/editUser/index.vue
2023-12-27 18:44:56 +08:00

282 lines
6.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view class="container">
<view class="my-header">
<view class="my-icons" @click="goBack"> <uni-icons type="left" size="16"></uni-icons> </view>
<view class="my-text">{{title}}</view>
<view class="my-icons"></view>
</view>
<!-- 修改用户昵称 -->
<view v-if="editType == 0" class="pBox">
<u-form :model="form" ref="uForm">
<u-form-item label="昵称" prop="name">
<u-input v-model="form.name" clearable :border="false" placeholder="请填写昵称"/>
</u-form-item>
</u-form>
<view class="but-sub" @click="submit">提交保存</view>
</view>
<!-- 修改用户手机号 -->
<view v-if="editType == 1" class="pBox">
<u-form :model="form" ref="uForm">
<u-form-item label="手机号" prop="mobile" label-width="70px">
<u-input v-model="mobile" clearable :border="false" placeholder="请填写手机号"/>
</u-form-item>
<u-form-item label="验证码" prop="code" label-width="70px">
<u-input v-model="code" clearable :border="false" placeholder="请填写验证码"/>
<u-button slot="right" :disabled="isCode" size="mini" type="success" @click="getCode">{{codeText}}</u-button>
</u-form-item>
</u-form>
<view class="but-sub" @click="submit">保存变更</view>
</view>
<!-- 修改用户车牌号 -->
<view v-if="editType == 2" class="pBox">
<view></view>
<u-form :model="form" ref="uForm">
<u-form-item label="车牌号" prop="mobile" label-width="70px">
<u-input v-model="form.carNo" @focus="show = true" clearable :border="false" placeholder="请输入车牌号"/>
</u-form-item>
</u-form>
<view class="but-sub" @click="submit">保存</view>
</view>
<!-- <u-keyboard ref="uKeyboard" :tips="value" mode="number" @cancel="show = false" @confirm="submitAmount" -->
<!-- @change="valChange" @backspace="backspace" v-model="pic" :show="show" mode="car"></u-keyboard> -->
<u-keyboard ref="uKeyboard" mode="car" v-model="value" :show="show" @cancel="show = false"
@confirm="submitAmount" @change="valChange" @backspace="backspace" :tips="value"></u-keyboard>
</view>
</view>
</template>
<script>
import request from "../../utils/request";
export default {
data() {
return {
pic:0,
value:"",
show:false,
// 标题
title: '修改昵称',
// 修改类型
editType:2,
// 提交表单
form:{},
// 手机号
mobile: "",
// 验证码
code:"",
codeText: '获取验证码',
// 是否正在获取验证码
isCode:false,
timestamp:60,
rules: {
name: [
{
required: true,message: '请填写昵称',
// 可以单个或者同时写两个触发验证方式
trigger: 'blur,change'
}
],
mobile: [
{ required: true, message: '请输入手机号', trigger: ['change','blur'], },
{
// 自定义验证函数,见上说明
validator: (rule, value, callback) => {
// 上面有说返回true表示校验通过返回false表示不通过
// this.$u.test.mobile()就是返回true或者false的
return this.$u.test.mobile(value);
},
message: '手机号码不正确',
// 触发器可以同时用blur和change
trigger: ['change','blur'],
}
]
}
}
},
onLoad(e) {
this.editType = e.editType
if (this.editType == 0){
this.title = "修改昵称"
}else if(this.editType == 1){
this.title = "修改手机号"
}else if(this.editType == 2){
this.title = "我的车"
}else{
this.title = "支付密码"
}
},
// 必须要在onReady生命周期因为onLoad生命周期组件可能尚未创建完毕
onReady() {
// this.$refs.uForm.setRules(this.rules);
},
onShow() {
this.getUser()
},
components: {
},
methods: {
// 数字键盘确定按钮
submitAmount(){
if (this.value!=""){
this.show = false
}else{
uni.showToast({
title:"请输入车牌号",
icon:"error"
})
}
},
valChange(val) {
// 按键震动
uni.vibrateShort({
success: function () {}
});
// 将每次按键的值拼接到value变量中注意+=写法
this.value += val;
this.form.carNo += val;
},
// 退格键被点击
backspace() {
uni.vibrateShort({
success: function () {}
});
// 删除value的最后一个字符
if (this.value.length) {
this.value = this.value.substr(0, this.value.length - 1);
this.form.carNo = this.value
}
},
// 倒计时60s
countdown(){
let _this = this
setInterval(() => {
// countdown减1
_this.timestamp--;
_this.codeText = _this.timestamp+"秒重新获取"
// 如果倒计时为0清除定时器
if(_this.timestamp === 0) {
_this.isCode = false
_this.timestamp = 60
}
}, 1000);
},
// 获取验证码
getCode() {
this.isCode = true
// 调用后端接口
this.countdown()
},
// 查询当前登录用户信息
getUser(){
request({
url: 'business/userManager/user/getUser',
method: 'get',
}).then(res => {
if (res.data != null && res.data != "" && res.data != undefined) {
this.form = res.data
}
})
},
// 提交表单
submit(){
// this.$refs.uForm.validate(valid => {
// if (valid) {
// console.log('验证通过');
request({
url: 'business/userManager/user/edit',
method: 'put',
data:this.form,
}).then(res => {
if (res.code == 200) {
uni.navigateTo({
url:"/pagesMy/setup/index"
})
}
})
// } else {
// console.log('验证失败');
// }
// });
},
goBack() {
uni.navigateBack()
}
}
}
</script>
<style scoped lang="scss">
.pBox{
width: 90%;
margin: 0 auto;
}
.but-sub{
width: 100%;
height: 45px;
line-height: 45px;
margin: 0 auto;
margin-top: 20px;
background-color: #2b7aff;
color: white;
border-radius: 10px;
text-align: center;
}
.content {
background: white;
}
.container {
width: 100%;
height: 100vh;
box-sizing: border-box;
padding-top: 88px;
}
.my-header {
width: 100%;
height: 88px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
color: #000;
box-sizing: border-box;
padding: 0px 15px;
padding-top: 40px;
.my-icons {
width: 20px;
}
position: fixed;
top: 0px;
}
.box-hang {
background-color: white;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 15px 10px;
border-bottom: 1px solid #f4f5f6;
}
.touxiang {
width: 50px;
height: 50px;
border-radius: 50%;
overflow: hidden;
// background-color: #f4f5f6;
}
.dis {
color: #a69999;
}
</style>