password 1.9 KB

12345678910111213141516171819202122232425262728293031
  1. <template>
  2. <view class="change-password-page">
  3. <view class="form-card">
  4. <view class="form-item"><text class="form-label">原密码</text><input class="form-input" v-model="form.oldPassword" type="password" placeholder="请输入原密码" /></view>
  5. <view class="form-item"><text class="form-label">新密码</text><input class="form-input" v-model="form.newPassword" type="password" placeholder="请输入新密码" /></view>
  6. <view class="form-item"><text class="form-label">确认密码</text><input class="form-input" v-model="form.confirmPassword" type="password" placeholder="请再次输入新密码" /></view>
  7. </view>
  8. <button class="save-btn" @click="onSave">确认修改</button>
  9. </view>
  10. </template>
  11. <script setup>
  12. import { reactive } from 'vue'
  13. const form = reactive({ oldPassword: '', newPassword: '', confirmPassword: '' })
  14. const onSave = () => {
  15. if (!form.oldPassword || !form.newPassword) { uni.showToast({ title: '请填写完整', icon: 'none' }); return }
  16. if (form.newPassword !== form.confirmPassword) { uni.showToast({ title: '两次密码不一致', icon: 'none' }); return }
  17. uni.showToast({ title: '修改成功', icon: 'success' })
  18. setTimeout(() => uni.navigateBack(), 1000)
  19. }
  20. </script>
  21. <style lang="scss" scoped>
  22. .change-password-page { min-height: 100vh; background: #f7f8fa; padding: 24rpx; padding-bottom: 160rpx; }
  23. .form-card { background: #fff; border-radius: 24rpx; padding: 8rpx 32rpx; }
  24. .form-item { display: flex; align-items: center; padding: 28rpx 0; border-bottom: 1rpx solid #f5f5f5; }
  25. .form-item:last-child { border-bottom: none; }
  26. .form-label { width: 180rpx; font-size: 28rpx; color: #333; flex-shrink: 0; }
  27. .form-input { flex: 1; font-size: 28rpx; color: #333; text-align: right; }
  28. .save-btn { margin-top: 48rpx; width: 100%; height: 96rpx; background: linear-gradient(90deg, #ffd53f, #ff9500); color: #333; border: none; border-radius: 48rpx; font-size: 32rpx; font-weight: bold; line-height: 96rpx; }
  29. </style>