| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <template>
- <view :class="['app-container', `theme-${themeStore.currentTheme}`]">
- <router-view />
- </view>
- </template>
-
- <script>
- import config from './config'
- import { getToken } from '@/utils/auth'
- import { onLaunch, onShow } from '@dcloudio/uni-app'
- import { useThemeStore } from '@/store/theme' // 修正路径
- import { useUserStore } from '@/store/user' // 修正路径
- import { useVipStore } from '@/store/vip' // 修正路径
- import { useReminder } from '@/utils/reminder'
- import { readingService } from '@/services/readingService'
-
- export default {
- data() {
- return {
- themeStore: useThemeStore(),
- userStore: useUserStore(),
- vipStore: useVipStore()
- }
- },
- onLaunch() {
- // 初始化主题
- this.themeStore.initTheme()
- // 检查登录状态
- this.checkLogin()
- // 初始化用户
- this.userStore.initUser()
- // 初始化签到提醒
- useReminder.init()
-
- // 登录成功后同步进度
- // uni.$on('loginSuccess', async () => {
- // await readingService.syncAllLocalProgress()
- // uni.showToast({ title: '阅读进度已同步', icon: 'success' })
- // })
-
- // 检查登录状态
- //this.checkLogin()
- },
- onShow() {
- // 加载用户和VIP状态
- this.loadUserData()
- },
- methods: {
- // 初始化应用配置
- initConfig() {
- this.globalData.config = config
- },
-
- // 检查用户登录状态
- checkLogin() {
- if (!getToken()) {
- this.$tab.reLaunch('/pages/login')
- }
- },
- // 同步阅读进度(需要实现)
- async syncReadingProgress() {
- // 实现阅读进度同步逻辑
- console.log('阅读进度同步逻辑待实现')
- },
- // 加载用户数据
- async loadUserData() {
- // 检查登录状态
- if (uni.getStorageSync('token')) {
- // 加载用户信息
- await this.userStore.initUser()
-
- // 加载VIP状态
- if (this.userStore.userId) {
- await this.vipStore.loadVipStatus(this.userStore.userId)
- }
- }
- }
- }
- }
- </script>
-
- <style lang="scss">
- /* 确保所有页面有基本样式 */
- page {
- height: 100%;
- background-color: #ffffff;
- font-size: 28rpx;
- color: #333;
- }
- /* 解决部分设备显示问题 */
- body, html {
- height: 100%;
- background-color: #ffffff;
- }
- /* 容器样式 */
- .container {
- min-height: 100%;
- padding: 20rpx;
- box-sizing: border-box;
- }
- /* 修正:每个 @import 语句末尾添加分号 */
- @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;
- }
-
- /* 全局样式 */
- page {
- background-color: var(--bg-color);
- color: var(--text-color);
- font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
- }
- </style>
|