├── php-api/ # 改造后的PHP接口层 ├── java-ad-service/ # 若依框架微服务(广告+VIP+分账) ├── uniapp-reader/ # UniApp前端项目 │ ├── pages/ # 各端页面 │ └──
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

App.vue 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <template>
  2. <view :class="['app-container', `theme-${themeStore.currentTheme}`]">
  3. <router-view />
  4. </view>
  5. </template>
  6. <script>
  7. import config from './config'
  8. import { getToken } from '@/utils/auth'
  9. import { useThemeStore } from '@/stores/theme'
  10. import { onLaunch, onShow } from '@dcloudio/uni-app'
  11. //import { useThemeStore } from '@/stores/theme'
  12. import { useUserStore } from '@/stores/user'
  13. import { useVipStore } from '@/stores/vip'
  14. // 初始化主题
  15. onLaunch(() => {
  16. const themeStore = useThemeStore()
  17. themeStore.initTheme()
  18. })
  19. // 每次启动时加载用户和VIP状态
  20. onShow(async () => {
  21. const userStore = useUserStore()
  22. const vipStore = useVipStore()
  23. // 检查登录状态
  24. if (uni.getStorageSync('token')) {
  25. // 加载用户信息
  26. await userStore.initUser()
  27. // 加载VIP状态
  28. if (userStore.userId) {
  29. await vipStore.loadVipStatus(userStore.userId)
  30. }
  31. }
  32. })
  33. export default {
  34. onLaunch: function() {
  35. this.initApp()
  36. },
  37. methods: {
  38. // 初始化应用
  39. initApp() {
  40. // 初始化应用配置
  41. this.initConfig()
  42. // 检查用户登录状态
  43. //#ifdef H5
  44. this.checkLogin()
  45. //#endif
  46. },
  47. initConfig() {
  48. this.globalData.config = config
  49. },
  50. checkLogin() {
  51. if (!getToken()) {
  52. this.$tab.reLaunch('/pages/login')
  53. }
  54. }
  55. }
  56. }
  57. </script>
  58. <style lang="scss">
  59. @import '@/static/scss/index.scss'
  60. @import '@/styles/themes/default.scss';
  61. @import '@/styles/themes/aydz-blue.scss';
  62. .app-container {
  63. font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
  64. height: 100vh;
  65. background-color: var(--bg-color);
  66. color: var(--text-color);
  67. }
  68. /* 全局主题变量 */
  69. :root {
  70. --primary-color: #1890ff;
  71. --bg-color: #f8f9fa;
  72. --text-color: #333;
  73. --card-bg: #ffffff;
  74. --header-bg: #ffffff;
  75. /* 确保所有页面继承主题 */
  76. background-color: var(--bg-color);
  77. color: var(--text-color);
  78. }
  79. /* 哎呀科技蓝主题变量覆盖 */
  80. .theme-aydzBlue {
  81. --primary-color: #2a5caa;
  82. --bg-color: #e6f7ff;
  83. --text-color: #1a3353;
  84. --card-bg: #d0e8ff;
  85. --header-bg: #2a5caa;
  86. }
  87. /* 深色模式主题变量覆盖 */
  88. .theme-darkMode {
  89. --primary-color: #52c41a;
  90. --bg-color: #1a1a1a;
  91. --text-color: #e6e6e6;
  92. --card-bg: #2a2a2a;
  93. --header-bg: #1a1a1a;
  94. }
  95. /* 公共组件样式 */
  96. .card {
  97. background-color: var(--card-bg);
  98. border-radius: 12px;
  99. padding: 16px;
  100. margin-bottom: 16px;
  101. box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  102. }
  103. .primary-button {
  104. background-color: var(--primary-color);
  105. color: white;
  106. border: none;
  107. border-radius: 24px;
  108. padding: 10px 20px;
  109. font-weight: bold;
  110. }/* 全局主题变量 */
  111. :root {
  112. --primary-color: #1890ff;
  113. --bg-color: #f8f9fa;
  114. --text-color: #333;
  115. --card-bg: #ffffff;
  116. /* 确保所有页面继承主题 */
  117. background-color: var(--bg-color);
  118. color: var(--text-color);
  119. }
  120. /* 哎呀科技蓝主题变量覆盖 */
  121. .theme-aydzBlue {
  122. --primary-color: #2a5caa;
  123. --bg-color: #e6f7ff;
  124. --text-color: #1a3353;
  125. --card-bg: #d0e8ff;
  126. }
  127. /* 深色模式主题变量覆盖 */
  128. .theme-darkMode {
  129. --primary-color: #52c41a;
  130. --bg-color: #1a1a1a;
  131. --text-color: #e6e6e6;
  132. --card-bg: #2a2a2a;
  133. }
  134. /* 公共组件样式 */
  135. .card {
  136. background-color: var(--card-bg);
  137. border-radius: 12px;
  138. padding: 16px;
  139. margin-bottom: 16px;
  140. box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  141. }
  142. .primary-button {
  143. background-color: var(--primary-color);
  144. color: white;
  145. border: none;
  146. border-radius: 24px;
  147. padding: 10px 20px;
  148. font-weight: bold;
  149. }
  150. /* 全局样式 */
  151. page {
  152. background-color: var(--bg-color);
  153. color: var(--text-color);
  154. font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
  155. }
  156. </style>