| 
						 | 
						const formatTime = date => {	const year = date.getFullYear()	const month = date.getMonth() + 1	const day = date.getDate()	const hour = date.getHours()	const minute = date.getMinutes()	const second = date.getSeconds()
	return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')}
const parseTime = (time, cFormat) => {	if (arguments.length === 0 || !time) {		return null	}	const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'	let date	if (typeof time === 'object') {		date = time	} else {		if (typeof time === 'string') {			if (/^[0-9]+$/.test(time)) {				// support "1548221490638"
				time = parseInt(time)			} else {				// support safari
				time = time.replace(new RegExp(/-/gm), '/')			}		}
		if (typeof time === 'number' && time.toString().length === 10) {			time = time * 1000		}		date = new Date(time)	}	const formatObj = {		y: date.getFullYear(),		m: date.getMonth() + 1,		d: date.getDate(),		h: date.getHours(),		i: date.getMinutes(),		s: date.getSeconds(),		a: date.getDay()	}	return format.replace(/{([ymdhisa])+}/g, (result, key) => {		const value = formatObj[key]		if (key === 'a') {			return ['日', '一', '二', '三', '四', '五', '六'][value]		}		return value.toString().padStart(2, '0')	})}const formatNumber = n => {	n = n.toString()	return n[1] ? n : '0' + n}// 验证手机号码
const verifyPhoneNum = value => /^1[3|4|5|6|7|8|9]\d{9}$/.test(value)
// 验证身份证号码
const verifyCardID = value => /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value)
const getBirthday = (idCard) => {	var birthday = "";	if (idCard != null && idCard != "") {		if (idCard.length == 15) {			birthday = "19" + idCard.substr(6, 6);		} else if (idCard.length == 18) {			birthday = idCard.substr(6, 8);		}
		birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");	}	return birthday;}// 下划线转换驼峰
const toHump = (name) => {	return name.replace(/\_(\w)/g, function(all, letter) {		return letter.toUpperCase();	});}// 驼峰转换下划线
const toLine = (name) => {	return name.replace(/([A-Z])/g, "_$1").toLowerCase();}// 节流
const throttle = (fn, wait) => {	var timer = null;	return function() {		var context = this;		var args = arguments;		if (!timer) {			timer = setTimeout(function() {				fn.apply(context, args);				timer = null;			}, wait)		}	}}
const CryptoJS = CryptoJS || function(h, i) {	var e = {},		f = e.lib = {},		l = f.Base = function() {			function a() {}			return {				extend: function(j) {					a.prototype = this;					var d = new a;					j && d.mixIn(j);					d.$super = this;					return d				},				create: function() {					var a = this.extend();					a.init.apply(a, arguments);					return a				},				init: function() {},				mixIn: function(a) {					for (var d in a) a.hasOwnProperty(d) && (this[d] = a[d]);					a.hasOwnProperty("toString") && (this.toString = a.toString)				},				clone: function() {					return this.$super.extend(this)				}			}		}(),		k = f.WordArray = l.extend({			init: function(a, j) {				a =					this.words = a || [];				this.sigBytes = j != i ? j : 4 * a.length			},			toString: function(a) {				return (a || m).stringify(this)			},			concat: function(a) {				var j = this.words,					d = a.words,					c = this.sigBytes,					a = a.sigBytes;				this.clamp();				if (c % 4)					for (var b = 0; b < a; b++) j[c + b >>> 2] |= (d[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((c + b) % 4);				else if (65535 < d.length)					for (b = 0; b < a; b += 4) j[c + b >>> 2] = d[b >>> 2];				else j.push.apply(j, d);				this.sigBytes += a;				return this			},			clamp: function() {				var a = this.words,					b = this.sigBytes;				a[b >>> 2] &= 4294967295 << 32 - 8 * (b % 4);				a.length = h.ceil(b / 4)			},			clone: function() {				var a =					l.clone.call(this);				a.words = this.words.slice(0);				return a			},			random: function(a) {				for (var b = [], d = 0; d < a; d += 4) b.push(4294967296 * h.random() | 0);				return k.create(b, a)			}		}),		o = e.enc = {},		m = o.Hex = {			stringify: function(a) {				for (var b = a.words, a = a.sigBytes, d = [], c = 0; c < a; c++) {					var e = b[c >>> 2] >>> 24 - 8 * (c % 4) & 255;					d.push((e >>> 4).toString(16));					d.push((e & 15).toString(16))				}				return d.join("")			},			parse: function(a) {				for (var b = a.length, d = [], c = 0; c < b; c += 2) d[c >>> 3] |= parseInt(a.substr(c, 2), 16) << 24 - 4 * (c %					8);				return k.create(d, b / 2)			}		},		q = o.Latin1 = {			stringify: function(a) {				for (var b =						a.words, a = a.sigBytes, d = [], c = 0; c < a; c++) d.push(String.fromCharCode(b[c >>> 2] >>> 24 - 8 * (c % 4) &					255));				return d.join("")			},			parse: function(a) {				for (var b = a.length, d = [], c = 0; c < b; c++) d[c >>> 2] |= (a.charCodeAt(c) & 255) << 24 - 8 * (c % 4);				return k.create(d, b)			}		},		r = o.Utf8 = {			stringify: function(a) {				try {					return decodeURIComponent(escape(q.stringify(a)))				} catch (b) {					throw Error("Malformed UTF-8 data");				}			},			parse: function(a) {				return q.parse(unescape(encodeURIComponent(a)))			}		},		b = f.BufferedBlockAlgorithm = l.extend({			reset: function() {				this._data = k.create();				this._nDataBytes = 0			},			_append: function(a) {				"string" == typeof a && (a = r.parse(a));				this._data.concat(a);				this._nDataBytes += a.sigBytes			},			_process: function(a) {				var b = this._data,					d = b.words,					c = b.sigBytes,					e = this.blockSize,					g = c / (4 * e),					g = a ? h.ceil(g) : h.max((g | 0) - this._minBufferSize, 0),					a = g * e,					c = h.min(4 * a, c);				if (a) {					for (var f = 0; f < a; f += e) this._doProcessBlock(d, f);					f = d.splice(0, a);					b.sigBytes -= c				}				return k.create(f, c)			},			clone: function() {				var a = l.clone.call(this);				a._data = this._data.clone();				return a			},			_minBufferSize: 0		});	f.Hasher = b.extend({		init: function() {			this.reset()		},		reset: function() {			b.reset.call(this);			this._doReset()		},		update: function(a) {			this._append(a);			this._process();			return this		},		finalize: function(a) {			a && this._append(a);			this._doFinalize();			return this._hash		},		clone: function() {			var a = b.clone.call(this);			a._hash = this._hash.clone();			return a		},		blockSize: 16,		_createHelper: function(a) {			return function(b, d) {				return a.create(d).finalize(b)			}		},		_createHmacHelper: function(a) {			return function(b, d) {				return g.HMAC.create(a, d).finalize(b)			}		}	});	var g = e.algo = {};	return e}(Math);(function(h) {	var i = CryptoJS,		e = i.lib,		f = e.WordArray,		e = e.Hasher,		l = i.algo,		k = [],		o = [];	(function() {		function e(a) {			for (var b = h.sqrt(a), d = 2; d <= b; d++)				if (!(a % d)) return !1;			return !0		}
		function f(a) {			return 4294967296 * (a - (a | 0)) | 0		}		for (var b = 2, g = 0; 64 > g;) e(b) && (8 > g && (k[g] = f(h.pow(b, 0.5))), o[g] = f(h.pow(b, 1 / 3)), g++), b++	})();	var m = [],		l = l.SHA256 = e.extend({			_doReset: function() {				this._hash = f.create(k.slice(0))			},			_doProcessBlock: function(e, f) {				for (var b = this._hash.words, g = b[0], a = b[1], j = b[2], d = b[3], c = b[4], h = b[5], l = b[6], k = b[7], n =						0; 64 >					n; n++) {					if (16 > n) m[n] = e[f + n] | 0;					else {						var i = m[n - 15],							p = m[n - 2];						m[n] = ((i << 25 | i >>> 7) ^ (i << 14 | i >>> 18) ^ i >>> 3) + m[n - 7] + ((p << 15 | p >>> 17) ^ (p << 13 |							p >>> 19) ^ p >>> 10) + m[n - 16]					}					i = k + ((c << 26 | c >>> 6) ^ (c << 21 | c >>> 11) ^ (c << 7 | c >>> 25)) + (c & h ^ ~c & l) + o[n] + m[n];					p = ((g << 30 | g >>> 2) ^ (g << 19 | g >>> 13) ^ (g << 10 | g >>> 22)) + (g & a ^ g & j ^ a & j);					k = l;					l = h;					h = c;					c = d + i | 0;					d = j;					j = a;					a = g;					g = i + p | 0				}				b[0] = b[0] + g | 0;				b[1] = b[1] + a | 0;				b[2] = b[2] + j | 0;				b[3] = b[3] + d | 0;				b[4] = b[4] + c | 0;				b[5] = b[5] + h | 0;				b[6] = b[6] + l | 0;				b[7] = b[7] + k | 0			},			_doFinalize: function() {				var e = this._data,					f = e.words,					b = 8 * this._nDataBytes,					g = 8 * e.sigBytes;				f[g >>> 5] |= 128 << 24 - g % 32;				f[(g + 64 >>> 9 << 4) + 15] = b;				e.sigBytes = 4 * f.length;				this._process()			}		});	i.SHA256 = e._createHelper(l);	i.HmacSHA256 = e._createHmacHelper(l)})(Math);(function() {	var h = CryptoJS,		i = h.enc.Utf8;	h.algo.HMAC = h.lib.Base.extend({		init: function(e, f) {			e = this._hasher = e.create();			"string" == typeof f && (f = i.parse(f));			var h = e.blockSize,				k = 4 * h;			f.sigBytes > k && (f = e.finalize(f));			for (var o = this._oKey = f.clone(), m = this._iKey = f.clone(), q = o.words, r = m.words, b = 0; b < h; b++) q[				b] ^= 1549556828, r[b] ^= 909522486;			o.sigBytes = m.sigBytes = k;			this.reset()		},		reset: function() {			var e = this._hasher;			e.reset();			e.update(this._iKey)		},		update: function(e) {			this._hasher.update(e);			return this		},		finalize: function(e) {			var f =				this._hasher,				e = f.finalize(e);			f.reset();			return f.finalize(this._oKey.clone().concat(e))		}	})})();module.exports = CryptoJS
module.exports = {	formatTime,	verifyPhoneNum,	toHump,	toLine,	verifyCardID,	getBirthday,	throttle,	parseTime,	CryptoJS}
  |