Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

162 строки
5.3 KiB

  1. <script setup>
  2. import { onLaunch, onShow, onHide } from '@dcloudio/uni-app'
  3. import { useUserStore } from '@/store/user.js'
  4. const userStore = useUserStore()
  5. function parseInviteScene(scene) {
  6. if (!scene) return ''
  7. let text = ''
  8. try {
  9. text = decodeURIComponent(scene)
  10. } catch (e) {
  11. text = scene
  12. }
  13. const match = text.match(/(?:^|[&?])i=([^&]+)/) || text.match(/(?:^|[&?])i_([^&]+)/)
  14. if (match) return match[1]
  15. if (text.indexOf('i_') === 0) return text.slice(2)
  16. return ''
  17. }
  18. function saveInviteParams(options = {}) {
  19. const query = options.query || {}
  20. const inviteCode = query.invite_code || query.invite_open_id || parseInviteScene(query.scene || '')
  21. if (inviteCode) uni.setStorageSync('invite_code', inviteCode)
  22. if (query.source) uni.setStorageSync('source', query.source)
  23. }
  24. function applyLightTheme() {
  25. if (typeof uni === 'undefined') return
  26. try {
  27. uni.setStorageSync('u-theme-mode', 'light')
  28. } catch (e) {}
  29. if (uni.$u && typeof uni.$u.setThemePreference === 'function') {
  30. uni.$u.setThemePreference('light')
  31. }
  32. // #ifdef MP-WEIXIN
  33. if (typeof uni.setNavigationBarColor === 'function') {
  34. try {
  35. uni.setNavigationBarColor({
  36. frontColor: '#000000',
  37. backgroundColor: '#ffffff',
  38. animation: {
  39. duration: 0,
  40. timingFunc: 'linear'
  41. }
  42. })
  43. } catch (e) {}
  44. }
  45. if (typeof uni.setBackgroundColor === 'function') {
  46. try {
  47. uni.setBackgroundColor({
  48. backgroundColor: '#ffffff',
  49. backgroundColorTop: '#ffffff',
  50. backgroundColorBottom: '#ffffff'
  51. })
  52. } catch (e) {}
  53. }
  54. // #endif
  55. }
  56. onLaunch((options = {}) => {
  57. console.log('App Launch')
  58. saveInviteParams(options)
  59. // 恢复本地登录态
  60. applyLightTheme()
  61. userStore.restore()
  62. })
  63. onShow((options = {}) => {
  64. console.log('App Show')
  65. saveInviteParams(options)
  66. applyLightTheme()
  67. })
  68. onHide(() => {
  69. console.log('App Hide')
  70. })
  71. </script>
  72. <style lang="scss">
  73. @import '@/uni_modules/uview-plus/index.scss';
  74. /* 全局公共样式 */
  75. @import '@/styles/common.scss';
  76. :root,
  77. page,
  78. body,
  79. [data-up-theme='light'],
  80. [data-up-theme='dark'] {
  81. color-scheme: light;
  82. --up-main-color: var(--up-light-main-color, #303133);
  83. --up-content-color: var(--up-light-content-color, #606266);
  84. --up-tips-color: var(--up-light-tips-color, #909193);
  85. --up-light-color: var(--up-light-light-color, #c0c4cc);
  86. --up-border-color: var(--up-light-border-color, #dadbde);
  87. --up-bg-color: var(--up-light-bg-color, #f3f4f6);
  88. --up-hover-bg-color: #e7ebf0;
  89. --up-page-bg-color: #f3f4f6;
  90. --up-card-bg-color: #ffffff;
  91. --up-navbar-bg-color: #ffffff;
  92. --up-disabled-color: var(--up-light-disabled-color, #c8c9cc);
  93. --up-primary: var(--up-light-primary, #3c9cff);
  94. --up-primary-dark: var(--up-light-primary-dark, #398ade);
  95. --up-primary-disabled: var(--up-light-primary-disabled, #9acafc);
  96. --up-primary-light: var(--up-light-primary-light, #ecf5ff);
  97. --up-warning: var(--up-light-warning, #f9ae3d);
  98. --up-warning-dark: var(--up-light-warning-dark, #f1a532);
  99. --up-warning-disabled: var(--up-light-warning-disabled, #f9d39b);
  100. --up-warning-light: var(--up-light-warning-light, #fdf6ec);
  101. --up-success: var(--up-light-success, #5ac725);
  102. --up-success-dark: var(--up-light-success-dark, #53c21d);
  103. --up-success-disabled: var(--up-light-success-disabled, #a9e08f);
  104. --up-success-light: var(--up-light-success-light, #f5fff0);
  105. --up-error: var(--up-light-error, #f56c6c);
  106. --up-error-dark: var(--up-light-error-dark, #e45656);
  107. --up-error-disabled: var(--up-light-error-disabled, #f7b2b2);
  108. --up-error-light: var(--up-light-error-light, #fef0f0);
  109. --up-info: var(--up-light-info, #909399);
  110. --up-info-dark: var(--up-light-info-dark, #767a82);
  111. --up-info-disabled: var(--up-light-info-disabled, #c4c6c9);
  112. --up-info-light: var(--up-light-info-light, #f4f4f5);
  113. --up-table2-header-bg-color: #f5f7fa;
  114. --up-table2-zebra-bg-color: #fafafa;
  115. --up-table2-highlight-bg-color: #f5f7fa;
  116. --up-gap-bg-color: #f3f4f6;
  117. --up-skeleton-bg-color: #f1f2f4;
  118. --up-skeleton-shimmer-color: #e6e6e6;
  119. --up-swipe-action-button-bg-color: #c7c6cd;
  120. --up-index-list-indicator-bg-color: #c9c9c9;
  121. --up-calendar-month-mark-color: rgba(231, 232, 234, 0.83);
  122. --u-main-color: var(--up-main-color);
  123. --u-content-color: var(--up-content-color);
  124. --u-tips-color: var(--up-tips-color);
  125. --u-light-color: var(--up-light-color);
  126. --u-border-color: var(--up-border-color);
  127. --u-bg-color: var(--up-bg-color);
  128. --u-hover-bg-color: var(--up-hover-bg-color);
  129. --u-disabled-color: var(--up-disabled-color);
  130. --u-primary: var(--up-primary);
  131. --u-primary-dark: var(--up-primary-dark);
  132. --u-primary-disabled: var(--up-primary-disabled);
  133. --u-primary-light: var(--up-primary-light);
  134. --u-warning: var(--up-warning);
  135. --u-warning-dark: var(--up-warning-dark);
  136. --u-warning-disabled: var(--up-warning-disabled);
  137. --u-warning-light: var(--up-warning-light);
  138. --u-success: var(--up-success);
  139. --u-success-dark: var(--up-success-dark);
  140. --u-success-disabled: var(--up-success-disabled);
  141. --u-success-light: var(--up-success-light);
  142. --u-error: var(--up-error);
  143. --u-error-dark: var(--up-error-dark);
  144. --u-error-disabled: var(--up-error-disabled);
  145. --u-error-light: var(--up-error-light);
  146. --u-info: var(--up-info);
  147. --u-info-dark: var(--up-info-dark);
  148. --u-info-disabled: var(--up-info-disabled);
  149. --u-info-light: var(--up-info-light);
  150. }
  151. </style>