profile.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. // pages/profile/profile.js
  2. const userUtil = require('../../utils/user');
  3. const userApi = require('../../api/user');
  4. Page({
  5. data: {
  6. userInfo: null,
  7. systemInfo: null,
  8. pageHeight: 0
  9. },
  10. onLoad() {
  11. this.loadUserInfo();
  12. this.setPageHeight();
  13. },
  14. onShow() {
  15. this.loadUserInfo();
  16. },
  17. // 设置页面高度,匹配手机屏幕
  18. setPageHeight() {
  19. try {
  20. const systemInfo = wx.getSystemInfoSync();
  21. const windowHeight = systemInfo.windowHeight; // 窗口高度(px),已自动减去tabBar高度
  22. const windowWidth = systemInfo.windowWidth; // 窗口宽度(px)
  23. // 小程序中,windowHeight已经自动减去了tabBar高度
  24. // 转换为rpx:rpx = px * (750 / 屏幕宽度)
  25. const rpxRatio = 750 / windowWidth;
  26. const pageHeightRpx = windowHeight * rpxRatio;
  27. this.setData({
  28. systemInfo: systemInfo,
  29. pageHeight: Math.floor(pageHeightRpx)
  30. });
  31. console.log('页面高度设置:', {
  32. windowWidth: windowWidth + 'px',
  33. windowHeight: windowHeight + 'px',
  34. rpxRatio: rpxRatio.toFixed(4),
  35. pageHeight: Math.floor(pageHeightRpx) + 'rpx'
  36. });
  37. } catch (error) {
  38. console.error('设置页面高度失败:', error);
  39. // 如果获取系统信息失败,使用默认值
  40. this.setData({
  41. pageHeight: 0 // 使用CSS的100vh作为fallback
  42. });
  43. }
  44. },
  45. // 加载用户信息
  46. loadUserInfo() {
  47. const userInfo = userUtil.getUserInfo();
  48. this.setData({ userInfo });
  49. },
  50. // 退出登录
  51. logout() {
  52. wx.showModal({
  53. title: '提示',
  54. content: '确定要退出登录吗?',
  55. success: (res) => {
  56. if (res.confirm) {
  57. userUtil.clearUserInfo();
  58. wx.reLaunch({
  59. url: '/pages/login/login'
  60. });
  61. }
  62. }
  63. });
  64. },
  65. // 跳转到书架
  66. goToBookshelf() {
  67. wx.switchTab({
  68. url: '/pages/bookshelf/bookshelf'
  69. });
  70. },
  71. // 跳转到历史记录
  72. goToHistory() {
  73. wx.navigateTo({
  74. url: '/pages/history/history'
  75. });
  76. },
  77. // 跳转到AI客服
  78. goToChat() {
  79. wx.navigateTo({
  80. url: '/pages/chat/chat'
  81. });
  82. },
  83. // 跳转到设置
  84. goToSettings() {
  85. wx.navigateTo({
  86. url: '/pages/settings/settings'
  87. });
  88. },
  89. // 跳转到我的书籍(第三方)
  90. goToMyContent() {
  91. wx.navigateTo({
  92. url: '/pages/thirdPartyContent/thirdPartyContent'
  93. });
  94. }
  95. });