angular.module('push')
.controller('CloudeditconninfoCtrl', function ($scope, $stateParams, $ionicHistory, $ionicActionSheet, $ionicModal, $ionicPopup, $timeout, UserService, ConfigService,
UtilService, DockingService, ModelService, $ionicScrollDelegate, HandleService, $ionicSlideBoxDelegate, SqliteStorageService) {
var infoid = $stateParams.infoid;
var text = document.getElementById("add_list_content");
autoTextarea(text);// 调用
$scope.folderlist = angular.copy(ModelService.getCloudFolderList());
$scope.level = 0;
$scope.checkfolder = "";//被选中的文件夾id
//初始化文件夹列表
var initFolderList = function () {
DockingService.getConnClassByid($scope.record.claid).then(function (response) {
// console.log(response);
$scope.checkdefolder = response;
$scope.checkfolder = $scope.checkdefolder.id + "";
if (ModelService.getIsFirstOpen() == 0) {
angular.forEach($scope.folderlist, function (value, index) {
if (value.id == $scope.record.claid) {
$scope.folderlist[index].value = true;
}
});
}
}, function () {
})
};
//获取对接信息
var getConninfo = function () {
DockingService.newGetConnInfoDetails(infoid).then(function (response) {
// console.log(response);
$scope.record = response;
initFolderList();
$scope.imagelist = response.picture;
$scope.cardlist = response.unit;
angular.forEach($scope.cardlist, function (value, index) {
if (angular.isDefined(value.personlist) && value.personlist.length > 0) {
var contactsrt = [];
angular.forEach(value.personlist, function (val, ind) {
contactsrt.push(val.contact);
});
$scope.cardlist[index].contactsrt = contactsrt.join("、");
}
});
var str = response.conntime;
//TODO check
if (device.platform != "Android") {
str = str.replace("-", "/");
str = str.replace("-", "/");
}
$scope.record.date = new Date(str).Format("yyyy年MM月dd日 hh:mm");
$scope.record.content = UtilService.replaceHTMLTag(response.content);
}, function () {
UtilService.showMess("网络不给力,请重试");
});
};
//是否是第一次打开 0:是,1:不是
if (ModelService.getIsFirstOpen() == 1) {
$scope.record = ModelService.getConninfo();
$scope.imagelist = ModelService.getImageList();//图片
$scope.cardlist = ModelService.getCardList();
angular.forEach($scope.cardlist, function (value, index) {
if (angular.isDefined(value.personlist) && value.personlist.length > 0) {
var contactsrt = [];
angular.forEach(value.personlist, function (val, ind) {
contactsrt.push(val.contact);
});
$scope.cardlist[index].contactsrt = contactsrt.join("、");
}
});
$scope.checkdefolder = ModelService.getEditCheckdeFolder();
} else {
getConninfo();
}
var tempdeletecardlist = ModelService.getDeleteCardList();
var deleteimageids = ModelService.getDeleteImageIds();
var deletecompanyids = ModelService.getDeleteCompanyIds();
var deletememberids = ModelService.getDeleteMemberIds();
var deletethemeids = ModelService.getDeleteThemeIds();
var deleteproductids = ModelService.getDeleteProductIds();
var deleteiur1ids = ModelService.getDeleteIur1Ids();
var deleteiur2ids = ModelService.getDeleteIur2Ids();
var deleteyearprojectids = ModelService.getDeleteYearProjectIds();
//分类列表页面
$scope.search = {searchkey: ""};
$ionicModal.fromTemplateUrl('templates/modal.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.modal = modal;
});
//关闭选择文件夹
$scope.closeModel = function () {
$scope.modal.hide();
};
$scope.folder = {name: ""};
//选择分类
$scope.chooseNewUndid = function (folder, index) {
angular.forEach($scope.folderlist, function (value, ind) {
$scope.folderlist[ind].value = false;
});
$scope.folderlist[index].value = true;
$scope.checkdefolder = folder;
$scope.checkfolder = folder.id + "";
ModelService.setEditCheckdeFolder(folder);
};
var tempimages = [];
var uploadImages = function (temprecord) {
tempimages = [];
var upimages = [];
angular.forEach($scope.imagelist, function (data) {
if (data.photo_name.indexOf("file:") != -1) {
upimages.push(data.photo_name);
} else {
tempimages.push(data);
}
});
UtilService.uploadFile(upimages, 0, "image/jpeg").then(function (response) {
// console.log(response);
angular.forEach(response, function (value) {
if (value.status) {
tempimages.push({
id: 0, photo_name: value.userPhoto,
original_name: value.originalPhoto,
source_name: value.sourcePhoto,
source_size: value.source_size
});
}
});
$timeout(function () {
saveInformation(temprecord);
}, 100);
}, function () {
$scope.hideLoadingToast();
UtilService.showMess("网络异常,请稍后重试");
})
};
var saveInformation = function (temprecord) {
//对接信息数据修改
temprecord.claid = $scope.checkdefolder.id;//server分类id
temprecord.deleteimageids = deleteimageids;
temprecord.deletecompanyids = deletecompanyids;
temprecord.deletememberids = deletememberids;
temprecord.deletethemeids = deletethemeids;
temprecord.deleteproductids = deleteproductids;
temprecord.deleteiur1ids = deleteiur1ids;
temprecord.deleteiur2ids = deleteiur2ids;
temprecord.deleteyearprojectids = deleteyearprojectids;
temprecord.images = tempimages;
temprecord.companies = $scope.cardlist;
// console.log(temprecord);
DockingService.newUpdateConnInfo(temprecord).then(function (res) {
HandleService.changeflg = true;
UtilService.showMess("修改记录成功");
$timeout(function () {
$scope.goback();
}, 1000);
ModelService.resetTempData();
$scope.hideLoadingToast();
}, function () {
$scope.hideLoadingToast();
UtilService.showMess("网络异常,请稍后重试");
});
};
$scope.immediateRelease = function () {
//判断记录标题
if (!UtilService.isDefined($scope.record.title)) {
UtilService.showMess("标题不能为空");
return;
}
//记录日期转化为yyyy-MM-dd HH:mm 格式
var temprecord = angular.copy($scope.record);
var tempstr = $("#appDateTime").val();
if (UtilService.isDefined(tempstr)) {
temprecord.conntime = UtilService.formatTime(tempstr);
} else {
temprecord.conntime = UtilService.formatTime($scope.record.date);
}
//记录内容转为HTML标签
if (UtilService.isDefined(temprecord.content)) {
temprecord.content = UtilService.replaceEnterTag(temprecord.content);
}
$scope.showLoadingToast();
//检测网络
if (UtilService.checkNetWork() == "None") {
// checkLocal(temprecord);
UtilService.showMess("网络不给力,请重试");
} else {
if ($scope.imagelist.length > 0) {
//上传图片
uploadImages(temprecord);
} else {
//保存信息
saveInformation(temprecord);
}
}
};
var checkLocal = function (temprecord) {
var sql = "select * from conninfo where id = " + temprecord.id;
SqliteStorageService.queryData(sql).then(function (response) {
// console.log("==========查询本地是否已有记录===============");
// console.log(response);
if (response.length > 0) {
var connlocalid = response[0].localid;
var delsqllist = [
"delete from conninfo where localid = " + connlocalid,
"delete from conninfopicture where localinfoid = '" + connlocalid + "'"
];
var q_card_sql = "select * from conninfounit where localinfoid = " + connlocalid;
SqliteStorageService.queryData(q_card_sql).then(function (resp) {
if (resp.length > 0) {
var cardlocalidstr = "";
angular.forEach(resp, function (value, index) {
var tempstr = "'" + value.localid + "'";
cardlocalidstr = cardlocalidstr + tempstr + ",";
});
cardlocalidstr = cardlocalidstr.substring(0, cardlocalidstr.length - 1);
delsqllist = delsqllist.concat([
"delete from conninfounit where localid in (" + cardlocalidstr + ")",
"delete from conninfoperson where localuid in (" + cardlocalidstr + ")",
"delete from conninfotheme where localuid in (" + cardlocalidstr + ")"
]);
}
$timeout(function () {
SqliteStorageService.executeSqlList(delsqllist).then(function (res) {
saveConninfoToLocal(temprecord);
}, function () {
saveConninfoToLocal(temprecord);
});
}, 100);
}, function () {
SqliteStorageService.executeSqlList(delsqllist).then(function (res) {
saveConninfoToLocal(temprecord);
}, function () {
saveConninfoToLocal(temprecord);
});
});
} else {
saveConninfoToLocal(temprecord);
}
}, function () {
saveConninfoToLocal(temprecord);
});
};
var checknum = 1;
$scope.addisover = 0;
var ttttikkk = "";
var saveConninfoToLocal = function (temprecord) {
try {
var conninfodate = UtilService.formatDate();
var conninfodatelocalid = UtilService.reversalDate(temprecord.createtime);
//对接信息数据生成
temprecord.localid = conninfodatelocalid + "";
ttttikkk = temprecord.localid;
temprecord.localclaid = $scope.checkdefolder.id;
temprecord.claid = $scope.checkdefolder.id;
temprecord.synchrotype = 2;
temprecord.updatetime = conninfodate.formattime;
//图片列表数据生成
if ($scope.imagelist.length > 0) {
checknum++;
}
angular.forEach($scope.imagelist, function (value, index) {
$scope.imagelist[index].localid = conninfodatelocalid + index + "";
$scope.imagelist[index].localinfoid = conninfodatelocalid + "";
if (!UtilService.isDefined($scope.imagelist[index].infoid)) {
$scope.imagelist[index].infoid = temprecord.id;
$scope.imagelist[index].id = 0;
}
});
//名片(单位)数据生成
var tempcardlist = $scope.cardlist.concat(tempdeletecardlist);
if (tempcardlist.length > 0) {
checknum++;
}
var personlist = [];
var themelist = [];
var date = new Date();
angular.forEach(tempcardlist, function (value, index) {
var tempcardlocalid = conninfodatelocalid + index;
date.setSeconds(date.getSeconds() + index);
tempcardlist[index].localid = tempcardlocalid + "";
tempcardlist[index].localinfoid = conninfodatelocalid + "";
if (!UtilService.isDefined(tempcardlist[index].id)) {
tempcardlist[index].id = 0;
tempcardlist[index].infoid = temprecord.id;
tempcardlist[index].creator = UserService.id;
tempcardlist[index].synchrotype = 1;
tempcardlist[index].creatorcomefrom = ConfigService.comefrom;
tempcardlist[index].createtime = date.Format("yyyy-MM-dd hh:mm:ss");
} else {
if (tempcardlist[index].synchrotype != 4) {
tempcardlist[index].synchrotype = 2;
}
}
tempcardlist[index].updatetime = date.Format("yyyy-MM-dd hh:mm:ss");
//人员数据生成
angular.forEach(value.personlist, function (value1, ind) {
var tempperson = value1;
tempperson.localid = tempcardlocalid + ind + "";
tempperson.localuid = tempcardlocalid + "";
tempperson.infoid = temprecord.id;
if (!UtilService.isDefined(value1.id)) {
tempperson.id = 0;
tempperson.uid = 0;
}
personlist.push(tempperson);
});
//主题数据生成
angular.forEach(value.themelist, function (value2, ind) {
var temtheme = value2;
temtheme.localid = tempcardlocalid + ind + "";
temtheme.localuid = tempcardlocalid + "";
temtheme.infoid = temprecord.id;
if (!UtilService.isDefined(value2.id)) {
temtheme.id = 0;
temtheme.uid = 0;
}
themelist.push(temtheme);
});
});
if (personlist.length > 0) {
checknum++;
}
if (themelist.length > 0) {
checknum++;
}
// console.log("===========================================");
// console.log(temprecord);
// console.log($scope.imagelist);
// console.log(tempcardlist);
// console.log(personlist);
// console.log(themelist);
// console.log("===========================================");
} catch (e) {
$scope.hideLoadingToast();
}
SqliteStorageService.insertSingleData("conninfo", temprecord).then(function () {
$scope.addisover++;
}, function () {
$scope.hideLoadingToast();
});
if ($scope.imagelist.length > 0) {
SqliteStorageService.insertBatchData("conninfopicture", $scope.imagelist).then(function () {
$scope.addisover++;
}, function () {
$scope.hideLoadingToast();
});
}
if (tempcardlist.length > 0) {
SqliteStorageService.insertBatchData("conninfounit", tempcardlist).then(function () {
$scope.addisover++;
}, function () {
$scope.hideLoadingToast();
});
}
if (personlist.length > 0) {
SqliteStorageService.insertBatchData("conninfoperson", personlist).then(function () {
$scope.addisover++;
}, function () {
$scope.hideLoadingToast();
});
}
if (themelist.length > 0) {
SqliteStorageService.insertBatchData("conninfotheme", themelist).then(function () {
$scope.addisover++;
}, function () {
$scope.hideLoadingToast();
});
}
};
//监听是否结束
var overwatch = $scope.$watch("addisover", function (newValue, oldValue, scope) {
if (newValue == checknum) {
UtilService.showMess("修改成功");
$scope.hideLoadingToast();
$timeout(function () {
$scope.goback();
}, 1500);
HandleService.changeflg = true;
// ConfigService.isedit = 1;
// SqliteStorageService.updateEditFlg(1);
ModelService.resetTempData();
}
});
//保存本页面数据
var saveTempDate = function () {
var tempstr = $("#appDateTime").val();
if (UtilService.isDefined(tempstr)) {
$scope.record.date = tempstr;
}
ModelService.setEditCheckdeFolder($scope.checkdefolder);
ModelService.setConninfo($scope.record);
ModelService.setImageList($scope.imagelist);
ModelService.setCardList($scope.cardlist);
ModelService.setDeleteImageIds(deleteimageids);
ModelService.setDeleteCompanyIds(deletecompanyids);
ModelService.setDeleteCardList(tempdeletecardlist);
ModelService.setIsFirstOpen(1);
};
//切换标志
$scope.checkFlag = function () {
$scope.record.flag = $scope.record.flag == 1 ? 0 : 1;
};
//显示选择框
$scope.show = function () {
$ionicActionSheet.show({
buttons: [
{text: '添加照片'},
{text: '添加名片'}
],
cancelText: '取消',
buttonClicked: function (index) {
if (index == 0) {
getPictures();
} else if (index == 1) {
saveTempDate();
$scope.go('editListCard');
}
return true;
}
});
};
//打开相机
$scope.openCamera = function () {
if ($scope.imagelist.length >= 18) {
UtilService.showMess("最多选取18张图片");
return;
}
UtilService.getPicture(1).then(function (results) {
// console.log(results);
$scope.imagelist.push({id: 0, photo_name: results, original_name: results, source_name: results});
$scope.totalImglength = 600 * $scope.imagelist.length;
$ionicScrollDelegate.$getByHandle("scrollimage").resize();
}, function (err) {
});
};
var verifyStorage = function () {
window.imagePicker.verifyStorage(
function (results) {
if (results == "1") {
getPic();
}
}, function (error) {
}
);
};
var getPic = function () {
if ($scope.imagelist.length >= 18) {
UtilService.showMess("最多选取18张图片");
return;
}
UtilService.getPictureList(18 - $scope.imagelist.length).then(function (results) {
// console.log(results);
angular.forEach(results, function (value, index) {
$scope.imagelist.push({id: 0, photo_name: value, original_name: value, source_name: value})
});
$scope.totalImglength = 600 * $scope.imagelist.length;
$ionicScrollDelegate.$getByHandle("scrollimage").resize();
}, function (err) {
});
};
var getPictures = function () {
if (device.platform == "Android") {
verifyStorage();
} else {
getPic();
}
};
//删除图片
$scope.deletePhoto = function (image, index) {
//组装有id的已删除图片
if (UtilService.isDefined(image.id)) {
if (deleteimageids.length == 0) {
deleteimageids = image.id;
} else {
deleteimageids = deleteimageids + "," + image.id;
}
}
$scope.imagelist.splice(index, 1);
};
//时间选择器
$(function () {
var currYear = (new Date()).getFullYear();
var opt = {};
opt.date = {preset: 'date'};
opt.datetime = {preset: 'datetime'};
opt.time = {preset: 'time'};
opt.default = {
theme: 'android-ics light', //皮肤样式
display: 'modal', //显示方式
mode: 'scroller', //日期选择模式
dateFormat: 'yyyy年mm月dd日',
lang: 'zh',
showNow: true,
nowText: "今天",
startYear: currYear - 50, //开始年份
endYear: currYear + 10 //结束年份
};
var optDateTime = $.extend(opt['datetime'], opt['default']);
$("#appDateTime").mobiscroll(optDateTime).datetime(optDateTime);
});
$scope.editBack = function () {
ModelService.resetTempData();
$scope.goback();
};
//查找分类
$scope.searchClassification = function () {
$timeout(function () {
$(".searchClassification").css("width", "88%");
$(".category_search_icon").css("left", "5%");
$(".new_category_search").animate({paddingLeft: "10%"});
$(".new_category_search").css("text-align", "left");
$(".searchClassDelete").css("display", "inline-block");
}, 100);
};
//取消查询
$scope.searchClassDelete = function () {
$(".searchClassification").css("width", "100%");
$(".category_search_icon").animate({left: "39%"});
$(".new_category_search").animate({paddingLeft: "0%"});
$(".new_category_search").css("text-align", "center");
$(".searchClassDelete").css("display", "none");
$scope.search.searchkey = "";
};
//点击图片放大
$scope.bigImage = false; //初始默认大图是隐藏的
$scope.hideBigImage = function () {
$timeout(function () {
if($scope.app){
$scope.setStatusBar(0);
}
$scope.bigImage = false;
}, 400);
};
$scope.shouBigImage = function (index) { //传递一个参数(图片的URl)
if($scope.app){
$scope.setStatusBar(1);
}
$scope.bigImage = true; //显示大图
// console.log(index);
$(function () {
$('div.pinch-zoom').each(function () {
new RTP.PinchZoom($(this), {});
});
});
$ionicSlideBoxDelegate.update();//重绘,让图片显示出来
//图片总数量
setTimeout(function () {
// console.log(parseInt($ionicSlideBoxDelegate.slidesCount()));
// console.log(parseInt($ionicSlideBoxDelegate.currentIndex()));
$ionicSlideBoxDelegate.$getByHandle('slide_detail').slide(index, -10);
var totalIndex = parseInt($ionicSlideBoxDelegate.slidesCount());
// console.log(index);
$scope.nowIndex = index + 1;
$scope.totalIndex = totalIndex;
//获取图片
var imgObj = document.getElementsByClassName('bigimage');
var n;
for (n = 0; n < imgObj.length; n++) {
// 获取图片的原始高度和宽度
var oldWid = imgObj[n].naturalWidth;
var oldHei = imgObj[n].naturalHeight;
var screen = document.body.offsetWidth;
var screenH = window.innerHeight;
// console.log(oldWid/oldHei);
// console.log(screen );
var cc = screen / (oldWid / oldHei);
imgObj[n].style.height = cc + 'px';
if (cc < screenH) {
imgObj[n].style.marginTop = (screenH - cc) / 2 + 'px';
// console.log("e:" + imgObj[n].style.marginTop);
} else {
imgObj[n].style.marginTop = 0 + 'px';
// console.log((cc - screenH) + 'px')
}
}
}, 0);
};
//显示更多名片部分
$scope.showMoreCard = function (index) {
$(".parentWrapCard").eq(index).toggle();
$(".showCardWrap").eq(index).toggle();
$(".changeArrowButton").eq(index).toggleClass("upArrow");
/* var cardText = $(".downArrow").eq(index).text();
if (cardText == '展开') {
$(".downArrow").eq(index).text("收起");
} else {
$(".downArrow").eq(index).text("展开");
}*/
};
var cardDelect = function (cardindex) {
//组装有id的已删除名片
if (UtilService.isDefined($scope.cardlist[cardindex].id)) {
if (deletecompanyids.length == 0) {
deletecompanyids = $scope.cardlist[cardindex].id;
} else {
deletecompanyids = deletecompanyids + "," + $scope.cardlist[cardindex].id;
}
}
//保存临时删除的名片
var tempobj = angular.copy($scope.cardlist[cardindex]);
tempobj.synchrotype = 4;
tempdeletecardlist.push(tempobj);
$scope.cardlist.splice(cardindex, 1);
};
//重新编辑名片
$scope.editCardContent = function (cardindex) {
$ionicActionSheet.show({
buttons: [
{text: '编辑名片'},
{text: '删除名片'}
],
cancelText: '取消',
buttonClicked: function (index) {
if (index == 0) {
saveTempDate();
$scope.go("editListCard", {index: cardindex});
} else {
cardDelect(cardindex);
}
return true;
}
});
};
//查看原图
$scope.viewOldImg = function (index) {
// console.log($scope.imagelist[index]);
// console.log("查看原图" + index);
$(".bigimage").eq(index).attr("src", $scope.imgUrl + $scope.imagelist[index].source_name);
$timeout(function () {
$scope.imagelist[index].loadsource = true;
}, 20);
};
//请求SDK权限
$scope.loadImg = function (image) {
if (UtilService.checkPlatform()) {
window.imagePicker.verifyStorage(
function (results) {
if (results == "1") {
downloadPicture(image);
}
}, function (error) {
}
);
} else {
downloadPicture(image);
}
};
//图片下载
var downloadPicture = function (image) {
$scope.showLoadingToast();
var fileTransfer = new FileTransfer();
var url = UtilService.isDefined(image.source_name) ? image.source_name : image.photo_name;
var imgname = url.substring(url.lastIndexOf('/') + 1);//图片名称
var loadurl = $scope.imgUrl + url;//图片下载地址
var fileURL = "";//下载后的地址
if (UtilService.checkPlatform()) {
fileURL = cordova.file.externalRootDirectory + "pushpicture/" + imgname;
} else {
fileURL = cordova.file.documentsDirectory + imgname;
}
// console.log(loadurl);
// console.log(fileURL);
fileTransfer.download(
loadurl,
fileURL,
function (entry) {
// console.log(entry);
if (UtilService.checkPlatform()) {
var tempstr = entry.toURL().replace("file://", "");
UtilService.showMess("图片下载成功,地址:" + tempstr);
} else {
UtilService.showMess("图片下载成功");
}
$scope.hideLoadingToast();
},
function (error) {
// console.log(error);
$scope.hideLoadingToast();
UtilService.showMess("网络不给力,请重试");
},
null, // or, pass false
{
//headers: {
// "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
//}
}
);
};
//返回上一级目录
$scope.backUpperFolder = function () {
ModelService.deleteSelectLevelList($scope.level);
$scope.level--;
if ($scope.level == 0) {
$scope.folderlist = angular.copy(ModelService.getCloudFolderList());
} else {
var tempfolder = ModelService.getSelectLevelList()[$scope.level];
queryCloudFolder(folder);
$scope.currentfoldername = tempfolder.name;
}
$scope.checkfolder = "";
};
//打开下一级目录
$scope.openNextFolder = function (folder) {
//记录本级目录
var tempobj = {
localid: folder.localid,
id: folder.id,
level: folder.level,
isCloud: folder.isCloud,
name: folder.name
};
ModelService.addSelectLevelList(tempobj);
$scope.currentfoldername = folder.name;
$scope.folderlist = [];
$scope.level = folder.level + 1;
queryCloudFolder(folder);
$scope.checkfolder = "";
};
//查询云子文件夹
var queryCloudFolder = function (folder) {
DockingService.newGetConnInfoList(folder.id, folder.level, 1).then(function (response) {
// console.log(response);
$scope.folderlist = response.connFolderlist;
}, function () {
})
};
});