Files
cashier_app/pages/userSetUp/accountPwd.vue
2025-02-07 14:49:20 +08:00

138 lines
4.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="account-pwd">
<uni-forms ref="formRef" label-align="left" :model="vdata.formData" :rules="rules">
<uni-forms-item label="原密码" name="originalPwd">
<uni-easyinput class='jeepay-easyinput' :inputBorder="false" :type="vdata.isShowOriginalPwd ? 'text' : 'password'" v-model="vdata.formData.originalPwd" :clearable="false" placeholder="请输入登录密码" >
<template #suffixIcon> <view class='show-tips' style="color: rgba(88,132,204,1);font-weight: 400;font-size: 32rpx;" @tap="vdata.isShowOriginalPwd = !vdata.isShowOriginalPwd ">{{ vdata.isShowOriginalPwd ? '隐藏' : '显示' }}</view> </template>
</uni-easyinput>
</uni-forms-item>
<view class="forget-pwd" @tap="phone.open({
tips: '为了您的账户安全,您需要使用短信验证码重置密码,是否发送验证码到:',
phone: vdata.userInfo.telphone,
confirmText: '发送短信验证码'
})">
<text>忘记原密码去找回 ></text>
</view>
<uni-forms-item label="新密码" name="newPwd">
<uni-easyinput class='jeepay-easyinput' :inputBorder="false" :type="vdata.isShowNewPwd ? 'text' : 'password'" v-model="vdata.formData.newPwd" :clearable="false" placeholder="请输入登录密码" >
<template #suffixIcon> <view class='show-tips' style="color: rgba(88,132,204,1);font-weight: 400;font-size: 32rpx;" @tap="vdata.isShowNewPwd = !vdata.isShowNewPwd ">{{ vdata.isShowNewPwd ? '隐藏' : '显示' }}</view> </template>
</uni-easyinput>
</uni-forms-item>
<uni-forms-item label="确认新密码" name="confirmPwd">
<uni-easyinput class='jeepay-easyinput' :inputBorder="false" :type="vdata.isShowConfirmPwd ? 'text' : 'password'" v-model="vdata.formData.confirmPwd" :clearable="false" placeholder="请输入登录密码" >
<template #suffixIcon> <view class='show-tips' style="color: rgba(88,132,204,1);font-weight: 400;font-size: 32rpx;" @tap="vdata.isShowConfirmPwd = !vdata.isShowConfirmPwd ">{{ vdata.isShowConfirmPwd ? '隐藏' : '显示' }}</view> </template>
</uni-easyinput>
</uni-forms-item>
</uni-forms>
<button class="confirm flex-center" hover-class="touch-button" @click="modifyPwd">确认修改</button>
</view>
<CallPhone ref="phone" @callPhone="callPhone" />
</template>
<script setup>
import { reactive, ref, onMounted } from 'vue'
import { $modifyPwd, $getPasswordRules } from "@/http/apiManager.js"
import storageManage from '@/commons/utils/storageManage.js'
import go from '@/commons/utils/go.js'
import infoBox from "@/commons/utils/infoBox.js"
import formUtil from '@/commons/utils/formUtil.js'
import CallPhone from './components/CallPhone.vue'
const rules = {
originalPwd: {
rules:[ formUtil.rules.requiredInputShowToast('原密码') ],
},
newPwd: {
rules:[ formUtil.rules.requiredInputShowToast('新密码') ],
},
confirmPwd: {
rules:[ formUtil.rules.requiredInputShowToast('确认新密码') ],
}
}
const formRef = ref()
const phone = ref()
const vdata = reactive({
formData: {
originalPwd: '',
newPwd: '',
confirmPwd: ''
},
userInfo: storageManage.userInfo(),
passwordRules: /^$/, //密码规则
passwordRulesText: '',//密码规则提示文字
})
onMounted(() => {
getPasswordRules()
})
const getPasswordRules = () => {
$getPasswordRules().then(({bizData}) => {
vdata.passwordRules = new RegExp(bizData.regexpRules)
vdata.passwordRulesText = bizData.errTips
})
}
const modifyPwd = () => {
formUtil.validate(formRef.value).then(() => {
let { newPwd, confirmPwd } = vdata.formData;
if(!vdata.passwordRules.test(newPwd) || !vdata.passwordRules.test(confirmPwd)) {
return infoBox.showToast(vdata.passwordRulesText)
}
if (newPwd !== confirmPwd) {
return infoBox.showToast('两次密码输入不一致')
}
$modifyPwd(vdata.formData).then(() => {
infoBox.showToast('修改成功')
storageManage.token() && storageManage.token(null, true)
go.to('PAGES_LOGIN', {}, 'redirect')
})
})
}
const callPhone = () => {
go.to('PAGES_FORGET_PASSWORD', {isRetrieve: 1 })
}
</script>
<style lang="scss" scoped>
.account-pwd {
min-height: 100vh;
background-color: $v-color-bgrey;
::v-deep.uni-forms-item.is-direction-left {
padding: 0 40rpx;
.uni-forms-item__label {
width: 190rpx !important;
font-size: 32rpx !important;
font-weight: 400;
white-space: nowrap;
color: rgba(102,102,102,1);
text-indent: 0 !important;
}
.uni-easyinput__placeholder-class {
font-size: 32rpx !important;
font-weight: 400 !important;
}
}
.forget-pwd {
display: flex;
align-items: center;
height: 90rpx;
text-indent: 30rpx;
color: #2980fd;
font-size: 30rpx;
font-weight: 400;
}
.confirm {
margin: 30rpx;
height: 110rpx;
border-radius: 20rpx;
color: #fff;
background: $jeepay-bg-primary;
}
}
</style>