v0.7.4 最终确认使用 dexie 来存储数据

This commit is contained in:
hunlongyu
2020-01-17 16:42:40 +08:00
parent c9f30ce42f
commit 426bb05e1c
9 changed files with 167 additions and 127 deletions

View File

@@ -34,7 +34,8 @@
<script lang="ts">
import Vue from 'vue'
import { shell } from 'electron'
// import setting from '@/plugins/nedb/setting'
// import db from '@/plugins/dexie/index'
import setting from '@/plugins/dexie/setting'
export default Vue.extend({
methods: {
linkOpen (e:string) {
@@ -43,25 +44,36 @@ export default Vue.extend({
}
},
test () {
// setting.setItem('theme', 'light').then(res => {
// console.log(res)
// })
// let data = {
// name: 'lala',
// time: '12346',
// type: 'dianshiju'
// type: 'dianshiju',
// detail: 'https://www.baidu.com'
// }
// setting.add({ theme: 'dark' }).then(res => {
// setting.add({ theme: 'light' }).then(res => {
// console.log(res)
// })
setting.count().then(res => {
console.log(res)
})
// setting.find({ theme: 'light' }).then(res => {
// console.log(res)
// if (!res) {
// setting.add({ theme: 'light' }).then(res => {
// console.log(res)
// })
// }
// })
// video.add('detail', data).then((res: any) => {
// console.log(res)
// })
// setting.getItem('theme').then(res => {
// setting.find({ theme: 'light' }).then(res => {
// console.log(res)
// // if (res) {
// // setting.update(res.id, { theme: 'dark' }).then(res => {
// // console.log(res)
// // })
// // }
// })
}
},

View File

@@ -0,0 +1,35 @@
import Dexie from 'dexie'
class ZYDB extends Dexie {
setting: Dexie.Table<setting, number>
video: Dexie.Table<video, number>
constructor () {
super('ZYDB')
this.version(1).stores({
setting: '++id, theme, site',
video: '++id, name, type, time, detail, urls, index'
})
this.setting = this.table('setting')
this.video = this.table('video')
}
}
export interface setting {
id?: number
theme?: string
site?: object
}
export interface video {
id?: number
name?: string
type?: string
time?: string
detail?: string
urls?: Array<string>
index?: number
}
export default new ZYDB()

View File

@@ -0,0 +1,42 @@
import db from './index'
export default {
add (data: any): Promise<any> {
return new Promise((resolve, reject) => {
db.setting.add(data).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
find (data?: any): Promise<any> {
return new Promise((resolve, reject) => {
db.setting.get(data).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
update (id: number, data: any): Promise<any> {
return new Promise((resolve, reject) => {
db.setting.update(id, data).then(updated => {
if (updated) {
resolve(updated)
} else {
reject(updated)
}
})
})
},
count (): Promise<any> {
return new Promise((resolve, reject) => {
db.setting.count().then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
}
}

View File

@@ -0,0 +1,60 @@
import db from './index'
export default {
add (data: any): Promise<any> {
return new Promise((resolve, reject) => {
db.video.add(data).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
find (data?: any): Promise<any> {
return new Promise((resolve, reject) => {
db.video.get(data).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
update (id: number, data: any): Promise<any> {
return new Promise((resolve, reject) => {
db.video.update(id, data).then(updated => {
if (updated) {
resolve(updated)
} else {
reject(updated)
}
})
})
},
count (): Promise<any> {
return new Promise((resolve, reject) => {
db.video.count().then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
remove (id: number) {
return new Promise((resolve, reject) => {
db.video.delete(id).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
clear () {
return new Promise((resolve, reject) => {
db.video.clear().then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
}
}

View File

@@ -1,19 +0,0 @@
// import Nedb from 'nedb-async'
// import { Datastore } from 'nedb-async-await'
// import Nedb from 'nedb'
// const setting = new Nedb({
// filename: 'setting',
// autoload: true
// })
// const video = new Nedb({
// filename: 'video',
// autoload: true
// })
// export {
// setting,
// video
// }

View File

@@ -1,28 +0,0 @@
// import { setting } from './index'
// export default {
// add (data: any): Promise<any> {
// return new Promise((resolve, reject) => {
// setting.insert(data, (err: any, doc: any) => {
// reject(err)
// resolve(doc)
// })
// })
// },
// find (data?: any): Promise<any> {
// return new Promise((resolve, reject) => {
// setting.find(data, (err: any, doc: any) => {
// reject(err)
// resolve(doc)
// })
// })
// },
// update (id: string, data: any): Promise<any> {
// return new Promise((resolve, reject) => {
// setting.update({ _id: id }, { $set: data }, {}, (err: any, num: number) => {
// reject(err)
// resolve(num)
// })
// })
// }
// }