shop_app/utils/index.js

111 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { showToast } from '../components/common.js'
// 金额校验
export function checkAmt(dPrice) {
// 判断是否为空
if(dPrice === '') {
showToast('金额不可为空')
return false
}
// 1判断是否有非法字符
for(var i = 0; i < dPrice.length; i++) {
if(isNaN(parseInt(dPrice.charAt(i))) && dPrice.charAt(i) != "." && dPrice.charAt(i) != ","){
showToast('请输入正确的金额')
return false
}
}
// 2如果存在小数点判断是否仅有一个小数点
if(dPrice.indexOf(".") != dPrice.lastIndexOf(".")) {
showToast('请输入正确的金额')
return false
}
// 3判断金额是否为零
var re = /,/g
var amt1 = dPrice.replace(re, "")
var amt2 = parseFloat(amt1)
if(amt2 <= 0) {
showToast('输入金额须大于0')
return false
} else {
// 4判断金额小数点后是否超过两位
if(amt1.indexOf(".") != -1) {
var str = amt1.substr(amt1.indexOf(".") + 1)
if(str.length > 2) {
showToast('输入金额小数点不可超过两位')
return false
}else if(str.length === 0) {
showToast('请输入正确的金额')
return false
}
}
// 5判断以零开头的金额小数点是否在第一位
if(amt1.charAt(0) == "0" && amt1.indexOf(".") != 1) {
showToast('请输入正确的金额')
return false
}
}
return true
}
// 比较版本号
export function compareVersion(v1, v2){
v1 = v1.split('.')
v2 = v2.split('.')
let len = Math.max(v1.length, v2.length)
while(v1.length <len) {
v1.push('0')
}
while(v2.length <len) {
v2.push('0')
}
for(let i = 0; i < len; i++) {
let num1 = parseInt(v1[i])
let num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}
// 根据背景色动态改变字体颜色
export function modifyTextColor(bgColor){
// #123456或rgb(12, 34, 56)转为rgb数组[12, 34, 56]
const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
if (/^(rgb|RGB)/.test(bgColor)) {
// 处理rgb转为数组
let aColor = bgColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
return resBgColor(aColor)
} else if (reg.test(bgColor)) {
// 处理十六进制色值
let sColor = bgColor.toLowerCase();
if (sColor && reg.test(sColor)) {
if (sColor.length === 4) {
let sColorNew = '#'
for (let i = 1; i < 4; i += 1) {
sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
}
sColor = sColorNew
}
//处理六位的颜色值
let sColorChange = []
for (let i = 1; i < 7; i += 2) {
sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))
}
return resBgColor(sColorChange)
} else {
return false
}
} else {
return false
}
}
export function resBgColor(rgbArr){
let color = 0.213 * rgbArr[0] + 0.715 * rgbArr[1] + 0.072 * rgbArr[2] > 255 / 2;
return color ? '#333333': '#ded0d0'
}