index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <view class="container">
  3. <uni-forms ref="form" :modelValue="formData" :rules="rules" label-position="top">
  4. <uni-forms-item label="原密码" name="password" required>
  5. <input v-model="formData.password" placeholder="请输入原密码" />
  6. </uni-forms-item>
  7. <uni-forms-item label="新密码" name="newPassword" required>
  8. <input v-model="formData.newPassword" placeholder="请输入新密码" />
  9. </uni-forms-item>
  10. <uni-forms-item label="确认密码" name="conWord" required>
  11. <input v-model="formData.conWord" placeholder="请确认新密码" />
  12. </uni-forms-item>
  13. </uni-forms>
  14. <u-button @click="submit" class="submit" type="primary">提交</u-button>
  15. </view>
  16. </template>
  17. <script>
  18. import {
  19. encrypt
  20. } from '@/utils/jsencrypt.js'
  21. export default {
  22. data() {
  23. return {
  24. // 表单数据
  25. formData: {
  26. password: null,
  27. newPassword: null,
  28. conWord: null
  29. },
  30. rules: {
  31. password: {
  32. rules: [{
  33. required: true,
  34. errorMessage: '请输入原密码',
  35. }, ]
  36. },
  37. newPassword: {
  38. rules: [{
  39. required: true,
  40. errorMessage: '请输入新密码',
  41. },
  42. {
  43. validateFunction: function(rule, value, data, callback) {
  44. if (data.password === data.newPassword) {
  45. callback('不能和与原密码相同')
  46. }
  47. return true
  48. }
  49. }
  50. ]
  51. },
  52. conWord: {
  53. rules: [{
  54. required: true,
  55. errorMessage: '请确认新密码',
  56. },
  57. {
  58. validateFunction: function(rule, value, data, callback) {
  59. if (data.conWord !== data.newPassword) {
  60. callback('必须与新密码相同')
  61. }
  62. return true
  63. }
  64. }
  65. ]
  66. }
  67. }
  68. }
  69. },
  70. methods: {
  71. submit() {
  72. this.$refs.form.validate().then(res => {
  73. this.$store.dispatch('user/updatePassword', this.formData).then(req => {
  74. if (req.data.code === 200) {
  75. uni.showToast({
  76. title: req.data.msg,
  77. duration: 2000,
  78. icon: "success"
  79. });
  80. uni.redirectTo({
  81. url: "/pages/login/index"
  82. })
  83. }else{
  84. uni.showToast({
  85. title: req.data.msg,
  86. duration: 2000,
  87. icon: "error"
  88. });
  89. }
  90. })
  91. }).catch(err => {
  92. })
  93. }
  94. }
  95. }
  96. </script>
  97. <style lang="scss" scoped>
  98. .container {
  99. padding: 20rpx;
  100. }
  101. .submit {
  102. width: 400rpx;
  103. margin-top: 60rpx
  104. }
  105. ::v-deep .uni-input-placeholder {
  106. font-size: 12px
  107. }
  108. ::v-deep .uni-input-input {
  109. border-bottom: 1px solid #959595
  110. }
  111. </style>