angular.module('push') .factory('UtilService', function ($rootScope, $timeout, $http, ConfigService, $q) { var utilService = {}; var toastflg = 0; //TODO 公共弹窗,提示信息用 utilService.showMess = function (mess) { console.log(1); window.plugins.toast.show(mess, 'short', 'center', function (a) { }, function (b) { }); // if (toastflg == 0) { // toastflg = 1; // console.log(2); // window.plugins.toast.show(mess, 'short', 'center', function (a) { // }, function (b) { // }); // $timeout(function () { // toastflg = 0; // }, 200); // } }; //Android:true,IOS:false utilService.checkPlatform = function () { return device.platform == "Android"; }; //格式化时间、时间戳 utilService.formatDate = function () { var tempdate = new Date(); return { timestamp: (Date.parse(tempdate) / 1000), formattime: tempdate.Format("yyyy-MM-dd hh:mm:ss"), formattime2: tempdate.Format("yyyy-MM-dd hh:mm:ss.S"), formattime3: tempdate.Format("yyyy年MM月dd日 hh:mm") }; }; //时间转时间戳 utilService.reversalDate = function (str) { if (device.platform != "Android") { str = str.replace("-", "/"); str = str.replace("-", "/"); } var timestamp = Date.parse(new Date(str)); timestamp = timestamp / 1000; return timestamp; }; //时间戳转时间 utilService.reversalTimestamp = function (str) { return new Date(parseInt(str) * 1000).Format("yyyy-MM-dd hh:mm:ss"); }; //yyyy年MM月dd日 转 yyyy-MM-dd utilService.formatTime = function (tempstr) { tempstr = tempstr.replace("年", "-"); tempstr = tempstr.replace("月", "-"); tempstr = tempstr.replace("日", ""); return tempstr; }; //获取当前日期{年,月,日,格式化日期,周} utilService.getNowDate = function () { //日期、星期初始化 var week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]; //选中日期初始化 var _date = new Date(); var weekind = (_date.getDay() == 0) ? 6 : _date.getDay() - 1; var month = _date.getMonth() + 1; var day = _date.getDate(); var tempn = _date.getFullYear() + "-"; if (month < 10) { tempn = tempn + "0" + month + "-"; } else { tempn = tempn + month + "-"; } if (day < 10) { tempn = tempn + "0" + day; } else { tempn = tempn + day; } return { year: _date.getFullYear(), month: month, day: day, date: tempn, week: week[weekind] }; }; //时间比较 true:第一个时间更近 false:第二个时间更近 utilService.compareDate = function (date1, date2) { var oDate1 = new Date(date1); var oDate2 = new Date(date2); return oDate1.getTime() > oDate2.getTime(); }; //格式化链接(提取链接中参数组成json) utilService.formatUrlToJson = function (url) { var temp1 = url.substring(url.lastIndexOf("?") + 1, url.length); var temp2 = temp1.replace(/=/g, "\":\""); var temp3 = "{\"" + temp2.replace(/&/g, "\",\"") + "\"}"; return angular.fromJson(temp3); }; //检测网络状态 utilService.checkNetWork = function () { var networkState = navigator.connection.type; var states = {}; states[Connection.UNKNOWN] = 'Unknown connection'; states[Connection.ETHERNET] = 'Ethernet connection'; states[Connection.WIFI] = 'WiFi connection'; states[Connection.CELL_2G] = 'Cell 2G connection'; states[Connection.CELL_3G] = 'Cell 3G connection'; states[Connection.CELL_4G] = 'Cell 4G connection'; states[Connection.CELL] = 'Cell generic connection'; states[Connection.NONE] = 'No network connection'; if (states[networkState] == 'WiFi connection') { return "WiFi"; } else if (states[networkState] == 'No network connection') { return "None"; } else { return "Other"; } }; var content = ""; utilService.tempRep = function (type, str) { if (type == 0) { content = str.replace("\n", "
"); if (content.indexOf("\n") != -1) { this.tempRep(0, content); } } else { content = str.replace("
", "\n"); if (content.indexOf("
") != -1) { this.tempRep(1, content); } } }; // 合并2个json utilService.concatJson = function (obj1, obj2) { var str1 = angular.toJson(obj1); str1 = str1.substr(0, str1.length - 1) + ","; var str2 = angular.toJson(obj2); str2 = str1 + str2.substr(1, str2.length); return angular.fromJson(str2); }; //textarea中换行转
utilService.replaceEnterTag = function (str) { this.tempRep(0, str); return content; }; //
转换行 utilService.replaceHTMLTag = function (str) { this.tempRep(1, str); return content; }; //检测6~20位数字字母组合密码 utilService.checkPassword = function (str) { return (/^[0-9a-zA-Z]{6,20}$/.test(str)); }; //检查字符是否为空 utilService.isDefined = function (str) { return (angular.isDefined(str) && str != null && str != "" && str != "null"); }; //检查手机号码 utilService.isMobilePhone = function (str) { return ((/^[+0-9-()()]{7,18}$/.test(str))); // return ((/^1(3|4|5|7|8)\d{9}$/.test(str))); }; //检查固定电话 utilService.isTelePhone = function (tel) { return (/^0\d{2,3}-?\d{7,8}$/.test(tel)); }; //检测15/18位身份证号码 utilService.isIdentityNumber = function (num) { return (/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/.test(num)); }; //检测邮箱 utilService.isEmail = function (email) { return (/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(email)); }; //批量上传文件 utilService.uploadFile = function (urls, filetype, mimeType) { //控制ajax请求异步变同步 var deferred = $q.defer(); var result = []; var upload = function (index) { if (index < urls.length) { var params = {}; params.type = filetype; var options = new FileUploadOptions(); options.mimeType = mimeType; options.fileKey = "file"; options.fileName = urls[index].substr(urls[index].lastIndexOf('/') + 1); options.chunkedMode = false; options.params = params; var ft = new FileTransfer(); // ft.upload(urls[index], ConfigService.server + "appUploadFile.action?", function win(r) { ft.upload(urls[index], ConfigService.server + "common/upload/attachment?", function win(r) { if (r.response == "null" || r.response == null || angular.isUndefined(r.response)) { deferred.reject(); } else { var json = JSON.parse(r.response); result.push(json); upload(index + 1); } }, function fail(error) { console.log(error); result.push({photoName: "", originalName: ""}); upload(index + 1); }, options); } else { deferred.resolve(result); } }; upload(0); return deferred.promise; }; //拍照、提取单张照片 utilService.getPicture = function (srcType) { var deferred = $q.defer(); var options = { quality: 50, destinationType: Camera.DestinationType.FILE_URI, sourceType: srcType, //0:相册 1:相机 encodingType: Camera.EncodingType.JPEG, mediaType: Camera.MediaType.PICTURE, allowEdit: false, correctOrientation: true, saveToPhotoAlbum: true }; navigator.camera.getPicture(function (imageData) { deferred.resolve(imageData); }, function (message) { deferred.reject(message); }, options); return deferred.promise; }; //批量提取照片 utilService.getPictureList = function (maxcount) { var deferred = $q.defer(); window.imagePicker.getPictures( function (results) { deferred.resolve(results); }, function (error) { deferred.reject(error); }, { maximumImagesCount: maxcount, quality: 50 } ); return deferred.promise; }; //http get请求 utilService.urlget=function(url){ return $http({ method: "get", url: url }); }; //http get请求 utilService.get = function (url, data) { return this._http(url, "get", data); }; //http post请求 utilService.post = function (url, data) { return this._http(url, "post", data); }; utilService._http = function (url, method, data) { var json = {comefrom: ConfigService.comefrom, filterInputKey: 1, callback: "JSON_CALLBACK"}; var jsondata = angular.merge(data, json); if (angular.equals(method, "get")) { return $http({ method: "get", url: url, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, params: jsondata, // timeout: 15000 }); } else if (angular.equals(method, "post")) { return $http({ method: "post", url: url, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, // timeout: 15000, transformRequest: function (jsondata) { /** * The workhorse; converts an object to x-www-form-urlencoded serialization. * @param {Object} obj * @return {String} */ var param = function (obj) { var query = ''; var name, value; for (name in obj) { value = obj[name]; query += name + '=' + value + '&'; } query = query.substr(0, query.length - 1); // console.log(url + query); // query = encodeURIComponent(query); return query.length ? query.substr(0, query.length - 1) : query; }; return angular.isObject(jsondata) && String(jsondata) !== '[object File]' ? param(jsondata) : jsondata; }, data: jsondata }); } }; //http get请求(IM服务器) utilService.imget = function (url, data,key) { return this._imhttp(url, "get", data,key); }; // utilService.keyget=function(url,data,key){ // return this._keyhttp(url,'get',data,key); // } //http post请求(IM服务器) utilService.impost = function (url, data) { return this._imhttp(url, "post", data); }; utilService.getparams = function (url, method, data) { //发起请求 return $http({ method: get, url: url, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, params: data, }); }; utilService._imhttp = function (url, method, data,keys) { //服务地址后拼接参数 var jsondata = ''; for (var key in data) { jsondata += '/' + data[key]; } if(keys){ jsondata +='?=key'+keys; } //发起请求 return $http({ method: method, url: url + jsondata, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, // cache:true, // ifModified :true , params: {}, // timeout: 20000 }); }; utilService.getparams = function (url, params) { // var jsondata = ''; // angular.forEach(params,function (res,key){ // if(!jsondata){ // jsondata='?'+key+'='+res; // }else { // jsondata +='&'+key+'='+res; // } // // }) return $http({ method: 'get', url: url, headers: { 'Content-Type': 'application/json; charset=UTF-8' }, params: params, // timeout: 20000 }); }; // utilService._keyhttp = function (url, method, data,keys) { // //服务地址后拼接参数 // var jsondata = ''; // for (var key in data) { // jsondata += '/' + data[key]; // } // if(keys){ // jsondata+='?key='+keys; // } // //发起请求 // return $http({ // method: method, // url: url + jsondata, // headers: { // 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' // }, // params: {}, // timeout: 20000 // }); // }; // 请求使用data utilService.imbodyhttp = function (url, data) { //发起请求 return $http({ method: "POST", url: url, dataType: 'json', headers: { 'Content-Type': 'application/json; charset=UTF-8' }, params: {}, data: data, }); }; // 请求使用data //上传 utilService.Uploadhttp = function (url, data) { //发起请求 return $http({ method: "POST", url: url, data: data, headers: {'Content-Type': undefined}, transformRequest: angular.identity, }); }; // 文件流下载 utilService.downloadhttp = function (url, data) { //发起请求 return $http({ method: "POST", url: url, dataType: 'json', responseType: 'arraybuffer', headers: { 'Content-Type': 'application/json; charset=UTF-8' }, params: {}, data: data, // timeout: 15000 }); }; // 文件流下载 utilService.getdownload = function (url, data) { //发起请求 return $http({ method: "get", url: url, dataType: 'json', responseType: 'arraybuffer', headers: { 'Content-Type': 'application/json; charset=UTF-8' }, params: {}, data: data, }); }; return utilService; });