Browse Source

tj

master
yinshaojie 9 months ago
parent
commit
155cda9949

+ 88
- 101
RuoYi-App/App.vue View File

@@ -3,75 +3,105 @@
3 3
     <router-view />
4 4
   </view>
5 5
 </template>
6
+
6 7
 <script>
7
-  import config from './config'
8
-  import { getToken } from '@/utils/auth'
9
-import { useThemeStore } from '@/stores/theme'
8
+import config from './config'
9
+import { getToken } from '@/utils/auth'
10 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'
11
+import { useThemeStore } from '@/store/theme'  // 修正路径
12
+import { useUserStore } from '@/store/user'    // 修正路径
13
+import { useVipStore } from '@/store/vip'      // 修正路径
14 14
 import { useReminder } from '@/utils/reminder'
15 15
 import { readingService } from '@/services/readingService'
16
-// 初始化主题
17
-onLaunch(() => {
18
-  // 登录成功后同步进度
19
-  uni.$on('loginSuccess', async () => {
20
-    await readingService.syncAllLocalProgress()
21
-    uni.showToast({ title: '阅读进度已同步', icon: 'success' })
22
-  })
23
-	  // 初始化签到提醒
24
-	  useReminder.init()
25
-	  
26
-  const themeStore = useThemeStore()
27
-  themeStore.initTheme()
28
-})
29
-// 每次启动时加载用户和VIP状态
30
-onShow(async () => {
31
-  const userStore = useUserStore()
32
-  const vipStore = useVipStore()
33
-  
34
-  // 检查登录状态
35
-  if (uni.getStorageSync('token')) {
36
-    // 加载用户信息
37
-    await userStore.initUser()
38
-    
39
-    // 加载VIP状态
40
-    if (userStore.userId) {
41
-      await vipStore.loadVipStatus(userStore.userId)
16
+
17
+export default {
18
+  data() {
19
+    return {
20
+      themeStore: useThemeStore(),
21
+      userStore: useUserStore(),
22
+      vipStore: useVipStore()
42 23
     }
43
-  }
44
-})
45
-  export default {
46
-    onLaunch: function() {
47
-      this.initApp()
24
+  },
25
+  onLaunch() {
26
+    // 初始化主题
27
+    this.themeStore.initTheme()
28
+    // 检查登录状态
29
+    this.checkLogin()
30
+    // 初始化用户
31
+    this.userStore.initUser()
32
+    // 初始化签到提醒
33
+    useReminder.init()
34
+    
35
+    // 登录成功后同步进度
36
+    // uni.$on('loginSuccess', async () => {
37
+    //   await readingService.syncAllLocalProgress()
38
+    //   uni.showToast({ title: '阅读进度已同步', icon: 'success' })
39
+    // })
40
+    
41
+    // 检查登录状态
42
+    //this.checkLogin()
43
+  },
44
+  onShow() {
45
+    // 加载用户和VIP状态
46
+    this.loadUserData()
47
+  },
48
+  methods: {
49
+    // 初始化应用配置
50
+    initConfig() {
51
+      this.globalData.config = config
48 52
     },
49
-    methods: {
50
-      // 初始化应用
51
-      initApp() {
52
-        // 初始化应用配置
53
-        this.initConfig()
54
-        // 检查用户登录状态
55
-        //#ifdef H5
56
-        this.checkLogin()
57
-        //#endif
58
-      },
59
-      initConfig() {
60
-        this.globalData.config = config
61
-      },
62
-      checkLogin() {
63
-        if (!getToken()) {
64
-          this.$tab.reLaunch('/pages/login') 
53
+    
54
+    // 检查用户登录状态
55
+    checkLogin() {
56
+      if (!getToken()) {
57
+        this.$tab.reLaunch('/pages/login') 
58
+      }
59
+    },
60
+        // 同步阅读进度(需要实现)
61
+        async syncReadingProgress() {
62
+          // 实现阅读进度同步逻辑
63
+          console.log('阅读进度同步逻辑待实现')
64
+        },
65
+    // 加载用户数据
66
+    async loadUserData() {
67
+      // 检查登录状态
68
+      if (uni.getStorageSync('token')) {
69
+        // 加载用户信息
70
+        await this.userStore.initUser()
71
+        
72
+        // 加载VIP状态
73
+        if (this.userStore.userId) {
74
+          await this.vipStore.loadVipStatus(this.userStore.userId)
65 75
         }
66 76
       }
67 77
     }
68 78
   }
79
+}
69 80
 </script>
70 81
 
71 82
 <style lang="scss">
72
-  @import '@/static/scss/index.scss'
73
-@import '@/styles/themes/default.scss';
74
-@import '@/styles/themes/aydz-blue.scss';
83
+	  /* 确保所有页面有基本样式 */
84
+	  page {
85
+	    height: 100%;
86
+	    background-color: #ffffff;
87
+	    font-size: 28rpx;
88
+	    color: #333;
89
+	  }
90
+	    /* 解决部分设备显示问题 */
91
+	    body, html {
92
+	      height: 100%;
93
+	      background-color: #ffffff;
94
+	    }
95
+		  /* 容器样式 */
96
+		  .container {
97
+		    min-height: 100%;
98
+		    padding: 20rpx;
99
+		    box-sizing: border-box;
100
+		  }
101
+/* 修正:每个 @import 语句末尾添加分号 */
102
+@import '@/static/scss/index.scss';
103
+//@import '@/styles/themes/default.scss';
104
+//@import '@/styles/themes/aydz-blue.scss';
75 105
 
76 106
 .app-container {
77 107
   font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
@@ -87,6 +117,7 @@ onShow(async () => {
87 117
   --text-color: #333;
88 118
   --card-bg: #ffffff;
89 119
   --header-bg: #ffffff;
120
+  
90 121
   /* 确保所有页面继承主题 */
91 122
   background-color: var(--bg-color);
92 123
   color: var(--text-color);
@@ -126,56 +157,12 @@ onShow(async () => {
126 157
   border-radius: 24px;
127 158
   padding: 10px 20px;
128 159
   font-weight: bold;
129
-}/* 全局主题变量 */
130
-:root {
131
-  --primary-color: #1890ff;
132
-  --bg-color: #f8f9fa;
133
-  --text-color: #333;
134
-  --card-bg: #ffffff;
135
-  
136
-  /* 确保所有页面继承主题 */
137
-  background-color: var(--bg-color);
138
-  color: var(--text-color);
139 160
 }
140 161
 
141
-/* 哎呀科技蓝主题变量覆盖 */
142
-.theme-aydzBlue {
143
-  --primary-color: #2a5caa;
144
-  --bg-color: #e6f7ff;
145
-  --text-color: #1a3353;
146
-  --card-bg: #d0e8ff;
147
-}
148
-
149
-/* 深色模式主题变量覆盖 */
150
-.theme-darkMode {
151
-  --primary-color: #52c41a;
152
-  --bg-color: #1a1a1a;
153
-  --text-color: #e6e6e6;
154
-  --card-bg: #2a2a2a;
155
-}
156
-
157
-/* 公共组件样式 */
158
-.card {
159
-  background-color: var(--card-bg);
160
-  border-radius: 12px;
161
-  padding: 16px;
162
-  margin-bottom: 16px;
163
-  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
164
-}
165
-
166
-.primary-button {
167
-  background-color: var(--primary-color);
168
-  color: white;
169
-  border: none;
170
-  border-radius: 24px;
171
-  padding: 10px 20px;
172
-  font-weight: bold;
173
-}
174 162
 /* 全局样式 */
175 163
 page {
176 164
   background-color: var(--bg-color);
177 165
   color: var(--text-color);
178 166
   font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
179 167
 }
180
-
181
-</style>
168
+</style>

BIN
RuoYi-App/RuoYi-App.zip View File


+ 9
- 3
RuoYi-App/main.js View File

@@ -4,7 +4,13 @@ import store from './store' // store
4 4
 import plugins from './plugins' // plugins
5 5
 import './permission' // permission
6 6
 import { getDicts } from "@/api/system/dict/data"
7
+import { createApp } from 'vue'
8
+import { createPinia } from 'pinia'
7 9
 
10
+const app = createApp(App)
11
+const pinia = createPinia()
12
+app.use(pinia)
13
+app.mount('#app')
8 14
 Vue.use(plugins)
9 15
 
10 16
 Vue.config.productionTip = false
@@ -13,8 +19,8 @@ Vue.prototype.getDicts = getDicts
13 19
 
14 20
 App.mpType = 'app'
15 21
 
16
-const app = new Vue({
17
-  ...App
18
-})
22
+// const app = new Vue({
23
+//   ...App
24
+// })
19 25
 
20 26
 app.$mount()

+ 74
- 76
RuoYi-App/manifest.json View File

@@ -1,73 +1,71 @@
1 1
 {
2
-    "name" : "哎呀免费小说",
3
-    "appid" : "__UNI__25A9D80",
4
-    "description" : "哎呀电子科技旗下小说阅读平台",
5
-    "versionName" : "1.0.0",
6
-    "versionCode" : "100",
7
-    "transformPx" : false,
8
-    "app-plus" : {
9
-        "usingComponents" : true,
10
-        "nvueCompiler" : "uni-app",
11
-        "splashscreen" : {
12
-            "alwaysShowBeforeRender" : true,
13
-            "waiting" : true,
14
-            "autoclose" : true,
15
-            "delay" : 0
16
-        },
17
-        "modules" : {},
18
-        "distribute" : {
19
-            "android" : {
20
-                "permissions" : [
21
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
22
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
23
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
24
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
25
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
26
-                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
27
-                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
28
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
29
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
30
-                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
31
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
32
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
33
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
34
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
35
-                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
36
-                ]
37
-            },
38
-            "ios" : {},
39
-            "sdkConfigs" : {}
40
-        }
2
+  "name": "哎呀免费小说",
3
+  "appid": "__UNI__25A9D80",
4
+  "description": "哎呀电子科技旗下小说阅读平台",
5
+  "versionName": "1.0.0",
6
+  "versionCode": "100",
7
+  "transformPx": false,
8
+  "app-plus": {
9
+    "usingComponents": true,
10
+    "nvueCompiler": "uni-app",
11
+    "splashscreen": {
12
+      "alwaysShowBeforeRender": true,
13
+      "waiting": true,
14
+      "autoclose": true,
15
+      "delay": 0
41 16
     },
42
-    "quickapp" : {},
43
-    "mp-weixin" : {
44
-        "appid" : "YOUR_WECHAT_APPID",
45
-        "setting" : {
46
-            "urlCheck" : false,
47
-            "es6" : false,
48
-            "minified" : true,
49
-            "postcss" : true
50
-        },
51
-        "optimization" : {
52
-            "subPackages" : true
53
-        },
54
-        "usingComponents" : true
17
+    "modules": {},
18
+    "distribute": {
19
+      "android": {
20
+        "permissions": [
21
+          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
22
+          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
23
+          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
24
+          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
25
+          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
26
+          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
27
+          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
28
+          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
29
+          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
30
+          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
31
+          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
32
+          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
33
+          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
34
+          "<uses-feature android:name=\"android.hardware.camera\"/>",
35
+          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
36
+        ]
37
+      },
38
+      "ios": {},
39
+      "sdkConfigs": {}
40
+    }
41
+  },
42
+  "quickapp": {},
43
+  "mp-weixin": {
44
+    "appid": "YOUR_WECHAT_APPID",
45
+    "setting": {
46
+      "urlCheck": false,
47
+      "es6": false,
48
+      "minified": true,
49
+      "postcss": true
55 50
     },
56
-    "usingComponents": true,
57
-    "permission": {
58
-      "scope.userLocation": {
59
-        "desc": "用于附近书店功能"
60
-      }
51
+    "optimization": {
52
+      "subPackages": true
61 53
     },
62
-    "plugins": {
63
-      "adPlugin": {
64
-        "version": "1.2.7",
65
-        "provider": "wx3f8e7a3d8a3d8a3d"
66
-      }
54
+    "usingComponents": true
55
+  },
56
+  "usingComponents": true,
57
+  "permission": {
58
+    "scope.userLocation": {
59
+      "desc": "用于附近书店功能"
60
+    }
61
+  },
62
+  "plugins": {
63
+    "adPlugin": {
64
+      "version": "1.2.7",
65
+      "provider": "wx3f8e7a3d8a3d8a3d"
67 66
     }
68 67
   },
69
-   /*   "vueVersion" : "2", */
70
-   /*抖音小程序配置 */
68
+  "vueVersion": "2",
71 69
   "mp-toutiao": {
72 70
     "appid": "YOUR_DOUYIN_APPID",
73 71
     "setting": {
@@ -83,17 +81,17 @@
83 81
       }
84 82
     }
85 83
   },
86
-    "h5" : {
84
+  "h5": {
87 85
     "title": "哎呀免费小说",
88
-        "template" : "static/index.html",
89
-        "devServer" : {
90
-            "port" : 9090,
91
-            "https" : false
92
-        },
93
-        "router" : {
94
-            "mode" : "hash",
95
-            "base" : "./"
96
-        }
86
+    "template": "static/index.html",
87
+    "devServer": {
88
+      "port": 9090,
89
+      "https": false
90
+    },
91
+    "router": {
92
+      "mode": "hash",
93
+      "base": "./"
94
+    },
97 95
     "optimization": {
98 96
       "treeShaking": {
99 97
         "enable": true
@@ -104,5 +102,5 @@
104 102
         "adpid": "H5_AD_PID"
105 103
       }
106 104
     }
107
-    }
108
-}
105
+  }
106
+}

+ 5
- 0
RuoYi-App/package.json View File

@@ -0,0 +1,5 @@
1
+{
2
+  "dependencies": {
3
+    "pinia": "^2.1.7"
4
+  }
5
+}

+ 26
- 16
RuoYi-App/pages.json View File

@@ -1,5 +1,15 @@
1 1
 {
2
-  "pages": [{
2
+  "pages": [
3
+	     {
4
+	        "path": "pages/index/index",  // 确保这是您的首页文件路径
5
+	        "style": {
6
+	          "navigationBarTitleText": "首页",
7
+	          "enablePullDownRefresh": false
8
+	        }
9
+	      },
10
+	  
11
+	  
12
+	  {
3 13
     "path": "pages/login",
4 14
     "style": {
5 15
       "navigationBarTitleText": "登录"
@@ -72,24 +82,24 @@
72 82
     }
73 83
   }],
74 84
   "tabBar": {
75
-    "color": "#000000",
76
-    "selectedColor": "#000000",
77
-    "borderStyle": "white",
85
+    "color": "#7A7E83",
86
+    "selectedColor": "#3cc51f",
87
+    "borderStyle": "black",
78 88
     "backgroundColor": "#ffffff",
79 89
     "list": [{
80
-        "pagePath": "pages/index",
81
-        "iconPath": "static/images/tabbar/home.png",
82
-        "selectedIconPath": "static/images/tabbar/home_.png",
90
+        "pagePath": "pages/index/index",  // 首页tab",
91
+        "iconPath": "static/tabbar/home.png",
92
+        "selectedIconPath": "static/tabbar/home_active.png",
83 93
         "text": "首页"
84
-      }, {
85
-        "pagePath": "pages/work/index",
86
-        "iconPath": "static/images/tabbar/work.png",
87
-        "selectedIconPath": "static/images/tabbar/work_.png",
88
-        "text": "工作台"
89
-      }, {
90
-        "pagePath": "pages/mine/index",
91
-        "iconPath": "static/images/tabbar/mine.png",
92
-        "selectedIconPath": "static/images/tabbar/mine_.png",
94
+      },       {
95
+        "pagePath": "pages/bookshelf/index",  // 书架页
96
+        "iconPath": "static/tabbar/bookshelf.png",
97
+        "selectedIconPath": "static/tabbar/bookshelf_active.png",
98
+        "text": "书架"
99
+      },       {
100
+        "pagePath": "pages/me/index",  // 我的页面
101
+        "iconPath": "static/tabbar/me.png",
102
+        "selectedIconPath": "static/tabbar/me_active.png",
93 103
         "text": "我的"
94 104
       }
95 105
     ]

+ 7
- 4
RuoYi-App/pages/index.vue View File

@@ -8,19 +8,21 @@
8 8
 </template>
9 9
 
10 10
 <style scoped>
11
+	  page {
12
+	    height: 100%;
13
+	    background-color: #fff;
14
+	  }
11 15
   .content {
12 16
     display: flex;
13 17
     flex-direction: column;
14 18
     align-items: center;
15 19
     justify-content: center;
20
+    height: 100vh; /* 确保全屏高度 */
16 21
   }
17 22
 
18 23
   .logo {
19 24
     height: 200rpx;
20 25
     width: 200rpx;
21
-    margin-top: 200rpx;
22
-    margin-left: auto;
23
-    margin-right: auto;
24 26
     margin-bottom: 50rpx;
25 27
   }
26 28
 
@@ -31,6 +33,7 @@
31 33
 
32 34
   .title {
33 35
     font-size: 36rpx;
34
-    color: #8f8f94;
36
+    color: #333; /* 修改为深色确保可见 */
37
+    font-weight: bold;
35 38
   }
36 39
 </style>

+ 39
- 0
RuoYi-App/pages/index/index.vue View File

@@ -0,0 +1,39 @@
1
+<template>
2
+  <view class="content">
3
+    <image class="logo" src="@/static/logo.png"></image>
4
+    <view class="text-area">
5
+      <text class="title">Hello RuoYi</text>
6
+    </view>
7
+  </view>
8
+</template>
9
+
10
+<style scoped>
11
+	  page {
12
+	    height: 100%;
13
+	    background-color: #fff;
14
+	  }
15
+  .content {
16
+    display: flex;
17
+    flex-direction: column;
18
+    align-items: center;
19
+    justify-content: center;
20
+    height: 100vh; /* 确保全屏高度 */
21
+  }
22
+
23
+  .logo {
24
+    height: 200rpx;
25
+    width: 200rpx;
26
+    margin-bottom: 50rpx;
27
+  }
28
+
29
+  .text-area {
30
+    display: flex;
31
+    justify-content: center;
32
+  }
33
+
34
+  .title {
35
+    font-size: 36rpx;
36
+    color: #333; /* 修改为深色确保可见 */
37
+    font-weight: bold;
38
+  }
39
+</style>

+ 27
- 0
RuoYi-App/static/scss/index.scss View File

@@ -1,3 +1,30 @@
1
+
2
+// 基础样式重置
3
+* {
4
+  margin: 0;
5
+  padding: 0;
6
+  box-sizing: border-box;
7
+}
8
+
9
+// 基础排版
10
+body {
11
+  font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
12
+  line-height: 1.6;
13
+}
14
+
15
+// 工具类
16
+.flex-center {
17
+  display: flex;
18
+  justify-content: center;
19
+  align-items: center;
20
+}
21
+
22
+.text-ellipsis {
23
+  white-space: nowrap;
24
+  overflow: hidden;
25
+  text-overflow: ellipsis;
26
+}
27
+
1 28
 // global
2 29
 @import "./global.scss";
3 30
 // color-ui

RuoYi-App/store/vipStore.js → RuoYi-App/store/vip.js View File


Loading…
Cancel
Save