REm
移动端适配引入rem
在src里面创建assets-js
如下代码
//移动端的适配rem
function setRem() {
// 这里直接在main里面导入这个文件
// 使用这个100px = 1rem 需要在页面里面进行转换
var html = document.documentElement;
var windowWidth = html.clientWidth;
html.style.fontSize = windowWidth / 3.75 + 'px';
}
document.addEventListener('DOMContentLoaded', function () {
setRem();
window.onresize = function () {
setRem();
}
}, false);
然后在main,js直接导入这个文件 使用时
100px=1rem
创建功能封装
在utils里面-index.js
如下所示
/*
2021-12-06 Belongs to the work
PS 处理时间需要安装dayjs
// cnpm install dayjs --save
https://www.jianshu.com/p/ed20fb23e658 dayjs官网
*/
import dayjs from "dayjs"
import { Dialog } from "vant";
// 直接写方法 然后引入这个方法
export function openDialogAlert(title, content, text,) {
//提示弹框
return Dialog.alert({
title: title || '标题',
message: content,
confirmButtonText: text || '确认',
}).then(() => {
}).catch(() => {
})
}
//生成随机数16位
export function generateUUID() {
var d = new Date().getTime()
if (window.performance && typeof window.performance.now === 'function') {
d += performance.now()
}
var uuid = 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0
d = Math.floor(d / 16)
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
})
return uuid
}
export function openDialogAlert1(title, content, text, text1,) {
//确认弹框
return new Promise(resovle => Dialog.confirm({
title: title || '标题',
message: content,
confirmButtonText: text || '确认',
cancelButtonText: text1 || '取消'
}).then(resovle).catch(resovle))
}
const common = {
// 存 取 清除 token
set(key, value) {
localStorage.setItem(key, JSON.stringify(value));
// localStorage.key = value;
// localStorage[key] = value;
},
get(key) {
return JSON.parse(localStorage.getItem(key));
},
remove(key) {
localStorage.removeItem(key);
},
changeTitle(title) {
// 这个是移动端的title 显示
document.querySelector('title').text = title;
if (window.ele_health_card) {
window.ele_health_card.changeTitle(title);
}
if (window.webkit && (window.navigator.userAgent.indexOf('JKTNATIVE') > 0)) {
this.callApp('changeTitle', title);
}
},
changeTitleBar(params) {
if (window.ele_health_card) {
// 传0都透明,1都白色
window.ele_health_card.changeTitleBar(params);
}
if (window.webkit && (window.navigator.userAgent.indexOf('JKTNATIVE') > 0)) {
this.callApp('changeTitleBar', params);
}
},
}
// ======= 处理时间
export function formatTime (value, format = 'YYYY-MM-DD hh:mm:ss') {
return dayjs(value).format(format)//时间戳转time YYYY-MM-DD hh:mm:ss
}
export function changeDateFormat(format = 'YYYYMMDD') {
return dayjs(new Date()).format(format)//当前时间YYYY-MM-DD
}
export function changeMount(format = 'YYYYMM') {
return dayjs(new Date()).format(format)//转化成月
}
export function getToday(format = 'YYYY年MM月DD日 hh:mm:ss') {
return dayjs(new Date()).format(format)//当前时间YYYY-MM-DD hh:mm:ss
}
export function getYT(format = 'YYYY年MM月') {
return dayjs(new Date()).format(format)//当前时间YYYY-MM-DD hh:mm:ss
}
export function backDayRange(format = 'YYYYMMDD') {
return dayjs(new Date()).subtract(2, 'day').format(format)//倒退几天 减几天就是倒退几天
}
export function lastMonth(format = 'YYYYMM') {
var currentdate = dayjs(new Date()).subtract(1, 'months').format(format)
return currentdate//当前时间的前1个月
}
export function TimeMonth(format = 'YYYY-MM') {
var currentdate = dayjs(new Date()).subtract(1, 'months').format(format)
return currentdate//当前时间的前1个月
}
export function Yearmonth(format ='YYYY-MM-DD') {
return dayjs(new Date()).subtract(2, 'day').format(format)
}
export function twoMonth(format = 'YYYYMM') {
var currentdate = dayjs(new Date()).subtract(2, 'day').subtract(1, 'months').format(format)
return currentdate//当前时间的前1个月
}
export function dayMonth(format ='YYYYMM') {
var currentdate = dayjs(new Date()).subtract(3, 'day').format(format)
return currentdate//3号之前显示的是上个月 3号之后显示这个月
//就是时间往前推3天就好 显示当月
}
export function timestamp() {
return dayjs().unix()//时间转时间戳
}
// 接受0(星期日)到6(星期六)的数字
export function lastWeekDay(format = 'YYYYMMDD') {
return dayjs().day(0).format(format)//定义到周日 上周日的时间
}
export function twoWeekDay(format = 'YYYYMMDD') {
//定义到周日 每周二更新上周日 否则是上上周日 就是周2之前是上上周日 周2更新显示上周日
return dayjs(new Date()).subtract(3, 'day').day(0).format(format)
}
export function ThreeWeekDay(format = 'YYYYMMDD') {
//定义到周日 每周二更新上周日 否则是上上周日 就是周2之前是上上周日 周2更新显示上周日
return dayjs(new Date()).day(0).format(format)
}
// ====== 保留小数
export function toDecimal2(x) {
// 保留2位小数点 强制保留2位小数,如:2,会在2后面补上00.即2.00
// 这个是四舍五入的 3.245 变成3.25
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
export function toFixed(num, decimal) {
// 保留2位小数点 这个不是四舍五入
// 2个参数 第一个是数值 第二个是保留几位
num = num.toString();
let index = num.indexOf('.');
if (index !== -1) {
num = num.substring(0, decimal + index + 1)
} else {
num = num.substring(0)
}
return parseFloat(num).toFixed(decimal)
}
export function listFloat(num,n){
var f = parseFloat(num);
if(isNaN(f)){
return false;
}
f = Math.round(num*Math.pow(10, n))/Math.pow(10, n); // n 幂
var s = f.toString();
var rs = s.indexOf('.');
//判定如果是整数,增加小数点再补0
if(rs < 0){
rs = s.length;
s += '.';
}
while(s.length <= rs + n){
s += '0';
}
return s;
}
// ======= 小数转百分数 ======= 百分数转小数
export function toPercent(point) {
// 小数转化为百分数 toFixed() 作用保留几位小数位 现在是保留2位
var percent = Number(point * 100).toFixed(2);
percent += "%";
return percent;
}
export function toPoint(percent) {
// 百分数转小数
var str = percent.replace("%", "");
str = str / 100;
return str;
}
//校验身份证号
//身份证验证
export function validateSfz(rule, value, callback) {
if (!value) {
return callback(new Error('身份证号码不能为空'));
}
function validataCredentials(num) {
var msg, boo; // msg身份证验证友情提示,boo返回值
var num = num.toUpperCase(); // 身份证为末尾可能是X
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,
// 最后一位是校验位,可能为数字或字符X。
const arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
const arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0,
i;
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
// 输入的身份证号长度不对,或者号码不符合规定;
return [boo = false, msg = "输入的身份证号长度不对,或者号码不符合规定"];
}
// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
// 下面分别分析出生日期和校验位
var len, re;
len = num.length;
if (len == 15) {
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrSplit = num.match(re);
// 检查生日日期是否正确
var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay) {
// 输入的身份证号里出生日期不对!
return [boo = false, msg = "输入的身份证号里出生日期不对!"];
} else {
// 将15位身份证转成18位
// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
for (i = 0; i < 17; i++) {
nTemp += num.substr(i, 1) * arrInt[i];
}
num += arrCh[nTemp % 11];
return [boo = true, msg = num];
}
}
if (len == 18) {
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = num.match(re);
// 检查生日日期是否正确
var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay) {
// 输入的身份证号里出生日期不对!
return [boo = false, msg = " 输入的身份证号里出生日期不对"];
} else {
// 检验18位身份证的校验码是否正确。
// 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
var valnum;
for (i = 0; i < 17; i++) {
nTemp += num.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != num.substr(17, 1)) {
// 18位身份证的校验码不正确!
return [boo = false, msg = "身份证的校验码不正确!"];
}
return [boo = true, msg = "验证成功"]
}
}
return [boo = false, msg = "身份证的长度不正确!"];
}
setTimeout(() => {
var res = validataCredentials(value);
if (!res[0]) {
callback(new Error(res[1]));
} else {
callback();
}
}, 200);
};
/*
* @Author: yangwenyang
* @Date: 2022-04-06
*/
/*
*截取url?后的参数
*/
export function param2Obj(url) {
url = url || location.href;
const search = url.split("?")[1];
if (!search) {
return {};
}
return JSON.parse(
'{"' +
decodeURIComponent(search)
.replace(/[!~`\\'()#$%^*:;"<>?]/g, "")
.replace(/"/g, '\\"')
.replace(/&/g, '","')
.replace(/=/g, '":"') +
'"}'
);
}
/**
* 获取链接上拼接参数
*/
export const getUrlString = (str) => {
let LocString = String(window.document.location.href);
let rs = new RegExp("(^|)" + str + "=([^&]*)(&|$)", "gi").exec(LocString),
tmp;
if ((tmp = rs)) return decodeURI(tmp[2]);
return null;
};
/**
* 存储 localStorage
*/
export const setLocalStore = (name, content) => {
if (!name) return;
if (typeof content !== "string") {
content = JSON.stringify(content);
}
window.localStorage.setItem(name, content);
};
/**
* 获取 localStorage
*/
export const getLocalStore = (name) => {
if (!name) return;
return window.localStorage.getItem(name);
};
/**
* 删除localStorage
*/
export const removeStore = (name) => {
if (!name) return;
window.localStorage.removeItem(name);
};
/**
* 存储 sessionStorage
*/
export const setSessionStore = (name, content) => {
if (!name) return;
if (typeof content !== "string") {
content = JSON.stringify(content);
}
window.sessionStorage.setItem(name, content);
};
/**
* 获取 sessionStorage
*/
export const getSessionStore = (name) => {
if (!name) return;
return window.sessionStorage.getItem(name);
};
/*
*渠道设备
*/
export const browser = {
versions: (function () {
var u = navigator.userAgent;
return {
trident: u.indexOf("Trident") > -1, //IE内核
presto: u.indexOf("Presto") > -1, //opera内核
webKit: u.indexOf("AppleWebKit") > -1, //苹果、谷歌内核
gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1, //android终端或者uc浏览器
iPhone: u.indexOf("iPhone") > -1 || u.indexOf("Mac") > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf("iPad") > -1, //是否iPad
webApp: u.indexOf("Safari") == -1, //是否web应该程序,没有头部与底部
wechat: u.toLowerCase().indexOf("micromessenger") !== -1, //微信打开
};
})(),
};
// 获取日期 一周之前
export const getWeekAgeTime = () => {
var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1; //0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + "/" + month + "/" + day;
if (day - 7 <= 0) {
//若是在当月7日以前
var startMonthDay = new Date(year, parseInt(month) - 1, 0).getDate(); //1周前所在月的总天数
if (month - 1 <= 0) {
//若是在当年的1月份
dateObj.start = year - 1 + "/" + 12 + "/" + (31 - (7 - day));
} else {
dateObj.start =
year + "/" + (month - 1) + "/" + (startMonthDay - (7 - day));
}
} else {
dateObj.start = year + "/" + month + "/" + (day - 7);
}
return SetFormatTime("yyyy-MM-dd", new Date(dateObj.start));
};
// 获取时间 一个月之前
export const getMonthAgeTime = () => {
var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1; //0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + "/" + month + "/" + day;
var endMonthDay = new Date(year, month, 0).getDate(); //当前月的总天数
if (month - 1 <= 0) {
//如果是1月,年数往前推一年<br>
dateObj.start = year - 1 + "/" + 12 + "/" + day;
} else {
var startMonthDay = new Date(year, parseInt(month) - 1, 0).getDate();
if (startMonthDay < day) {
//1个月前所在月的总天数小于现在的天日期
if (day < endMonthDay) {
//当前天日期小于当前月总天数
dateObj.start =
year +
"/" +
(month - 1) +
"/" +
(startMonthDay - (endMonthDay - day));
} else {
dateObj.start = year + "/" + (month - 1) + "/" + startMonthDay;
}
} else {
dateObj.start = year + "/" + (month - 1) + "/" + day;
}
}
return SetFormatTime("yyyy-MM-dd", new Date(dateObj.start));
};
// 三个月之前
export const getThreeMonthAgeTime = () => {
var end = new Date();
var year = end.getFullYear();
var month = end.getMonth() + 1; //0-11表示1-12月
var day = end.getDate();
var dateObj = {};
dateObj.end = year + "/" + month + "/" + day;
var endMonthDay = new Date(year, month, 0).getDate(); //当前月的总天数
var start3MonthDay = "";
if (month - 3 <= 0) {
//如果是1、2、3月,年数往前推一年
start3MonthDay = new Date(
year - 1,
12 - (3 - parseInt(month)),
0
).getDate(); //3个月前所在月的总天数
if (start3MonthDay < day) {
//3个月前所在月的总天数小于现在的天日期
dateObj.start =
year - 1 + "/" + (12 - (3 - month)) + "/" + start3MonthDay;
} else {
dateObj.start = year - 1 + "/" + (12 - (3 - month)) + "/" + day;
}
} else {
start3MonthDay = new Date(year, parseInt(month) - 3, 0).getDate(); //3个月前所在月的总天数
if (start3MonthDay < day) {
//3个月前所在月的总天数小于现在的天日期
if (day < endMonthDay) {
//当前天日期小于当前月总天数,2月份比较特殊的月份
dateObj.start =
year +
"/" +
(month - 3) +
"/" +
(start3MonthDay - (endMonthDay - day));
} else {
dateObj.start = year + "/" + (month - 3) + "/" + start3MonthDay;
}
} else {
dateObj.start = year + "/" + (month - 3) + "/" + day;
}
}
return SetFormatTime("yyyy-MM-dd", new Date(dateObj.start));
};
// 格式化日期
export const SetFormatTime = (timeType, time = new Date()) => {
var t = new Date(time);
var format = timeType; //timeType =>yyyy-MM-dd HH:mm:ss
var tf = function (i) {
return (i < 10 ? "0" : "") + i;
};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
switch (a) {
case "yyyy":
return tf(t.getFullYear());
// break;
case "MM":
return tf(t.getMonth() + 1);
// break;
case "mm":
return tf(t.getMinutes());
// break;
case "dd":
return tf(t.getDate());
// break;
case "HH":
return tf(t.getHours());
// break;
case "ss":
return tf(t.getSeconds());
// break;
}
});
};
// 身份证脱敏
export const desIdCard = (str) => {
let id = str.substr(0, 3) + "***********" + str.substr(+str.length - 4, 4);
return id;
};
// 手机号脱敏
export const desmobile = (str) => {
let id = str.substr(0, 3) + "****" + str.substr(+str.length - 4, 4);
return id;
};
// 姓名脱敏
export const dedName = (str) => {
if (str.length == 2) {
let name = str.substring(0, 1) + "*"; //截取name 字符串截取第一个字符,
return name;
} else if (str.length == 3) {
let name = str.substring(0, 1) + "*" + str.substring(2, 3); //截取第一个和第三个字符
return name;
} else if (str.length > 3) {
let name = str.substring(0, 1) + "*" + "*" + str.substring(3, str.length); //截取第一个和大于第4个字符
return name;
}
};
// 金额变百分数保留小数点2位
export const getMoney = (str) => {
let money = (Number(str) / 100).toFixed(2);
return money;
};
/*
num为个数时前面加0显示
如1 显示01
*/
export const formatNumber = (n) => {
const str = n.toString();
return str[1] ? str : `0${str}`;
};
/**
* 格式化日期 年月日
*/
export const formatTime2 = (date) => {
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
return `${year}-${month > 9 ? month : "0" + month}-${day > 9 ? day : "0" + day
}`;
};
// base64
export const getBase64 = (img, callback) => {
const reader = new FileReader()
reader.addEventListener('load', () => callback(reader.result))
reader.readAsDataURL(img)
}
/*坐标转换*/
//var x_PI = (3.14159265358979324 * 3000.0) / 180.0;
// var PI = 3.1415926535897932384626;
// var a = 6378245.0;
// var ee = 0.00669342162296594323;
export function gcj02tobd09(lng, lat) {
var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
var bd_lng = z * Math.cos(theta) + 0.0065;
var bd_lat = z * Math.sin(theta) + 0.006;
return [bd_lng, bd_lat];
}
export default common
然后在使用的时候直接引用
比如
找到对于的功能进行调用
创建封装功能1
验证封装
import Vue from "vue";
import { Toast } from "vant";
Vue.use(Toast);
/**
* 手机号验证
*/
export const mobileValidate = (mobile) => {
const newReg = /^(((13[0-9]{1})|(14[0,1,4,5,6,7,8,9]{1})|(17[0,1,2,3,4,5,6,7,8]{1})|(15[0,1,2,3,5,6,7,8,9]{1})|(18[0-9]{1})|(19[0,1,2,3,5,6,7,8,9]{1})|(16[2,5,6,7]{1}))+\d{8})$/;
if (mobile) {
if (newReg.test(mobile)) {
return true;
} else {
Toast("请输入正确的手机号码");
return false;
}
} else {
Toast("手机号不能为空");
return false;
}
};
/**
* 登录密码验证8-16数字字母组合
*/
export const pwdValidate = (pwd) => {
const newReg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/;
if (pwd) {
if (pwd.length < 8) {
Toast("密码长度为8-16位");
return false;
} else {
if (newReg.test(pwd)) {
return true;
} else {
Toast("密码为8-16位的数字字母组合");
return false;
}
}
} else {
Toast("请输入密码");
return false;
}
};
/**
* 短信验证码验证
*/
export const codeValidate = (code) => {
if (code) {
if (code.length < 6) {
Toast("请输入6位验证码");
return false;
} else {
return true;
}
} else {
Toast("请输入验证码");
return false;
}
};
/**
* 姓名验证
*/
export const nameValidate = (name) => {
const newReg = new RegExp(
"[`~!@#%$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
);
if (name) {
if (newReg.test(name)) {
Toast("不能输入特殊字符");
return false;
} else {
return true;
}
} else {
Toast("请输入姓名");
return false;
}
};
/**
* 身份证号验证
*/
export const certNoValidate = (certNo) => {
if (certNo) {
// 加权因子
const weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
// 校验码
const check_code = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
let code = certNo + "";
let seventeen = code.substring(0, 17);
// 判断最后一位校验码是否正确
let arr = seventeen.split("");
let len = arr.length;
let num = 0;
for (let i = 0; i < len; i++) {
num = num + arr[i] * weight_factor[i];
}
// 获取余数
let resisue = num % 11;
let last_no = check_code[resisue];
// 格式的正则
// 正则思路
/*
第一位不可能是0
第二位到第六位可以是0-9
第七位到第十位是年份,所以七八位为19或者20
十一位和十二位是月份,这两位是01-12之间的数值
十三位和十四位是日期,是从01-31之间的数值
十五,十六,十七都是数字0-9
十八位可能是数字0-9,也可能是X
*/
const newReg = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
// 判断格式是否正确
let format = newReg.test(certNo);
// 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
if (last_no && format) {
return true;
} else {
Toast("请输入正确合法的身份证号码");
return false;
}
} else {
Toast("请输入身份证号码");
return false;
}
};
/**
* 卡号验证
*/
export const cardNoValidate = (cardNo) => {
const newReg = /^\d{17}$/;
if (cardNo) {
if (newReg.test(cardNo)) {
return true;
} else {
Toast("卡号有误,请核对您的市民卡卡号");
return false;
}
} else {
Toast("请输入您的市民卡卡号");
return false;
}
};
export default {
// 手机号校验
phoneCheck(params) {
if (/^1[34578]\d{9}$/.test(params)) {
return "success";
} else {
return "warning";
}
},
// 邮箱校验
emailCheck(params) {
if (/^[a-z0-9_]{2,20}@[a-z0-9]{2,10}\.[a-z]{2,6}$/.test(params)) {
return "success";
} else {
return "warning";
}
},
// 生日校验
birthdayCheck(params) {
if (/^\d{4}-\d{1,2}-\d{1,2}$/.test(params)) {
if (params > "1900-00-00" && params < "2019-12-31") {
return "success";
} else {
return "warning";
}
} else {
return "warning";
}
},
// 昵称校验
nicknameCheck(params) {
if (params && params.trim()) {
if (params.length >= 1 && params.length <= 10) {
return "success";
} else {
return "warning";
}
} else {
return "warning";
}
},
// 个签校验
introductionCheck(params) {
if (params && params.trim()) {
return "success";
} else {
return "warning";
}
},
// 用户名校验
usernameCheck(params) {
if (params && params.trim()) {
if (params.length >= 1 && params.length <= 20) {
return "success";
} else {
return "warning";
}
} else {
return "warning";
}
},
// 密码校验
passwordCheck(pwd, repwd) {
if (pwd && pwd.trim() && repwd && repwd.trim()) {
if (pwd === repwd) {
if (pwd.length >= 6 && pwd.length <= 16) {
return "success";
} else {
return "warning";
}
} else {
return "error";
}
} else {
return "warning";
}
}
}
创建封装功能2
加密封装
// npm install crypto-js --save
const CryptoJS = require('crypto-js');
const key = CryptoJS.enc.Utf8.parse("xxxxxx"); //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('xxxxxx'); //十六位十六进制数作为密钥偏移量
//解密方法
function Decrypt(word) {
// if (!word) return
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
//加密方法
function Encrypt(word) {
if (!word) return
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
return encrypted.ciphertext.toString().toUpperCase();
}
export {
Decrypt,
Encrypt
}