mirror of
https://github.com/cuiocean/ZY-Player.git
synced 2026-05-05 20:44:52 +08:00
database done
This commit is contained in:
19
src/App.vue
19
src/App.vue
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div id="app" :class="getTheme">
|
||||
<div id="app" :class="getTheme.color">
|
||||
<Layout class="box">
|
||||
<Sider class="sider" width="70"><ZYSider /></Sider>
|
||||
<Layout>
|
||||
@@ -15,6 +15,7 @@
|
||||
import { mapGetters, mapActions } from 'vuex'
|
||||
import ZYSider from '@/components/zy_sider.vue'
|
||||
import ZYHeader from '@/components/zy_header.vue'
|
||||
import setting from './plugin/nedb/setting'
|
||||
export default {
|
||||
name: 'app',
|
||||
data () {
|
||||
@@ -36,13 +37,15 @@ export default {
|
||||
},
|
||||
beforeCreate () {},
|
||||
created () {
|
||||
// db.find('theme').then(e => {
|
||||
// if (!e) {
|
||||
// this.changeTheme('light')
|
||||
// } else {
|
||||
// this.changeTheme(e)
|
||||
// }
|
||||
// })
|
||||
setting.find({ $or: [{ theme: 'light' }, { theme: 'dark' }] }).then(e => {
|
||||
if (e.length <= 0) {
|
||||
setting.add({ theme: 'light' }).then(res => {
|
||||
this.changeTheme({ id: res._id, color: res.theme })
|
||||
})
|
||||
} else {
|
||||
this.changeTheme({ id: e[0]._id, color: e[0].theme })
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -26,6 +26,7 @@ function createWindow () {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
if (process.env.WEBPACK_DEV_SERVER_URL) {
|
||||
// Load the url of the dev server if in development mode
|
||||
win.loadURL(process.env.WEBPACK_DEV_SERVER_URL)
|
||||
|
||||
@@ -1,42 +1,20 @@
|
||||
import jetpack from 'fs-jetpack'
|
||||
import fs from 'fs'
|
||||
import Nedb from 'nedb'
|
||||
import { remote } from 'electron'
|
||||
|
||||
export default class {
|
||||
constructor () {
|
||||
this.db = null
|
||||
this.dataDir = jetpack.cwd(remote.app.getPath('appData'))
|
||||
}
|
||||
|
||||
createOrReadDB (db) {
|
||||
const dirName = process.env.NODE_ENV === 'development' ? '.ZY-dev' : '.ZY'
|
||||
const existsDir = jetpack.exists(this.dataDir.path(dirName))
|
||||
if (!existsDir) {
|
||||
fs.mkdir(this.dataDir.path(`${dirName}`), (err) => {
|
||||
if (err) console.log(err)
|
||||
})
|
||||
}
|
||||
|
||||
const eSetting = fs.existsSync(this.dataDir.path(`${dirName}/${db.setting}`))
|
||||
const eVideo = fs.existsSync(this.dataDir.path(`${dirName}/${db.video}`))
|
||||
let database = {}
|
||||
|
||||
if (!eSetting) {
|
||||
this.dataDir.write(this.dataDir.path(`${dirName}/${db.setting}`), '')
|
||||
}
|
||||
|
||||
if (!eVideo) {
|
||||
this.dataDir.write(this.dataDir.path(`${dirName}/${db.video}`), '')
|
||||
}
|
||||
create (db) {
|
||||
const name = process.env.NODE_ENV === 'development' ? 'ZY-dev' : 'ZY'
|
||||
const database = {}
|
||||
|
||||
database.setting = new Nedb({
|
||||
filename: this.dataDir.path(`${dirName}/${db.setting}`),
|
||||
filename: name + db.setting,
|
||||
autoload: true
|
||||
})
|
||||
|
||||
database.video = new Nedb({
|
||||
filename: this.dataDir.path(`${dirName}/${db.video}`),
|
||||
filename: name + db.video,
|
||||
autoload: true
|
||||
})
|
||||
|
||||
@@ -48,9 +26,9 @@ export default class {
|
||||
return this.db
|
||||
}
|
||||
|
||||
this.db = this.createOrReadDB({
|
||||
setting: 'setting.db',
|
||||
video: 'video.db'
|
||||
this.db = this.create({
|
||||
setting: '-setting',
|
||||
video: '-video'
|
||||
})
|
||||
|
||||
return this.db
|
||||
|
||||
@@ -4,8 +4,6 @@ const db = new DB()
|
||||
const connect = db.init()
|
||||
const setting = connect.setting
|
||||
|
||||
console.log(setting, 'setting')
|
||||
|
||||
export default {
|
||||
add (data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -25,7 +23,7 @@ export default {
|
||||
},
|
||||
update (id, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
setting.find({ _id: id }, { $set: data }, (err, docs) => {
|
||||
setting.update({ _id: id }, { $set: data }, (err, docs) => {
|
||||
if (err) { reject(err) }
|
||||
resolve(docs)
|
||||
})
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
// import DB from './index'
|
||||
import DB from './index'
|
||||
|
||||
const db = new DB()
|
||||
const connect = db.init()
|
||||
const video = connect.video
|
||||
|
||||
export default {
|
||||
add (data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
video.insert(data, (err, docs) => {
|
||||
if (err) { reject(err) }
|
||||
resolve(docs)
|
||||
})
|
||||
})
|
||||
},
|
||||
find (data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
video.find(data, (err, docs) => {
|
||||
if (err) { reject(err) }
|
||||
resolve(docs)
|
||||
})
|
||||
})
|
||||
},
|
||||
update (id, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
video.find({ _id: id }, { $set: data }, (err, docs) => {
|
||||
if (err) { reject(err) }
|
||||
resolve(docs)
|
||||
})
|
||||
})
|
||||
},
|
||||
remove (id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
video.remove({ _id: id }, {}, (err, docs) => {
|
||||
if (err) { reject(err) }
|
||||
resolve(docs)
|
||||
})
|
||||
})
|
||||
},
|
||||
removeAll () {
|
||||
return new Promise((resolve, reject) => {
|
||||
video.remove({}, { multi: true }, (err, docs) => {
|
||||
if (err) { reject(err) }
|
||||
resolve(docs)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
12
src/store.js
12
src/store.js
@@ -1,11 +1,15 @@
|
||||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
import setting from '@/plugin/nedb/setting'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
state: {
|
||||
theme: 'light',
|
||||
theme: {
|
||||
id: '',
|
||||
color: 'light'
|
||||
},
|
||||
iconActive: 'search',
|
||||
video: {}
|
||||
},
|
||||
@@ -36,9 +40,9 @@ export default new Vuex.Store({
|
||||
// localStorage.collection = payload
|
||||
},
|
||||
changeTheme: ({ commit }, payload) => {
|
||||
// setting.set('theme', payload).then(e => {
|
||||
// commit('SET_THEME', e)
|
||||
// })
|
||||
setting.update(payload.id, { theme: payload.color }).then(res => {
|
||||
commit('SET_THEME', payload)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
<template>
|
||||
<Row>
|
||||
<Button type="primary" @click="changeTheme('light')">light</Button>
|
||||
<Button type="primary" @click="changeTheme('dark')">Dark</Button>
|
||||
<Button type="primary" @click="changeTheme({ id: getTheme.id, color: 'light' })">light</Button>
|
||||
<Button type="primary" @click="changeTheme({ id: getTheme.id, color: 'dark' })">Dark</Button>
|
||||
<Button type="primary" @click="add()">Add</Button>
|
||||
</Row>
|
||||
</template>
|
||||
<script>
|
||||
import { mapActions } from 'vuex'
|
||||
import { mapGetters, mapActions } from 'vuex'
|
||||
import settingDB from '@/plugin/nedb/setting'
|
||||
export default {
|
||||
name: 'settings',
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'getTheme'
|
||||
])
|
||||
},
|
||||
methods: {
|
||||
...mapActions([
|
||||
'changeTheme'
|
||||
|
||||
Reference in New Issue
Block a user