151 lines
3.9 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="container">
<view class="item">
<view class="item-title">{{content.title}}</view>
<!-- 修改支付密码输入框 -->
<input v-if="content.type === 'pay'" class="input-desc" :value="cellPhone" type="number" maxlength="11" data-name='phone' @input="handerChangeClick" :placeholder='content.defultDesc' />
<!-- 修改登录密码输入框 -->
<input v-if="content.type === 'login'" class="input-desc" password :value="cellPhone" data-name='phone' @input="handerChangeClick" :placeholder='content.defultDesc' />
</view>
<view class="item">
<view class="item-title">{{content.subTitle}}</view>
<input class="input-desc" :value="passWord" data-name='pwd' password @input="handerChangeClick" :placeholder="content.defultSubDesc" />
</view>
<view class="tips">
<text class="desc">提示</text>
如果您是微信登录的账户请直接填写新密码然后点击确认修改即可设置登录密码
</view>
<!-- 修改支付密码禁用规则 手机号不存在 或者 手机号不足11位 或者 密码不存在 则禁止点击 -->
<button
v-if="content.type === 'pay'"
class="submit_reset"
:disabled='!cellPhone || cellPhone.length !== 11 || !passWord'
@click="handleSubmit"
>
确认{{content.btnText}}
</button>
<!-- 修改登录密码禁用规则新密码不存在 或者 确认密码不存在 则禁止点击 -->
<button
v-if="content.type === 'login'"
class="submit_reset"
:disabled='!cellPhone || !passWord'
@click="handleSubmit"
>
确认{{content.btnText}}
</button>
<nav-footer />
</view>
</template>
<script>
import { request } from '../../../utils/index';
import { pageOptionType } from './constant';
import { apiArr } from '../../../api/user';
export default {
data() {
return {
cellPhone: null,
passWord: null,
type: '',
content:{},
}
},
methods: {
// 修改输入框值
handerChangeClick(event) {
const {value} = event.detail;
const {name} = event.currentTarget.dataset;
if (name === 'phone') {
this.cellPhone = value;
};
if (name === 'pwd') {
this.passWord = value;
}
},
// 提交修改
async handleSubmit() {
/**
* 参数场景说明:
* 修改登录密码页面时cellPhone 是新设密码passWord 是确认密码
* 修改支付密码页面时cellPhone 是已绑定手机号passWord 是支付密码
*/
const {cellPhone, passWord, type} = this;
if (type === 'login') {
if (cellPhone !== passWord) {
uni.showToast({
title: '新密码与确认密码不一致',
icon: 'none',
duration: 2000
});
return
}
const res = await request(apiArr.modifyPass, "POST", {
new_password: cellPhone,
conform_password: passWord,
});
uni.showToast({
title: '修改登录密码成功',
icon: 'success',
success () {
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 2000)
}
})
}
if (type === 'pay') {
const res = await request(apiArr.payPass, "POST", {
mobile: cellPhone,
pay_password: passWord,
});
uni.showToast({
title: '设置支付密码成功',
icon: 'success',
success () {
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 2000)
}
})
};
},
},
onLoad(options) {
// 基于父页面传递参数设置页面名称
uni.setNavigationBarTitle({
title: options.title
});
// 根据父页面传递type参数映射页面渲染参数
this.content = pageOptionType[options.type];
this.type = options.type;
},
onShow() {
}
}
</script>
<style>
@import url("./index.css");
</style>