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 () { }) }; });