源文件
This commit is contained in:
233
jeepay-ui-uapp-agent/util/tool.js
Normal file
233
jeepay-ui-uapp-agent/util/tool.js
Normal file
@@ -0,0 +1,233 @@
|
||||
import qrcode from "@/util/qrcode.js"
|
||||
|
||||
/* 获取当前日期并格式化 */
|
||||
function getNowTime() {
|
||||
var nowtime = new Date()
|
||||
var year = nowtime.getFullYear()
|
||||
var month = nowtime.getMonth() + 1 < 10 ? "0" + (nowtime.getMonth() + 1) : nowtime.getMonth() + 1
|
||||
var day = nowtime.getDate() < 10 ? "0" + nowtime.getDate() : nowtime.getDate()
|
||||
var hour = nowtime.getHours() < 10 ? "0" + nowtime.getHours() : nowtime.getHours()
|
||||
var minute = nowtime.getMinutes() < 10 ? "0" + nowtime.getMinutes() : nowtime.getMinutes()
|
||||
return year + "-" + month + "-" + day + " " + hour + ":" + minute
|
||||
}
|
||||
|
||||
// 格式化日期格式为 xxxx-xx-xx
|
||||
function getFullDate(targetDate) {
|
||||
var nowDate = new Date()
|
||||
var fullYear = nowDate.getFullYear()
|
||||
var month = nowDate.getMonth() + 1 // getMonth 方法返回 0-11,代表1-12月
|
||||
|
||||
var D, y, m, d
|
||||
if (targetDate) {
|
||||
D = new Date(targetDate)
|
||||
y = D.getFullYear()
|
||||
m = D.getMonth() + 1
|
||||
d = D.getDate()
|
||||
} else {
|
||||
// 不传参数 则获取今天的日期
|
||||
y = fullYear
|
||||
m = month
|
||||
d = new Date()
|
||||
d = d.getDate()
|
||||
}
|
||||
m = m > 9 ? m : "0" + m
|
||||
d = d > 9 ? d : "0" + d
|
||||
return y + "-" + m + "-" + d
|
||||
}
|
||||
|
||||
/* 将时间戳格式化为yyyy-MM-dd hh:mm:ss格式,其它格式可自行更改 */
|
||||
function formatTimeMills(timeMills, sign) {
|
||||
var date = new Date(timeMills)
|
||||
var timeStr = date.getFullYear() + sign
|
||||
if (date.getMonth() < 9) {
|
||||
// 月份从0开始的
|
||||
timeStr += "0"
|
||||
}
|
||||
timeStr += date.getMonth() + 1 + sign
|
||||
timeStr += date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
|
||||
timeStr += " "
|
||||
timeStr += date.getHours() < 10 ? "0" + date.getHours() : date.getHours()
|
||||
timeStr += ":"
|
||||
timeStr += date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()
|
||||
/* timeStr += ':';
|
||||
timeStr += date.getSeconds() < 10 ? ('0' + date.getSeconds()) : date.getSeconds(); */
|
||||
return timeStr
|
||||
}
|
||||
|
||||
/* 获取今天的零点/最后一刻 */
|
||||
function getTodayStartOrEnd(sign) {
|
||||
let resultTime = ""
|
||||
if (sign == "start") {
|
||||
resultTime = new Date(new Date(new Date().toLocaleDateString()).getTime())
|
||||
} else if (sign == "end") {
|
||||
resultTime = new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1)
|
||||
}
|
||||
return formatTimeMills(resultTime, "-")
|
||||
}
|
||||
|
||||
let num = (a) => {
|
||||
if (a != null && a.toString() != "") {
|
||||
let r = /^-?(0|[1-9]+\d*|[1-9]+\d*\.\d+|0\.\d+)$/
|
||||
if (r.test(a.toString())) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/* 除法 */
|
||||
function division(a, b) {
|
||||
if (!num(a) || !num(b)) {
|
||||
return null
|
||||
}
|
||||
let c, d, f, g
|
||||
try {
|
||||
c = a.toString().split(".")[1].length
|
||||
} catch (e) {
|
||||
c = 0
|
||||
}
|
||||
try {
|
||||
d = b.toString().split(".")[1].length
|
||||
} catch (e) {
|
||||
d = 0
|
||||
}
|
||||
f = Number(a.toString().replace(".", ""))
|
||||
g = Number(b.toString().replace(".", ""))
|
||||
return parseFloat(((f / g) * Math.pow(10, d - c)).toFixed(2))
|
||||
}
|
||||
|
||||
/* 金额格式化 */
|
||||
function amountFormatting(amount, sign) {
|
||||
let changeAmount = 0
|
||||
let resultAmount = 0
|
||||
if (sign == 0) {
|
||||
changeAmount = division(amount, 100)
|
||||
resultAmount = changeAmount.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, "$&,")
|
||||
} else if (sign == 1) {
|
||||
resultAmount = amount.toFixed(0).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, "$&,")
|
||||
}
|
||||
return resultAmount
|
||||
}
|
||||
|
||||
// 获取n天后的日期
|
||||
function getNdaysLater(n) {
|
||||
var nowDate = new Date()
|
||||
let nDaysLaterDate = getFullDate(nowDate.getTime() + 24 * 60 * 60 * 1000 * n) //获取明天日期
|
||||
return nDaysLaterDate
|
||||
}
|
||||
|
||||
export const debounce = (fn, t) => {
|
||||
let delay = t || 500
|
||||
let timer
|
||||
return function () {
|
||||
let args = arguments
|
||||
if (timer) {
|
||||
clearTimeout(timer)
|
||||
}
|
||||
timer = setTimeout(() => {
|
||||
timer = null
|
||||
|
||||
fn.apply(this, args)
|
||||
}, delay)
|
||||
}
|
||||
}
|
||||
|
||||
// 将回显的地址码,转为文本供只读组件使用 ,第一个参数为地址码数组,第二,三个参数为省市区的JSON,只有收付通会用到第三个参数
|
||||
const addressBack = (list, address, addressTow) => {
|
||||
if (!list || list.length == 0) return "" // 非空校验
|
||||
|
||||
let addressText = ""
|
||||
|
||||
// 绝大多数清空都没有第二个 地址JSON表
|
||||
if (!addressTow) {
|
||||
let first = address.find((val) => val.value == list[0])
|
||||
addressText += first.text + "/"
|
||||
let second = first.children.find((val) => val.value == list[1])
|
||||
addressText += second.text + "/"
|
||||
let third = second.children.find((val) => val.value == list[2])
|
||||
addressText += third.text
|
||||
} else {
|
||||
// 收付通 选择 支行所在地址专属 (只能选择到市一级)
|
||||
let first = addressTow.find((val) => val.value == list[0])
|
||||
addressText += first.text + "/"
|
||||
let second = first.children.find((val) => val.value == list[1])
|
||||
addressText += second.text
|
||||
}
|
||||
|
||||
return addressText
|
||||
}
|
||||
|
||||
// 将回显的行业mcc码,转为文本供只读组件使用 ,第一个参数为地址码数组,第二参数为行业mcc的JSON, 第三个参数为取值方式,拼接的截取取值,数组的拿最后一个值
|
||||
const mccBack = (mccCode, mccJson, type) => {
|
||||
if (!mccCode) return "" // 非空校验
|
||||
let mccText = ""
|
||||
|
||||
if (type == "splicing") {
|
||||
let code
|
||||
if (mccCode) code = mccCode.split("_")[1]
|
||||
|
||||
for (var i = 0; i < mccJson.length; i++) {
|
||||
mccText = mccJson[i].children.find((val) => val.value == code)
|
||||
if (mccText) break
|
||||
}
|
||||
mccText = mccText.text
|
||||
} else if (type == "last") {
|
||||
for (var i = 0; i < mccJson.length; i++) {
|
||||
mccText = mccJson[i].children.find((val) => val.value == mccCode)
|
||||
if (mccText) break
|
||||
}
|
||||
|
||||
mccText = mccText.text
|
||||
}
|
||||
|
||||
return mccText
|
||||
}
|
||||
|
||||
// 制作图片
|
||||
const drawQRcode = (url) => {
|
||||
let params = url // 二维码参数
|
||||
var imgData = qrcode.drawImg(params, {
|
||||
typeNumber: 4, // 密度
|
||||
errorCorrectLevel: "Q", // 纠错等级
|
||||
size: 175, // 白色边框
|
||||
})
|
||||
return imgData
|
||||
}
|
||||
function addressCode(val, address) {
|
||||
const data = []
|
||||
address.forEach((v) => {
|
||||
if (val.indexOf(v.text) != -1) {
|
||||
data.push(v)
|
||||
v.children.forEach((ite) => {
|
||||
if (val.indexOf(ite.text) != -1) {
|
||||
data.push(ite)
|
||||
ite.children.forEach((value) => {
|
||||
if (val.indexOf(value.text) != -1) {
|
||||
data.push(value)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
const obj = {
|
||||
text: [],
|
||||
code: [],
|
||||
}
|
||||
data.forEach((v, i) => {
|
||||
obj.text.push(v.text)
|
||||
obj.code.push(v.value)
|
||||
})
|
||||
obj.text = obj.text.join("/")
|
||||
return obj
|
||||
}
|
||||
export default {
|
||||
getNowTime,
|
||||
amountFormatting,
|
||||
getNdaysLater,
|
||||
getTodayStartOrEnd,
|
||||
addressBack,
|
||||
mccBack,
|
||||
drawQRcode,
|
||||
addressCode,
|
||||
}
|
||||
Reference in New Issue
Block a user