wft-generate-form
Version:
基于web端xps-formmaking生成的json在uniapp中动态解析
133 lines (120 loc) • 3.5 kB
JavaScript
import * as validateUtils from './validate'
/**
* 时间戳转为标准时间
* @param {Object} timeStamp
*/
export function timeStampTodateTime(timeStamp) { //timeStamp:毫秒格式,即13位 如果是秒就 *1000
let s = new Date(timeStamp)
let y = s.getFullYear()
let m = (s.getMonth() + 1) < 10 ? '0' + (s.getMonth() + 1) : (s.getMonth() + 1)
let dd = s.getDate() < 10 ? '0' + s.getDate() : s.getDate()
let hh = s.getHours() < 10 ? '0' + s.getHours() : s.getHours()
let mm = s.getMinutes() < 10 ? '0' + s.getMinutes() : s.getMinutes()
let ss = s.getSeconds() < 10 ? '0' + s.getSeconds() : s.getSeconds()
let enddate = y + '-' + m + '-' + dd + ' ' + hh + ':' + mm + ":" + ss
return enddate
}
/**
* hex 转 rgba 格式
*/
export function hexToRgba(hex, opacity = 1) {
return {
r: parseInt("0x" + hex.slice(1, 3)),
g: parseInt("0x" + hex.slice(3, 5)),
b: parseInt("0x" + hex.slice(5, 7)),
a: opacity
}
}
/**
* 匹配body之间的内容
* @param {Object} content
*/
export function getBody(content) {
const REG_BODY = /<body[^>]*>([\s\S]*)<\/body>/;
const result = REG_BODY.exec(content);
if (result && result.length === 2)
return result[1];
return content;
}
/**
* 判断是否为空 校验
* @param {Object} value
*/
export function isEmpty(value) {
let result = false;
if (value == null || value == undefined) {
result = true;
}
if (typeof value == 'string' && (value.replace(/\s+/g, "") == "" || value == "")) {
result = true;
}
// 判断空数组
if (typeof value == "object" && (value instanceof Array || Array.isArray(value) || value.constructor === Array) &&
value.length === 0) {
result = true;
}
return result;
}
/**
* 获取 num 天前日期
* @param {*} num
* @returns
*/
export function getDate(num) {
var date1 = new Date();
var date2 = new Date(date1);
date2.setDate(date1.getDate() + num);
//num是正数表示之后的时间,num负数表示之前的时间,0表示今天
var time2 = addZero(date2.getFullYear()) + "-" + addZero((date2.getMonth() + 1)) + "-" + addZero(date2.getDate());
return time2;
}
function addZero(num) { //补0方法
if (parseInt(num) < 10) {
num = '0' + num;
}
return num;
}
// 获取token值
export function getToken(tokenKey = 'token') {
return uni.getStorageSync(tokenKey);
}
// input校验
export function isValidInput({ required, requiredMessage, dataTypeCheck, dataType, dataTypeMessage, patternCheck, pattern, patternMessage, value }) {
let validator = false
let validateMessage = ''
if (required) {
if (!value) {
validateMessage = requiredMessage
validator = true
return { validator, validateMessage }
}
}
if (dataTypeCheck) {
if (!isNext(dataType, value)) {
validateMessage = dataTypeMessage
validator = true
return { validator, validateMessage }
}
}
if (patternCheck) {
if (!new RegExp(pattern)?.test(value)) {
validateMessage = patternMessage
validator = true
return { validator, validateMessage }
}
}
return { validator, validateMessage }
}
// 单行文本dataType校验
function isNext(type, value) {
const map = {
string: () => true,
number: validateUtils.isDigits,
integer: validateUtils.isNumber,
float: validateUtils.isFloat,
url: validateUtils.isURL,
email: validateUtils.isEmail,
hex: validateUtils.isHexString
}
return map[type](value) || false
}