微信小程序前端开发中经常用到的一些好方法(待后续继续补充)

一、两种时间格式校验

  1.精确到年、月、日、时、分、秒

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(':')
}

2.用“-”连接年月日

function formatTime2(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('-')
}

/*小于两位数的处理*/
function formatNumber(n) {
  n = n.toString()
  return n[1] ? n : '0' + n
}

二、加载显示数据之前  “请稍后”等待提示和关闭提示

function showLoading(){
  console.log("showloading-----");
  wx.showToast({
        title: '请稍后',
        icon: 'loading',
        duration: 5000
    });
}
function hideLoading(){
   wx.hideToast();
}

三、取消、确认操作以及网络异常提示框

// 取消确认提示框
function showModal(text){
   wx.showModal({
      title: '提示',
      content: text,
      showCancel:false,
      success: function(res) {
        if (res.confirm) {
           
        }
      }
   })
}
// 网络异常提示框
function showFailModal(){
  wx.showModal({
    title: '提示',
    content: '网络异常,请检查网络',
    success: function(res) {
      if (res.confirm) {
        console.log('用户点击确定')
      }
    }
  })
}

四、根据id去本地缓存中的products中匹配到p_title

function getProductNameById(id){
  var products = wx.getStorageSync('products');   /**本地缓存中的products对象**/
  for(var i=0;i<products.length;i++){
    var product=products[i]; 
    if(product.p_id==id){
      return product.p_title;
    }
  }
}

五、根据id去本地缓存中的products中匹配product

function getProductById(id){
  var products = wx.getStorageSync('products');    /**本地缓存中的products对象**/
  for(var i=0;i<products.length;i++){
    var product=products[i]; 
    if(product.p_id==id){
      return product;
    }
  }
}
function su(){

}

function com(){

}

六、生成唯一标识符方法(登录时先在本地缓存中获取,若没有,则按照方法去生成一个全局唯一标识符)

function uuid(len, radix) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    var uuid = [], i;
    radix = radix || chars.length;
 
    if (len) {
      for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
    } else {
      var r;
 
      uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
      uuid[14] = '4';
 
      // Fill in random data.  At i==19 set the high bits of clock sequence as
      for (i = 0; i < 36; i++) {
        if (!uuid[i]) {
          r = 0 | Math.random()*16;
          uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
        }
      }
    }
 
    return uuid.join('');
}

总结:将上面的方法都放在util.js中,然后在其中最后写一个暴露接口的方法,方便其他地方调用,如下

module.exports = {
  formatTime: formatTime,
  formatTime2: formatTime2,
  showLoading:showLoading,
  hideLoading:hideLoading,
  showFailModal:showFailModal,
  getProductNameById:getProductNameById,
  getProductById:getProductById,
  showModal:showModal,
  uuid:uuid,
  su:su,
  com:com
}
原文地址:https://www.cnblogs.com/zhaoqiming/p/9150248.html