# 小说阅读相关组件
本目录包含小说阅读页面使用的各种公共组件,所有组件都支持暗色主题模式。
## 组件列表
### 1. 订阅弹窗 (subscriptionPopup.vue)
中心弹出的订阅章节提示弹窗。
#### 使用方法
```html
```
### 2. 支付弹窗 (paymentPopup.vue)
从底部弹出的支付方式选择弹窗。
#### 使用方法
```html
```
### 3. 章节目录弹窗 (chapterPopup.vue)
显示小说章节列表的弹窗。
#### 使用方法
```html
```
### 4. 评分弹窗 (novelVotePopup.vue)
用于评价小说的弹窗组件。
## 暗色主题支持
所有组件都支持暗色主题模式,当系统切换到暗色模式或用户手动切换时,组件会自动应用暗色样式。
### 主题切换
主题的状态保存在Vuex中,可以通过以下方式切换:
```js
// 切换主题模式
this.$store.commit('toggleThemeMode')
// 设置为特定模式
this.$store.commit('setThemeMode', 'dark') // 或 'light'
// 获取当前主题模式
const isDarkMode = this.$store.getters.isDarkMode
```
### 使用主题混入器
为了方便在组件中使用主题相关功能,可以引入主题混入器:
```js
import themeMixin from '@/mixins/themeMode.js'
export default {
mixins: [themeMixin],
// 然后可以直接使用以下属性和方法
created() {
console.log(this.isDarkMode) // 是否为暗色模式
console.log(this.currentTheme) // 'light' 或 'dark'
// 切换主题
this.toggleThemeMode()
}
}
```
详细的文档请参考 `doc/dark-mode-guide.md`。