Files
ks-app-employment-service/stores/BaseDBStore.js
2025-10-23 15:04:00 +08:00

78 lines
2.3 KiB
JavaScript

/*
* @Date: 2025-10-23 14:48:48
* @LastEditors: shirlwang
* @LastEditTime: 2025-10-23 15:02:32
*/
// BaseStore.js - 基础Store类
import IndexedDBHelper from '@/common/IndexedDBHelper.js'
// import UniStorageHelper from '../common/UniStorageHelper'
import useChatGroupDBStore from './userChatGroupStore'
import config from '@/config'
class BaseStore {
db = null
isDBReady = false
dbName = 'BrowsingHistory'
constructor() {
this.checkAndInitDB()
}
checkAndInitDB() {
// 获取本地数据库版本
if (config.OnlyUseCachedDB) {
return this.initDB()
}
const localVersion = uni.getStorageSync('indexedDBVersion') || 1
console.log('DBVersion: ', localVersion, config.DBversion)
if (localVersion === config.DBversion) {
this.initDB()
} else {
console.log('清空本地数据库')
this.clearDB().then(() => {
uni.setStorageSync('indexedDBVersion', config.DBversion);
this.initDB();
});
}
}
initDB() {
// // #ifdef H5
this.db = new IndexedDBHelper(this.dbName, config.DBversion);
// // #endif
// // #ifndef H5
// this.db = new UniStorageHelper(this.dbName, config.DBversion);
// // #endif
// this.db.openDB([{
// name: 'record',
// keyPath: "id",
// autoIncrement: true,
// }, {
// name: 'messageGroup',
// keyPath: "id",
// autoIncrement: true,
// }, {
// name: 'messages',
// keyPath: "id",
// autoIncrement: true,
// indexes: [{
// name: 'parentGroupId',
// key: 'parentGroupId',
// unique: false
// }]
// }]).then(async () => {
// useChatGroupDBStore().init()
// this.isDBReady = true
// });
}
async clearDB() {
return new Promise((resolve, rejetc) => {
new IndexedDBHelper().deleteDB(this.dbName).then(() => {
resolve()
})
})
}
}
const baseDB = new BaseStore()
export default baseDB