小程序Util.js封装

/**
 * 接口地址
*/        

var apiUrl = 'http://localhost:5325/AppApi/';  // 本地接口地址
var imgUrl = 'https://xmfgxwp.oss-cn-beijing.aliyuncs.com/';//oss图片地址
var serverUrl = "https://xmmweb.ximapay.com"; //服务器地址
/**
 * 服务器图片地址
 */
function getserverUrl() {
  return serverUrl;
}
/**
 * 返回图片路径
 */
function getImgUrl() {
  return imgUrl;
}
/**
 * 加载中
 */
function loading() {
  wx.showLoading({
    title: "玩命加载中...",
    mask: true,
  });
}
/**
 * 获取地理位置
 */
function geographicalPosition(callback) {
  let that = this;
  wx.getLocation({
    type: 'wgs84',
    success (res) {
      callback(res);
    }
  })
}
/**
 * 判断是否登录
*/
function whetherLogin() {
  //从缓存中获取UserID
  var userID = wx.getStorageSync('userId');
  console.log(userID)
  if (userID == "" || userID == null) {
    return false;
  }
  return true;
}
/**
 * 获取URL参数
 */
function getUrlParameter(url, name) {
  if (url.split("?").length != 2) {
    return null;
  }
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  var r = url.split("?")[1].match(reg);
  if (r != null) {
    return unescape(r[2]);
  }
  return null;
}


/**
 * 异步调用接口
*/
function ajaxRequest(url, method, param, success) {
  console.log(JSON.stringify(param));
  //调用接口
  wx.request({
    url: apiUrl + url, //开发者服务器接口地址
    method: method,//默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT,必须大写
    data: {
      param: JSON.stringify(param)//接口参数
    },
    header: {
      'content-type': 'application/json'
    },
    success: function (res) {
      //收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'}
      success(res);
    },
    fail: function (res) {
      //隐藏-加载中
      wx.hideLoading();
      //隐藏-加载中
      wx.hideNavigationBarLoading();
      //停止当前页面下拉刷新
      wx.stopPullDownRefresh();
      //错误提示
      wx.showModal({
        showCancel: false,
        content: res.errMsg
      });
    }
  });
}
/**
 * 异步调用接口,文件上传
*/
function ajaxRequestUploadFile(url, filePath, name, param, success, fail) {


  //调用接口
  wx.uploadFile({
    url: apiUrl + url, //开发者服务器接口地址
    filePath: filePath,
    name: name,
    header: {
      "Content-Type": "multipart/form-data",
      'accept': 'application/json',
    },
    formData: {
      param: JSON.stringify(param)//接口参数
    },
    success: function (res) {
      //收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'}
      success(res);
    },
    fail: function (res) {
      //接口调用失败的回调函数
      console.log(res);
      fail(res);
    }
  })
}
/**
 * 表单验证
 */
function validate(rules, messages, value) {


  //非空验证
  if (rules == "notEmpty") {
    if (value == null || value == "") {
      wx.showToast({ title: messages, icon: 'none', duration: 2000 }); return false;
    }
  }
  //手机号码验证,验证规则:11位数字,以1开头
  if (rules == "tel") {
    var reg = /^1\d{10}$/;
    if (!reg.test(value)) {
      wx.showToast({ title: messages, icon: 'none', duration: 2000 }); return false;
    }
  }
  //邮箱验证,姑且把邮箱地址分成“第一部分@第二部分”这样
  //第一部分:由字母、数字、下划线、短线“-”、点号“.”组成,
  //第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成,
  if (rules == "email") {
    if (value.indexOf('.') <= 0 || value.indexOf('@') <= 0) {
      wx.showToast({ title: messages, icon: 'none', duration: 2000 }); return false;
    }
  }


  if (rules == "idcard") {
    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if (!reg.test(value)) {
      wx.showToast({ title: messages, icon: 'none', duration: 2000 }); return false;
    }
  }
  return true;
}


/**
 * 时间格式化
*/
function formatTime(date) {
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()
  var hour = date.getHours()
  var minute = date.getMinutes()
  var second = date.getSeconds()
  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}


function formatNumber(n) {
  n = n.toString()
  return n[1] ? n : '0' + n
}
//取倒计时(天时分秒)
function getTimeLeft(datetimeTo){
  // 计算目标与现在时间差(毫秒)
  // let time1 = new Date(datetimeTo).getTime();
  // let time2 = new Date().getTime();
  // let mss = time1 - time2;
  let mss = datetimeTo
  // 将时间差(毫秒)格式为:天时分秒
  // let days = parseInt(mss / (1000 * 60 * 60 * 24));
  let hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  let minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
  let seconds = parseInt((mss % (1000 * 60)) / 1000);
  hours=hours<10?"0"+hours:hours;
  minutes=minutes<10?"0"+minutes:minutes;
  seconds=seconds<10?"0"+seconds:seconds;
  return  hours + ":" + minutes + ":" + seconds
}
/**
 * 时间会话列表微信方式显示
 */
var geWXtDate = function (dateTimeStamp) {
  var result='';
  var minute = 1000 * 60;
  var hour = minute * 60;
  var day = hour * 24;
  var halfamonth = day * 15;
  var month = day * 30;
  var now = Date.parse(new Date());
  var diffValue = now - dateTimeStamp;
  var monthC = diffValue / month;
  var weekC = diffValue / (7 * day);
  var dayC = diffValue / day;
  var hourC = diffValue / hour;
  var minC = diffValue / minute;
  if (monthC >= 1) {
    result = "" + parseInt(monthC) + "月前";
  }
  else if (weekC >= 1) {
    result = "" + parseInt(weekC) + "周前";
  }
  else if (dayC >= 1) {
    result = "" + parseInt(dayC) + "天前";
  }
  else if (hourC >= 1) {
    result = "" + parseInt(hourC) + "小时前";
  }
  else if (minC >= 1) {
    result = "" + parseInt(minC) + "分钟前";
  } else{
    result = "刚刚";
  }
  return result;
};

module.exports = {
  imgUrl:imgUrl,
  getImgUrl: getImgUrl,
  whetherLogin: whetherLogin,
  getUrlParameter: getUrlParameter,
  ajaxRequest: ajaxRequest,
  ajaxRequestUploadFile: ajaxRequestUploadFile,
  formatTime: formatTime,
  validate: validate,
  getserverUrl:getserverUrl,
  geographicalPosition:geographicalPosition,
  loading:loading,
  getTimeLeft:getTimeLeft,
  geWXtDate:geWXtDate,
}
 
引用:
var util = require("../../../utils/util.js");


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伴之则安博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值