//设置本都存储 const SETSTORAGE = function(key, val) { uni.setStorage({ key: key, data: val, success: _ => { console.log('设置成功') } }) } console.log(wx, jWeixin) let WXSDK = ""; if (wx.config) { WXSDK = wx; } else { WXSDK = jWeixin; } console.log(WXSDK, "WXSDK"); // 微信公众号授权 const WXAUTHORIZE = function() { let link = window.location.href; // let params = this._getUrlParams(link); // 地址解析 let params = ''; // 地址解析 // 已经授权登录过的就不用再授权了 //if (store.state.token) return; // 如果拿到code,调用授权接口,没有拿到就跳转微信授权链接获取 if (params.code) { api.wxAuth(params.code); // 调用后台接口,授权 } else { let appid = 'wx7d707414e4623461'; //sj :wx7d707414e4623461 华中 : wx61ecc513905e876a let uri = encodeURIComponent(link); let authURL = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`; window.location.href = authURL; } } //获取本地存储 const GETSTORAGE = function(key) { return uni.getStorageSync(key); } //清除本地存储 const CLEARSTORAGE = function(key) { return uni.clearStorageSync() } const DEVENV = true; //用于判断是否是开发环境 /* // const BASE = 'http://hz.witrear.logplat.top:27001/greenH5/greenH5modul/rest/mainInterface/approvalModule'; */ const BASE = 'http://192.168.2.97:18080/greenH5/greenH5modul/rest/mainInterface/approvalModule'; // const BASE = 'http://192.168.0.99:27000/greenH5/greenH5modul/rest/mainInterface/approvalModule'; //'http://127.0.0.1:'+uni.getStorageSync("ZHHQ_HZ_PORT")+'/greenH5/greenH5modul/rest/mainInterface/approvalModule'; //发送请求 const DOMAIN = BASE; const VBPICTURE = function(a) { WXSDK.previewImage({ current: a[0], // 当前显示图片的http链接 urls: a, // 需要预览的图片http链接列表 hidePreviewMenuList: [] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮 }); // uni.previewImage({ // current:0, // urls: a, // success: function(data) { // console.log(data,'data'); // }, // fail: function(err) { // console.log(err,'err'); // } // // longPressActions: { // // itemList: [], // // success: function(data) { // // console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片'); // // }, // // fail: function(err) { // // console.log(err.errMsg); // // } // // } // }); } const CALLPHONE = function(a) { uni.makePhoneCall({ phoneNumber: a //仅为示例 }); } const CALLBACK_REQUEST = function(data, method) { data.checkTime = new Date().getTime(); data.clientId = uni.getStorageSync("clientId"); let url = ""; if (!DEVENV) { url = 'http://127.0.0.1:' + uni.getStorageSync("ZHHQ_HZ_PORT") + '/greenH5/greenH5modul/rest/mainInterface/approvalModule'; } else { url = DOMAIN; } return new Promise((resolve, reject) => { uni.showLoading({ title: '加载中' }) uni.request({ url: url, data: JSON.stringify(data), method: method || 'POST', dataType: 'json', header: { 'content-type': 'application/x-www-form-urlencoded', //自定义请求头信息 }, success: res => { uni.hideLoading(); console.log("返回参数", res.data); resolve(res) }, fail: err => { console.log(err, "err"); reject(err); uni.hideLoading(); ALERTTIP('数据加载失败') }, complete() { // uni.hideLoading(); } }) }) } const UPLOAD_IMG = function(data) { let url = ""; if (!DEVENV) { url = 'http://127.0.0.1:' + uni.getStorageSync("ZHHQ_HZ_PORT") + '/greenH5/greenH5modul/rest/greenImageInfo/uploadImgBuGroup'; } else { url = 'http://192.168.0.39:8080/greenH5/greenH5modul/rest/greenImageInfo/uploadImgBuGroup'; // url = 'http://10.40.92.31:8080/greenH5/greenH5modul/rest/greenImageInfo/uploadImgBuGroup'; } return new Promise((resolve, reject) => { uni.request({ url: url, data: JSON.stringify(data), method: 'POST', dataType: 'json', header: { 'content-type': 'application/x-www-form-urlencoded', //自定义请求头信息 }, success: res => { resolve(res) }, fail: err => { console.log(err, "err"); reject(err); ALERTTIP('数据加载失败') }, complete() { // uni.hideLoading(); } }) }) } const CALLBACK_REQUEST_NOLOADING = function(data, method) { data.checkTime = new Date().getTime(); data.clientId = uni.getStorageSync("clientId"); let url = ""; if (!DEVENV) { url = 'http://127.0.0.1:' + uni.getStorageSync("ZHHQ_HZ_PORT") + '/greenH5/greenH5modul/rest/mainInterface/approvalModule'; } else { url = DOMAIN; } return new Promise((resolve, reject) => { uni.request({ url: url, data: JSON.stringify(data), method: method || 'POST', dataType: 'json', header: { 'content-type': 'application/x-www-form-urlencoded', //自定义请求头信息 }, success: res => { resolve(res) }, fail: err => { console.log(err, "err"); reject(err); ALERTTIP('数据加载失败') }, complete() { // uni.hideLoading(); } }) }) } //发送无提示加载中的请求 const CALLBACK_REQUEST_NOTIP = function(url, data, method) { data.checkTime = new Date().getTime(); if (!DEVENV) { url = 'http://127.0.0.1:' + uni.getStorageSync("ZHHQ_HZ_PORT") + '/greenH5/greenH5modul/rest/mainInterface/approvalModule'; } else { url = DOMAIN; } return new Promise((resolve, reject) => { uni.request({ url: url, data: JSON.stringify(data), method: method || 'POST', dataType: 'json', header: { 'content-type': 'application/x-www-form-urlencoded', //自定义请求头信息 'X-Frame-Options': 'SAMEORIGIN' }, success: res => { resolve(res) }, fail: err => { console.log(err, "err"); reject(err); uni.hideLoading(); ALERTTIP('数据加载失败') }, complete() { uni.hideLoading(); } }) }) } const REMOVEELEMENTOFARRAY = function(value, array) { var index = -1; for (var i = 0; i < array.length; i++) { if (array[i] == value) { index = i; } } if (index >= 0) { array.splice(index, 1); } return array; } //提示信息 const ALERTTIP = function(msg, icon, duration) { uni.showToast({ title: msg, icon: icon || 'none', duration: duration || 3000 }) } //需确认的提示信息 const SUREALERTTIP = function(title, content, showCancel) { return new Promise((resolve, reject) => { uni.showModal({ title: title || '', content: content, showCancel: showCancel, success: res => { if (res.confirm) { resolve(200); } } }) }) } //时间格式化 const FORMATDATE = function(date, type) { if (typeof date === 'string') { date = date.replace(/-/g, '/'); } let oldVal = new Date(date); let newVal = ''; let year = oldVal.getFullYear(); let mount = oldVal.getMonth() + 1; let day = oldVal.getDate(); let h = oldVal.getHours(); let m = oldVal.getMinutes(); let s = oldVal.getSeconds(); if (type == 'dateTime') { newVal = year + '-' + format(mount) + '-' + format(day) + ' ' + format(h) + ':' + format(m) + ':' + format( s); } else if (type == 'm_Time') { newVal = year + '-' + format(mount) + '-' + format(day) + ' ' + format(h) + ':' + format(m); } else if (type == 'mTime') { newVal = year + '/' + format(mount) + '/' + format(day) + ' ' + format(h) + ':' + format(m); } else { newVal = year + '-' + format(mount) + '-' + format(day); } function format(data) { return data > 9 ? data : '0' + data } return newVal; } Date.prototype.format = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (( "00" + o[ k]).substr(("" + o[k]).length))); return fmt; } //获取近30天日期 const GETDATE = function() { let time = new Date() var a = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; let gday = 24 * 60 * 60 * 1000 let arr = []; for (let i = 0; i < 30; i++) { //         let tiems = new Date((time.getTime() + gday * i)).format('MM-dd'); let tiems = new Date((time.getTime() + gday * i)); tiems = FORMATDATE(tiems); var day = new Date(tiems).getDay(); var week = a[day] arr.push({ tiems: tiems, week: week, weekDay: day + "", }) } // var param ={ // "method": "greenCalendar/getCalendarList", // "data": { // date_name:arr[0].tiems, // } // }; // await getCalendar(param); return arr; } const GETWEEK = function() { var a = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]; let arr = [] var now = new Date(); var year = now.getFullYear() var day = now.getDay(); for (var i = 0; i < 7; i++) { var firstDay = new Date(now - (now.getDay() - 1) * 86400000); firstDay.setDate(firstDay.getDate() + i); var mon = Number(firstDay.getMonth()) + 1 < 10 ? "0" + (Number(firstDay.getMonth()) + 1) : Number(firstDay .getMonth()) + 1; var day = firstDay.getDate() < 10 ? "0" + firstDay.getDate() : firstDay.getDate(); arr.push({ tiems: year + "-" + mon + "-" + day, week: a[i], weekDay: i, }) } return arr } const FORMATIMGURL = function(url) { let oldUrl = url || ""; let imgName = oldUrl.split("webImageDir")[1]; if (imgName) { let newUrl = 'http://127.0.0.1:' + uni.getStorageSync("ZHHQ_HZ_PORT") + '/webImageDir' + imgName; return newUrl; } else { return "bucunzaideimg.jpg"; } } // 判断 json ,数组 等是否相等 const Compare = function Compare(objA, objB) { if (!isObj(objA) || !isObj(objB)) return false; //判断类型是否正确 if (getLength(objA) != getLength(objB)) return false; //判断长度是否一致 return CompareObj(objA, objB, true); //默认为true } function isObj(object) { return object && typeof(object) == 'object' && Object.prototype.toString.call(object).toLowerCase() == "[object object]"; } function isArray(object) { return object && typeof(object) == 'object' && object.constructor == Array; } function getLength(object) { var count = 0; for (var i in object) count++; return count; } const CompareObj = function CompareObj(objA, objB, flag) { for (var key in objA) { if (!flag) //跳出整个循环 break; if (!objB.hasOwnProperty(key)) { flag = false; break; } if (!isArray(objA[key])) { //子级不是数组时,比较属性值 if (objB[key] != objA[key]) { flag = false; break; } } else { if (!isArray(objB[key])) { flag = false; break; } var oA = objA[key], oB = objB[key]; if (oA.length != oB.length) { flag = false; break; } for (var k in oA) { if (!flag) //这里跳出循环是为了不让递归继续 break; flag = CompareObj(oA[k], oB[k], flag); } } } return flag; } // 获取今天起 指定天数的日期 const GETNUMDATE = function(num) { let time = new Date() var a = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; let gday = 24 * 60 * 60 * 1000 let arr = [] if (num <= 0) { return arr } for (let i = 0; i < num; i++) { //         let tiems = new Date((time.getTime() + gday * i)).format('MM-dd'); let tiems = new Date((time.getTime() + gday * i)); tiems = FORMATDATE(tiems); var day = new Date(tiems).getDay(); var week = a[day] arr.push({ tiems: tiems, week: week, weekDay: day + "", }) } return arr } //验证手机号 const REGPHONE = /^1[3|4|5|6|7|8|9]\d{9}$/; //验证身份证号 const REGIDCARD = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31|30)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/; // 解决图片旋转问题 压缩 const resetOrientation = function(srcBase64, srcOrientation, callback) { var img = new Image(); img.onload = function() { var width = img.width, height = img.height, canvas = document.createElement('canvas'), ctx = canvas.getContext("2d"); var maxWidth = 1024, maxHeight = 1024; if (width > maxWidth || height > maxHeight) { if (width / height > maxWidth / maxHeight) { maxHeight = Math.round(maxWidth * (height / width)); } else { maxWidth = Math.round(maxHeight * (width / height)); } } else { maxWidth = width; maxHeight = height; } if ([5, 6, 7, 8].indexOf(srcOrientation) > -1) { canvas.width = maxHeight; canvas.height = maxWidth; } else { canvas.width = maxWidth; canvas.height = maxHeight; } switch (srcOrientation) { case 2: ctx.transform(-1, 0, 0, 1, maxWidth, 0); break; case 3: ctx.transform(-1, 0, 0, -1, maxWidth, maxHeight); break; case 4: ctx.transform(1, 0, 0, -1, 0, maxHeight); break; case 5: ctx.transform(0, 1, 1, 0, 0, 0); break; case 6: ctx.transform(0, 1, -1, 0, maxHeight, 0); break; case 7: ctx.transform(0, -1, -1, 0, maxHeight, maxWidth); break; case 8: ctx.transform(0, -1, 1, 0, 0, maxWidth); break; default: ctx.transform(1, 0, 0, 1, 0, 0); } ctx.drawImage(img, 0, 0, maxWidth, maxHeight); callback(canvas.toDataURL('image/jpeg')); }; img.src = srcBase64; } const CONVERTIMGTOBASE64 = function(url, callback, outputFormat) { var canvas = document.createElement('CANVAS'), ctx = canvas.getContext('2d'), img = new Image; img.crossOrigin = 'Anonymous'; img.onload = function() { var _this = this, wid = img.width, hei = img.height, maxWidth = 1024, maxHeight = 1024; if (wid > maxWidth || hei > maxHeight) { if (wid / hei > maxWidth / maxHeight) { maxHeight = Math.round(maxWidth * (hei / wid)); } else { maxWidth = Math.round(maxHeight * (wid / hei)); } } else { maxWidth = wid; maxHeight = hei; } canvas.width = maxWidth; canvas.height = maxHeight; ctx.drawImage(img, 0, 0, maxWidth, maxHeight); let newUrl = canvas.toDataURL(outputFormat || 'image/jpeg'); callback.call(_this, newUrl); canvas = null; }; img.src = url; } // 定义转换函数 const TRANSFORMNUM2CHINESE = function(tranvalue) { try { var i = 1; var dw2 = new Array("", "万", "亿"); //大单位 var dw1 = new Array("十", "百", "千"); //小单位 var dw = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九"); //整数部分用 //以下是小写转换成大写显示在合计大写的文本框中 //分离整数与小数 // var source = SPLITS(tranvalue); var source = [tranvalue.toString(), ""]; var num = tranvalue; var dig = ""; //转换整数部分 var k1 = 0; //计小单位 var k2 = 0; //计大单位 var sum = 0; var str = ""; var len = source[0].length; //整数的长度 for (i = 1; i <= len; i++) { var n = source[0].charAt(len - i); //取得某个位数上的数字 var bn = 0; if (len - i - 1 >= 0) { bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字 } sum = sum + Number(n); if (sum != 0) { str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面 if (n == '0') sum = 0; } if (len - i - 1 >= 0) { //在数字范围内 if (k1 != 3) { //加小单位 if (bn != 0) { str = dw1[k1].concat(str); } k1++; } else { //不加小单位,加大单位 k1 = 0; var temp = str.charAt(0); if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位 str = str.substr(1, str.length - 1); str = dw2[k2].concat(str); sum = 0; } } if (k1 == 3) //小单位到千则大单位进一 { k2++; } } //转换小数部分 var strdig = ""; if (dig != "") { var n = dig.charAt(0); if (n != 0) { strdig += dw[Number(n)] + "角"; //加数字 } var n = dig.charAt(1); if (n != 0) { strdig += dw[Number(n)] + "分"; //加数字 } } str += strdig; } catch (e) { return ""; } return str; } //拆分整数与小数 const SPLITS = function(tranvalue) { var value = new Array('', ''); temp = tranvalue.split("."); for (var i = 0; i < temp.length; i++) { value[i] = temp[i]; } return value; } // if (/(Android)/i.test(navigator.userAgent)) { // WXSDK=jWeixin; // }else{ // WXSDK=wx; // } // if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { // WXSDK=wx; // } module.exports = { callPhone: CALLPHONE, vbPicture: VBPICTURE, alertTip: ALERTTIP, setStorage: SETSTORAGE, wxAuthorize: WXAUTHORIZE, getStorage: GETSTORAGE, clearStorage: CLEARSTORAGE, callbackRequest: CALLBACK_REQUEST, callbackRequestNoTip: CALLBACK_REQUEST_NOTIP, callbackRequestNoLoading: CALLBACK_REQUEST_NOLOADING, uploadImg: UPLOAD_IMG, sureAlterTip: SUREALERTTIP, formatDate: FORMATDATE, getDate: GETDATE, regPhone: REGPHONE, convertImgToBase64: CONVERTIMGTOBASE64, devEnv: DEVENV, getNumDate: GETNUMDATE, compare: Compare, regIdCard: REGIDCARD, resetOrientation: resetOrientation, removeElementOfArray: REMOVEELEMENTOFARRAY, transformNum2Chinese: TRANSFORMNUM2CHINESE, getWeek: GETWEEK, formatImgUrl: FORMATIMGURL, wxSdk: WXSDK, }