index.uvue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <view class=" pwd-retrieve-container my-page">
  3. <form>
  4. <view class="uni-form-item uni-row">
  5. <view class="title">旧密码</view>
  6. <input :class="'uni-input '+oldPassword"
  7. name="oldPassword"
  8. :password="true"
  9. :value="user.oldPassword"
  10. placeholder="请输入旧密码"
  11. @focus="inputFocus('oldPassword')"
  12. @blur="inputBlur('oldPassword')"
  13. @input="inputOld"
  14. />
  15. </view>
  16. <view class="uni-form-item uni-row">
  17. <view class="title">新密码</view>
  18. <input :class="'uni-input '+newPassword"
  19. name="newPassword"
  20. :password="true"
  21. :value="user.newPassword"
  22. placeholder="请输入新密码"
  23. @focus="inputFocus('newPassword')"
  24. @blur="inputBlur('newPassword')"
  25. @input="inputNew"
  26. />
  27. </view>
  28. <view class="uni-form-item uni-row">
  29. <view class="title">确认密码</view>
  30. <input :class="'uni-input '+confirmPassword"
  31. name="confirmPassword"
  32. :password="true"
  33. :value="user.confirmPassword"
  34. placeholder="请确认新密码"
  35. @focus="inputFocus('confirmPassword')"
  36. @blur="inputBlur('confirmPassword')"
  37. @input="inputConfirm"
  38. />
  39. </view>
  40. <button type="primary" @click="submit">提交</button>
  41. </form>
  42. </view>
  43. </template>
  44. <script lang="uts">
  45. import { updateUserPwd } from "@/api/system/user"
  46. export default {
  47. data() {
  48. type User={
  49. oldPassword: string|null,
  50. newPassword: string|null,
  51. confirmPassword:string|null
  52. }
  53. return {
  54. oldPassword:'',
  55. newPassword:'',
  56. confirmPassword:'',
  57. user: {
  58. oldPassword: null,
  59. newPassword: null,
  60. confirmPassword: null
  61. } as User,
  62. }
  63. },
  64. methods: {
  65. inputFocus(tag:string){
  66. this.$data[tag]="my-focus"
  67. },
  68. inputBlur(tag:string){
  69. this.$data[tag]="my-blur"
  70. },
  71. inputOld(event:UniInputEvent){
  72. this.user.oldPassword=event.detail.value
  73. },
  74. inputNew(event:UniInputEvent){
  75. this.user.newPassword=event.detail.value
  76. },
  77. inputConfirm(event:UniInputEvent){
  78. this.user.confirmPassword=event.detail.value
  79. },
  80. submit() {
  81. if(!this.user.oldPassword){
  82. uni.showToast({
  83. title:"旧密码不能为空",
  84. icon:"error"
  85. })
  86. return
  87. }
  88. if(!this.user.newPassword){
  89. uni.showToast({
  90. title:"新密码不能为空",
  91. icon:"error"
  92. })
  93. return
  94. }else if(this.user.newPassword.length<6||this.user.newPassword.length>20){
  95. uni.showToast({
  96. title:"长度在6到20个字符",
  97. icon:"error"
  98. })
  99. return
  100. }
  101. if(!this.user.confirmPassword){
  102. uni.showToast({
  103. title:"确认密码不能为空",
  104. icon:"error"
  105. })
  106. return
  107. }else if(this.user.confirmPassword===this.user.newPassword){
  108. uni.showToast({
  109. title:"两次输入的密码不一致",
  110. icon:"error"
  111. })
  112. return
  113. }
  114. updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
  115. uni.showToast({
  116. title: '修改成功',
  117. icon: 'success'
  118. });
  119. })
  120. }
  121. }
  122. }
  123. </script>
  124. <style lang="scss">
  125. .my-page {
  126. background-color: #ffffff;
  127. width: 100%;
  128. height: 100%;
  129. }
  130. .pwd-retrieve-container {
  131. padding-top: 36rpx;
  132. padding: 15px;
  133. }
  134. </style>