Web SQL Database 离线数据下载


//新建数据库
// databasename:数据库名;
// version:数据库版本号,可不填;
// description:数据库描述;
// size:给数据库分配的空间大小;

var db = openDatabase('digital_inspection', '1.0.0', '离线数据库', 204800);

var confirm_id = "";
var confirm_enterprise_abbreviation = "";
var confirm_enterprise_id = "";
var confirm_unit_id = "";
//加载整改列表
function loadRectify(thepage, init) {
//var list = document.getElementById("item2");
var pageSize = 10; //每页显示记录条数
var data = [];
db.transaction(function(tx) {
//查询所有任务记录 
tx.executeSql(
'select * from ry_rectify_confirm limit ?,?',
[(thepage - 1) * pageSize, pageSize],
function(tx, rs) {
flag2 = rs.rows.length == 0 || rs.rows.length < 10;
if (flag2 == false) {
page2++;
}
mui('#item2mobile .mui-scroll').pullToRefresh().endPullUpToRefresh(flag2);
if (rs.rows.length > 0) {
for (var i = 0; i < rs.rows.length; i++) {
var row = rs.rows.item(i);
var obj = {
id: row.id,
unit_id: row.unit_id,
enterprise_id: row.enterprise_id,
enterprise_abbreviation: row.enterprise_abbreviation,
}
data.push(obj);
}
if (thepage == 1) {
$("#rectify_content").find('ul').empty();
}
var html = template('enterprise', data);
if (init == 0) {
$("#rectify_content").find('ul').empty();
page2 = 1;
}
$("#rectify_content").find('.mui-pull-bottom-tips').before(html);
} else {
$("#rectify_content").find('ul').empty();
page2 = 1;
}
});
});
}

mui(".item2").on('tap', '.download', function() {
var obj = $(this).find("img");
db.transaction(function(tx) {
//整改主表 
tx.executeSql(
'create table if not exists ry_rectify_confirm (id text,unit_id text,enterprise_id text,enterprise_abbreviation text)'
);
//整改措施表
tx.executeSql(
"create table if not exists ry_confirm_item (id text,confirm_id text,report_item_id text,is_conform INTEGER,item_id text,item_type text,detail_content text,report_id text,rectify_item_id text,measure_name text)"
);
//整改记录表
tx.executeSql(
'create table if not exists ry_rectify_confirm_record (id text,confirm_id text,item_id text,is_conform INTEGER,content text)'
);
//图片表
tx.executeSql(
'create table if not exists im_file (id text,business_id text,business_type text,item_id text,file_type text,create_user text,create_date INTEGER,str_image text)'
);

//    executeSql方法有四个参数,作用分别如下:
//    sqlQuery:需要具体执行的sql语句,可以是create、select、update、delete;
//    [value1,value2..]:sql语句中所有使用到的参数的数组,在executeSql方法中,将sql语句中所要使用的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中;
//    dataHandler:执行成功是调用的回调函数,通过该函数可以获得查询结果集;
//    errorHandler:执行失败时调用的回调函数;
var li = $(obj).parents(".li-content");
confirm_id = $(li).children('.mui-navigate-right').attr("data-confirm");
confirm_enterprise_abbreviation = $(li).children('.mui-navigate-right').attr("data-enter");
confirm_enterprise_id = $(li).children('.mui-navigate-right').attr("data-enterid");
confirm_unit_id = $(li).children('.mui-navigate-right').attr("data-unit_id");
//先判断此任务是否已经下载
// 这里需要显示的将传入的参数userno转变为字符串类型 
tx.executeSql('select * from ry_rectify_confirm where id=?', [String(confirm_id)], rectifyIsExit);
});
});
//是否已下载
function rectifyIsExit(tx, rs) {
if (rs.rows.length > 0) {
isload = true;
mui.alert("此任务已下载");
} else {
//添加任务主表
tx.executeSql('insert into ry_rectify_confirm values(?,?,?,?)', [
confirm_id,
confirm_unit_id,
confirm_enterprise_id,
confirm_enterprise_abbreviation
], rectifymainSuccess);
}
}
//主表sql语句执行成功后执行的回调函数 
function rectifymainSuccess(tx, rs) {
//添加检查项表
var itemArray = getConfirmItem(confirm_id);
for (var i = 0; i < itemArray.length; i++) {
for (var j = 0; j < itemArray[i].measure_data.length; j++) {
//console.log(itemArray[i].measure_data[j]);
tx.executeSql('insert into ry_confirm_item values(?,?,?,?,?,?,?,?,?,?)', [
itemArray[i].measure_data[j].id,
confirm_id,
itemArray[i].measure_data[j].report_item_id,
itemArray[i].measure_data[j].is_conform,
itemArray[i].item_id,
itemArray[i].item_type,
itemArray[i].detail_content,
itemArray[i].report_id,
itemArray[i].rectify_item_id,
itemArray[i].measure_data[j].measure_name
], rectifySuccess);
}
}
mui.alert("下载成功");
}

function rectifySuccess(tx, rs) {
// tx.executeSql('select * from ry_confirm_item ', [], function(tx, rs) {
// if (rs.rows.length > 0) {
// console.log(rs.rows)
// }
// });
}
//获取检查项信息
function getConfirmItem(confirm_id) {
var itemArray;
$.ajax({
type: "get",
contentType: "application/json;charset=utf-8",
url: ServerIp + '/api/rectify/OffConfirmView',
data: {
confirm_id: confirm_id
},
async: false,
dataType: "json",
success: function(data) {
if (data != null && data != undefined) {
itemArray = data;
}
},
error: function(result, status) {
mui.alert("获取数据失败");
}
});
return itemArray;
}
原文地址:https://www.cnblogs.com/yyjspace/p/11599236.html