index.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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"
  5. v-model="form.oldPassword" type="password" placeholder="请输入原密码" /></view>
  6. <view class="form-item"><text class="form-label">新密码</text><input class="form-input"
  7. v-model="form.newPassword" type="password" placeholder="请输入新密码" /></view>
  8. <view class="form-item"><text class="form-label">确认密码</text><input class="form-input"
  9. v-model="form.confirmPassword" type="password" placeholder="请再次输入新密码" /></view>
  10. </view>
  11. <button class="save-btn" @click="onSave">确认修改</button>
  12. </view>
  13. </template>
  14. <script setup>
  15. import { reactive } from 'vue'
  16. const form = reactive({ oldPassword: '', newPassword: '', confirmPassword: '' })
  17. const onSave = () => {
  18. if (!form.oldPassword || !form.newPassword) { uni.showToast({ title: '请填写完整', icon: 'none' }); return }
  19. if (form.newPassword !== form.confirmPassword) { uni.showToast({ title: '两次密码不一致', icon: 'none' }); return }
  20. uni.showToast({ title: '修改成功', icon: 'success' })
  21. setTimeout(() => uni.navigateBack(), 1000)
  22. }
  23. </script>
  24. <style lang="scss" scoped>
  25. .change-password-page {
  26. min-height: 100vh;
  27. background: #f7f8fa;
  28. padding: 24rpx;
  29. padding-bottom: 160rpx;
  30. }
  31. .form-card {
  32. background: #fff;
  33. border-radius: 24rpx;
  34. padding: 8rpx 32rpx;
  35. }
  36. .form-item {
  37. display: flex;
  38. align-items: center;
  39. padding: 28rpx 0;
  40. border-bottom: 2rpx solid #EEEEEE;
  41. }
  42. .form-item:last-child {
  43. border-bottom: none;
  44. }
  45. .form-label {
  46. width: 180rpx;
  47. font-size: 28rpx;
  48. color: #333;
  49. flex-shrink: 0;
  50. }
  51. .form-input {
  52. flex: 1;
  53. font-size: 28rpx;
  54. color: #333;
  55. text-align: right;
  56. }
  57. .save-btn {
  58. margin-top: 48rpx;
  59. width: 100%;
  60. height: 96rpx;
  61. background: linear-gradient(90deg, #ffd53f, #ff9500);
  62. color: #fff;
  63. border: none;
  64. border-radius: 48rpx;
  65. font-size: 32rpx;
  66. font-weight: bold;
  67. line-height: 96rpx;
  68. }
  69. </style>