mounted() {
let request = window.indexedDB.open('tengxiTest', 1)
let that = this
request.onerror = function (e) {
console.log('goes wrong')
console.log(e)
}
request.onsuccess = function (e) {
console.log('goes along')
console.log(e.target.result)
that.dbName = e.target.result
}
request.onupgradeneeded = function (e) {
console.log('version upgrade')
console.log(e.target.result)
this.dbName = e.target.result
let objectStore
if(!this.dbName.objectStoreNames.contains('fruits')) {
objectStore = this.dbName.createObjectStore('fruits', { keyPath: 'id', autoIncrement: true })
objectStore.createIndex('name', 'name', { unique: false })
objectStore.createIndex('price', 'price', { unique: false })
objectStore.createIndex('count', 'count', { unique: false })
objectStore.createIndex('fno', 'fno', { unique: false })
}
}
},
addData() {
console.log('测试')
console.log(this.dbName)
let fruitsGroup = [{
name: 'Pear',
price: 1.12,
count: 564,
fno: '42483'
}, {
name: 'Orange',
price: 5.00,
count: 3432,
fno: '10938'
}, {
name: 'Grape',
price: 8.96,
count: 453,
fno: '37263'
}]
let request = this.dbName.transaction(['fruits'], 'readwrite').objectStore('fruits')
let result
fruitsGroup.forEach((item, index) => {
console.log('每一项')
console.log(item)
result = request.add(item)
})
result.onsuccess = function (event) {
console.log('数据写入成功')
}
result.onerror = function (event) {
console.log('数据写入失败')
console.log(event)
}
},
readData (id, callback) {
let transaction = this.dbName.transaction(['fruits']).objectStore('fruits')
let request, callbackData
if(id) {
console.log('这里么')
console.log(id)
request = transaction.get(id)
} else {
console.log('走这里')
let index = transaction.index('price')
request = index.get(8.96)
// request = transaction.getAll()
}
request.onerror = function (e) {
console.log('读取数据失败')
}
request.onsuccess = function (e) {
if(request.result) {
console.log(request.result)
callbackData = request.result
} else {
console.log('白来一趟')
callbackData = false
}
console.log('callback')
console.log(callbackData)
callback(callbackData)
}
},
updateData () {
this.readData(1, (data) => {
let oldData = data
console.log('oldData')
console.log(oldData)
oldData['name'] = 'Pineapple'
oldData['price'] = 1.00
let transaction = this.dbName.transaction(['fruits'], 'readwrite').objectStore('fruits')
let result = transaction.put(oldData)
result.onsuccess = function (event) {
console.log('数据更新成功')
}
result.onerror = function (e) {
console.log('数据更新失败')
}
})
},
deleteData (id) {
let transaction = this.dbName.transaction(['fruits'], 'readwrite').objectStore('fruits')
let result = transaction.delete(id)
result.onsuccess = function (event) {
console.log('数据删除成功')
}
result.onerror = function (e) {
console.log('数据删除失败')
}
}