Files
uniapp-im-shop/pages/my-index/wallet/edit-password.vue
2025-12-27 17:52:08 +08:00

102 lines
2.3 KiB
Vue

<script setup>
import { reactive } from 'vue'
import CardInput from '../components/card-input.vue'
import { useUI } from '@/utils/use-ui'
import { validateTransactionPassword } from '@/utils/validate'
const { showToast } = useUI()
const formData = reactive({
// 旧密码
password: '',
// 新密码
newPassword: '',
// 确认密码
confirmPassword: ''
})
const onEdit = () => {
const passwordValue = validateTransactionPassword(
formData.password,
'旧密码'
)
if (!passwordValue.valid) {
showToast(passwordValue.message)
return
}
const newPasswordValue = validateTransactionPassword(
formData.newPassword,
'新的交易密码'
)
if (!newPasswordValue.valid) {
showToast(newPasswordValue.message)
return
}
const confirmPasswordValue = validateTransactionPassword(
formData.confirmPassword,
'确认交易密码'
)
if (!confirmPasswordValue.valid) {
showToast(confirmPasswordValue.message)
return
}
if (formData.newPassword !== formData.confirmPassword) {
showToast('两次密码不一致')
return
}
console.log('修改密码:', formData)
}
</script>
<template>
<view class="edit-password">
<nav-bar isTopBg isPlaceholder title="交易密码">
<template #right>
<text class="top-right-name" @click="onEdit">确认</text>
</template>
</nav-bar>
<view class="input-box">
<CardInput
v-model="formData.password"
title="旧密码"
type="password"
></CardInput>
<CardInput
v-model="formData.newPassword"
title="设置新的交易密码"
type="password"
></CardInput>
<CardInput
v-model="formData.confirmPassword"
title="重复新的交易密码"
type="password"
></CardInput>
</view>
</view>
</template>
<style lang="scss" scoped>
@import '../styles/index.scss';
.top-right-name {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #ffffff;
text-align: center;
font-style: normal;
text-transform: none;
background: #00d993;
padding: 6rpx 20rpx;
border-radius: 8rpx;
}
.input-box {
padding: 32rpx 24rpx;
}
</style>