zoukankan      html  css  js  c++  java
  • 小程序util工具

    import wafer from '../lib/wafer2-client-sdk'
    import tip from './tip'

    // 时间格式化
    const formatTime = time => {
    time = (time.length == 10) ? parseInt(time) * 1000 : parseInt(time)
    var date = new Date(time)
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const hour = date.getHours()
    const minute = date.getMinutes()
    const second = date.getSeconds()

    return [year, month, day].map(formatNumber).join('-')
    }

    // Money格式化
    const formatFen2Jiao = fen => {
    if (fen) {
    return parseFloat(fen / 100, 2)
    } else {
    return '0.00'
    }
    }

    const formatNumber = n => {
    n = n.toString()
    return n[1] ? n : '0' + n
    }

    const deepClone = obj => {
    const _this = this
    var temp = null
    if (obj && obj instanceof Array) {
    temp = []
    temp = obj.map(function (item) {
    return deepClone(item)
    })
    } else if (obj && typeof obj === 'object') { // typeof null 的值是 object
    temp = {}
    for (let item in obj) {
    temp[item] = deepClone(obj[item])
    }
    } else {
    temp = obj
    }
    return temp
    }

    // 复制粘贴
    const clip = (obj) => {
    wx.setClipboardData(obj)
    }

    async function request(options, page, tryout, successCB, failCB) {
    const session = wafer.Session.get()
    if (tryout === 0) {
    return
    }
    let tryTmp = 0
    let result = 0
    let failTmp = 0
    while (tryTmp++ < tryout && !result) {
    if (tryTmp > 2) await sleep(3)

    failTmp = await tryRequest(options)

    if (failTmp.data && (failTmp.data.code || failTmp.data.code == 0)) {
    result = failTmp
    }
    }
    if (result) {
    successCB.call(page, result)
    } else {
    failCB.call(page, failTmp)
    }

    if (options.tip) {
    tip.loaded()
    }
    }

    async function tryRequest(options) {
    return new Promise((resolve, reject) => {
    if (options.tip) {
    tip.loading()
    }
    wafer.request({
    method: options.method || 'GET',
    data: options.data || {},
    url: options.url,
    success: function (res) {
    resolve(res)
    },
    fail: function (err) {
    console.log('try err:', err)
    if (!err.code) {
    resolve(0)
    } else {
    resolve(err)
    console.log('请求失败url', options.url)
    console.log('请求失败', err)
    }
    },
    complete: function (res) {
    // console.log(res)
    }
    })
    })
    }

    async function sleep(sec) {
    return new Promise(resolve => {
    setTimeout(() => {
    let tmp = ''
    console.log('sleep ' + sec + ' seconds')
    resolve(true)
    }, sec * 1000)
    })
    }

    function getuuid(u) {
    let mydate = new Date()
    let uuid = u + mydate.getDay() + mydate.getHours() + mydate.getMinutes() +
    mydate.getSeconds() + mydate.getMilliseconds() + Math.round(Math.random() * 10000)
    return uuid
    }

    module.exports = {
    formatTime,
    deepClone,
    formatFen2Jiao,
    clip,
    request,
    getuuid
    }
  • 相关阅读:
    Day 43
    Day 42
    Day 41
    Day 40
    Linux下查看服务器的产品型号和序列号
    AgileController Portal认证成功后弹出找不到指定位置的资源
    华三交换机snmp开通
    FusionCompute 6.3.0 CNA系统安装
    集群IMC策略
    静态路由配置语法
  • 原文地址:https://www.cnblogs.com/zhaomeizi/p/9791593.html
Copyright © 2011-2022 走看看