/** 
 | 
 * 通用js 
 | 
 */ 
 | 
  
 | 
var debugHost='www.baidu.com'; 
 | 
  
 | 
// api地址,请求参数,回调函数,是否遮罩 
 | 
function request(params) { 
 | 
  
 | 
  var option = { 
 | 
    method: "POST", 
 | 
    mask: false, 
 | 
    //检查登录 
 | 
    checkLogin: false, 
 | 
  } 
 | 
  
 | 
  //合并参数 
 | 
  option = Object.assign(option, params); 
 | 
  
 | 
  
 | 
  
 | 
  //遮罩 
 | 
  if (option.mask) { 
 | 
    wx.showLoading({ 
 | 
      title: "加载中...", 
 | 
      mask: true 
 | 
    }); 
 | 
  } 
 | 
  
 | 
  if (params.checkLogin) { 
 | 
    console.log("用户登录调用"); 
 | 
    wx.login({ 
 | 
      success: function(res) { 
 | 
        wx.request({ 
 | 
          url: getApp().baseUrl + '/wxapi/user/login/' + res.code, 
 | 
          method: "POST", 
 | 
          header: { 
 | 
            'content-type': 'application/json', 
 | 
            'debugHost':debugHost 
 | 
          //  'host':'www.jyymatrix.cc' 
 | 
          }, 
 | 
          data: {}, 
 | 
          success: function(res) { 
 | 
            if (res.data.status == "200") { 
 | 
              console.log("登录成功"); 
 | 
              getApp().loginToken = res.data.mapInfo.token; 
 | 
              getApp().userInfo = res.data.mapInfo.userInfo; 
 | 
              getApp().isLogin = true; 
 | 
              wx.hideLoading(); 
 | 
              //登录后触发请求 
 | 
              doRequest(option); 
 | 
            } else { 
 | 
              wx.showToast({ 
 | 
                title: res.data.info, 
 | 
                icon: "none" 
 | 
              }); 
 | 
              wx.hideLoading() 
 | 
            } 
 | 
            wx.hideLoading() 
 | 
          }, 
 | 
          //失败处理 
 | 
          fail: function(res) { 
 | 
            wx.showToast({ 
 | 
              title: "网络请求异常", 
 | 
              icon: "none" 
 | 
            }); 
 | 
          } 
 | 
        }) 
 | 
      } 
 | 
    }); 
 | 
  
 | 
     
 | 
  
 | 
  } else { 
 | 
    console.log("用户未登录调用"); 
 | 
    doRequest(option); 
 | 
  
 | 
  } 
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
function doRequest(option) { 
 | 
  
 | 
  var data = option.data ? option.data : {}; 
 | 
  
 | 
  
 | 
  wx.request({ 
 | 
    url: getApp().baseUrl + option.api, 
 | 
    method: option.method, 
 | 
    header: { 
 | 
      'content-type': 'application/json', 
 | 
      'debugHost':debugHost, 
 | 
      'token': getApp().loginToken 
 | 
    }, 
 | 
    data: data, 
 | 
    success: function(res) { 
 | 
  
 | 
      if (res.data.status == "200") { 
 | 
        //请求成功 
 | 
        if (option.callback) { 
 | 
          option.callback(res.data); 
 | 
        } 
 | 
      } else { 
 | 
        console.log("请求失败回调") 
 | 
        wx.showToast({ 
 | 
          title: res.data.info, 
 | 
          icon: "none", 
 | 
          duration: 2000 
 | 
        }); 
 | 
        if (option.failCallback) { 
 | 
          option.failCallback(res.data); 
 | 
        } 
 | 
      } 
 | 
      //关闭遮罩 
 | 
      if (option.mask) { 
 | 
        wx.hideLoading() 
 | 
      } 
 | 
    }, 
 | 
    //网络异常失败处理 
 | 
    fail: function(res) { 
 | 
      console.error(res); 
 | 
      wx.showToast({ 
 | 
        title: "网络请求异常", 
 | 
        icon: "none" 
 | 
      }); 
 | 
      //关闭遮罩 
 | 
      if (option.option.mask) { 
 | 
        wx.hideLoading() 
 | 
      } 
 | 
    } 
 | 
  }) 
 | 
  
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
//上传文件 
 | 
function uploadImage(param, callBack) { 
 | 
  
 | 
  // 覆盖初始化参数 
 | 
  var sizeType = param.sizeType ? param.sizeType : ['compressed']; 
 | 
  var sourceType = param.sourceType ? param.sourceType : ['album', 'camera']; 
 | 
  var count = param.count ? param.count : 1; 
 | 
  //文件上传地址 
 | 
  var uploadUrl = param.uploadUrl ? param.uploadUrl : '/wxapi/uploadFile/doUpload'; 
 | 
  uploadUrl = getApp().baseUrl + uploadUrl; 
 | 
  //默认传参 
 | 
  var formData = param.uploadUrl ? param.uploadUrl : {}; 
 | 
  
 | 
  //选择照片 
 | 
  wx.chooseImage({ 
 | 
    count: count, 
 | 
    sizeType: sizeType, 
 | 
    sourceType: sourceType, 
 | 
    success: function(res) { 
 | 
      //开始上传 
 | 
      var tempFilePaths = res.tempFilePaths 
 | 
      wx.showToast({ 
 | 
          icon: "loading", 
 | 
          title: "正在上传" 
 | 
        }), 
 | 
        wx.getStorage({ 
 | 
          key: 'token', 
 | 
          success: function(res) { 
 | 
            for (var i = 0; i < tempFilePaths.length; i++) { 
 | 
              wx.uploadFile({ 
 | 
                url: uploadUrl, 
 | 
                filePath: tempFilePaths[i], 
 | 
                name: 'file', 
 | 
                header: { 
 | 
                  "Content-Type": "multipart/form-data", 
 | 
                  'token': res.data, 
 | 
                  'debugHost':debugHost 
 | 
                }, 
 | 
                formData: formData, 
 | 
                success: function(e) { 
 | 
                  console.log("上传完成", e); 
 | 
  
 | 
                  if (e.statusCode != 200) { 
 | 
                    wx.showModal({ 
 | 
                      title: '提示', 
 | 
                      content: '上传失败', 
 | 
                      showCancel: false 
 | 
                    }) 
 | 
                    return; 
 | 
                  } 
 | 
  
 | 
                  var data = JSON.parse(e.data) //上传返回值 
 | 
  
 | 
                  if (data.status == '200') { 
 | 
                    var url = data.mapInfo.url 
 | 
                    console.log("上传成功的图片路径:" + url); 
 | 
                    callBack(data); 
 | 
                  } 
 | 
                }, 
 | 
                fail: function(e) { 
 | 
                  console.log(e); 
 | 
                  wx.showModal({ 
 | 
                    title: '提示', 
 | 
                    content: '上传失败', 
 | 
                    showCancel: false 
 | 
                  }) 
 | 
                }, 
 | 
                complete: function() { 
 | 
                  wx.hideToast(); //隐藏Toast 
 | 
                } 
 | 
              }) 
 | 
            } 
 | 
  
 | 
          } 
 | 
        }) 
 | 
    } 
 | 
  }) 
 | 
  
 | 
  
 | 
} 
 | 
  
 | 
  
 | 
/** 
 | 
 * 表单验证 
 | 
 * 满足验证要求返回true,否者返回false 
 | 
 */ 
 | 
function validForm(formData, rules) { 
 | 
  //验证结果记录 
 | 
  var result = true; 
 | 
  //定义一些默认的规则 
 | 
  var def_rules = { 
 | 
    //手机号码 
 | 
    "$tel": { 
 | 
      // "rule": /(^([0-9]{3,4}-)?[0-9]{7,8}$)|((\d{3}-\d{8}|\d{4}-\d{7})|(^1[358]\d{9}|173|176|177\d{8}$))/, 
 | 
      "rule": /^1[3456789]\d{9}$/, 
 | 
      "errmsg": "请输入正确的手机号码" 
 | 
    } 
 | 
  } 
 | 
  //循环校验表单 
 | 
  for (var key in formData) { 
 | 
  
 | 
    var value = formData[key]; 
 | 
  
 | 
    var ruleObj = rules[key]; 
 | 
  
 | 
    //跳过没有设置验证规则的属性 
 | 
    if (!ruleObj) { 
 | 
      continue; 
 | 
    } 
 | 
  
 | 
  
 | 
    var rule = ruleObj.rule; 
 | 
    var errmsg = ruleObj["errmsg"]; 
 | 
  
 | 
    //判断是否为默认规则 
 | 
    if (def_rules[rule]) { 
 | 
      rule = def_rules[ruleObj.rule].rule; 
 | 
    } 
 | 
  
 | 
    if (!errmsg) { 
 | 
      errmsg = def_rules[ruleObj.rule].errmsg; 
 | 
    } 
 | 
    console.log("验证", value, rule); 
 | 
    if (!rule.test(value)) { 
 | 
      wx.showModal({ 
 | 
        title: '提示', 
 | 
        content: errmsg, 
 | 
        showCancel: false, 
 | 
        confirmText: "确定" 
 | 
      }) 
 | 
      result = false; 
 | 
      break; 
 | 
    } 
 | 
  } 
 | 
  //返回校验结果 
 | 
  return result; 
 | 
} 
 | 
  
 | 
///  调用演示 validForm({ "tel": "1839044333" }, { "tel": { "rule":"$tel" , errmsg:"请输入正确的号码" } }) 
 | 
  
 | 
/** 
 | 
 * 对象浅合并 
 | 
 */ 
 | 
function extend(o, n) { 
 | 
  for (var p in n) { 
 | 
    o[p] = n[p]; 
 | 
  } 
 | 
  return o; 
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
/** 
 | 
 * 用户登录 
 | 
 * url : 要跳转的绝对路径 
 | 
 */ 
 | 
function userLogin(callBack) { 
 | 
  //调用微信登录刷新token 
 | 
  console.log(callBack); 
 | 
  
 | 
  wx.login({ 
 | 
    success: function(res) { 
 | 
      wx.request({ 
 | 
        url: getApp().baseUrl + '/wxapi/user/login/' + res.code, 
 | 
        method: "POST", 
 | 
        header: { 
 | 
          'content-type': 'application/json', 
 | 
          'debugHost':debugHost 
 | 
        }, 
 | 
        data: {}, 
 | 
        success: function(res) { 
 | 
          if (res.data.status == "200") { 
 | 
            console.log("登录成功"); 
 | 
            getApp().loginToken = res.data.mapInfo.token; 
 | 
            getApp().userInfo = res.data.mapInfo.userInfo; 
 | 
            getApp().isLogin = true; 
 | 
  
 | 
            wx.hideLoading(); 
 | 
            console.log("执行回调请求1"); 
 | 
  
 | 
            console.log(callBack); 
 | 
  
 | 
            if (callBack) { 
 | 
              console.log("执行回调请求2"); 
 | 
              callBack(); 
 | 
            } 
 | 
          } else { 
 | 
            wx.showToast({ 
 | 
              title: res.data.info, 
 | 
              icon: "none" 
 | 
            }); 
 | 
            wx.hideLoading() 
 | 
          } 
 | 
          wx.hideLoading() 
 | 
        }, 
 | 
        //失败处理 
 | 
        fail: function(res) { 
 | 
          wx.showToast({ 
 | 
            title: "网络请求异常", 
 | 
            icon: "none" 
 | 
          }); 
 | 
        } 
 | 
      }) 
 | 
    } 
 | 
  }); 
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
function formatNumber(n) { 
 | 
  n = n.toString(); 
 | 
  return n[1] ? n : '0' + n; 
 | 
} 
 | 
  
 | 
/**  
 | 
 * 时间戳转化为年 月 日 时 分 秒  
 | 
 * number: 传入时间戳  
 | 
 * format:返回格式,支持自定义,但参数必须与formateArr里保持一致  
 | 
 */ 
 | 
function formatTimeTwo(number, format) { 
 | 
  
 | 
  var formateArr = ['Y', 'M', 'D', 'h', 'm', 's']; 
 | 
  var returnArr = []; 
 | 
  // console.log(number,typeof number); 
 | 
  var date = new Date(number * 1000); 
 | 
  // console.log(date, typeof date); 
 | 
  returnArr.push(date.getFullYear()); 
 | 
  returnArr.push(formatNumber(date.getMonth() + 1)); 
 | 
  returnArr.push(formatNumber(date.getDate())); 
 | 
  
 | 
  returnArr.push(formatNumber(date.getHours())); 
 | 
  returnArr.push(formatNumber(date.getMinutes())); 
 | 
  returnArr.push(formatNumber(date.getSeconds())); 
 | 
  console.log(returnArr); 
 | 
  for (var i in returnArr) { 
 | 
    format = format.replace(formateArr[i], returnArr[i]); 
 | 
  } 
 | 
  return format; 
 | 
} 
 | 
// 防止多次点击 
 | 
function buttonClicked(self) { 
 | 
  self.setData({ 
 | 
    buttonClicked: true 
 | 
  }) 
 | 
  setTimeout(function() { 
 | 
    self.setData({ 
 | 
      buttonClicked: false 
 | 
    }) 
 | 
  }, 500) 
 | 
} 
 | 
/** 获取时间 */ 
 | 
  
 | 
  
 | 
  
 | 
function dateFtt(date) { 
 | 
  // console.log("data---------"); 
 | 
  // console.log(date); 
 | 
  // console.log(typeof date); 
 | 
  return date.getFullYear() + "-" + setFomartZero((date.getMonth() + 1)) + 
 | 
    "-" + setFomartZero(date.getDate()) + " " + setFomartZero(date.getHours()) + 
 | 
    ":" + setFomartZero(date.getMinutes()); 
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
function setFomartZero(date) { 
 | 
  if (date < 10) { 
 | 
    return "0" + date; 
 | 
  } 
 | 
  return date; 
 | 
} 
 | 
  
 | 
function goTap() { 
 | 
  if (wx.pageScrollTo) { 
 | 
    wx.pageScrollTo({ 
 | 
      scrollTop: 0, 
 | 
    }) 
 | 
  } else { 
 | 
  
 | 
  } 
 | 
} 
 | 
  
 | 
// 判断是否有emoji表情 
 | 
function isEmojiCharacter(substring) { 
 | 
  for (var i = 0; i < substring.length; i++) { 
 | 
    var hs = substring.charCodeAt(i); 
 | 
    if (0xd800 <= hs && hs <= 0xdbff) { 
 | 
      if (substring.length > 1) { 
 | 
        var ls = substring.charCodeAt(i + 1); 
 | 
        var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000; 
 | 
        if (0x1d000 <= uc && uc <= 0x1f77f) { 
 | 
          return true; 
 | 
        } 
 | 
      } 
 | 
    } else if (substring.length > 1) { 
 | 
      var ls = substring.charCodeAt(i + 1); 
 | 
      if (ls == 0x20e3) { 
 | 
        return true; 
 | 
      } 
 | 
    } else { 
 | 
      if (0x2100 <= hs && hs <= 0x27ff) { 
 | 
        return true; 
 | 
      } else if (0x2B05 <= hs && hs <= 0x2b07) { 
 | 
        return true; 
 | 
      } else if (0x2934 <= hs && hs <= 0x2935) { 
 | 
        return true; 
 | 
      } else if (0x3297 <= hs && hs <= 0x3299) { 
 | 
        return true; 
 | 
      } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || 
 | 
        hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || 
 | 
        hs == 0x2b50) { 
 | 
        return true; 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
  
 | 
//保存卡片 
 | 
function savePicToAlbum(tempFilePath) { 
 | 
  let that = this; 
 | 
  wx.getSetting({ 
 | 
    success(res) { 
 | 
      if (!res.authSetting['scope.writePhotosAlbum']) { 
 | 
        wx.authorize({ 
 | 
          scope: 'scope.writePhotosAlbum', 
 | 
          success() { 
 | 
            wx.saveImageToPhotosAlbum({ 
 | 
              filePath: tempFilePath, 
 | 
              success(res) { 
 | 
                wx.showToast({ 
 | 
                  title: '保存成功' 
 | 
                }); 
 | 
              }, 
 | 
              fail(res) { 
 | 
                console.log(res); 
 | 
              } 
 | 
            }) 
 | 
          }, 
 | 
          fail() { 
 | 
            // 用户拒绝授权,打开设置页面 
 | 
            wx.openSetting({ 
 | 
              success: function(data) { 
 | 
                console.log("openSetting: success"); 
 | 
              }, 
 | 
              fail: function(data) { 
 | 
                console.log("openSetting: fail"); 
 | 
              } 
 | 
            }); 
 | 
          } 
 | 
        }) 
 | 
      } else { 
 | 
        wx.saveImageToPhotosAlbum({ 
 | 
          filePath: tempFilePath, 
 | 
          success(res) { 
 | 
            wx.showToast({ 
 | 
              title: '保存成功', 
 | 
            }); 
 | 
          }, 
 | 
          fail(res) { 
 | 
            console.log(res); 
 | 
          } 
 | 
        }) 
 | 
      } 
 | 
    }, 
 | 
    fail(res) { 
 | 
      console.log(res); 
 | 
    } 
 | 
  }) 
 | 
} 
 | 
  
 | 
  
 | 
Date.prototype.Format = function(fmt) { //author: meizz  
 | 
  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; 
 | 
} 
 | 
  
 | 
/** 
 | 
 * 给定秒数,格式化时间长度,输入单位秒数 
 | 
 */ 
 | 
function getTimeSpance(timeLength) { 
 | 
  let time = { 
 | 
  day : Math.floor(timeLength / ( 60 * 60 * 24)), //计算天数 
 | 
    hour: Math.floor(timeLength / (60 * 60) % 24), //计算小时数 
 | 
    minute: Math.floor(timeLength / ( 60) % 60), //计算分钟数 
 | 
    second: Math.floor(timeLength  % 60) //计算秒数 
 | 
  }; 
 | 
  return time; 
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
function getOutStorage(key) { 
 | 
  var obj = wx.getStorageSync(key); 
 | 
  wx.removeStorageSync(key); 
 | 
  return obj; 
 | 
} 
 | 
  
 | 
function isNotBlank(str) { 
 | 
  if (str === undefined || str === null || str === "") { 
 | 
    return false; 
 | 
  } else { 
 | 
    return true; 
 | 
  } 
 | 
} 
 | 
  
 | 
function isBlank(str) { 
 | 
  if (str === undefined || str === null || str === "") { 
 | 
    return true; 
 | 
  } else { 
 | 
    return false; 
 | 
  } 
 | 
} 
 | 
  
 | 
  
 | 
  
 | 
module.exports = { 
 | 
  uploadImage: uploadImage, 
 | 
  validForm: validForm, 
 | 
  extend: extend, 
 | 
  userLogin: userLogin, 
 | 
  request: request, 
 | 
  formatTimeTwo: formatTimeTwo, 
 | 
  buttonClicked: buttonClicked, 
 | 
  dateFtt: dateFtt, 
 | 
  goTap: goTap, 
 | 
  isEmojiCharacter: isEmojiCharacter, 
 | 
  savePicToAlbum: savePicToAlbum, 
 | 
  getOutStorage: getOutStorage, 
 | 
  isNotBlank: isNotBlank, 
 | 
  isBlank: isBlank, 
 | 
  getTimeSpance: getTimeSpance 
 | 
} 
 |