| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <template>
- <view :class="['app-container', `theme-${themeStore.currentTheme}`]">
- <router-view />
- </view>
- </template>
- <script>
- import config from './config'
- import { getToken } from '@/utils/auth'
- import { useThemeStore } from '@/stores/theme'
- import { onLaunch, onShow } from '@dcloudio/uni-app'
- //import { useThemeStore } from '@/stores/theme'
- import { useUserStore } from '@/stores/user'
- import { useVipStore } from '@/stores/vip'
-
- // 初始化主题
- onLaunch(() => {
- const themeStore = useThemeStore()
- themeStore.initTheme()
- })
- // 每次启动时加载用户和VIP状态
- onShow(async () => {
- const userStore = useUserStore()
- const vipStore = useVipStore()
-
- // 检查登录状态
- if (uni.getStorageSync('token')) {
- // 加载用户信息
- await userStore.initUser()
-
- // 加载VIP状态
- if (userStore.userId) {
- await vipStore.loadVipStatus(userStore.userId)
- }
- }
- })
- export default {
- onLaunch: function() {
- this.initApp()
- },
- methods: {
- // 初始化应用
- initApp() {
- // 初始化应用配置
- this.initConfig()
- // 检查用户登录状态
- //#ifdef H5
- this.checkLogin()
- //#endif
- },
- initConfig() {
- this.globalData.config = config
- },
- checkLogin() {
- if (!getToken()) {
- this.$tab.reLaunch('/pages/login')
- }
- }
- }
- }
- </script>
-
- <style lang="scss">
- @import '@/static/scss/index.scss'
- @import '@/styles/themes/default.scss';
- @import '@/styles/themes/aydz-blue.scss';
-
- .app-container {
- font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
- height: 100vh;
- background-color: var(--bg-color);
- color: var(--text-color);
- }
-
- /* 全局主题变量 */
- :root {
- --primary-color: #1890ff;
- --bg-color: #f8f9fa;
- --text-color: #333;
- --card-bg: #ffffff;
- --header-bg: #ffffff;
- /* 确保所有页面继承主题 */
- background-color: var(--bg-color);
- color: var(--text-color);
- }
-
- /* 哎呀科技蓝主题变量覆盖 */
- .theme-aydzBlue {
- --primary-color: #2a5caa;
- --bg-color: #e6f7ff;
- --text-color: #1a3353;
- --card-bg: #d0e8ff;
- --header-bg: #2a5caa;
- }
-
- /* 深色模式主题变量覆盖 */
- .theme-darkMode {
- --primary-color: #52c41a;
- --bg-color: #1a1a1a;
- --text-color: #e6e6e6;
- --card-bg: #2a2a2a;
- --header-bg: #1a1a1a;
- }
-
- /* 公共组件样式 */
- .card {
- background-color: var(--card-bg);
- border-radius: 12px;
- padding: 16px;
- margin-bottom: 16px;
- box-shadow: 0 2px 8px rgba(0,0,0,0.05);
- }
-
- .primary-button {
- background-color: var(--primary-color);
- color: white;
- border: none;
- border-radius: 24px;
- padding: 10px 20px;
- font-weight: bold;
- }/* 全局主题变量 */
- :root {
- --primary-color: #1890ff;
- --bg-color: #f8f9fa;
- --text-color: #333;
- --card-bg: #ffffff;
-
- /* 确保所有页面继承主题 */
- background-color: var(--bg-color);
- color: var(--text-color);
- }
-
- /* 哎呀科技蓝主题变量覆盖 */
- .theme-aydzBlue {
- --primary-color: #2a5caa;
- --bg-color: #e6f7ff;
- --text-color: #1a3353;
- --card-bg: #d0e8ff;
- }
-
- /* 深色模式主题变量覆盖 */
- .theme-darkMode {
- --primary-color: #52c41a;
- --bg-color: #1a1a1a;
- --text-color: #e6e6e6;
- --card-bg: #2a2a2a;
- }
-
- /* 公共组件样式 */
- .card {
- background-color: var(--card-bg);
- border-radius: 12px;
- padding: 16px;
- margin-bottom: 16px;
- box-shadow: 0 2px 8px rgba(0,0,0,0.05);
- }
-
- .primary-button {
- background-color: var(--primary-color);
- color: white;
- border: none;
- border-radius: 24px;
- padding: 10px 20px;
- font-weight: bold;
- }
- /* 全局样式 */
- page {
- background-color: var(--bg-color);
- color: var(--text-color);
- font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
- }
-
- </style>
|