提交 748424ad authored 作者: JaxBBLL's avatar JaxBBLL
import table from "../sqllite/table"; import table from '../sqllite/table'
import _Path from "@/constant/ioPath"; import _Path from '@/constant/ioPath'
import ioUtil from "@/utils/ioUtil"; import ioUtil from '@/utils/ioUtil'
import SqlliteDbUtil from "@/utils/sqllitedb"; import SqlliteDbUtil from '@/utils/sqllitedb'
import userApi from "@/api/user"; import userApi from '@/api/user'
import hoistwayApi from "@/api/hoistway"; import hoistwayApi from '@/api/hoistway'
import assRoomApi from "@/api/assRoom.js"; import assRoomApi from '@/api/assRoom.js'
import hoistwayjson from "../../baseData/hoistway.json"; import hoistwayjson from '../../baseData/hoistway.json'
import userjson from "../../baseData/user.json"; import userjson from '../../baseData/user.json'
import assroomjson from "../../baseData/assroom.json"; import assroomjson from '../../baseData/assroom.json'
import fileImport from "@/utils/fileImport.js"; import fileImport from '@/utils/fileImport.js'
export default { export default {
// app初始化
async init() {
uni.showLoading({
title: "正在初始化...",
});
// 初始化目录
await this.initDir();
// 初始化数据库
// cookie.set('initDB', true)
await this.initSqlLite();
// 导入用戶文件文件 // app初始化
// await this.importFileData(); async init() {
await userApi.saveBatch(userjson);
await hoistwayApi.saveBatch(hoistwayjson);
await assRoomApi.saveBatch(assroomjson);
// 初始化完成通知首页
uni.$emit("initDone", "ok");
uni.hideLoading();
},
// 检查文件导入 uni.showLoading({
async importFileData() { title: '正在初始化...',
// 解压缩需要导入的zip,导入后删除 })
try { // 初始化目录
console.log("解压导入开始...."); await this.initDir()
console.log("导入基础数据开始"); // 初始化数据库
await fileImport.importBaseFile(); await this.initSqlLite()
console.log("导入基础数据结束!"); let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
console.log("解压导入完成...."); let isInit = await SqlliteDbUtil.checkIfDataImported(sqllitedb)
} catch (e) { if (!isInit) {
console.log(e.message); await userApi.saveBatch(userjson)
uni.showToast({ await hoistwayApi.saveBatch(hoistwayjson)
icon: "none", await assRoomApi.saveBatch(assroomjson)
title: e.message, await SqlliteDbUtil.markDataAsImported(sqllitedb)
}); }
uni.hideLoading(); // 初始化完成通知首页
} uni.hideLoading()
}, },
////////// 初始化数据库//////////// // 检查文件导入
async initSqlLite() { async importFileData() {
console.log("初始化数据库开始..."); // 解压缩需要导入的zip,导入后删除
let sqllitedb = null; try {
try { console.log('解压导入开始....')
// 创建打开数据库,已经存在表则跳过 console.log('导入基础数据开始')
sqllitedb = await SqlliteDbUtil.initSqlliteDB(); await fileImport.importBaseFile()
console.log(sqllitedb, "是否存在"); console.log('导入基础数据结束!')
// console.log('创建用户表...') console.log('解压导入完成....')
await sqllitedb.createTable(table.userName, table.user); } catch (e) {
await sqllitedb.createTable( console.log(e.message)
table.inspectionRecordName, uni.showToast({
table.inspectionRecord icon: 'none',
); // 巡检记录表 title: e.message
await sqllitedb.createTable(table.assRoomName, table.assRoom); // 机房、井道信息表 })
await sqllitedb.createTable(table.assBuildingName, table.assBuilding); // 楼宇信息 uni.hideLoading()
} catch (e) { }
console.log(e.message); },
} finally {
return;
// 关闭数据库
if (sqllitedb) {
await sqllitedb.closeDB();
}
// 初始化完成后重启APP/退出APP
uni.showToast({
icon: "none",
title: "初始化完毕即将重新加载...",
duration: 3000,
});
let that = this;
setTimeout(function () {
that.restartApp();
}, 3000);
}
},
// 初始化目录 ////////// 初始化数据库////////////
async initDir() { async initSqlLite() {
try { console.log('初始化数据库开始...')
const _www = _Path.getPrivateWWW(); let sqllitedb = null
const _doc = _Path.getPrivateDOC(); try {
const _download = _Path.getDownloads(); // 创建打开数据库,已经存在表则跳过
const _temp = _Path.getTempPath(); sqllitedb = await SqlliteDbUtil.initSqlliteDB()
const wwwEntry = await ioUtil.getFileEntry(_www); console.log(sqllitedb, '是否存在')
const docEntry = await ioUtil.getFileEntry(_doc); // console.log('创建用户表...')
const downloadEntry = await ioUtil.getFileEntry(_download); await sqllitedb.createTable(table.metadataName, table.metadata)
await sqllitedb.createTable(table.userName, table.user)
await sqllitedb.createTable(table.inspectionRecordName, table.inspectionRecord) // 巡检记录表
await sqllitedb.createTable(table.assRoomName, table.assRoom) // 机房、井道信息表
await sqllitedb.createTable(table.assBuildingName, table.assBuilding) // 楼宇信息
} catch (e) {
console.log(e.message)
} finally {
return
// 关闭数据库
if (sqllitedb) {
await sqllitedb.closeDB()
}
// 初始化完成后重启APP/退出APP
uni.showToast({
icon: 'none',
title: '初始化完毕即将重新加载...',
duration: 3000
})
let that = this
setTimeout(function() {
that.restartApp()
}, 3000)
}
},
if (downloadEntry) { // 初始化目录
await ioUtil.createDir(downloadEntry.fullPath, "base"); async initDir() {
await ioUtil.createDir(downloadEntry.fullPath, "export"); try {
await ioUtil.createDir(downloadEntry.fullPath, "import"); const _www = _Path.getPrivateWWW()
await ioUtil.createDir(downloadEntry.fullPath, "doc"); const _doc = _Path.getPrivateDOC()
await ioUtil.createDir(downloadEntry.fullPath, "error"); const _download = _Path.getDownloads()
} const _temp = _Path.getTempPath()
const wwwEntry = await ioUtil.getFileEntry(_www)
const docEntry = await ioUtil.getFileEntry(_doc)
const downloadEntry = await ioUtil.getFileEntry(_download)
// 获取设备名称 if (downloadEntry) {
uni.getSystemInfo({ await ioUtil.createDir(downloadEntry.fullPath, 'base')
success: async function (e) { await ioUtil.createDir(downloadEntry.fullPath, 'export')
const deviceData = { await ioUtil.createDir(downloadEntry.fullPath, 'import')
deviceId: e.deviceId, await ioUtil.createDir(downloadEntry.fullPath, 'doc')
brand: e.deviceBrand, await ioUtil.createDir(downloadEntry.fullPath, 'error')
deviceModel: e.deviceModel, }
};
const deviceFilePath = downloadEntry.fullPath + "name.txt";
await ioUtil.removeExistFile(deviceFilePath);
await ioUtil.writeFile(
"name.txt",
downloadEntry,
JSON.stringify(deviceData)
);
},
});
// 文件目录 // 获取设备名称
if (docEntry) { uni.getSystemInfo({
await ioUtil.createDir(docEntry.fullPath, "file"); success: async function(e) {
} const deviceData = {
deviceId: e.deviceId,
brand: e.deviceBrand,
deviceModel: e.deviceModel,
}
const deviceFilePath = downloadEntry.fullPath + 'name.txt'
await ioUtil.removeExistFile(deviceFilePath)
await ioUtil.writeFile('name.txt', downloadEntry, JSON.stringify(deviceData))
},
});
// 临时目录
let tempEntry = await ioUtil.getFileEntry(_temp);
if (!tempEntry) {
await ioUtil.createDir(_temp);
tempEntry = await ioUtil.createDir(
_Path.getTempParent(),
"inspectTemp"
);
}
await ioUtil.createDir(tempEntry.fullPath, "db");
} catch (e) {
console.log(e.message);
}
},
// 重启app // 文件目录
restartApp() { if (docEntry) {
// #ifdef APP-PLUS await ioUtil.createDir(docEntry.fullPath, 'file')
if (plus.os.name.toLowerCase() === "android") { }
plus.runtime.restart();
}
// #endif
},
// 退出app // 临时目录
exitApp() { let tempEntry = await ioUtil.getFileEntry(_temp)
// #ifdef APP-PLUS if (!tempEntry) {
if (plus.os.name.toLowerCase() === "android") { await ioUtil.createDir(_temp)
plus.runtime.quit(); tempEntry = await ioUtil.createDir(_Path.getTempParent(), 'inspectTemp')
} else { }
const threadClass = plus.ios.importClass("NSThread"); await ioUtil.createDir(tempEntry.fullPath, 'db')
const mainThread = plus.ios.invoke(threadClass, "mainThread"); } catch (e) {
plus.ios.invoke(mainThread, "exit"); console.log(e.message)
// 或者如下 }
// plus.ios.import('UIApplication').sharedApplication().performSelector('exit'); },
}
// #endif // 重启app
}, restartApp() {
}; // #ifdef APP-PLUS
if (plus.os.name.toLowerCase() === 'android') {
plus.runtime.restart();
}
// #endif
},
// 退出app
exitApp() {
// #ifdef APP-PLUS
if (plus.os.name.toLowerCase() === 'android') {
plus.runtime.quit();
} else {
const threadClass = plus.ios.importClass("NSThread");
const mainThread = plus.ios.invoke(threadClass, "mainThread");
plus.ios.invoke(mainThread, "exit");
// 或者如下
// plus.ios.import('UIApplication').sharedApplication().performSelector('exit');
}
// #endif
}
}
\ No newline at end of file
module.exports = { module.exports = {
// 数据库设置
metadataName: 'SYS_CONFIG',
metadata: [{
field: "key",
format: "TEXT PRIMARY KEY",
}, {
field: "value",
format: "TEXT",
}],
// 用户表 // 用户表
userName: "SYS_USER", userName: "SYS_USER",
user: [{ user: [{
field: "userId", field: "userId",
format: "TEXT", format: "TEXT PRIMARY KEY",
}, },
{ {
field: "userName", field: "user",
format: "TEXT", format: "TEXT",
}, },
{ {
...@@ -18,210 +27,219 @@ module.exports = { ...@@ -18,210 +27,219 @@ module.exports = {
format: "TEXT", format: "TEXT",
}, },
{ {
field: "password", field: "passWord",
format: "TEXT",
},
{
field: "roleName",
format: "TEXT",
},
{
field: "unitName",
format: "TEXT",
},
{
field: "isAdmin",
format: "TEXT", format: "TEXT",
}, },
{ {
field: "rememberPwd", field: "LastSynchronizationTime",
format: "TEXT", format: "TEXT",
}, },
], ],
// 巡检记录表 // 巡检记录表
inspectionRecordName: "INSPECTION_RECORD", inspectionRecordName: "INSPECTION_RECORD",
inspectionRecord: [ inspectionRecord: [{
{ field: "id",
field: "id", format: "TEXT NOT NULL",
format: "TEXT NOT NULL", },
}, {
{ field: "inspectionType",
field: "inspectionType", format: "TEXT",
format: "TEXT", },
}, {
{ field: "recordName",
field: "recordName", format: "TEXT",
format: "TEXT", },
}, {
{ field: "userId",
field: "userId", format: "TEXT",
format: "TEXT", },
}, {
{ field: "userName",
field: "userName", format: "TEXT",
format: "TEXT", },
}, {
{ field: "inspectionTime",
field: "inspectionTime", format: "TEXT",
format: "TEXT", },
}, {
{ field: "inspectionCode",
field: "inspectionCode", format: "TEXT",
format: "TEXT", },
}, {
{ field: "synFlag",
field: "synFlag", format: "TEXT",
format: "TEXT", },
},
{
{ field: "createTime",
field: "createTime", format: "TEXT",
format: "TEXT", },
}, {
{ field: "createBy",
field: "createBy", format: "TEXT",
format: "TEXT", },
}, {
{ field: "updateTime",
field: "updateTime", format: "TEXT",
format: "TEXT", },
}, {
{ field: "updateBy",
field: "updateBy", format: "TEXT",
format: "TEXT", },
}, {
{ field: "delFlag",
field: "delFlag", format: "TEXT",
format: "TEXT", },
}, {
{ field: "isException",
field: "isException", format: "TEXT",
format: "TEXT", },
}, {
{ field: "inspectionData",
field: "inspectionData", format: "TEXT",
format: "TEXT", }
} ],
],
// 机房、井道信息表
// 机房、井道信息表 assRoomName: "ASS_ROOM",
assRoomName: "ASS_ROOM", assRoom: [{
assRoom: [ field: "id",
{ format: "TEXT NOT NULL",
field: "id", },
format: "TEXT NOT NULL",
}, {
field: "roomName",
{ format: "TEXT",
field: "roomName", },
format: "TEXT", {
}, field: "buildingId",
{ format: "TEXT",
field: "buildingId", },
format: "TEXT",
}, {
field: "buildingName",
{ format: "TEXT",
field: "buildingName", },
format: "TEXT", {
}, field: "roomType",
{ format: "TEXT",
field: "roomType", },
format: "TEXT", {
}, field: "roomFile",
{ format: "TEXT",
field: "roomFile", },
format: "TEXT", {
}, field: "roomAddress",
{ format: "TEXT",
field: "roomAddress", },
format: "TEXT", {
}, field: "keynoteFlag",
{ format: "TEXT",
field: "keynoteFlag", },
format: "TEXT", {
}, field: "sort",
{ format: "TEXT",
field: "sort", },
format: "TEXT", {
}, field: "roomDesc",
{ format: "TEXT",
field: "roomDesc", },
format: "TEXT", {
}, field: "remark",
{ format: "TEXT",
field: "remark", },
format: "TEXT", {
}, field: "createTime",
{ format: "TEXT",
field: "createTime", },
format: "TEXT", {
}, field: "createBy",
{ format: "TEXT",
field: "createBy", },
format: "TEXT", {
}, field: "updateTime",
{ format: "TEXT",
field: "updateTime", },
format: "TEXT", {
}, field: "updateBy",
{ format: "TEXT",
field: "updateBy", },
format: "TEXT", {
}, field: "delFlag",
{ format: "TEXT",
field: "delFlag", },
format: "TEXT", {
}, field: "synFlag",
{ format: "TEXT",
field: "synFlag", },
format: "TEXT", {
}, field: "SHOW",
{ format: "TEXT",
field: "SHOW", },
format: "TEXT", {
}, field: "roomFeature",
{ format: "TEXT",
field: "roomFeature", },
format: "TEXT", {
}, field: "dictValue",
{ format: "TEXT",
field: "dictValue", }
format: "TEXT", ],
} // 楼宇信息
], assBuildingName: "ASS_BUILDING",
// 楼宇信息 assBuilding: [{
assBuildingName: "ASS_BUILDING", field: "id",
assBuilding: [ format: "TEXT NOT NULL",
{ },
field: "id",
format: "TEXT NOT NULL", {
}, field: "buildingName",
format: "TEXT",
{ },
field: "buildingName",
format: "TEXT", {
}, field: "sort",
format: "TEXT",
{ },
field: "sort", {
format: "TEXT", field: "remark",
}, format: "TEXT",
{ },
field: "remark", {
format: "TEXT", field: "createTime",
}, format: "TEXT",
{ },
field: "createTime", {
format: "TEXT", field: "createBy",
}, format: "TEXT",
{ },
field: "createBy", {
format: "TEXT", field: "updateTime",
}, format: "TEXT",
{ },
field: "updateTime", {
format: "TEXT", field: "updateBy",
}, format: "TEXT",
{ },
field: "updateBy", {
format: "TEXT", field: "delFlag",
}, format: "TEXT",
{ },
field: "delFlag", {
format: "TEXT", field: "synFlag",
}, format: "TEXT",
{ }
field: "synFlag", ]
format: "TEXT",
}
]
}; };
\ No newline at end of file
...@@ -19,7 +19,7 @@ export default { ...@@ -19,7 +19,7 @@ export default {
account, account,
pwd pwd
} = data } = data
const sql = `select * from ${table.userName} where userName = '${account}'` const sql = `select * from ${table.userName} where user = '${account}'`
let res = await sqllitedb.selectSQL(sql); let res = await sqllitedb.selectSQL(sql);
const user = res[0] const user = res[0]
...@@ -54,7 +54,7 @@ export default { ...@@ -54,7 +54,7 @@ export default {
} = data } = data
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
const [current] = await sqllitedb.selectSQL( const [current] = await sqllitedb.selectSQL(
`select * from ${table.userName} where userId = '${userId}' and userName = '${userName}'`, [userId, `select * from ${table.userName} where userId = '${userId}' and user = '${userName}'`, [userId,
userName userName
] ]
); );
......
[ { [
"userId": 1, {
"userName": "姜安平", "userId": 1,
"userType": "normal", "user": "姜安平",
"avatar": "", "avatar": "",
"password": "Jap@123", "passWord": "Jap@123",
"rememberPwd": "0" "roleName": "运维",
}, { "unitName": "运维",
"userId": 2, "isAdmin": false,
"userName": "段树梁", "LastSynchronizationTime": ""
"userType": "sys_user", },
"avatar": "", {
"password": "Dsl@123", "userId": 2,
"rememberPwd": "0" "user": "段树梁",
}, { "avatar": "",
"userId": 3, "passWord": "Dsl@123",
"userName": "孔佳真", "roleName": "运维",
"userType": "sys_user", "unitName": "运维",
"avatar": "", "isAdmin": false,
"password": "Kjz@123", "LastSynchronizationTime": ""
"rememberPwd": "0" },
}, { {
"userId": 4, "userId": 3,
"userName": "钟校明", "user": "孔佳真",
"userType": "sys_user", "avatar": "",
"avatar": "", "passWord": "Kjz@123",
"password": "Zxm@123", "roleName": "运维",
"rememberPwd": "0" "unitName": "运维",
}] "isAdmin": false,
\ No newline at end of file "LastSynchronizationTime": ""
},
{
"userId": 1,
"user": "钟校明",
"avatar": "",
"passWord": "Zxm@123",
"roleName": "运维",
"unitName": "运维",
"isAdmin": false,
"LastSynchronizationTime": ""
}
]
\ No newline at end of file
...@@ -98,6 +98,12 @@ ...@@ -98,6 +98,12 @@
uni.navigateTo({ uni.navigateTo({
url: "/pages/home/home", url: "/pages/home/home",
}); });
}else{
uni.showToast({
title: '账号密码错误,请重新输入',
icon: "none",
duration: 2000,
});
} }
}); });
}, },
......
...@@ -172,4 +172,14 @@ export default class SqlliteDB { ...@@ -172,4 +172,14 @@ export default class SqlliteDB {
async commitTransaction() { async commitTransaction() {
this.openTransaction("commit"); this.openTransaction("commit");
} }
static async checkIfDataImported(sqllitedb) {
// 假设有一个表或字段来记录数据导入状态
let result = await sqllitedb.selectSQL('SELECT value FROM SYS_CONFIG WHERE key = "data_imported"');
return result && result.length > 0 && result[0].value === 'true';
}
static async markDataAsImported(sqllitedb) {
await sqllitedb.executeSQL('INSERT OR REPLACE INTO SYS_CONFIG (key, value) VALUES ("data_imported", "true")');
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论