mine-password.vue 2.4 KB

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