1.0
This commit is contained in:
+425
@@ -0,0 +1,425 @@
|
||||
const dbName = "sqlite"
|
||||
// "user", "log"
|
||||
|
||||
export const openDb = () => {
|
||||
//如果数据库存在则打开,不存在则创建。
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.openDatabase({
|
||||
name: dbName, //数据库名称
|
||||
path: `_doc/${dbName}.db`, //数据库地址
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
// 查询所有数据表名
|
||||
export const getTable = () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.selectSql({
|
||||
name: dbName,
|
||||
sql: "select * FROM sqlite_master where type='table'",
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
// 查询表数据总条数
|
||||
export const getCount = (tabName) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.selectSql({
|
||||
name: dbName,
|
||||
sql: "select count(*) as num from " + tabName,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 查询表是否存在
|
||||
export const isTable = (tabName) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.selectSql({
|
||||
name: dbName,
|
||||
sql: `select count(*) as isTable FROM sqlite_master where type='table' and name='${tabName}'`,
|
||||
success(e) {
|
||||
console.log(e)
|
||||
resolve(e[0].isTable ? true : false);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 修改数据
|
||||
* @param {String} tabName 表名
|
||||
* @param {Object} setData 修改数据
|
||||
* @param {String} setName 查询字段名
|
||||
* @param {String} setVal 查询字段值
|
||||
*/
|
||||
export const updateSQL = (tabName, setData, setName, setVal) => {
|
||||
if (JSON.stringify(setData) !== '{}') {
|
||||
let dataKeys = Object.keys(setData)
|
||||
let setStr = ''
|
||||
dataKeys.forEach((item, index) => {
|
||||
console.log(setData[item])
|
||||
setStr += (
|
||||
`${item} = ${JSON.stringify(setData[item])}${dataKeys.length - 1 !== index ? "," : ""}`)
|
||||
})
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `update ${tabName} set ${setStr} where ${setName} = "${setVal}"`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject("错误")
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//删除数据库数据
|
||||
export const deleteInformationType = (tabName,setData) => {
|
||||
if (JSON.stringify(setData) !== '{}') {
|
||||
let dataKeys = Object.keys(setData)
|
||||
let setStr = ''
|
||||
dataKeys.forEach((item, index) => {
|
||||
console.log(setData[item])
|
||||
setStr += (
|
||||
`${item}=${JSON.stringify(setData[item])}${dataKeys.length - 1 !== index ? " and " : ""}`)
|
||||
})
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `delete from ${tabName} where ${setStr}`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject("错误")
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//关闭数据库
|
||||
export const closeSQL = (name) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.closeDatabase({
|
||||
name: 'pop',
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
//监听数据库是否开启
|
||||
export const isOpen = () => {
|
||||
let open = plus.sqlite.isOpenDatabase({
|
||||
name: dbName,
|
||||
path: `_doc/${dbName}.db`,
|
||||
})
|
||||
return open;
|
||||
}
|
||||
|
||||
// 创建用户表
|
||||
export const addUserTable = () => {
|
||||
const tabName = 'user'
|
||||
// tabName不能用数字作为表格名的开头
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `create table if not exists ${tabName}("id" INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255) NOT NULL, ic VARCHAR(255) NOT NULL, number CHAR(50), type CHAR(50) )`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
// 创建日志表
|
||||
export const addLogTable = () => {
|
||||
const tabName = 'log'
|
||||
// tabName不能用数字作为表格名的开头
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `create table if not exists ${tabName}("id" INTEGER PRIMARY KEY AUTOINCREMENT,"name" VARCHAR(255) NOT NULL,action VARCHAR(255) NOT NULL, create_time datetime DEFAULT (datetime('now', 'localtime')))`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 创建内镜存储表
|
||||
export const addScopeTable = () => {
|
||||
const tabName = 'scope'
|
||||
// tabName不能用数字作为表格名的开头
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `create table if not exists ${tabName}("key" INTEGER NOT NULL,"ic" CHAR(50) , "rfid" CHAR(50), "name" VARCHAR(255), time datetime DEFAULT (datetime('now', 'localtime')))`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 创建内镜存储表
|
||||
export const addEndoTable = () => {
|
||||
const tabName = 'endo'
|
||||
// tabName不能用数字作为表格名的开头
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `create table if not exists ${tabName}("id" INTEGER PRIMARY KEY AUTOINCREMENT,"endoscope_id" CHAR(255), "name" CHAR(50), "brand" CHAR(50),"model" CHAR(50), "type" CHAR(50), "rfid" CHAR(50) ,"ic" VARCHAR(255), time datetime DEFAULT (datetime('now', 'localtime')))`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加数据
|
||||
* @param {String} tabName 表名
|
||||
* @param {Object} obj 添加数据
|
||||
*/
|
||||
export const addTabItem = (tabName,obj) => {
|
||||
if (obj) {
|
||||
let keys = Object.keys(obj)
|
||||
let keyStr = keys.toString()
|
||||
let valStr = ''
|
||||
keys.forEach((item, index) => {
|
||||
if (keys.length - 1 == index) {
|
||||
valStr += ('"' + obj[item] + '"')
|
||||
} else {
|
||||
valStr += ('"' + obj[item] + '",')
|
||||
}
|
||||
})
|
||||
console.log(valStr)
|
||||
let sqlStr = `insert into ${tabName} (${keyStr}) values(${valStr})`
|
||||
console.log(sqlStr)
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: sqlStr,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject("错误")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 合并数据
|
||||
export const mergeSql = (name,tabName,tabs) => {
|
||||
if (!tabs || tabs.length == 0) {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject("错误")
|
||||
})
|
||||
}
|
||||
let itemValStr = ''
|
||||
tabs.forEach((item, index) => {
|
||||
let itemKey = Object.keys(item)
|
||||
let itemVal = ''
|
||||
itemKey.forEach((key, i) => {
|
||||
if (itemKey.length - 1 == i) {
|
||||
if (typeof item[key] == 'object') {
|
||||
itemVal += (`'${JSON.stringify(item[key])}'`)
|
||||
} else {
|
||||
itemVal += (`'${item[key]}'`)
|
||||
}
|
||||
} else {
|
||||
if (typeof item[key] == 'object') {
|
||||
itemVal += (`'${JSON.stringify(item[key])}',`)
|
||||
} else {
|
||||
itemVal += (`'${item[key]}',`)
|
||||
}
|
||||
}
|
||||
})
|
||||
if (tabs.length - 1 == index) {
|
||||
itemValStr += ('(' + itemVal + ')')
|
||||
} else {
|
||||
itemValStr += ('(' + itemVal + '),')
|
||||
}
|
||||
})
|
||||
let keys = Object.keys(tabs[0])
|
||||
let keyStr = keys.toString()
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: name,
|
||||
sql: `insert or ignore into ${tabName} (${keyStr}) values ${itemValStr}`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分页数据库数据
|
||||
* @param {String} tabName 表名
|
||||
* @param {Number} num 页码
|
||||
* @param {Number} size 每页数据条数
|
||||
* @param {String} byName 排序字段
|
||||
* @param {String} byType 排序方式
|
||||
*/
|
||||
export const getDataList = async (tabName, num = 1, size = 15, byName, byType) => {
|
||||
let count = 0
|
||||
let sql = ''
|
||||
let numindex = 0
|
||||
let total = 0
|
||||
await getCount(tabName).then((resNum) => {
|
||||
count = Math.ceil(resNum[0].num / size)
|
||||
total = resNum[0].num
|
||||
})
|
||||
if(((num - 1) * size) == 0) {
|
||||
numindex = 0
|
||||
} else {
|
||||
numindex = ((num - 1) * size) + 1
|
||||
}
|
||||
sql = `select * from ${tabName}`
|
||||
if(byName && byType) {
|
||||
// desc asc
|
||||
sql += ` order by ${byName} ${byType}`
|
||||
}
|
||||
sql += ` limit ${numindex},${size}`
|
||||
if (count < num - 1) {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject("无数据")
|
||||
});
|
||||
} else {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.selectSql({
|
||||
name: dbName,
|
||||
// sql: "select * from userInfo limit 3 offset 3",
|
||||
sql:sql ,
|
||||
success(e) {
|
||||
let data = { list: e, totalPage: count, total: total }
|
||||
resolve(data);
|
||||
},
|
||||
fail(e) {
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
//查询数据库数据
|
||||
export const selectDataList = (tabName,setData,byName,byType) => {
|
||||
let setStr = ''
|
||||
let sql = ''
|
||||
if (JSON.stringify(setData) !== '{}') {
|
||||
let dataKeys = Object.keys(setData)
|
||||
dataKeys.forEach((item, index) => {
|
||||
console.log(setData[item])
|
||||
setStr += (
|
||||
`${item}=${JSON.stringify(setData[item])}${dataKeys.length - 1 !== index ? " and " : ""}`)
|
||||
})
|
||||
sql = `select * from ${tabName} where ${setStr}`
|
||||
} else {
|
||||
sql = `select * from ${tabName}`
|
||||
}
|
||||
if(byName && byType) {
|
||||
// desc asc
|
||||
sql += ` order by ${byName} ${byType}`
|
||||
}
|
||||
console.log(sql)
|
||||
if (tabName !== undefined) {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.selectSql({
|
||||
name: dbName,
|
||||
sql: sql,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
console.log(e)
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject("错误")
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 删除数据表
|
||||
export const dropTable = (tabName) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.sqlite.executeSql({
|
||||
name: dbName,
|
||||
sql: `DROP TABLE ${tabName}`,
|
||||
success(e) {
|
||||
resolve(e);
|
||||
},
|
||||
fail(e) {
|
||||
reject(e);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user