index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <view class="pwd-retrieve-container">
  3. <uni-forms ref="form" :value="user" labelWidth="80px">
  4. <uni-forms-item name="oldPassword" :label="i18('旧密码')">
  5. <uni-easyinput type="password" v-model="user.oldPassword" :placeholder="i18('请输入旧密码')" />
  6. </uni-forms-item>
  7. <uni-forms-item name="newPassword" :label="i18('新密码')">
  8. <uni-easyinput type="password" v-model="user.newPassword" :placeholder="i18('请输入新密码')" />
  9. </uni-forms-item>
  10. <uni-forms-item name="confirmPassword" :label="i18('确认密码')">
  11. <uni-easyinput type="password" v-model="user.confirmPassword" :placeholder="i18('请确认新密码')" />
  12. </uni-forms-item>
  13. <button type="primary" style="background: #0E9F9B;color: white" @click="submit">{{i18('提交')}}</button>
  14. <view style="bottom: 10px;position: absolute;left: 10px;right:10px">
  15. <button type="warn" @click="" style="background: #0E9F9B;color: white" @click="handleLogout">{{i18('退出登录')}}</button>
  16. </view>
  17. </uni-forms>
  18. </view>
  19. </template>
  20. <script>
  21. import { updateUserPwd } from "@/api/system/user"
  22. import i18 from '@/utils/i18.js'
  23. export default {
  24. data() {
  25. return {
  26. user: {
  27. oldPassword: undefined,
  28. newPassword: undefined,
  29. confirmPassword: undefined
  30. },
  31. rules: {
  32. oldPassword: {
  33. rules: [{
  34. required: true,
  35. errorMessage: i18('旧密码不能为空')
  36. }]
  37. },
  38. newPassword: {
  39. rules: [{
  40. required: true,
  41. errorMessage: i18('新密码不能为空'),
  42. },
  43. {
  44. minLength: 6,
  45. maxLength: 20,
  46. errorMessage: i18('长度在 6 到 20 个字符')
  47. }
  48. ]
  49. },
  50. confirmPassword: {
  51. rules: [{
  52. required: true,
  53. errorMessage: i18('确认密码不能为空')
  54. }, {
  55. validateFunction: (rule, value, data) => data.newPassword === value,
  56. errorMessage: i18('两次输入的密码不一致')
  57. }
  58. ]
  59. }
  60. }
  61. }
  62. },
  63. onReady() {
  64. this.$refs.form.setRules(this.rules)
  65. },
  66. onShow(){
  67. uni.setNavigationBarTitle({
  68. title: this.$t('page.modifypwd')
  69. })
  70. },
  71. methods: {
  72. i18(text){
  73. return i18(text)
  74. },
  75. submit() {
  76. this.$refs.form.validate().then(res => {
  77. updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
  78. this.$modal.msgSuccess("修改成功")
  79. })
  80. })
  81. },
  82. handleLogout() {
  83. this.$modal.confirm('确定注销并退出系统吗?').then(() => {
  84. this.$store.dispatch('LogOut').then(() => {
  85. this.$tab.reLaunch('/pages/index')
  86. })
  87. })
  88. }
  89. }
  90. }
  91. </script>
  92. <style lang="scss">
  93. page {
  94. background-color: #ffffff;
  95. }
  96. .pwd-retrieve-container {
  97. padding-top: 36rpx;
  98. padding: 15px;
  99. }
  100. </style>