111 lines
2.8 KiB
JavaScript
111 lines
2.8 KiB
JavaScript
|
|
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'
|
|||
|
|
}
|
|||
|
|
|