mine-password.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <template>
  2. <view class="page mine-password">
  3. <nav-bar back>修改密码</nav-bar>
  4. <uni-card :is-shadow="false" is-full :border="false">
  5. <uni-forms ref="form" :modelValue="formData" label-position="top" label-width="100%">
  6. <uni-forms-item label="原密码" name="oldPassword">
  7. <uni-easyinput type="password" v-model="formData.oldPassword" maxlength="20"/>
  8. </uni-forms-item>
  9. <uni-forms-item label="新密码" name="newPassword">
  10. <uni-easyinput type="password" v-model="formData.newPassword" maxlength="20"/>
  11. </uni-forms-item>
  12. <uni-forms-item label="确认密码" name="confirmPassword">
  13. <uni-easyinput type="password" v-model="formData.confirmPassword" maxlength="20"/>
  14. </uni-forms-item>
  15. </uni-forms>
  16. </uni-card>
  17. <button class="bottom-btn" type="primary" @click="onSubmit()">提交</button>
  18. </view>
  19. </template>
  20. <script>
  21. export default {
  22. data() {
  23. return {
  24. formData: {
  25. oldPassword: "",
  26. newPassword: "",
  27. confirmPassword: ""
  28. },
  29. rules: {
  30. oldPassword: {
  31. rules: [{
  32. required: true,
  33. errorMessage: '请输入原密码',
  34. }]
  35. },
  36. newPassword: {
  37. rules: [{
  38. required: true,
  39. errorMessage: '请输入新密码',
  40. }, {
  41. validateFunction: function (rule, value, data, callback) {
  42. if (data.confirmPassword != data.newPassword) {
  43. callback("两次输入的密码不一致");
  44. }
  45. if (data.newPassword == data.oldPassword) {
  46. callback("新密码不能和原密码一致");
  47. }
  48. return true;
  49. }
  50. }]
  51. },
  52. confirmPassword: {
  53. rules: [{
  54. required: true,
  55. errorMessage: '请输入确认密码',
  56. }, {
  57. validateFunction: function (rule, value, data, callback) {
  58. if (data.confirmPassword != data.newPassword) {
  59. callback("两次输入的密码不一致");
  60. }
  61. return true;
  62. }
  63. }]
  64. }
  65. }
  66. }
  67. },
  68. methods: {
  69. onSubmit() {
  70. this.$refs.form.validate().then(res => {
  71. this.$http({
  72. url: "/modifyPwd",
  73. method: "PUT",
  74. data: this.formData
  75. }).then((res) => {
  76. uni.showToast({
  77. title: "修改密码成功",
  78. icon: 'none'
  79. })
  80. setTimeout(() => {
  81. uni.navigateBack();
  82. }, 1000);
  83. })
  84. }).catch(err => {
  85. console.log('表单错误信息:', err);
  86. })
  87. }
  88. },
  89. onReady() {
  90. // 需要在onReady中设置规则
  91. this.$refs.form.setRules(this.rules)
  92. }
  93. }
  94. </script>
  95. <style scoped lang="scss"></style>