当前位置:   article > 正文

微信小程序(评教系统----个人中心,重置密码,忘记密码)_微信小程序 重置密码

微信小程序 重置密码

在评教系统中除评教之外还要有个人信息外还要有个人信息,并为了防止忘记密码而设置忘记密码,当忘记密码时点击忘记密码发送验证码到绑定邮箱。

重新建一个myinfo文件分别写它的js和wxml:个人信息中主要有自己的学号,姓名,邮箱。点击退出要清空数据并退出到学生登录页面。

wxml中:

  1. <!--pages/myinfo/myinfo.wxml-->
  2. <view class='header'>
  3. <view class='logo'>
  4. <open-data type="userAvatarUrl"></open-data>
  5. </view>
  6. <view class='name'>
  7. <open-data type="userNickName"></open-data>
  8. </view>
  9. </view>
  10. <view class='content'>
  11. <view class="msg">
  12. <text class='msg-left'>学号:</text>
  13. <text class='msg-right'>{{student.no}}</text>
  14. </view>
  15. <view class="msg">
  16. <text class='msg-left'>姓名:</text>
  17. <text class='msg-right'>{{student.name}}</text>
  18. </view>
  19. <view class="msg">
  20. <text class='msg-left'>班级:</text>
  21. <text class='msg-right'>{{student.classname}}</text>
  22. </view>
  23. <view class="msg">
  24. <text class='msg-left'>系部:</text>
  25. <text class='msg-right'>{{student.departmentname}}</text>
  26. </view>
  27. <view class="msg" bindtap='email'>
  28. <text class='msg-left'>邮箱:</text>
  29. <text class='msg-right' wx:if="{{student.email=='' || student.email==null}}">未绑定</text><text class='msg-right' wx:else>{{student.email}}</text>
  30. </view>
  31. <view class="msg">
  32. <text class='msg-left'>密码:</text>
  33. <text class='msg-right' bindtap='selectmyinfo' data-no="{{no}}">重置</text>
  34. </view>
  35. <view class="msg" bindtap='exit'>
  36. <text class='msg-left'>退出:</text>
  37. <text class='msg-right'>>></text>
  38. </view>
  39. </view>

js中:

  1. // pages/myinfo/myinfo.js
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. student:null
  8. },
  9. /**
  10. * 生命周期函数--监听页面加载
  11. */
  12. onLoad: function (options) {
  13. var student = wx.getStorageSync('student');
  14. this.setData({
  15. student:student
  16. })
  17. },
  18. selectmyinfo: function (e) {
  19. var no = wx.getStorageSync('student').no;
  20. wx.navigateTo({
  21. url: '../password/password?no=' + no,
  22. })
  23. },
  24. exit: function (e) {
  25. wx.showModal({
  26. title: '提示',
  27. content: '请确认是否退出',
  28. success: function (res) {
  29. if (res.confirm) {
  30. wx.removeStorageSync('student'),
  31. wx.redirectTo({
  32. url: '../login/login'
  33. })
  34. } else if (res.cancel) {
  35. console.log('用户点击取消')
  36. }
  37. }
  38. })
  39. },
  40. email: function () {
  41. wx.navigateTo({
  42. url: '../email/email',
  43. })
  44. },
  45. /**
  46. * 生命周期函数--监听页面初次渲染完成
  47. */
  48. onReady: function () {
  49. },
  50. /**
  51. * 生命周期函数--监听页面显示
  52. */
  53. onShow: function () {
  54. this.onLoad();
  55. },
  56. })

修改密码,建一个password的文件:输入正确的旧密码,新密码必须要与确认密码一致即可提交修改

wxml中:

  1. <!--pages/password/password.wxml-->
  2. <view class='content'>
  3. <form bindsubmit="formSubmit">
  4. <view class='content_one'>
  5. <view class='pass'>
  6. <text>原密码</text>
  7. <input password='true' name="oldpwd" placeholder='请输入旧密码' />
  8. </view>
  9. <view class='pass'>
  10. <text>新密码</text>
  11. <input password='true' name="newpwd" placeholder='请输入新密码' />
  12. </view>
  13. <view class='pass'>
  14. <text>确认密码</text>
  15. <input password='true' name="newpwd2" placeholder='请确认一遍密码' />
  16. </view>
  17. </view>
  18. <button type='primary' form-type="submit" class='btn'>提交</button>
  19. </form>
  20. </view>

js中:

  1. // pages/password/password.js
  2. const app = getApp()
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. },
  9. formSubmit:function(e){
  10. // console.log(e);
  11. var oldpwd = e.detail.value.oldpwd;
  12. var newpwd = e.detail.value.newpwd;
  13. var newpwd2 = e.detail.value.newpwd2;
  14. if(oldpwd=='' || newpwd == '' || newpwd2 == ''){
  15. wx.showToast({
  16. title: '密码不能为空',
  17. icon:'none',
  18. duration:1000
  19. })
  20. }else if(newpwd != newpwd2){
  21. wx.showToast({
  22. title: '两次密码输入不一致',
  23. icon:'none',
  24. duration:1000
  25. })
  26. }else{
  27. // var url = "https://www.lishuming.top/pj/index.php/student/api/setpassword";
  28. var url = app.globalData.url.setpassword;
  29. wx.request({
  30. url: url,
  31. method:'POST',
  32. data:{
  33. no:'1635050238',
  34. oldpwd:oldpwd,
  35. newpwd:newpwd
  36. },
  37. header:{
  38. 'content-type':'application/x-www-form-urlencoded'
  39. },
  40. success:(res)=>{
  41. console.log(res.data);
  42. if (res.data.error) {
  43. wx.showToast({
  44. title: res.data.msg,
  45. icon: 'none',
  46. duration: 2000
  47. })
  48. } else {
  49. wx.showToast({
  50. title: res.data.msg,
  51. icon: 'success',
  52. duration: 2000,
  53. success: function () {
  54. setTimeout(function () {
  55. wx.navigateBack({ belta: 1 })
  56. }, 2000)
  57. }
  58. })
  59. }
  60. }
  61. })
  62. }
  63. },
  64. })

忘记密码:建一个forgetpwd文件:忘记密码分为两步进行,第一步:先输入学号和绑定的邮箱,第二步:设置新密码,并输入邮箱中的验证码在规定时间内即可修改密码成功。

wxml中:

  1. <!--pages/forgetpwd/forgetpwd.wxml-->
  2. <view class='content' wx:if='{{show_content}}'>
  3. <form bindsubmit='next'>
  4. <view class='header'>
  5. <text>找回密码:第1步</text>
  6. </view>
  7. <view class='section'>
  8. <input type='number' placeholder='请输入学号' name="no" />
  9. <input placeholder='请输入绑定的邮箱' name='email'></input>
  10. </view>
  11. <button class='btn' type='primary' form-type='submit'>下一步</button>
  12. </form>
  13. </view>
  14. <view class='content2' wx:if='{{show_content2}}'>
  15. <form bindsubmit='submit'>
  16. <view class='header'>
  17. <text>找回密码:第2步</text>
  18. </view>
  19. <view class='section2'>
  20. <view class='section2_one'>
  21. <input password='{{mask}}' placeholder='输入新密码' name='pwd'></input>
  22. <view class="body-view">
  23. <switch bindchange="switchChange"/>
  24. </view>
  25. </view>
  26. <view class='section2_one'>
  27. <input placeholder='请输入邮件中的验证码' name='validcode'></input>
  28. <view class="time">
  29. <text style="color:#aaa">剩余:{{second}}秒</text>
  30. </view>
  31. </view>
  32. </view>
  33. <button class='btn2' type='primary' form-type='submit'>提交</button>
  34. </form>
  35. </view>

js中:在js中写一个计算时间的方法作为输入验证码的倒计时,设置填写的所有内容不能为空并输入正确的邮箱和验证码后调用修改密码的接口修改密码

  1. // pages/forgetpwd/forgetpwd.js
  2. //计算时间
  3. const app = getApp()
  4. function countdown(that) {
  5. var second = that.data.second
  6. if (second == 0) {
  7. that.setData({
  8. disabled: true
  9. });
  10. return;
  11. }
  12. var time = setTimeout(function () {
  13. that.setData({
  14. second: second - 1
  15. });
  16. countdown(that);
  17. }
  18. , 1000)
  19. }
  20. Page({
  21. /**
  22. * 页面的初始数据
  23. */
  24. data: {
  25. no: null,
  26. second:30,
  27. mask: true,
  28. show_content:true,
  29. show_content2:false
  30. },
  31. next:function(e){
  32. // console.log(e.detail.value);
  33. var no = e.detail.value.no;
  34. var email = e.detail.value.email;
  35. if (no == '' || email == '' || no == null || email == null){
  36. wx.showToast({
  37. title: '学号或邮箱不能为空',
  38. icon: 'none',
  39. duration: 1000
  40. })
  41. }else{
  42. wx.request({
  43. url: app.globalData.url.forgetpwd,
  44. data:{
  45. no:no,
  46. email:email
  47. },
  48. method:'POST',
  49. header:{
  50. 'content-type':'application/x-www-form-urlencoded'
  51. },
  52. success:(res)=>{
  53. console.log(res.data);
  54. if(res.data.error==true){
  55. wx.showToast({
  56. title: res.data.msg,
  57. icon:'none',
  58. duration:2000
  59. })
  60. }else{
  61. this.setData({
  62. no: no,
  63. second: res.data.expire
  64. });
  65. countdown(this);
  66. wx.showToast({
  67. title: res.data.msg,
  68. icon:'success',
  69. duration:2000
  70. })
  71. this.setData({
  72. show_content: false, show_content2: true
  73. })
  74. }
  75. }
  76. })
  77. }
  78. },
  79. switchChange: function (e) {
  80. // console.log(e.detail.value)
  81. this.setData({ mask: !e.detail.value })
  82. },
  83. submit:function(e){
  84. var pwd = e.detail.value.pwd;
  85. var validcode = e.detail.value.validcode;
  86. if (validcode == '' || validcode == null || pwd == '' || pwd == null) {
  87. wx.showToast({
  88. title: '验证码和密码不能为空',
  89. icon: 'none',
  90. duration: 2000
  91. })
  92. }else{
  93. wx.request({
  94. url: app.globalData.url.initpassword,
  95. method: 'POST',
  96. data:{
  97. no: this.data.no,
  98. pwd: pwd,
  99. validcode: validcode
  100. },
  101. header: {
  102. 'content-type': 'application/x-www-form-urlencoded'
  103. },
  104. success:(res)=>{
  105. console.log(res.data);
  106. if (res.data.error) {
  107. wx.showToast({
  108. title: res.data.msg,
  109. icon: 'none',
  110. duration: 2000
  111. })
  112. }else{
  113. wx.showToast({
  114. title: res.data.msg,
  115. icon: 'success',
  116. duration: 2000
  117. })
  118. setTimeout(() => {
  119. wx.navigateBack({
  120. delta: 1
  121. })
  122. }, 2000)
  123. }
  124. }
  125. })
  126. }
  127. },
  128. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/131791
推荐阅读
相关标签
  

闽ICP备14008679号