Skip to content

Commit 6ba19f6

Browse files
committed
v0.7.18 完成换肤功能, 但是待优化
1 parent 66a91a7 commit 6ba19f6

File tree

10 files changed

+167
-40
lines changed

10 files changed

+167
-40
lines changed

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
GH_TOKEN=fc794ea58a602f31788c54d612afa4bbd1e225c4
1+
GH_TOKEN=bf20e1fde476eafdc8d67c0cd7b9fe8bf3c063fe

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
# ZY Player
1212

13-
资源播放器, 提供影视资源的搜索,查看,播放,搜藏等功能.
13+
资源播放器, 提供影视资源的浏览,搜索,播放,收藏,查看详情等功能.
1414

1515
### 截图:
1616
主界面 ⬇
@@ -23,7 +23,7 @@
2323
![detail.png](https://i.loli.net/2020/01/19/CN8E1ikyMbhzo9t.png)
2424
播放 ⬇
2525
![play.png](https://i.loli.net/2020/01/19/4XlJRqmx2y8zAec.png)
26-
搜藏
26+
收藏
2727
![star.png](https://i.loli.net/2020/01/19/Q2fkWUvaXKZJcS4.png)
2828

2929
### 下载:

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "zy",
3-
"version": "0.7.17",
3+
"version": "0.7.18",
44
"private": true,
55
"scripts": {
66
"serve": "vue-cli-service serve",

src/App.vue

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<el-container id="app" class="theme-light">
2+
<el-container id="app" :class="appTheme">
33
<el-header class="Header">
44
<i class="el-icon-minus" @click="clickFrameEvent('min')"></i>
55
<i class="el-icon-plus" @click="clickFrameEvent('max')"></i>
@@ -40,7 +40,9 @@ import { mapMutations } from 'vuex'
4040
const { ipcRenderer: ipc } = require('electron')
4141
export default Vue.extend({
4242
data () {
43-
return {}
43+
return {
44+
appTheme: 'theme-light'
45+
}
4446
},
4547
computed: {
4648
Main: {
@@ -58,6 +60,14 @@ export default Vue.extend({
5860
set (val) {
5961
this.SET_DETAIL(val)
6062
}
63+
},
64+
theme () {
65+
return this.$store.getters.getTheme
66+
}
67+
},
68+
watch: {
69+
theme () {
70+
this.changeTheme()
6171
}
6272
},
6373
components: {
@@ -70,9 +80,11 @@ export default Vue.extend({
7080
},
7181
asideMenuClick (e:string) {
7282
this.Main = e
83+
},
84+
changeTheme () {
85+
this.appTheme = `theme-${this.theme}`
7386
}
74-
},
75-
created () {}
87+
}
7688
})
7789
</script>
7890
<style lang="scss">

src/page/setting.vue

Lines changed: 88 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,40 @@
11
<template>
22
<el-row class="setting">
3-
<el-row class="item about">
4-
<el-row class="title"><i class="el-icon-view"></i><span>关于</span></el-row>
3+
<el-row class="item site">
4+
<el-row class="title"><i class="el-icon-set-up"></i><span>默认资源</span></el-row>
55
<el-row class="info">
6-
<ul>
7-
<li><el-link :underline="false" @click="linkOpen('https://zy_player.hunlongyu.fun')">官网: ZY Player</el-link></li>
8-
<li><el-link :underline="false" @click="linkOpen('https://github.com/Hunlongyu/ZY-Player/issues')">反馈: Issues</el-link></li>
9-
</ul>
6+
<el-select v-model="dbSite" placeholder="请选择" size="small" @change="selectSite">
7+
<el-option
8+
v-for="(i, j) in sites"
9+
:key="i.id"
10+
:label="i.name"
11+
:value="j">
12+
</el-option>
13+
</el-select>
1014
</el-row>
1115
</el-row>
1216
<el-row class="item theme">
1317
<el-row class="title"><i class="el-icon-picture-outline-round"></i><span>主题</span></el-row>
1418
<el-row class="card-box">
1519
<el-card shadow="hover" class="card">
16-
<img src="@/assets/image/light.png" class="image">
20+
<img src="@/assets/image/light.png" class="image" @click="selectTheme('light')">
1721
<span size="mini">Light</span>
1822
</el-card>
1923
<el-card shadow="hover" class="card">
20-
<img src="@/assets/image/light.png" class="image">
24+
<img src="@/assets/image/light.png" class="image" @click="selectTheme('dark')">
2125
<span size="mini">Dark</span>
2226
</el-card>
2327
</el-row>
2428
</el-row>
29+
<el-row class="item about">
30+
<el-row class="title"><i class="el-icon-view"></i><span>关于</span></el-row>
31+
<el-row class="info">
32+
<ul>
33+
<li><el-link :underline="false" @click="linkOpen('https://zy_player.hunlongyu.fun')">官网: ZY Player</el-link></li>
34+
<li><el-link :underline="false" @click="linkOpen('https://github.com/Hunlongyu/ZY-Player/issues')">反馈: Issues</el-link></li>
35+
</ul>
36+
</el-row>
37+
</el-row>
2538
<!-- <el-row class="item update">
2639
<el-row class="title"><i class="el-icon-refresh"></i><span>更新</span></el-row>
2740
<el-row class="btns">
@@ -32,17 +45,81 @@
3245
</template>
3346
<script lang="ts">
3447
import Vue from 'vue'
48+
import sites from '@/lib/sites'
49+
import { mapMutations } from 'vuex'
3550
import { shell } from 'electron'
36-
import setting from '@/plugins/dexie/setting'
51+
import site from '@/plugins/dexie/site'
52+
import theme from '@/plugins/dexie/theme'
3753
export default Vue.extend({
54+
name: 'setting',
55+
data () {
56+
return {
57+
sites: sites,
58+
dbSite: 0
59+
}
60+
},
61+
computed: {
62+
site: {
63+
get () {
64+
return this.$store.getters.getSite
65+
},
66+
set (val) {
67+
this.SET_SITE(val)
68+
}
69+
},
70+
theme: {
71+
get () {
72+
return this.$store.getters.getTheme
73+
},
74+
set (val) {
75+
this.SET_THEME(val)
76+
}
77+
}
78+
},
3879
methods: {
80+
...mapMutations(['SET_SITE', 'SET_THEME']),
3981
linkOpen (e:string) {
4082
if (e) {
4183
shell.openExternal(e)
4284
}
85+
},
86+
initSetting () {
87+
site.find().then(res => {
88+
if (!res) {
89+
site.add({ site: 0 })
90+
} else {
91+
this.dbSite = res.site
92+
this.site = res.site
93+
}
94+
})
95+
theme.find().then(res => {
96+
if (!res) {
97+
theme.add({ theme: 'light' })
98+
} else {
99+
this.theme = res.theme
100+
}
101+
})
102+
},
103+
selectSite () {
104+
site.update({ site: this.dbSite }).then(res => {
105+
this.site = this.dbSite
106+
this.$message.success('设置默认资源成功~')
107+
}).catch(() => {
108+
this.$message.warning('设置默认资源失败~')
109+
})
110+
},
111+
selectTheme (e: string) {
112+
theme.update({ theme: e }).then(res => {
113+
this.theme = e
114+
this.$message.success('切换主题成功~')
115+
}).catch(() => {
116+
this.$message.warning('切换主题失败~')
117+
})
43118
}
44119
},
45-
created () {}
120+
created () {
121+
this.initSetting()
122+
}
46123
})
47124
</script>
48125
<style lang="scss" scoped>
@@ -77,8 +154,8 @@ export default Vue.extend({
77154
width: 160px;
78155
margin-right: 20px;
79156
text-align: center;
80-
cursor: pointer;
81157
img{
158+
cursor: pointer;
82159
width: 100%;
83160
}
84161
span{

src/plugins/dexie/index.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
import Dexie from 'dexie'
22

33
class ZYDB extends Dexie {
4-
setting: Dexie.Table<setting, number>
4+
theme: Dexie.Table<theme, number>
5+
site: Dexie.Table<site, number>
56
video: Dexie.Table<video, number>
67

78
constructor () {
89
super('ZYDB')
910
this.version(1).stores({
10-
setting: '++id, theme, site',
11+
theme: '++id, theme',
12+
site: '++id, site',
1113
video: '++id, name, type, time, detail, urls, index'
1214
})
1315

14-
this.setting = this.table('setting')
16+
this.theme = this.table('theme')
17+
this.site = this.table('site')
1518
this.video = this.table('video')
1619
}
1720
}
1821

19-
export interface setting {
20-
id?: number
22+
export interface theme {
23+
id: number
2124
theme?: string
22-
site?: object
25+
}
26+
27+
export interface site {
28+
id: number
29+
site?: number
2330
}
2431

2532
export interface video {

src/plugins/dexie/setting.ts renamed to src/plugins/dexie/site.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,31 @@ import db from './index'
33
export default {
44
add (data: any): Promise<any> {
55
return new Promise((resolve, reject) => {
6-
db.setting.add(data).then(res => {
6+
db.site.add(data).then(res => {
77
resolve(res)
88
}).catch(err => {
99
reject(err)
1010
})
1111
})
1212
},
13-
find (data?: any): Promise<any> {
13+
find (): Promise<any> {
1414
return new Promise((resolve, reject) => {
15-
db.setting.get(data).then(res => {
15+
db.site.get(1).then((res: any) => {
1616
resolve(res)
1717
}).catch(err => {
1818
reject(err)
1919
})
2020
})
2121
},
22-
update (id: number, data: any): Promise<any> {
22+
update (data: any): Promise<any> {
2323
return new Promise((resolve, reject) => {
24-
db.setting.update(id, data).then(updated => {
24+
db.site.update(1, data).then(updated => {
2525
if (updated) {
2626
resolve(updated)
2727
} else {
2828
reject(updated)
2929
}
3030
})
3131
})
32-
},
33-
count (): Promise<any> {
34-
return new Promise((resolve, reject) => {
35-
db.setting.count().then(res => {
36-
resolve(res)
37-
}).catch(err => {
38-
reject(err)
39-
})
40-
})
4132
}
4233
}

src/plugins/dexie/theme.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import db from './index'
2+
3+
export default {
4+
add (data: any): Promise<any> {
5+
return new Promise((resolve, reject) => {
6+
db.theme.add(data).then(res => {
7+
resolve(res)
8+
}).catch(err => {
9+
reject(err)
10+
})
11+
})
12+
},
13+
find (): Promise<any> {
14+
return new Promise((resolve, reject) => {
15+
db.theme.get(1).then((res: any) => {
16+
resolve(res)
17+
}).catch(err => {
18+
reject(err)
19+
})
20+
})
21+
},
22+
update (data: any): Promise<any> {
23+
return new Promise((resolve, reject) => {
24+
db.theme.update(1, data).then(updated => {
25+
if (updated) {
26+
resolve(updated)
27+
} else {
28+
reject(updated)
29+
}
30+
})
31+
})
32+
}
33+
}

src/plugins/dexie/video.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default {
1010
})
1111
})
1212
},
13-
find (data?: any): Promise<any> {
13+
find (data: any): Promise<any> {
1414
return new Promise((resolve, reject) => {
1515
db.video.get(data).then(res => {
1616
resolve(res)

src/store/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default new Vuex.Store({
77
state: {
88
Main: 'Search',
99
site: 0,
10+
theme: 'light',
1011
detail: {
1112
show: false,
1213
video: ''
@@ -21,6 +22,9 @@ export default new Vuex.Store({
2122
getSite: state => {
2223
return state.site
2324
},
25+
getTheme: state => {
26+
return state.theme
27+
},
2428
getDetail: state => {
2529
return state.detail
2630
},
@@ -35,6 +39,9 @@ export default new Vuex.Store({
3539
SET_SITE: (state, payload) => {
3640
state.site = payload
3741
},
42+
SET_THEME: (state, payload) => {
43+
state.theme = payload
44+
},
3845
SET_DETAIL: (state, payload) => {
3946
state.detail = payload
4047
},

0 commit comments

Comments
 (0)