Commit eb78295e authored by 萌萌哒SAKURA酱's avatar 萌萌哒SAKURA酱

🎨 Improving structure / format of the code.

parent ab75b4d4
......@@ -2,4 +2,4 @@ module.exports = {
presets: [
'@vue/app'
]
}
\ No newline at end of file
}
This source diff could not be displayed because it is too large. You can view the blob instead.
"use strict"
'use strict'
// Module export pattern from
// https://github.com/umdjs/umd/blob/master/returnExports.js
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else {
// Browser globals (root is window)
root.store = factory();
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory)
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory()
} else {
// Browser globals (root is window)
root.store = factory()
}
}(this, function () {
// Store.js
var store = {},
win = (typeof window != 'undefined' ? window : global),
doc = win.document,
localStorageName = 'localStorage',
scriptTag = 'script',
storage
// Store.js
var store = {}
store.disabled = false
store.version = '1.3.20'
store.set = function(key, value) {}
store.get = function(key, defaultVal) {}
store.has = function(key) { return store.get(key) !== undefined }
store.remove = function(key) {}
store.clear = function() {}
store.transact = function(key, defaultVal, transactionFn) {
if (transactionFn == null) {
transactionFn = defaultVal
defaultVal = null
}
if (defaultVal == null) {
defaultVal = {}
}
var val = store.get(key, defaultVal)
transactionFn(val)
store.set(key, val)
}
store.getAll = function() {}
store.forEach = function() {}
var win = (typeof window !== 'undefined' ? window : global)
store.serialize = function(value) {
return JSON.stringify(value)
}
store.deserialize = function(value) {
if (typeof value != 'string') { return undefined }
try { return JSON.parse(value) }
catch(e) { return value || undefined }
}
var doc = win.document
// Functions to encapsulate questionable FireFox 3.6.13 behavior
// when about.config::dom.storage.enabled === false
// See https://github.com/marcuswestin/store.js/issues#issue/13
function isLocalStorageNameSupported() {
try { return (localStorageName in win && win[localStorageName]) }
catch(err) { return false }
}
var localStorageName = 'localStorage'
if (isLocalStorageNameSupported()) {
storage = win[localStorageName]
store.set = function(key, val) {
if (val === undefined) { return store.remove(key) }
storage.setItem(key, store.serialize(val))
return val
}
store.get = function(key, defaultVal) {
var val = store.deserialize(storage.getItem(key))
return (val === undefined ? defaultVal : val)
}
store.remove = function(key) { storage.removeItem(key) }
store.clear = function() { storage.clear() }
store.getAll = function() {
var ret = {}
store.forEach(function(key, val) {
ret[key] = val
})
return ret
}
store.forEach = function(callback) {
for (var i=0; i<storage.length; i++) {
var key = storage.key(i)
callback(key, store.get(key))
}
}
} else if (doc && doc.documentElement.addBehavior) {
var storageOwner,
storageContainer
// Since #userData storage applies only to specific paths, we need to
// somehow link our data to a specific path. We choose /favicon.ico
// as a pretty safe option, since all browsers already make a request to
// this URL anyway and being a 404 will not hurt us here. We wrap an
// iframe pointing to the favicon in an ActiveXObject(htmlfile) object
// (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)
// since the iframe access rules appear to allow direct access and
// manipulation of the document element, even for a 404 page. This
// document can be used instead of the current document (which would
// have been limited to the current path) to perform #userData storage.
try {
storageContainer = new ActiveXObject('htmlfile')
storageContainer.open()
storageContainer.write('<'+scriptTag+'>document.w=window</'+scriptTag+'><iframe src="/favicon.ico"></iframe>')
storageContainer.close()
storageOwner = storageContainer.w.frames[0].document
storage = storageOwner.createElement('div')
} catch(e) {
// somehow ActiveXObject instantiation failed (perhaps some special
// security settings or otherwse), fall back to per-path storage
storage = doc.createElement('div')
storageOwner = doc.body
}
var withIEStorage = function(storeFunction) {
return function() {
var args = Array.prototype.slice.call(arguments, 0)
args.unshift(storage)
// See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
// and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
storageOwner.appendChild(storage)
storage.addBehavior('#default#userData')
storage.load(localStorageName)
var result = storeFunction.apply(store, args)
storageOwner.removeChild(storage)
return result
}
}
var scriptTag = 'script'
// In IE7, keys cannot start with a digit or contain certain chars.
// See https://github.com/marcuswestin/store.js/issues/40
// See https://github.com/marcuswestin/store.js/issues/83
var forbiddenCharsRegex = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", "g")
var ieKeyFix = function(key) {
return key.replace(/^d/, '___$&').replace(forbiddenCharsRegex, '___')
}
store.set = withIEStorage(function(storage, key, val) {
key = ieKeyFix(key)
if (val === undefined) { return store.remove(key) }
storage.setAttribute(key, store.serialize(val))
storage.save(localStorageName)
return val
})
store.get = withIEStorage(function(storage, key, defaultVal) {
key = ieKeyFix(key)
var val = store.deserialize(storage.getAttribute(key))
return (val === undefined ? defaultVal : val)
})
store.remove = withIEStorage(function(storage, key) {
key = ieKeyFix(key)
storage.removeAttribute(key)
storage.save(localStorageName)
})
store.clear = withIEStorage(function(storage) {
var attributes = storage.XMLDocument.documentElement.attributes
storage.load(localStorageName)
for (var i=attributes.length-1; i>=0; i--) {
storage.removeAttribute(attributes[i].name)
}
storage.save(localStorageName)
})
store.getAll = function(storage) {
var ret = {}
store.forEach(function(key, val) {
ret[key] = val
})
return ret
}
store.forEach = withIEStorage(function(storage, callback) {
var attributes = storage.XMLDocument.documentElement.attributes
for (var i=0, attr; attr=attributes[i]; ++i) {
callback(attr.name, store.deserialize(storage.getAttribute(attr.name)))
}
})
}
var storage
try {
var testKey = '__storejs__'
store.set(testKey, testKey)
if (store.get(testKey) != testKey) { store.disabled = true }
store.remove(testKey)
} catch(e) {
store.disabled = true
}
store.enabled = !store.disabled
return store
}));
\ No newline at end of file
store.disabled = false
store.version = '1.3.20'
store.set = function (key, value) {}
store.get = function (key, defaultVal) {}
store.has = function (key) { return store.get(key) !== undefined }
store.remove = function (key) {}
store.clear = function () {}
store.transact = function (key, defaultVal, transactionFn) {
if (transactionFn == null) {
transactionFn = defaultVal
defaultVal = null
}
if (defaultVal == null) {
defaultVal = {}
}
var val = store.get(key, defaultVal)
transactionFn(val)
store.set(key, val)
}
store.getAll = function () {}
store.forEach = function () {}
store.serialize = function (value) {
return JSON.stringify(value)
}
store.deserialize = function (value) {
if (typeof value !== 'string') { return undefined }
try { return JSON.parse(value) } catch (e) { return value || undefined }
}
// Functions to encapsulate questionable FireFox 3.6.13 behavior
// when about.config::dom.storage.enabled === false
// See https://github.com/marcuswestin/store.js/issues#issue/13
function isLocalStorageNameSupported () {
try { return (localStorageName in win && win[localStorageName]) } catch (err) { return false }
}
if (isLocalStorageNameSupported()) {
storage = win[localStorageName]
store.set = function (key, val) {
if (val === undefined) { return store.remove(key) }
storage.setItem(key, store.serialize(val))
return val
}
store.get = function (key, defaultVal) {
var val = store.deserialize(storage.getItem(key))
return (val === undefined ? defaultVal : val)
}
store.remove = function (key) { storage.removeItem(key) }
store.clear = function () { storage.clear() }
store.getAll = function () {
var ret = {}
store.forEach(function (key, val) {
ret[key] = val
})
return ret
}
store.forEach = function (callback) {
for (var i = 0; i < storage.length; i++) {
var key = storage.key(i)
callback(key, store.get(key))
}
}
} else if (doc && doc.documentElement.addBehavior) {
var storageOwner,
storageContainer
// Since #userData storage applies only to specific paths, we need to
// somehow link our data to a specific path. We choose /favicon.ico
// as a pretty safe option, since all browsers already make a request to
// this URL anyway and being a 404 will not hurt us here. We wrap an
// iframe pointing to the favicon in an ActiveXObject(htmlfile) object
// (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)
// since the iframe access rules appear to allow direct access and
// manipulation of the document element, even for a 404 page. This
// document can be used instead of the current document (which would
// have been limited to the current path) to perform #userData storage.
try {
storageContainer = new ActiveXObject('htmlfile')
storageContainer.open()
storageContainer.write('<' + scriptTag + '>document.w=window</' + scriptTag + '><iframe src="/favicon.ico"></iframe>')
storageContainer.close()
storageOwner = storageContainer.w.frames[0].document
storage = storageOwner.createElement('div')
} catch (e) {
// somehow ActiveXObject instantiation failed (perhaps some special
// security settings or otherwse), fall back to per-path storage
storage = doc.createElement('div')
storageOwner = doc.body
}
var withIEStorage = function (storeFunction) {
return function () {
var args = Array.prototype.slice.call(arguments, 0)
args.unshift(storage)
// See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
// and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
storageOwner.appendChild(storage)
storage.addBehavior('#default#userData')
storage.load(localStorageName)
var result = storeFunction.apply(store, args)
storageOwner.removeChild(storage)
return result
}
}
// In IE7, keys cannot start with a digit or contain certain chars.
// See https://github.com/marcuswestin/store.js/issues/40
// See https://github.com/marcuswestin/store.js/issues/83
var forbiddenCharsRegex = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", 'g')
var ieKeyFix = function (key) {
return key.replace(/^d/, '___$&').replace(forbiddenCharsRegex, '___')
}
store.set = withIEStorage(function (storage, key, val) {
key = ieKeyFix(key)
if (val === undefined) { return store.remove(key) }
storage.setAttribute(key, store.serialize(val))
storage.save(localStorageName)
return val
})
store.get = withIEStorage(function (storage, key, defaultVal) {
key = ieKeyFix(key)
var val = store.deserialize(storage.getAttribute(key))
return (val === undefined ? defaultVal : val)
})
store.remove = withIEStorage(function (storage, key) {
key = ieKeyFix(key)
storage.removeAttribute(key)
storage.save(localStorageName)
})
store.clear = withIEStorage(function (storage) {
var attributes = storage.XMLDocument.documentElement.attributes
storage.load(localStorageName)
for (var i = attributes.length - 1; i >= 0; i--) {
storage.removeAttribute(attributes[i].name)
}
storage.save(localStorageName)
})
store.getAll = function (storage) {
var ret = {}
store.forEach(function (key, val) {
ret[key] = val
})
return ret
}
store.forEach = withIEStorage(function (storage, callback) {
var attributes = storage.XMLDocument.documentElement.attributes
for (var i = 0, attr; attr = attributes[i]; ++i) {
callback(attr.name, store.deserialize(storage.getAttribute(attr.name)))
}
})
}
try {
var testKey = '__storejs__'
store.set(testKey, testKey)
if (store.get(testKey) != testKey) { store.disabled = true }
store.remove(testKey)
} catch (e) {
store.disabled = true
}
store.enabled = !store.disabled
return store
}))
!function(t,n){"object"==typeof exports?module.exports=exports=n():"function"==typeof define&&define.amd?define([],n):t.CryptoJS=n()}(this,function(){var t=t||function(t,n){var i=Object.create||function(){function t(){}return function(n){var i;return t.prototype=n,i=new t,t.prototype=null,i}}(),e={},r=e.lib={},o=r.Base=function(){return{extend:function(t){var n=i(this);return t&&n.mixIn(t),n.hasOwnProperty("init")&&this.init!==n.init||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var n in t)t.hasOwnProperty(n)&&(this[n]=t[n]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=r.WordArray=o.extend({init:function(t,i){t=this.words=t||[],i!=n?this.sigBytes=i:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var n=this.words,i=t.words,e=this.sigBytes,r=t.sigBytes;if(this.clamp(),e%4)for(var o=0;o<r;o++){var s=i[o>>>2]>>>24-o%4*8&255;n[e+o>>>2]|=s<<24-(e+o)%4*8}else for(var o=0;o<r;o+=4)n[e+o>>>2]=i[o>>>2];return this.sigBytes+=r,this},clamp:function(){var n=this.words,i=this.sigBytes;n[i>>>2]&=4294967295<<32-i%4*8,n.length=t.ceil(i/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(n){for(var i,e=[],r=function(n){var n=n,i=987654321,e=4294967295;return function(){i=36969*(65535&i)+(i>>16)&e,n=18e3*(65535&n)+(n>>16)&e;var r=(i<<16)+n&e;return r/=4294967296,r+=.5,r*(t.random()>.5?1:-1)}},o=0;o<n;o+=4){var a=r(4294967296*(i||t.random()));i=987654071*a(),e.push(4294967296*a()|0)}return new s.init(e,n)}}),a=e.enc={},c=a.Hex={stringify:function(t){for(var n=t.words,i=t.sigBytes,e=[],r=0;r<i;r++){var o=n[r>>>2]>>>24-r%4*8&255;e.push((o>>>4).toString(16)),e.push((15&o).toString(16))}return e.join("")},parse:function(t){for(var n=t.length,i=[],e=0;e<n;e+=2)i[e>>>3]|=parseInt(t.substr(e,2),16)<<24-e%8*4;return new s.init(i,n/2)}},u=a.Latin1={stringify:function(t){for(var n=t.words,i=t.sigBytes,e=[],r=0;r<i;r++){var o=n[r>>>2]>>>24-r%4*8&255;e.push(String.fromCharCode(o))}return e.join("")},parse:function(t){for(var n=t.length,i=[],e=0;e<n;e++)i[e>>>2]|=(255&t.charCodeAt(e))<<24-e%4*8;return new s.init(i,n)}},f=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},h=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(n){var i=this._data,e=i.words,r=i.sigBytes,o=this.blockSize,a=4*o,c=r/a;c=n?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var u=c*o,f=t.min(4*u,r);if(u){for(var h=0;h<u;h+=o)this._doProcessBlock(e,h);var p=e.splice(0,u);i.sigBytes-=f}return new s.init(p,f)},clone:function(){var t=o.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),p=(r.Hasher=h.extend({cfg:o.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var n=this._doFinalize();return n},blockSize:16,_createHelper:function(t){return function(n,i){return new t.init(i).finalize(n)}},_createHmacHelper:function(t){return function(n,i){return new p.HMAC.init(t,i).finalize(n)}}}),e.algo={});return e}(Math);return t});
//# sourceMappingURL=core.min.js.map
!function(e,t,i){"object"==typeof exports?module.exports=exports=t(require("./core.min"),require("./sha1.min"),require("./hmac.min")):"function"==typeof define&&define.amd?define(["./core.min","./sha1.min","./hmac.min"],t):t(e.CryptoJS)}(this,function(e){return function(){var t=e,i=t.lib,r=i.Base,n=i.WordArray,o=t.algo,a=o.MD5,c=o.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:a,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var i=this.cfg,r=i.hasher.create(),o=n.create(),a=o.words,c=i.keySize,f=i.iterations;a.length<c;){s&&r.update(s);var s=r.update(e).finalize(t);r.reset();for(var u=1;u<f;u++)s=r.finalize(s),r.reset();o.concat(s)}return o.sigBytes=4*c,o}});t.EvpKDF=function(e,t,i){return c.create(i).compute(e,t)}}(),e.EvpKDF});
//# sourceMappingURL=evpkdf.min.js.map
!function(r,e){"object"==typeof exports?module.exports=exports=e(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],e):e(r.CryptoJS)}(this,function(r){return function(){function e(r,e,t){for(var n=[],i=0,o=0;o<e;o++)if(o%4){var f=t[r.charCodeAt(o-1)]<<o%4*2,c=t[r.charCodeAt(o)]>>>6-o%4*2;n[i>>>2]|=(f|c)<<24-i%4*8,i++}return a.create(n,i)}var t=r,n=t.lib,a=n.WordArray,i=t.enc;i.Base64={stringify:function(r){var e=r.words,t=r.sigBytes,n=this._map;r.clamp();for(var a=[],i=0;i<t;i+=3)for(var o=e[i>>>2]>>>24-i%4*8&255,f=e[i+1>>>2]>>>24-(i+1)%4*8&255,c=e[i+2>>>2]>>>24-(i+2)%4*8&255,s=o<<16|f<<8|c,h=0;h<4&&i+.75*h<t;h++)a.push(n.charAt(s>>>6*(3-h)&63));var p=n.charAt(64);if(p)for(;a.length%4;)a.push(p);return a.join("")},parse:function(r){var t=r.length,n=this._map,a=this._reverseMap;if(!a){a=this._reverseMap=[];for(var i=0;i<n.length;i++)a[n.charCodeAt(i)]=i}var o=n.charAt(64);if(o){var f=r.indexOf(o);f!==-1&&(t=f)}return e(r,t,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),r.enc.Base64});
//# sourceMappingURL=enc-base64.min.js.map
!function(e,t,r){"object"==typeof exports?module.exports=exports=t(require("./core.min"),require("./evpkdf.min")):"function"==typeof define&&define.amd?define(["./core.min","./evpkdf.min"],t):t(e.CryptoJS)}(this,function(e){e.lib.Cipher||function(t){var r=e,i=r.lib,n=i.Base,c=i.WordArray,o=i.BufferedBlockAlgorithm,s=r.enc,a=(s.Utf8,s.Base64),f=r.algo,p=f.EvpKDF,d=i.Cipher=o.extend({cfg:n.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?B:x}return function(t){return{encrypt:function(r,i,n){return e(i).encrypt(t,r,i,n)},decrypt:function(r,i,n){return e(i).decrypt(t,r,i,n)}}}}()}),h=(i.StreamCipher=d.extend({_doFinalize:function(){var e=this._process(!0);return e},blockSize:1}),r.mode={}),u=i.BlockCipherMode=n.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),l=h.CBC=function(){function e(e,r,i){var n=this._iv;if(n){var c=n;this._iv=t}else var c=this._prevBlock;for(var o=0;o<i;o++)e[r+o]^=c[o]}var r=u.extend();return r.Encryptor=r.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize;e.call(this,t,r,n),i.encryptBlock(t,r),this._prevBlock=t.slice(r,r+n)}}),r.Decryptor=r.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,c=t.slice(r,r+n);i.decryptBlock(t,r),e.call(this,t,r,n),this._prevBlock=c}}),r}(),_=r.pad={},v=_.Pkcs7={pad:function(e,t){for(var r=4*t,i=r-e.sigBytes%r,n=i<<24|i<<16|i<<8|i,o=[],s=0;s<i;s+=4)o.push(n);var a=c.create(o,i);e.concat(a)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},y=(i.BlockCipher=d.extend({cfg:d.cfg.extend({mode:l,padding:v}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=r.createEncryptor;else{var i=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,t&&t.words):(this._mode=i.call(r,this,t&&t.words),this._mode.__creator=i)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),i.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),m=r.format={},k=m.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var i=c.create([1398893684,1701076831]).concat(r).concat(t);else var i=t;return i.toString(a)},parse:function(e){var t=a.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var i=c.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return y.create({ciphertext:t,salt:i})}},x=i.SerializableCipher=n.extend({cfg:n.extend({format:k}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=e.createEncryptor(r,i),c=n.finalize(t),o=n.cfg;return y.create({ciphertext:c,key:r,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var n=e.createDecryptor(r,i).finalize(t.ciphertext);return n},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=r.kdf={},S=g.OpenSSL={execute:function(e,t,r,i){i||(i=c.random(8));var n=p.create({keySize:t+r}).compute(e,i),o=c.create(n.words.slice(t),4*r);return n.sigBytes=4*t,y.create({key:n,iv:o,salt:i})}},B=i.PasswordBasedCipher=x.extend({cfg:x.cfg.extend({kdf:S}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=i.kdf.execute(r,e.keySize,e.ivSize);i.iv=n.iv;var c=x.encrypt.call(this,e,t,n.key,i);return c.mixIn(n),c},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var n=i.kdf.execute(r,e.keySize,e.ivSize,t.salt);i.iv=n.iv;var c=x.decrypt.call(this,e,t,n.key,i);return c}})}()});
//# sourceMappingURL=cipher-core.min.js.map
!function(e,i){"object"==typeof exports?module.exports=exports=i(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],i):i(e.CryptoJS)}(this,function(e){!function(){var i=e,t=i.lib,n=t.Base,s=i.enc,r=s.Utf8,o=i.algo;o.HMAC=n.extend({init:function(e,i){e=this._hasher=new e.init,"string"==typeof i&&(i=r.parse(i));var t=e.blockSize,n=4*t;i.sigBytes>n&&(i=e.finalize(i)),i.clamp();for(var s=this._oKey=i.clone(),o=this._iKey=i.clone(),a=s.words,f=o.words,c=0;c<t;c++)a[c]^=1549556828,f[c]^=909522486;s.sigBytes=o.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var i=this._hasher,t=i.finalize(e);i.reset();var n=i.finalize(this._oKey.clone().concat(t));return n}})}()});
//# sourceMappingURL=hmac.min.js.map
!function(e,o,r){"object"==typeof exports?module.exports=exports=o(require("./core.min"),require("./cipher-core.min")):"function"==typeof define&&define.amd?define(["./core.min","./cipher-core.min"],o):o(e.CryptoJS)}(this,function(e){return e.mode.ECB=function(){var o=e.lib.BlockCipherMode.extend();return o.Encryptor=o.extend({processBlock:function(e,o){this._cipher.encryptBlock(e,o)}}),o.Decryptor=o.extend({processBlock:function(e,o){this._cipher.decryptBlock(e,o)}}),o}(),e.mode.ECB});
//# sourceMappingURL=mode-ecb.min.js.map
!function(e,r,i){"object"==typeof exports?module.exports=exports=r(require("./core.min"),require("./cipher-core.min")):"function"==typeof define&&define.amd?define(["./core.min","./cipher-core.min"],r):r(e.CryptoJS)}(this,function(e){return e.pad.Pkcs7});
//# sourceMappingURL=pad-pkcs7.min.js.map
!function(e,r,i){"object"==typeof exports?module.exports=exports=r(require("./core.min"),require("./enc-base64.min"),require("./md5.min"),require("./evpkdf.min"),require("./cipher-core.min")):"function"==typeof define&&define.amd?define(["./core.min","./enc-base64.min","./md5.min","./evpkdf.min","./cipher-core.min"],r):r(e.CryptoJS)}(this,function(e){return function(){var r=e,i=r.lib,n=i.BlockCipher,o=r.algo,t=[],c=[],s=[],f=[],a=[],d=[],u=[],v=[],h=[],y=[];!function(){for(var e=[],r=0;r<256;r++)r<128?e[r]=r<<1:e[r]=r<<1^283;for(var i=0,n=0,r=0;r<256;r++){var o=n^n<<1^n<<2^n<<3^n<<4;o=o>>>8^255&o^99,t[i]=o,c[o]=i;var p=e[i],l=e[p],_=e[l],k=257*e[o]^16843008*o;s[i]=k<<24|k>>>8,f[i]=k<<16|k>>>16,a[i]=k<<8|k>>>24,d[i]=k;var k=16843009*_^65537*l^257*p^16843008*i;u[o]=k<<24|k>>>8,v[o]=k<<16|k>>>16,h[o]=k<<8|k>>>24,y[o]=k,i?(i=p^e[e[e[_^p]]],n^=e[e[n]]):i=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],l=o.AES=n.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,r=e.words,i=e.sigBytes/4,n=this._nRounds=i+6,o=4*(n+1),c=this._keySchedule=[],s=0;s<o;s++)if(s<i)c[s]=r[s];else{var f=c[s-1];s%i?i>6&&s%i==4&&(f=t[f>>>24]<<24|t[f>>>16&255]<<16|t[f>>>8&255]<<8|t[255&f]):(f=f<<8|f>>>24,f=t[f>>>24]<<24|t[f>>>16&255]<<16|t[f>>>8&255]<<8|t[255&f],f^=p[s/i|0]<<24),c[s]=c[s-i]^f}for(var a=this._invKeySchedule=[],d=0;d<o;d++){var s=o-d;if(d%4)var f=c[s];else var f=c[s-4];d<4||s<=4?a[d]=f:a[d]=u[t[f>>>24]]^v[t[f>>>16&255]]^h[t[f>>>8&255]]^y[t[255&f]]}}},encryptBlock:function(e,r){this._doCryptBlock(e,r,this._keySchedule,s,f,a,d,t)},decryptBlock:function(e,r){var i=e[r+1];e[r+1]=e[r+3],e[r+3]=i,this._doCryptBlock(e,r,this._invKeySchedule,u,v,h,y,c);var i=e[r+1];e[r+1]=e[r+3],e[r+3]=i},_doCryptBlock:function(e,r,i,n,o,t,c,s){for(var f=this._nRounds,a=e[r]^i[0],d=e[r+1]^i[1],u=e[r+2]^i[2],v=e[r+3]^i[3],h=4,y=1;y<f;y++){var p=n[a>>>24]^o[d>>>16&255]^t[u>>>8&255]^c[255&v]^i[h++],l=n[d>>>24]^o[u>>>16&255]^t[v>>>8&255]^c[255&a]^i[h++],_=n[u>>>24]^o[v>>>16&255]^t[a>>>8&255]^c[255&d]^i[h++],k=n[v>>>24]^o[a>>>16&255]^t[d>>>8&255]^c[255&u]^i[h++];a=p,d=l,u=_,v=k}var p=(s[a>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&v])^i[h++],l=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[v>>>8&255]<<8|s[255&a])^i[h++],_=(s[u>>>24]<<24|s[v>>>16&255]<<16|s[a>>>8&255]<<8|s[255&d])^i[h++],k=(s[v>>>24]<<24|s[a>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^i[h++];e[r]=p,e[r+1]=l,e[r+2]=_,e[r+3]=k},keySize:8});r.AES=n._createHelper(l)}(),e.AES});
//# sourceMappingURL=aes.min.js.map
!function(e,n){"object"==typeof exports?module.exports=exports=n(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],n):n(e.CryptoJS)}(this,function(e){return e.enc.Utf8});
//# sourceMappingURL=enc-utf8.min.js.map
!(function (t, n) { typeof exports === 'object' ? module.exports = exports = n() : typeof define === 'function' && define.amd ? define([], n) : t.CryptoJS = n() }(this, function () { var t = t || (function (t, n) { var i = Object.create || (function () { function t () {} return function (n) { var i; return t.prototype = n, i = new t(), t.prototype = null, i } }()); var e = {}; var r = e.lib = {}; var o = r.Base = (function () { return { extend: function (t) { var n = i(this); return t && n.mixIn(t), n.hasOwnProperty('init') && this.init !== n.init || (n.init = function () { n.$super.init.apply(this, arguments) }), n.init.prototype = n, n.$super = this, n }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () {}, mixIn: function (t) { for (var n in t)t.hasOwnProperty(n) && (this[n] = t[n]); t.hasOwnProperty('toString') && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }()); var s = r.WordArray = o.extend({ init: function (t, i) { t = this.words = t || [], i != n ? this.sigBytes = i : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var n = this.words; var i = t.words; var e = this.sigBytes; var r = t.sigBytes; if (this.clamp(), e % 4) for (var o = 0; o < r; o++) { var s = i[o >>> 2] >>> 24 - o % 4 * 8 & 255; n[e + o >>> 2] |= s << 24 - (e + o) % 4 * 8 } else for (var o = 0; o < r; o += 4)n[e + o >>> 2] = i[o >>> 2]; return this.sigBytes += r, this }, clamp: function () { var n = this.words; var i = this.sigBytes; n[i >>> 2] &= 4294967295 << 32 - i % 4 * 8, n.length = t.ceil(i / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (n) { for (var i, e = [], r = function (n) { var n = n; var i = 987654321; var e = 4294967295; return function () { i = 36969 * (65535 & i) + (i >> 16) & e, n = 18e3 * (65535 & n) + (n >> 16) & e; var r = (i << 16) + n & e; return r /= 4294967296, r += 0.5, r * (t.random() > 0.5 ? 1 : -1) } }, o = 0; o < n; o += 4) { var a = r(4294967296 * (i || t.random())); i = 987654071 * a(), e.push(4294967296 * a() | 0) } return new s.init(e, n) } }); var a = e.enc = {}; var c = a.Hex = { stringify: function (t) { for (var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) { var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255; e.push((o >>> 4).toString(16)), e.push((15 & o).toString(16)) } return e.join('') }, parse: function (t) { for (var n = t.length, i = [], e = 0; e < n; e += 2)i[e >>> 3] |= parseInt(t.substr(e, 2), 16) << 24 - e % 8 * 4; return new s.init(i, n / 2) } }; var u = a.Latin1 = { stringify: function (t) { for (var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) { var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255; e.push(String.fromCharCode(o)) } return e.join('') }, parse: function (t) { for (var n = t.length, i = [], e = 0; e < n; e++)i[e >>> 2] |= (255 & t.charCodeAt(e)) << 24 - e % 4 * 8; return new s.init(i, n) } }; var f = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(u.stringify(t))) } catch (t) { throw new Error('Malformed UTF-8 data') } }, parse: function (t) { return u.parse(unescape(encodeURIComponent(t))) } }; var h = r.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init(), this._nDataBytes = 0 }, _append: function (t) { typeof t === 'string' && (t = f.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (n) { var i = this._data; var e = i.words; var r = i.sigBytes; var o = this.blockSize; var a = 4 * o; var c = r / a; c = n ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var u = c * o; var f = t.min(4 * u, r); if (u) { for (var h = 0; h < u; h += o) this._doProcessBlock(e, h); var p = e.splice(0, u); i.sigBytes -= f } return new s.init(p, f) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }); var p = (r.Hasher = h.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { h.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var n = this._doFinalize(); return n }, blockSize: 16, _createHelper: function (t) { return function (n, i) { return new t.init(i).finalize(n) } }, _createHmacHelper: function (t) { return function (n, i) { return new p.HMAC.init(t, i).finalize(n) } } }), e.algo = {}); return e }(Math)); return t }))
// # sourceMappingURL=core.min.js.map
!(function (e, t, i) { typeof exports === 'object' ? module.exports = exports = t(require('./core.min'), require('./sha1.min'), require('./hmac.min')) : typeof define === 'function' && define.amd ? define(['./core.min', './sha1.min', './hmac.min'], t) : t(e.CryptoJS) }(this, function (e) { return (function () { var t = e; var i = t.lib; var r = i.Base; var n = i.WordArray; var o = t.algo; var a = o.MD5; var c = o.EvpKDF = r.extend({ cfg: r.extend({ keySize: 4, hasher: a, iterations: 1 }), init: function (e) { this.cfg = this.cfg.extend(e) }, compute: function (e, t) { for (var i = this.cfg, r = i.hasher.create(), o = n.create(), a = o.words, c = i.keySize, f = i.iterations; a.length < c;) { s && r.update(s); var s = r.update(e).finalize(t); r.reset(); for (var u = 1; u < f; u++)s = r.finalize(s), r.reset(); o.concat(s) } return o.sigBytes = 4 * c, o } }); t.EvpKDF = function (e, t, i) { return c.create(i).compute(e, t) } }()), e.EvpKDF }))
// # sourceMappingURL=evpkdf.min.js.map
!(function (r, e) { typeof exports === 'object' ? module.exports = exports = e(require('./core.min')) : typeof define === 'function' && define.amd ? define(['./core.min'], e) : e(r.CryptoJS) }(this, function (r) { return (function () { function e (r, e, t) { for (var n = [], i = 0, o = 0; o < e; o++) if (o % 4) { var f = t[r.charCodeAt(o - 1)] << o % 4 * 2; var c = t[r.charCodeAt(o)] >>> 6 - o % 4 * 2; n[i >>> 2] |= (f | c) << 24 - i % 4 * 8, i++ } return a.create(n, i) } var t = r; var n = t.lib; var a = n.WordArray; var i = t.enc; i.Base64 = { stringify: function (r) { var e = r.words; var t = r.sigBytes; var n = this._map; r.clamp(); for (var a = [], i = 0; i < t; i += 3) for (var o = e[i >>> 2] >>> 24 - i % 4 * 8 & 255, f = e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255, c = e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, s = o << 16 | f << 8 | c, h = 0; h < 4 && i + 0.75 * h < t; h++)a.push(n.charAt(s >>> 6 * (3 - h) & 63)); var p = n.charAt(64); if (p) for (;a.length % 4;)a.push(p); return a.join('') }, parse: function (r) { var t = r.length; var n = this._map; var a = this._reverseMap; if (!a) { a = this._reverseMap = []; for (var i = 0; i < n.length; i++)a[n.charCodeAt(i)] = i } var o = n.charAt(64); if (o) { var f = r.indexOf(o); f !== -1 && (t = f) } return e(r, t, a) }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' } }()), r.enc.Base64 }))
// # sourceMappingURL=enc-base64.min.js.map
!(function (e, t, r) { typeof exports === 'object' ? module.exports = exports = t(require('./core.min'), require('./evpkdf.min')) : typeof define === 'function' && define.amd ? define(['./core.min', './evpkdf.min'], t) : t(e.CryptoJS) }(this, function (e) { e.lib.Cipher || (function (t) { var r = e; var i = r.lib; var n = i.Base; var c = i.WordArray; var o = i.BufferedBlockAlgorithm; var s = r.enc; var a = (s.Utf8, s.Base64); var f = r.algo; var p = f.EvpKDF; var d = i.Cipher = o.extend({ cfg: n.extend(), createEncryptor: function (e, t) { return this.create(this._ENC_XFORM_MODE, e, t) }, createDecryptor: function (e, t) { return this.create(this._DEC_XFORM_MODE, e, t) }, init: function (e, t, r) { this.cfg = this.cfg.extend(r), this._xformMode = e, this._key = t, this.reset() }, reset: function () { o.reset.call(this), this._doReset() }, process: function (e) { return this._append(e), this._process() }, finalize: function (e) { e && this._append(e); var t = this._doFinalize(); return t }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: (function () { function e (e) { return typeof e === 'string' ? B : x } return function (t) { return { encrypt: function (r, i, n) { return e(i).encrypt(t, r, i, n) }, decrypt: function (r, i, n) { return e(i).decrypt(t, r, i, n) } } } }()) }); var h = (i.StreamCipher = d.extend({ _doFinalize: function () { var e = this._process(!0); return e }, blockSize: 1 }), r.mode = {}); var u = i.BlockCipherMode = n.extend({ createEncryptor: function (e, t) { return this.Encryptor.create(e, t) }, createDecryptor: function (e, t) { return this.Decryptor.create(e, t) }, init: function (e, t) { this._cipher = e, this._iv = t } }); var l = h.CBC = (function () { function e (e, r, i) { var n = this._iv; if (n) { var c = n; this._iv = t } else var c = this._prevBlock; for (var o = 0; o < i; o++)e[r + o] ^= c[o] } var r = u.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { var i = this._cipher; var n = i.blockSize; e.call(this, t, r, n), i.encryptBlock(t, r), this._prevBlock = t.slice(r, r + n) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { var i = this._cipher; var n = i.blockSize; var c = t.slice(r, r + n); i.decryptBlock(t, r), e.call(this, t, r, n), this._prevBlock = c } }), r }()); var _ = r.pad = {}; var v = _.Pkcs7 = { pad: function (e, t) { for (var r = 4 * t, i = r - e.sigBytes % r, n = i << 24 | i << 16 | i << 8 | i, o = [], s = 0; s < i; s += 4)o.push(n); var a = c.create(o, i); e.concat(a) }, unpad: function (e) { var t = 255 & e.words[e.sigBytes - 1 >>> 2]; e.sigBytes -= t } }; var y = (i.BlockCipher = d.extend({ cfg: d.cfg.extend({ mode: l, padding: v }), reset: function () { d.reset.call(this); var e = this.cfg; var t = e.iv; var r = e.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = r.createEncryptor; else { var i = r.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, t && t.words) : (this._mode = i.call(r, this, t && t.words), this._mode.__creator = i) }, _doProcessBlock: function (e, t) { this._mode.processBlock(e, t) }, _doFinalize: function () { var e = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { e.pad(this._data, this.blockSize); var t = this._process(!0) } else { var t = this._process(!0); e.unpad(t) } return t }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (e) { this.mixIn(e) }, toString: function (e) { return (e || this.formatter).stringify(this) } })); var m = r.format = {}; var k = m.OpenSSL = { stringify: function (e) { var t = e.ciphertext; var r = e.salt; if (r) var i = c.create([1398893684, 1701076831]).concat(r).concat(t); else var i = t; return i.toString(a) }, parse: function (e) { var t = a.parse(e); var r = t.words; if (r[0] == 1398893684 && r[1] == 1701076831) { var i = c.create(r.slice(2, 4)); r.splice(0, 4), t.sigBytes -= 16 } return y.create({ ciphertext: t, salt: i }) } }; var x = i.SerializableCipher = n.extend({ cfg: n.extend({ format: k }), encrypt: function (e, t, r, i) { i = this.cfg.extend(i); var n = e.createEncryptor(r, i); var c = n.finalize(t); var o = n.cfg; return y.create({ ciphertext: c, key: r, iv: o.iv, algorithm: e, mode: o.mode, padding: o.padding, blockSize: e.blockSize, formatter: i.format }) }, decrypt: function (e, t, r, i) { i = this.cfg.extend(i), t = this._parse(t, i.format); var n = e.createDecryptor(r, i).finalize(t.ciphertext); return n }, _parse: function (e, t) { return typeof e === 'string' ? t.parse(e, this) : e } }); var g = r.kdf = {}; var S = g.OpenSSL = { execute: function (e, t, r, i) { i || (i = c.random(8)); var n = p.create({ keySize: t + r }).compute(e, i); var o = c.create(n.words.slice(t), 4 * r); return n.sigBytes = 4 * t, y.create({ key: n, iv: o, salt: i }) } }; var B = i.PasswordBasedCipher = x.extend({ cfg: x.cfg.extend({ kdf: S }), encrypt: function (e, t, r, i) { i = this.cfg.extend(i); var n = i.kdf.execute(r, e.keySize, e.ivSize); i.iv = n.iv; var c = x.encrypt.call(this, e, t, n.key, i); return c.mixIn(n), c }, decrypt: function (e, t, r, i) { i = this.cfg.extend(i), t = this._parse(t, i.format); var n = i.kdf.execute(r, e.keySize, e.ivSize, t.salt); i.iv = n.iv; var c = x.decrypt.call(this, e, t, n.key, i); return c } }) }()) }))
// # sourceMappingURL=cipher-core.min.js.map
!(function (e, i) { typeof exports === 'object' ? module.exports = exports = i(require('./core.min')) : typeof define === 'function' && define.amd ? define(['./core.min'], i) : i(e.CryptoJS) }(this, function (e) { !(function () { var i = e; var t = i.lib; var n = t.Base; var s = i.enc; var r = s.Utf8; var o = i.algo; o.HMAC = n.extend({ init: function (e, i) { e = this._hasher = new e.init(), typeof i === 'string' && (i = r.parse(i)); var t = e.blockSize; var n = 4 * t; i.sigBytes > n && (i = e.finalize(i)), i.clamp(); for (var s = this._oKey = i.clone(), o = this._iKey = i.clone(), a = s.words, f = o.words, c = 0; c < t; c++)a[c] ^= 1549556828, f[c] ^= 909522486; s.sigBytes = o.sigBytes = n, this.reset() }, reset: function () { var e = this._hasher; e.reset(), e.update(this._iKey) }, update: function (e) { return this._hasher.update(e), this }, finalize: function (e) { var i = this._hasher; var t = i.finalize(e); i.reset(); var n = i.finalize(this._oKey.clone().concat(t)); return n } }) }()) }))
// # sourceMappingURL=hmac.min.js.map
!(function (e, o, r) { typeof exports === 'object' ? module.exports = exports = o(require('./core.min'), require('./cipher-core.min')) : typeof define === 'function' && define.amd ? define(['./core.min', './cipher-core.min'], o) : o(e.CryptoJS) }(this, function (e) { return e.mode.ECB = (function () { var o = e.lib.BlockCipherMode.extend(); return o.Encryptor = o.extend({ processBlock: function (e, o) { this._cipher.encryptBlock(e, o) } }), o.Decryptor = o.extend({ processBlock: function (e, o) { this._cipher.decryptBlock(e, o) } }), o }()), e.mode.ECB }))
// # sourceMappingURL=mode-ecb.min.js.map
!(function (e, r, i) { typeof exports === 'object' ? module.exports = exports = r(require('./core.min'), require('./cipher-core.min')) : typeof define === 'function' && define.amd ? define(['./core.min', './cipher-core.min'], r) : r(e.CryptoJS) }(this, function (e) { return e.pad.Pkcs7 }))
// # sourceMappingURL=pad-pkcs7.min.js.map
!(function (e, r, i) { typeof exports === 'object' ? module.exports = exports = r(require('./core.min'), require('./enc-base64.min'), require('./md5.min'), require('./evpkdf.min'), require('./cipher-core.min')) : typeof define === 'function' && define.amd ? define(['./core.min', './enc-base64.min', './md5.min', './evpkdf.min', './cipher-core.min'], r) : r(e.CryptoJS) }(this, function (e) { return (function () { var r = e; var i = r.lib; var n = i.BlockCipher; var o = r.algo; var t = []; var c = []; var s = []; var f = []; var a = []; var d = []; var u = []; var v = []; var h = []; var y = []; !(function () { for (var e = [], r = 0; r < 256; r++)r < 128 ? e[r] = r << 1 : e[r] = r << 1 ^ 283; for (var i = 0, n = 0, r = 0; r < 256; r++) { var o = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4; o = o >>> 8 ^ 255 & o ^ 99, t[i] = o, c[o] = i; var p = e[i]; var l = e[p]; var _ = e[l]; var k = 257 * e[o] ^ 16843008 * o; s[i] = k << 24 | k >>> 8, f[i] = k << 16 | k >>> 16, a[i] = k << 8 | k >>> 24, d[i] = k; var k = 16843009 * _ ^ 65537 * l ^ 257 * p ^ 16843008 * i; u[o] = k << 24 | k >>> 8, v[o] = k << 16 | k >>> 16, h[o] = k << 8 | k >>> 24, y[o] = k, i ? (i = p ^ e[e[e[_ ^ p]]], n ^= e[e[n]]) : i = n = 1 } }()); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; var l = o.AES = n.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var e = this._keyPriorReset = this._key, r = e.words, i = e.sigBytes / 4, n = this._nRounds = i + 6, o = 4 * (n + 1), c = this._keySchedule = [], s = 0; s < o; s++) if (s < i)c[s] = r[s]; else { var f = c[s - 1]; s % i ? i > 6 && s % i == 4 && (f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f]) : (f = f << 8 | f >>> 24, f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f], f ^= p[s / i | 0] << 24), c[s] = c[s - i] ^ f } for (var a = this._invKeySchedule = [], d = 0; d < o; d++) { var s = o - d; if (d % 4) var f = c[s]; else var f = c[s - 4]; d < 4 || s <= 4 ? a[d] = f : a[d] = u[t[f >>> 24]] ^ v[t[f >>> 16 & 255]] ^ h[t[f >>> 8 & 255]] ^ y[t[255 & f]] } } }, encryptBlock: function (e, r) { this._doCryptBlock(e, r, this._keySchedule, s, f, a, d, t) }, decryptBlock: function (e, r) { var i = e[r + 1]; e[r + 1] = e[r + 3], e[r + 3] = i, this._doCryptBlock(e, r, this._invKeySchedule, u, v, h, y, c); var i = e[r + 1]; e[r + 1] = e[r + 3], e[r + 3] = i }, _doCryptBlock: function (e, r, i, n, o, t, c, s) { for (var f = this._nRounds, a = e[r] ^ i[0], d = e[r + 1] ^ i[1], u = e[r + 2] ^ i[2], v = e[r + 3] ^ i[3], h = 4, y = 1; y < f; y++) { var p = n[a >>> 24] ^ o[d >>> 16 & 255] ^ t[u >>> 8 & 255] ^ c[255 & v] ^ i[h++]; var l = n[d >>> 24] ^ o[u >>> 16 & 255] ^ t[v >>> 8 & 255] ^ c[255 & a] ^ i[h++]; var _ = n[u >>> 24] ^ o[v >>> 16 & 255] ^ t[a >>> 8 & 255] ^ c[255 & d] ^ i[h++]; var k = n[v >>> 24] ^ o[a >>> 16 & 255] ^ t[d >>> 8 & 255] ^ c[255 & u] ^ i[h++]; a = p, d = l, u = _, v = k } var p = (s[a >>> 24] << 24 | s[d >>> 16 & 255] << 16 | s[u >>> 8 & 255] << 8 | s[255 & v]) ^ i[h++]; var l = (s[d >>> 24] << 24 | s[u >>> 16 & 255] << 16 | s[v >>> 8 & 255] << 8 | s[255 & a]) ^ i[h++]; var _ = (s[u >>> 24] << 24 | s[v >>> 16 & 255] << 16 | s[a >>> 8 & 255] << 8 | s[255 & d]) ^ i[h++]; var k = (s[v >>> 24] << 24 | s[a >>> 16 & 255] << 16 | s[d >>> 8 & 255] << 8 | s[255 & u]) ^ i[h++]; e[r] = p, e[r + 1] = l, e[r + 2] = _, e[r + 3] = k }, keySize: 8 }); r.AES = n._createHelper(l) }()), e.AES }))
// # sourceMappingURL=aes.min.js.map
!(function (e, n) { typeof exports === 'object' ? module.exports = exports = n(require('./core.min')) : typeof define === 'function' && define.amd ? define(['./core.min'], n) : n(e.CryptoJS) }(this, function (e) { return e.enc.Utf8 }))
// # sourceMappingURL=enc-utf8.min.js.map
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4,4 +4,4 @@ code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS.mode.ECB=function(){var a=CryptoJS.lib.BlockCipherMode.extend();a.Encryptor=a.extend({processBlock:function(a,b){this._cipher.encryptBlock(a,b)}});a.Decryptor=a.extend({processBlock:function(a,b){this._cipher.decryptBlock(a,b)}});return a}();
CryptoJS.mode.ECB = (function () { var a = CryptoJS.lib.BlockCipherMode.extend(); a.Encryptor = a.extend({ processBlock: function (a, b) { this._cipher.encryptBlock(a, b) } }); a.Decryptor = a.extend({ processBlock: function (a, b) { this._cipher.decryptBlock(a, b) } }); return a }())
......@@ -2,24 +2,24 @@
* Zero padding strategy.
*/
CryptoJS.pad.ZeroPadding = {
pad: function (data, blockSize) {
// Shortcut
var blockSizeBytes = blockSize * 4;
pad: function (data, blockSize) {
// Shortcut
var blockSizeBytes = blockSize * 4
// Pad
data.clamp();
data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
},
// Pad
data.clamp()
data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes)
},
unpad: function (data) {
// Shortcut
var dataWords = data.words;
unpad: function (data) {
// Shortcut
var dataWords = data.words
// Unpad
var i = data.sigBytes - 1;
while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
i--;
}
data.sigBytes = i + 1;
// Unpad
var i = data.sigBytes - 1
while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
i--
}
};
data.sigBytes = i + 1
}
}
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/act/model',
method: 'get',
......@@ -25,22 +25,21 @@ export function fetchList(query) {
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/act/model/' + id,
method: 'delete'
})
}
export function deploy(id) {
export function deploy (id) {
return request({
url: '/act/model/deploy/' + id,
method: 'post'
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/act/model/insert',
method: 'post',
......@@ -48,14 +47,14 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/log/' + id,
method: 'get'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/log/',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/act/leave-bill/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/act/leave-bill',
method: 'post',
......@@ -33,28 +33,28 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/act/leave-bill/' + id,
method: 'get'
})
}
export function submit(id) {
export function submit (id) {
return request({
url: '/act/leave-bill/submit/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/act/leave-bill/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/act/leave-bill/',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/act/process',
method: 'get',
......@@ -25,16 +25,16 @@ export function fetchList(query) {
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/act/process/' + id,
method: 'delete'
})
}
export function status(id, type) {
export function status (id, type) {
return request({
url: '/act/process/status/' + id + "/" + type,
url: '/act/process/status/' + id + '/' + type,
method: 'put'
})
}
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/act/task/todo',
method: 'get',
......@@ -25,21 +25,21 @@ export function fetchList(query) {
})
}
export function fetchDetail(id) {
export function fetchDetail (id) {
return request({
url: '/act/task/' + id,
method: 'get'
})
}
export function fetchComment(id) {
export function fetchComment (id) {
return request({
url: '/act/task/comment/' + id,
method: 'get'
})
}
export function doTask(obj) {
export function doTask (obj) {
return request({
url: '/act/task',
method: 'post',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/client/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/client/',
method: 'post',
......@@ -33,21 +33,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/client/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/client/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/client',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchDeptTree(query) {
export function fetchDeptTree (query) {
return request({
url: '/admin/dept/user-tree',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchDeptTree(query) {
})
}
export function fetchTree(query) {
export function fetchTree (query) {
return request({
url: '/admin/dept/tree',
method: 'get',
......@@ -33,7 +33,7 @@ export function fetchTree(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/dept/',
method: 'post',
......@@ -41,21 +41,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/dept/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/dept/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/dept/',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/dict/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/dict/',
method: 'post',
......@@ -33,21 +33,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/dict/' + id,
method: 'get'
})
}
export function delObj(row) {
export function delObj (row) {
return request({
url: '/admin/dict/' + row.id + '/' + row.type,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/dict/',
method: 'put',
......@@ -55,7 +55,7 @@ export function putObj(obj) {
})
}
export function remote(type) {
export function remote (type) {
return request({
url: '/admin/dict/type/' + type,
method: 'get'
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/log/page',
method: 'get',
......@@ -25,14 +25,14 @@ export function fetchList(query) {
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/log/' + id,
method: 'delete'
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/log/',
method: 'post',
......@@ -40,14 +40,14 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/log/' + id,
method: 'get'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/log/',
method: 'put',
......@@ -55,7 +55,7 @@ export function putObj(obj) {
})
}
export function sendLogs(logsList) {
export function sendLogs (logsList) {
return request({
url: '/admin/log/logs',
method: 'post',
......
......@@ -17,14 +17,14 @@
import request from '@/router/axios'
export function GetMenu() {
export function GetMenu () {
return request({
url: '/admin/menu',
method: 'get'
})
}
export function fetchTree(query) {
export function fetchTree (query) {
return request({
url: '/admin/menu/tree',
method: 'get',
......@@ -32,7 +32,7 @@ export function fetchTree(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/menu',
method: 'post',
......@@ -40,21 +40,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/menu/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/menu/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/menu',
method: 'put',
......
......@@ -17,14 +17,14 @@
import request from '@/router/axios'
export function roleList() {
export function roleList () {
return request({
url: '/admin/role/roleList',
method: 'get'
})
}
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/role/page',
method: 'get',
......@@ -32,21 +32,21 @@ export function fetchList(query) {
})
}
export function deptRoleList() {
export function deptRoleList () {
return request({
url: '/admin/role/list',
method: 'get'
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/role/' + id,
method: 'get'
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/role',
method: 'post',
......@@ -54,7 +54,7 @@ export function addObj(obj) {
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/role',
method: 'put',
......@@ -62,14 +62,14 @@ export function putObj(obj) {
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/role/' + id,
method: 'delete'
})
}
export function permissionUpd(roleId, menuIds) {
export function permissionUpd (roleId, menuIds) {
return request({
url: '/admin/role/menu',
method: 'put',
......@@ -80,7 +80,7 @@ export function permissionUpd(roleId, menuIds) {
})
}
export function fetchRoleTree(roleName) {
export function fetchRoleTree (roleName) {
return request({
url: '/admin/menu/tree/' + roleName,
method: 'get'
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/route',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/route',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/social/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/social/',
method: 'post',
......@@ -33,21 +33,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/social/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/social/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/social/',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/token/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function delObj(token) {
export function delObj (token) {
return request({
url: '/admin/token/' + token,
method: 'delete'
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/admin/user/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/admin/user',
method: 'post',
......@@ -33,21 +33,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/admin/user/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/admin/user/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/admin/user',
method: 'put',
......@@ -55,7 +55,7 @@ export function putObj(obj) {
})
}
export function getDetails(obj) {
export function getDetails (obj) {
return request({
url: '/admin/user/details/' + obj,
method: 'get'
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/daemon/execution-log/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/daemon/execution-log',
method: 'post',
......@@ -33,21 +33,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/daemon/execution-log/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/daemon/execution-log/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/daemon/execution-log',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/daemon/status-trace-log/page',
method: 'get',
......@@ -25,7 +25,7 @@ export function fetchList(query) {
})
}
export function addObj(obj) {
export function addObj (obj) {
return request({
url: '/daemon/status-trace-log',
method: 'post',
......@@ -33,21 +33,21 @@ export function addObj(obj) {
})
}
export function getObj(id) {
export function getObj (id) {
return request({
url: '/daemon/status-trace-log/' + id,
method: 'get'
})
}
export function delObj(id) {
export function delObj (id) {
return request({
url: '/daemon/statustracelog/' + id,
method: 'delete'
})
}
export function putObj(obj) {
export function putObj (obj) {
return request({
url: '/daemon/status-trace-log',
method: 'put',
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function fetchList(query) {
export function fetchList (query) {
return request({
url: '/gen/generator/page',
method: 'get',
......@@ -25,23 +25,23 @@ export function fetchList(query) {
})
}
export function handleDown(table) {
export function handleDown (table) {
return request({
url: '/gen/generator/code',
method: 'post',
data: table,
responseType: 'arraybuffer'
}).then((response) => { // 处理返回的文件流
let blob = new Blob([response.data], {type: 'application/zip'})
let blob = new Blob([response.data], { type: 'application/zip' })
let filename = table.tableName + '.zip'
let link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = filename;
document.body.appendChild(link);
link.click();
let link = document.createElement('a')
link.href = URL.createObjectURL(blob)
link.download = filename
document.body.appendChild(link)
link.click()
window.setTimeout(function () {
URL.revokeObjectURL(blob);
document.body.removeChild(link);
}, 0);
URL.revokeObjectURL(blob)
document.body.removeChild(link)
}, 0)
})
}
......@@ -26,7 +26,7 @@ export const loginByUsername = (username, password, code, randomStr) => {
'Authorization': 'Basic cGlnOnBpZw=='
},
method: 'post',
params: {username, password, randomStr, code, grant_type, scope}
params: { username, password, randomStr, code, grant_type, scope }
})
}
......@@ -39,7 +39,7 @@ export const loginByMobile = (mobile, code) => {
'Authorization': 'Basic cGlnOnBpZw=='
},
method: 'post',
params: {mobile: 'SMS@' + mobile, code: code, grant_type}
params: { mobile: 'SMS@' + mobile, code: code, grant_type }
})
}
......@@ -52,7 +52,7 @@ export const loginBySocial = (state, code) => {
'Authorization': 'Basic cGlnOnBpZw=='
},
method: 'post',
params: {mobile: state + '@' + code, grant_type}
params: { mobile: state + '@' + code, grant_type }
})
}
......
......@@ -17,7 +17,7 @@
import request from '@/router/axios'
export function getToken() {
export function getToken () {
return request({
url: '/zuul/admin/user/upload', // 假地址,自行替换
method: 'post'
......
// 配置编译环境和线上环境之间的切换
const env = process.env
let baseUrl = '';
let baseUrl = ''
// 图表库为avue和pig2套地址
let iconfontVersion = ['667895_4y8d30c1og', '567566_qo5lxgtishg']
let iconfontUrl = `//at.alicdn.com/t/font_$key.css`;
let iconfontUrl = `//at.alicdn.com/t/font_$key.css`
let codeUrl = `/code`
let actUrl = `${window.origin}/act/modeler.html?modelId=`;
let actUrl = `${window.origin}/act/modeler.html?modelId=`
if (env.NODE_ENV == 'development') {
} else if (env.NODE_ENV == 'production') {
......
......@@ -47,34 +47,34 @@ export const tableOption = {
label: '模型名称',
prop: 'name'
},
{
label: '描述',
prop: 'desc',
hide: true,
editDisabled: false,
addVisdiplay: true
}, {
label: '版本号',
prop: 'version',
editDisabled: true,
addVisdiplay: false
}, {
width: 150,
label: '创建时间',
prop: 'createTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm',
valueFormat: 'timestamp',
editDisabled: true,
addVisdiplay: false
}, {
width: 150,
label: '最后更新时间',
prop: 'lastUpdateTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm',
valueFormat: 'timestamp',
editDisabled: true,
addVisdiplay: false
}]
{
label: '描述',
prop: 'desc',
hide: true,
editDisabled: false,
addVisdiplay: true
}, {
label: '版本号',
prop: 'version',
editDisabled: true,
addVisdiplay: false
}, {
width: 150,
label: '创建时间',
prop: 'createTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm',
valueFormat: 'timestamp',
editDisabled: true,
addVisdiplay: false
}, {
width: 150,
label: '最后更新时间',
prop: 'lastUpdateTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm',
valueFormat: 'timestamp',
editDisabled: true,
addVisdiplay: false
}]
}
......@@ -51,7 +51,7 @@ export const tableOption = {
type: 'datetime',
overHidden: true,
format: 'yyyy-MM-dd HH:mm',
valueFormat: "yyyy-MM-dd hh:mm:ss"
valueFormat: 'yyyy-MM-dd hh:mm:ss'
},
{
label: '提交时间',
......
......@@ -54,28 +54,28 @@ export const formOption = {
span: 12,
column: [
{
label: "任务编号",
prop: "taskId",
label: '任务编号',
prop: 'taskId',
disabled: true
},
{
label: "任务名称",
prop: "taskName",
label: '任务名称',
prop: 'taskName',
disabled: true
},
{
label: "申请人",
prop: "username",
label: '申请人',
prop: 'username',
disabled: true
},
{
label: "请假时长",
prop: "days",
label: '请假时长',
prop: 'days',
disabled: true
},
{
label: "请假时间",
prop: "createTime",
label: '请假时间',
prop: 'createTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm',
disabled: true
......@@ -105,8 +105,8 @@ export const formOption = {
span: 24,
rules: [{
required: true,
message: "请输入备注",
trigger: "blur"
message: '请输入备注',
trigger: 'blur'
}]
}
]
......@@ -132,11 +132,11 @@ export const taskOption = {
label: '批注',
prop: 'fullMessage'
}, {
label: "操作时间",
prop: "time",
type: "datetime",
format: "yyyy-MM-dd hh:mm:ss",
valueFormat: "yyyy-MM-dd hh:mm:ss",
label: '操作时间',
prop: 'time',
type: 'datetime',
format: 'yyyy-MM-dd hh:mm:ss',
valueFormat: 'yyyy-MM-dd hh:mm:ss'
}
]
}
......@@ -30,7 +30,7 @@ export const tableOption = {
prop: 'roleId',
span: 24,
editDisabled: true,
addVisdiplay: false,
addVisdiplay: false
}, {
fixed: true,
label: '角色名称',
......@@ -41,12 +41,12 @@ export const tableOption = {
message: '角色名称不能为空',
trigger: 'blur'
},
{
min: 3,
max: 20,
message: '长度在 3 到 20 个字符',
trigger: 'blur'
}
{
min: 3,
max: 20,
message: '长度在 3 到 20 个字符',
trigger: 'blur'
}
]
}, {
width: 150,
......@@ -59,12 +59,12 @@ export const tableOption = {
message: '角色标识不能为空',
trigger: 'blur'
},
{
min: 3,
max: 20,
message: '长度在 3 到 20 个字符',
trigger: 'blur'
}
{
min: 3,
max: 20,
message: '长度在 3 到 20 个字符',
trigger: 'blur'
}
]
}, {
width: 180,
......@@ -73,7 +73,7 @@ export const tableOption = {
overHidden: true,
type: 'textarea',
minRows: 6,
span: 24,
span: 24
}, {
width: 180,
label: '创建时间',
......@@ -83,6 +83,6 @@ export const tableOption = {
valueFormat: 'yyyy-MM-dd HH:mm:ss',
editDisabled: true,
addVisdiplay: false,
span: 24,
span: 24
}]
}
......@@ -33,60 +33,60 @@ export const tableOption = {
addVisdiplay: false,
editDisabled: true
},
{
label: '类型',
prop: 'type',
type: 'select',
dicData: 'social_type',
search: true,
rules: [{
required: true,
message: '请选择类型',
trigger: 'blur'
}]
},
{
label: '描述',
prop: 'remark'
},
{
label: 'appId',
prop: 'appId',
overHidden: true,
rules: [{
required: true,
message: '请输入appId',
trigger: 'blur'
}]
},
{
label: 'appSecret',
prop: 'appSecret',
overHidden: true,
rules: [{
required: true,
message: '请输入appSecret',
trigger: 'blur'
}]
},
{
label: '回调地址',
prop: 'redirectUrl',
hide: true,
rules: [{
required: true,
message: '请输入回调地址',
trigger: 'blur'
}]
},
{
valueFormat: 'timestamp',
format: 'yyyy-MM-dd hh:mm:ss',
label: '创建时间',
prop: 'createTime',
align: 'center',
addVisdiplay: false,
editDisabled: true
}
{
label: '类型',
prop: 'type',
type: 'select',
dicData: 'social_type',
search: true,
rules: [{
required: true,
message: '请选择类型',
trigger: 'blur'
}]
},
{
label: '描述',
prop: 'remark'
},
{
label: 'appId',
prop: 'appId',
overHidden: true,
rules: [{
required: true,
message: '请输入appId',
trigger: 'blur'
}]
},
{
label: 'appSecret',
prop: 'appSecret',
overHidden: true,
rules: [{
required: true,
message: '请输入appSecret',
trigger: 'blur'
}]
},
{
label: '回调地址',
prop: 'redirectUrl',
hide: true,
rules: [{
required: true,
message: '请输入回调地址',
trigger: 'blur'
}]
},
{
valueFormat: 'timestamp',
format: 'yyyy-MM-dd hh:mm:ss',
label: '创建时间',
prop: 'createTime',
align: 'center',
addVisdiplay: false,
editDisabled: true
}
]
}
......@@ -14,7 +14,7 @@
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
import {getDetails} from "@/api/admin/user";
import { getDetails } from '@/api/admin/user'
var validateUsername = (rule, value, callback) => {
getDetails(value).then(response => {
......@@ -25,8 +25,8 @@ var validateUsername = (rule, value, callback) => {
} else {
callback()
}
});
};
})
}
export const tableOption = {
border: true,
index: true,
......@@ -44,7 +44,7 @@ export const tableOption = {
span: 24,
hide: true,
editDisabled: true,
addVisdiplay: false,
addVisdiplay: false
}, {
fixed: true,
label: '用户名',
......@@ -55,15 +55,15 @@ export const tableOption = {
span: 24,
rules: [{
required: true,
message: "请输入用户名",
message: '请输入用户名'
},
{
min: 3,
max: 20,
message: '长度在 3 到 20 个字符',
trigger: 'blur'
},
{
min: 3,
max: 20,
message: "长度在 3 到 20 个字符",
trigger: "blur"
},
{validator: validateUsername, trigger: 'blur'}
{ validator: validateUsername, trigger: 'blur' }
]
}, {
label: '密码',
......@@ -75,8 +75,8 @@ export const tableOption = {
rules: [{
min: 6,
max: 20,
message: "长度在 6 到 20 个字符",
trigger: "blur"
message: '长度在 6 到 20 个字符',
trigger: 'blur'
}]
}, {
label: '所属部门',
......@@ -87,8 +87,8 @@ export const tableOption = {
hide: true,
rules: [{
required: true,
message: "请选择部门",
trigger: "blur"
message: '请选择部门',
trigger: 'blur'
}]
}, {
label: '手机号',
......@@ -99,8 +99,8 @@ export const tableOption = {
rules: [{
min: 6,
max: 20,
message: "长度在 11 个字符",
trigger: "blur"
message: '长度在 11 个字符',
trigger: 'blur'
}]
}, {
label: '角色',
......@@ -111,26 +111,26 @@ export const tableOption = {
span: 24,
rules: [{
required: true,
message: "请选择角色",
trigger: "blur"
}],
message: '请选择角色',
trigger: 'blur'
}]
}, {
label: '状态',
prop: "lockFlag",
type: "select",
prop: 'lockFlag',
type: 'select',
solt: true,
span: 24,
rules: [{
required: true,
message: "请选择状态",
trigger: "blur"
message: '请选择状态',
trigger: 'blur'
}],
dicData: [{
label: '有效',
value: "0"
value: '0'
}, {
label: '锁定',
value: "9"
value: '9'
}]
}, {
width: 180,
......
......@@ -19,10 +19,10 @@ const DIC = {
label: '成功',
value: 1
},
{
label: '失败',
value: 0
}
{
label: '失败',
value: 0
}
]
}
......@@ -83,7 +83,7 @@ export const tableOption = {
label: '执行结果',
prop: 'isSuccess',
type: 'select',
dicData: DIC.isSuccess,
dicData: DIC.isSuccess
},
{
label: '开始时间',
......@@ -93,6 +93,6 @@ export const tableOption = {
{
label: '完成时间',
prop: 'completeTime'
},
}
]
}
......@@ -20,13 +20,13 @@ const DIC = {
label: '准备中',
value: 'TASK_STAGING'
},
{
label: '执行中',
value: 'TASK_RUNNING'
}, {
label: '已经完成',
value: 'TASK_FINISHED'
}
{
label: '执行中',
value: 'TASK_RUNNING'
}, {
label: '已经完成',
value: 'TASK_FINISHED'
}
]
}
......@@ -46,59 +46,59 @@ export const tableOption = {
prop: 'id',
hide: true
},
{
label: '作业名称',
prop: 'jobName',
search: true
},
{
label: '原任务',
prop: 'originalTaskId',
hide: true,
width: 100
},
{
label: '任务ID',
prop: 'taskId',
hide: true
},
{
label: '服务器IP',
prop: 'slaveId'
},
{
label: '资源',
prop: 'source',
hide: true
},
{
label: '执行类型',
prop: 'executionType',
hide: true
},
{
width: 100,
label: '分片项',
prop: 'shardingItem'
},
{
width: 100,
label: '状态',
prop: 'state',
type: 'select',
dicData: DIC.state,
search: true
},
{
label: '消息',
prop: 'message',
width: 100,
overHidden: true,
hide: true
},
{
label: '创建时间',
prop: 'creationTime'
}
{
label: '作业名称',
prop: 'jobName',
search: true
},
{
label: '原任务',
prop: 'originalTaskId',
hide: true,
width: 100
},
{
label: '任务ID',
prop: 'taskId',
hide: true
},
{
label: '服务器IP',
prop: 'slaveId'
},
{
label: '资源',
prop: 'source',
hide: true
},
{
label: '执行类型',
prop: 'executionType',
hide: true
},
{
width: 100,
label: '分片项',
prop: 'shardingItem'
},
{
width: 100,
label: '状态',
prop: 'state',
type: 'select',
dicData: DIC.state,
search: true
},
{
label: '消息',
prop: 'message',
width: 100,
overHidden: true,
hide: true
},
{
label: '创建时间',
prop: 'creationTime'
}
]
}
......@@ -20,11 +20,11 @@ export default {
label: '地址',
width: 200,
prop: 'url',
overHidden: true,
overHidden: true
}, {
label: '内容',
prop: 'message',
overHidden: true,
overHidden: true
}, {
label: '错误堆栈',
prop: 'stack',
......@@ -33,6 +33,6 @@ export default {
label: '时间',
align: 'center',
prop: 'time',
width: 200,
width: 200
}]
}
......@@ -34,7 +34,7 @@ export const list = [{
commit: 'SET_SHOWMENU'
}]
export const option = (safe) => {
const _safe = safe;
const _safe = safe
return {
submitBtn: false,
column: [{
......@@ -43,8 +43,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '日志',
......@@ -52,8 +52,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '主题',
......@@ -61,8 +61,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '主题色',
......@@ -70,8 +70,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '全屏',
......@@ -79,8 +79,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '锁屏',
......@@ -88,8 +88,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '搜索',
......@@ -97,8 +97,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '缩放',
......@@ -106,8 +106,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}, {
label: '顶部菜单',
......@@ -115,8 +115,8 @@ export const option = (safe) => {
type: 'switch',
span: 24,
dicData: dicData,
click: ({column}) => {
_safe.set(column.prop);
click: ({ column }) => {
_safe.set(column.prop)
}
}]
}
......
export default {
title: "PigX",
logo: "PigX",
title: 'PigX',
logo: 'PigX',
indexTitle: 'PigX Pro 快速开发框架',
whiteList: ["/login", "/404", "/401", "/lock"], //配置无权限可以访问的页面
whiteTagList: ["/login", "/404", "/401", "/lock",], //配置不添加tags页面 ('/advanced-router/mutative-detail/*'——*为通配符)
whiteList: ['/login', '/404', '/401', '/lock'], // 配置无权限可以访问的页面
whiteTagList: ['/login', '/404', '/401', '/lock' ], // 配置不添加tags页面 ('/advanced-router/mutative-detail/*'——*为通配符)
lockPage: '/lock',
tokenTime: 6000,
info: {
title: "PigX Pro 快速开发框架",
title: 'PigX Pro 快速开发框架',
list: [
'一个基于Spring Cloud、OAuth2.0开发基于Vue前后分离的开发平台。',
'一个基于Avue2 开发无需前端知识,即可快速上手的开发平台。',
'最大程度上帮助企业节省时间成本和费用开支。',
'QQ群:23754102',
'当前版本:v2.0.0',
'当前版本:v2.0.0'
]
},
//http的status默认放行不才用统一处理的,
// http的status默认放行不才用统一处理的,
statusWhiteList: [400, 500, 401],
//配置首页不可关闭
// 配置首页不可关闭
isFirstPage: false,
fistPage: {
label: "首页",
value: "/wel/index",
label: '首页',
value: '/wel/index',
params: {},
query: {},
group: [],
close: false
},
//配置菜单的属性
// 配置菜单的属性
menu: {
props: {
label: 'label',
......
import Vue from 'vue';
import Vue from 'vue'
import store from './store'
Vue.config.errorHandler = function (err, vm, info) {
Vue.nextTick(() => {
store.commit('ADD_LOGS', {
type: 'error',
......@@ -13,13 +12,13 @@ Vue.config.errorHandler = function (err, vm, info) {
if (process.env.NODE_ENV === 'development') {
console.group('>>>>>> 错误信息 >>>>>>')
console.log(info)
console.groupEnd();
console.groupEnd()
console.group('>>>>>> Vue 实例 >>>>>>')
console.log(vm)
console.groupEnd();
console.groupEnd()
console.group('>>>>>> Error >>>>>>')
console.log(err)
console.groupEnd();
console.groupEnd()
}
})
}
function pluralize(time, label) {
function pluralize (time, label) {
if (time === 1) {
return time + label
}
......@@ -8,32 +8,35 @@ function pluralize(time, label) {
/**
* 日期格式化
*/
export function dateFormat(date) {
let format = 'yyyy-MM-dd hh:mm:ss';
export function dateFormat (date) {
let format = 'yyyy-MM-dd hh:mm:ss'
if (date != 'Invalid Date') {
var o = {
"M+": date.getMonth() + 1, //month
"d+": date.getDate(), //day
"h+": date.getHours(), //hour
"m+": date.getMinutes(), //minute
"s+": date.getSeconds(), //second
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
"S": date.getMilliseconds() //millisecond
'M+': date.getMonth() + 1, // month
'd+': date.getDate(), // day
'h+': date.getHours(), // hour
'm+': date.getMinutes(), // minute
's+': date.getSeconds(), // second
'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
'S': date.getMilliseconds() // millisecond
}
if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
(date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(format))
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1,
(date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
for (var k in o) {
if (new RegExp('(' + k + ')').test(format)) {
format = format.replace(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
return format;
RegExp.$1.length == 1 ? o[k]
: ('00' + o[k]).substr(('' + o[k]).length))
}
}
return format
}
return '';
return ''
}
export function timeAgo(time) {
export function timeAgo (time) {
const between = Date.now() / 1000 - Number(time)
if (between < 3600) {
return pluralize(~~(between / 60), ' minute')
......@@ -44,7 +47,7 @@ export function timeAgo(time) {
}
}
export function parseTime(time, cFormat) {
export function parseTime (time, cFormat) {
if (arguments.length === 0) {
return null
}
......@@ -80,7 +83,7 @@ export function parseTime(time, cFormat) {
return time_str
}
export function formatTime(time, option) {
export function formatTime (time, option) {
time = +time * 1000
const d = new Date(time)
const now = Date.now()
......@@ -103,15 +106,15 @@ export function formatTime(time, option) {
}
}
/* 数字 格式化*/
export function nFormatter(num, digits) {
/* 数字 格式化 */
export function nFormatter (num, digits) {
const si = [
{value: 1E18, symbol: 'E'},
{value: 1E15, symbol: 'P'},
{value: 1E12, symbol: 'T'},
{value: 1E9, symbol: 'G'},
{value: 1E6, symbol: 'M'},
{value: 1E3, symbol: 'k'}
{ value: 1E18, symbol: 'E' },
{ value: 1E15, symbol: 'P' },
{ value: 1E12, symbol: 'T' },
{ value: 1E9, symbol: 'G' },
{ value: 1E6, symbol: 'M' },
{ value: 1E3, symbol: 'k' }
]
for (let i = 0; i < si.length; i++) {
if (num >= si[i].value) {
......@@ -121,12 +124,12 @@ export function nFormatter(num, digits) {
return num.toString()
}
export function html2Text(val) {
export function html2Text (val) {
const div = document.createElement('div')
div.innerHTML = val
return div.textContent || div.innerText
}
export function toThousandslsFilter(num) {
export function toThousandslsFilter (num) {
return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}
import 'babel-polyfill';
import 'classlist-polyfill';
import Vue from 'vue';
import axios from './router/axios';
import VueAxios from 'vue-axios';
import App from './App';
import './permission'; // 权限
import './error'; // 日志
import router from './router/router';
import 'avue-plugin-transfer/packages' //引入avue-plugin-transfer插件
import 'babel-polyfill'
import 'classlist-polyfill'
import Vue from 'vue'
import axios from './router/axios'
import VueAxios from 'vue-axios'
import App from './App'
import './permission' // 权限
import './error' // 日志
import router from './router/router'
import 'avue-plugin-transfer/packages' // 引入avue-plugin-transfer插件
// import 'avue-plugin-ueditor/packages' //引入avue-plugin-ueditor插件(如果要兼容ie自行换掉富文本编辑器,此款插件不兼容ie)
import store from './store';
import {loadStyle} from './util/util'
import * as urls from '@/config/env';
import {iconfontUrl, iconfontVersion} from '@/config/env';
import store from './store'
import { loadStyle } from './util/util'
import * as urls from '@/config/env'
import { iconfontUrl, iconfontVersion } from '@/config/env'
import * as filters from './filters' // 全局filter
import './styles/common.scss';
import './styles/common.scss'
// // 引入avue的包
import Avue from '@smallwei/avue/lib/index.js';
import Avue from '@smallwei/avue/lib/index.js'
// // 引入avue的样式文件
import '@smallwei/avue/lib/theme-chalk/index.css';
import '@smallwei/avue/lib/theme-chalk/index.css'
import basicContainer from './components/basic-container/main'
import VueClipboard from 'vue-clipboard2'
// 插件 json 展示
......@@ -28,8 +28,7 @@ import vueJsonTreeView from 'vue-json-tree-view'
// import '../packages/index.js';
// import '../packages/theme-chalk/src/index.scss';
Vue.use(Avue, {menuType: 'text'});
Vue.use(Avue, { menuType: 'text' })
Vue.use(router)
......@@ -42,7 +41,7 @@ Vue.use(VueAxios, axios)
Vue.component('basicContainer', basicContainer)
Object.keys(urls).forEach(key => {
Vue.prototype[key] = urls[key];
Vue.prototype[key] = urls[key]
})
Object.keys(filters).forEach(key => {
......@@ -50,10 +49,10 @@ Object.keys(filters).forEach(key => {
})
iconfontVersion.forEach(ele => {
loadStyle(iconfontUrl.replace('$key', ele));
loadStyle(iconfontUrl.replace('$key', ele))
})
Vue.config.productionTip = false;
Vue.config.productionTip = false
new Vue({
router,
......
import {
mapGetters
} from "vuex";
const version = require("element-ui/package.json").version; // element-ui version from node_modules
const ORIGINAL_THEME = "#409EFF"; // default color
export default function() {
return {
data() {
return {
themeVal: ORIGINAL_THEME
mapGetters
} from 'vuex'
const version = require('element-ui/package.json').version // element-ui version from node_modules
const ORIGINAL_THEME = '#409EFF' // default color
export default function () {
return {
data () {
return {
themeVal: ORIGINAL_THEME
}
},
created () {
this.themeVal = this.theme
},
watch: {
themeVal (val, oldVal) {
this.$store.commit('SET_THEME', val)
this.updateTheme(val, oldVal)
}
},
computed: {
...mapGetters(['theme'])
},
methods: {
updateTheme (val, oldVal) {
if (typeof val !== 'string') return
const head = document.getElementsByTagName('head')[0]
const themeCluster = this.getThemeCluster(val.replace('#', ''))
const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
const getHandler = (variable, id) => {
return () => {
const originalCluster = this.getThemeCluster(
ORIGINAL_THEME.replace('#', '')
)
const newStyle = this.updateStyle(
this[variable],
originalCluster,
themeCluster
)
let styleTag = document.getElementById(id)
if (!styleTag) {
styleTag = document.createElement('style')
styleTag.setAttribute('id', id)
head.appendChild(styleTag)
}
},
created() {
this.themeVal = this.theme;
},
watch: {
themeVal(val, oldVal) {
this.$store.commit("SET_THEME", val);
this.updateTheme(val, oldVal);
}
},
computed: {
...mapGetters(["theme"])
},
methods: {
updateTheme(val, oldVal) {
if (typeof val !== "string") return;
const head = document.getElementsByTagName("head")[0];
const themeCluster = this.getThemeCluster(val.replace("#", ""));
const originalCluster = this.getThemeCluster(oldVal.replace("#", ""));
const getHandler = (variable, id) => {
return () => {
const originalCluster = this.getThemeCluster(
ORIGINAL_THEME.replace("#", "")
);
const newStyle = this.updateStyle(
this[variable],
originalCluster,
themeCluster
);
let styleTag = document.getElementById(id);
if (!styleTag) {
styleTag = document.createElement("style");
styleTag.setAttribute("id", id);
head.appendChild(styleTag);
}
styleTag.innerText = newStyle;
};
};
const chalkHandler = getHandler("chalk", "chalk-style");
if (!this.chalk) {
const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`;
this.getCSSString(url, chalkHandler, "chalk");
} else {
chalkHandler();
}
const link = [].slice.call(
document.getElementsByTagName("head")[0].getElementsByTagName("link")
);
for (let i = link.length - 3; i < link.length; i++) {
const style = link[i];
if (style.href.indexOf('app') != -1) {
this.getCSSString(style.href, innerText => {
const originalCluster = this.getThemeCluster(
ORIGINAL_THEME.replace("#", "")
);
const newStyle = this.updateStyle(
innerText,
originalCluster,
themeCluster
);
let styleTag = document.getElementById(i);
if (!styleTag) {
styleTag = document.createElement("style");
styleTag.id = i;
styleTag.innerText = newStyle;
head.appendChild(styleTag);
}
});
}
}
const styles = [].slice
.call(document.querySelectorAll("style"))
.filter(style => {
const text = style.innerText;
return (
new RegExp(oldVal, "i").test(text) && !/Chalk Variables/.test(text)
);
});
styles.forEach(style => {
const {
innerText
} = style;
if (typeof innerText !== "string") return;
style.innerText = this.updateStyle(
innerText,
originalCluster,
themeCluster
);
});
},
updateStyle(style, oldCluster, newCluster) {
let newStyle = style;
oldCluster.forEach((color, index) => {
newStyle = newStyle.replace(new RegExp(color, "ig"), newCluster[index]);
});
return newStyle;
},
getCSSString(url, callback, variable) {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && xhr.status === 200) {
if (variable) {
this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, "");
}
callback(xhr.responseText);
}
};
xhr.open("GET", url);
xhr.send();
},
styleTag.innerText = newStyle
}
}
getThemeCluster(theme) {
const tintColor = (color, tint) => {
let red = parseInt(color.slice(0, 2), 16);
let green = parseInt(color.slice(2, 4), 16);
let blue = parseInt(color.slice(4, 6), 16);
const chalkHandler = getHandler('chalk', 'chalk-style')
if (tint === 0) {
// when primary color is in its rgb space
return [red, green, blue].join(",");
} else {
red += Math.round(tint * (255 - red));
green += Math.round(tint * (255 - green));
blue += Math.round(tint * (255 - blue));
if (!this.chalk) {
const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
this.getCSSString(url, chalkHandler, 'chalk')
} else {
chalkHandler()
}
red = red.toString(16);
green = green.toString(16);
blue = blue.toString(16);
const link = [].slice.call(
document.getElementsByTagName('head')[0].getElementsByTagName('link')
)
for (let i = link.length - 3; i < link.length; i++) {
const style = link[i]
if (style.href.indexOf('app') != -1) {
this.getCSSString(style.href, innerText => {
const originalCluster = this.getThemeCluster(
ORIGINAL_THEME.replace('#', '')
)
const newStyle = this.updateStyle(
innerText,
originalCluster,
themeCluster
)
let styleTag = document.getElementById(i)
if (!styleTag) {
styleTag = document.createElement('style')
styleTag.id = i
styleTag.innerText = newStyle
head.appendChild(styleTag)
}
})
}
}
return `#${red}${green}${blue}`;
}
};
const styles = [].slice
.call(document.querySelectorAll('style'))
.filter(style => {
const text = style.innerText
return (
new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
)
})
styles.forEach(style => {
const {
innerText
} = style
if (typeof innerText !== 'string') return
style.innerText = this.updateStyle(
innerText,
originalCluster,
themeCluster
)
})
},
updateStyle (style, oldCluster, newCluster) {
let newStyle = style
oldCluster.forEach((color, index) => {
newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
})
return newStyle
},
getCSSString (url, callback, variable) {
const xhr = new XMLHttpRequest()
xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && xhr.status === 200) {
if (variable) {
this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
}
callback(xhr.responseText)
}
}
xhr.open('GET', url)
xhr.send()
},
getThemeCluster (theme) {
const tintColor = (color, tint) => {
let red = parseInt(color.slice(0, 2), 16)
let green = parseInt(color.slice(2, 4), 16)
let blue = parseInt(color.slice(4, 6), 16)
if (tint === 0) {
// when primary color is in its rgb space
return [red, green, blue].join(',')
} else {
red += Math.round(tint * (255 - red))
green += Math.round(tint * (255 - green))
blue += Math.round(tint * (255 - blue))
red = red.toString(16)
green = green.toString(16)
blue = blue.toString(16)
return `#${red}${green}${blue}`
}
}
const shadeColor = (color, shade) => {
let red = parseInt(color.slice(0, 2), 16);
let green = parseInt(color.slice(2, 4), 16);
let blue = parseInt(color.slice(4, 6), 16);
const shadeColor = (color, shade) => {
let red = parseInt(color.slice(0, 2), 16)
let green = parseInt(color.slice(2, 4), 16)
let blue = parseInt(color.slice(4, 6), 16)
red = Math.round((1 - shade) * red);
green = Math.round((1 - shade) * green);
blue = Math.round((1 - shade) * blue);
red = Math.round((1 - shade) * red)
green = Math.round((1 - shade) * green)
blue = Math.round((1 - shade) * blue)
red = red.toString(16);
green = green.toString(16);
blue = blue.toString(16);
red = red.toString(16)
green = green.toString(16)
blue = blue.toString(16)
return `#${red}${green}${blue}`;
};
return `#${red}${green}${blue}`
}
const clusters = [theme];
for (let i = 0; i <= 9; i++) {
clusters.push(tintColor(theme, Number((i / 10).toFixed(2))));
}
clusters.push(shadeColor(theme, 0.1));
return clusters;
}
const clusters = [theme]
for (let i = 0; i <= 9; i++) {
clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
}
clusters.push(shadeColor(theme, 0.1))
return clusters
}
}
}
}
export default {
propsDefault: {
label: 'label',
path: 'path',
icon: 'icon',
children: 'children'
}
}
\ No newline at end of file
propsDefault: {
label: 'label',
path: 'path',
icon: 'icon',
children: 'children'
}
}
......@@ -4,44 +4,44 @@
*/
import router from './router/router'
import store from './store'
import {validatenull} from '@/util/validate'
import {getToken} from '@/util/auth'
import { validatenull } from '@/util/validate'
import { getToken } from '@/util/auth'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
NProgress.configure({showSpinner: false});
const lockPage = store.getters.website.lockPage; //锁屏页
NProgress.configure({ showSpinner: false })
const lockPage = store.getters.website.lockPage // 锁屏页
router.beforeEach((to, from, next) => {
//缓冲设置
// 缓冲设置
if (to.meta.keepAlive === true && store.state.tags.tagList.some(ele => {
return ele.value === to.fullPath;
return ele.value === to.fullPath
})) {
to.meta.$keepAlive = true;
to.meta.$keepAlive = true
} else {
NProgress.start()
if (to.meta.keepAlive === true && validatenull(to.meta.$keepAlive)) {
to.meta.$keepAlive = true;
to.meta.$keepAlive = true
} else {
to.meta.$keepAlive = false;
to.meta.$keepAlive = false
}
}
const meta = to.meta || {};
const meta = to.meta || {}
if (getToken()) {
if (store.getters.isLock && to.path != lockPage) {
next({path: lockPage})
next({ path: lockPage })
} else if (to.path === '/login') {
next({path: '/'})
next({ path: '/' })
} else {
if (store.getters.roles.length === 0) {
store.dispatch('GetUserInfo').then(() => {
next({...to, replace: true})
next({ ...to, replace: true })
}).catch(() => {
store.dispatch('FedLogOut').then(() => {
next({path: '/login'})
next({ path: '/login' })
})
})
} else {
const value = to.query.src || to.fullPath;
const label = to.query.name || to.name;
const value = to.query.src || to.fullPath
const label = to.query.name || to.name
if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) {
store.commit('ADD_TAG', {
label: label,
......@@ -49,7 +49,7 @@ router.beforeEach((to, from, next) => {
params: to.params,
query: to.query,
group: router.$avueRouter.group || []
});
})
}
next()
}
......@@ -64,7 +64,7 @@ router.beforeEach((to, from, next) => {
})
router.afterEach(() => {
NProgress.done();
const title = store.getters.tag.label;
router.$avueRouter.setTitle(title);
});
NProgress.done()
const title = store.getters.tag.label
router.$avueRouter.setTitle(title)
})
let RouterPlugin = function() {
this.$router = null;
this.$store = null;
let RouterPlugin = function () {
this.$router = null
this.$store = null
}
RouterPlugin.install = function (router, store) {
this.$router = router
this.$store = store
};
RouterPlugin.install = function(router, store) {
this.$router = router;
this.$store = store;
function objToform (obj) {
let result = []
Object.keys(obj).forEach(ele => {
result.push(`${ele}=${obj[ele]}`)
})
return result.join('&')
}
this.$router.$avueRouter = {
// 全局配置
$website: this.$store.getters.website,
routerList: [],
group: '',
safe: this,
// 设置标题
setTitle: function (title) {
title = title ? `${title}——PigX微服务快速开发框架` : 'PigX微服务快速开发框架'
document.title = title
},
closeTag: (value) => {
const tag = value || this.$store.getters.tag
this.$store.commit('DEL_TAG', tag)
},
// 处理路由
getPath: function (params) {
let { src } = params
let result = src || '/'
if (src.includes('http') || src.includes('https')) {
result = `/myiframe/urlPath?${objToform(params)}`
}
return result
},
// 正则处理路由
vaildPath: function (list, path) {
let result = false
list.forEach(ele => {
if (new RegExp('^' + ele + '.*', 'g').test(path)) {
result = true
}
})
return result
},
// 设置路由值
getValue: function (route) {
let value = ''
if (route.query.src) {
value = route.query.src
} else {
value = route.path
}
return value
},
// 动态路由
formatRoutes: function (aMenu = [], first) {
const aRouter = []
const propsConfig = this.$website.menu.props
const propsDefault = {
label: propsConfig.label || 'label',
path: propsConfig.path || 'path',
icon: propsConfig.icon || 'icon',
children: propsConfig.children || 'children',
meta: propsConfig.meta || 'meta'
}
if (aMenu.length === 0) return
for (let i = 0; i < aMenu.length; i++) {
const oMenu = aMenu[i]
if (this.routerList.includes(oMenu[propsDefault.path])) return
const path = (() => {
if (first) {
return oMenu[propsDefault.path].replace('/index', '')
} else {
return oMenu[propsDefault.path]
}
})()
function objToform(obj) {
let result = [];
Object.keys(obj).forEach(ele => {
result.push(`${ele}=${obj[ele]}`);
})
return result.join('&');
}
this.$router.$avueRouter = {
//全局配置
$website: this.$store.getters.website,
routerList: [],
group: '',
safe: this,
// 设置标题
setTitle: function(title) {
title = title ? `${title}——PigX微服务快速开发框架` : 'PigX微服务快速开发框架';
document.title = title;
},
closeTag: (value) => {
const tag = value || this.$store.getters.tag;
this.$store.commit('DEL_TAG', tag)
},
//处理路由
getPath: function(params) {
let { src } = params;
let result = src || '/';
if (src.includes("http") || src.includes("https")) {
result = `/myiframe/urlPath?${objToform(params)}`;
}
return result;
},
//正则处理路由
vaildPath: function(list, path) {
let result = false;
list.forEach(ele => {
if (new RegExp("^" + ele + ".*", "g").test(path)) {
result = true
}
const component = oMenu.component
const name = oMenu[propsDefault.label]
const icon = oMenu[propsDefault.icon]
const children = oMenu[propsDefault.children]
const meta = {
keepAlive: Number(oMenu['keepAlive']) === 0
}
const isChild = children.length !== 0
const oRouter = {
path: path,
component (resolve) {
// 判断是否为首路由
if (first) {
require(['../page/index'], resolve)
})
return result;
},
//设置路由值
getValue: function(route) {
let value = "";
if (route.query.src) {
value = route.query.src;
// 判断是否为多层路由
} else if (isChild && !first) {
require(['../page/index/layout'], resolve)
// 判断是否为最终的页面视图
} else {
value = route.path;
}
return value;
},
//动态路由
formatRoutes: function(aMenu = [], first) {
const aRouter = []
const propsConfig = this.$website.menu.props;
const propsDefault = {
label: propsConfig.label || 'label',
path: propsConfig.path || 'path',
icon: propsConfig.icon || 'icon',
children: propsConfig.children || 'children',
meta: propsConfig.meta || 'meta',
}
if (aMenu.length === 0) return;
for (let i = 0; i < aMenu.length; i++) {
const oMenu = aMenu[i];
if (this.routerList.includes(oMenu[propsDefault.path])) return;
const path = (() => {
if (first) {
return oMenu[propsDefault.path].replace('/index', '')
} else {
return oMenu[propsDefault.path]
}
})(),
component = oMenu.component,
name = oMenu[propsDefault.label],
icon = oMenu[propsDefault.icon],
children = oMenu[propsDefault.children],
meta = {
keepAlive: Number(oMenu['keepAlive']) === 0
}
const isChild = children.length !== 0;
const oRouter = {
path: path,
component(resolve) {
// 判断是否为首路由
if (first) {
require(['../page/index'], resolve)
return
// 判断是否为多层路由
} else if (isChild && !first) {
require(['../page/index/layout'], resolve)
return
// 判断是否为最终的页面视图
} else {
require([`../${component}.vue`], resolve)
}
},
name: name,
icon: icon,
meta: meta,
redirect: (() => {
if (!isChild && first) return `${path}/index`
else return '';
})(),
// 处理是否为一级路由
children: !isChild ? (() => {
if (first) {
oMenu[propsDefault.path] = `${path}/index`;
return [{
component(resolve) { require([`../${component}.vue`], resolve) },
icon: icon,
name: name,
meta: meta,
path: 'index'
}]
}
return [];
})() : (() => {
return this.formatRoutes(children, false)
})()
}
aRouter.push(oRouter)
require([`../${component}.vue`], resolve)
}
},
name: name,
icon: icon,
meta: meta,
redirect: (() => {
if (!isChild && first) return `${path}/index`
else return ''
})(),
// 处理是否为一级路由
children: !isChild ? (() => {
if (first) {
if (!this.routerList.includes(aRouter[0][propsDefault.path])) {
this.safe.$router.addRoutes(aRouter)
this.routerList.push(aRouter[0][propsDefault.path])
}
} else {
return aRouter
oMenu[propsDefault.path] = `${path}/index`
return [{
component (resolve) { require([`../${component}.vue`], resolve) },
icon: icon,
name: name,
meta: meta,
path: 'index'
}]
}
return []
})() : (() => {
return this.formatRoutes(children, false)
})()
}
aRouter.push(oRouter)
}
if (first) {
if (!this.routerList.includes(aRouter[0][propsDefault.path])) {
this.safe.$router.addRoutes(aRouter)
this.routerList.push(aRouter[0][propsDefault.path])
}
} else {
return aRouter
}
}
}
}
export default RouterPlugin;
export default RouterPlugin
......@@ -15,55 +15,55 @@ import NProgress from 'nprogress' // progress bar
import errorCode from '@/const/errorCode'
import { Message } from 'element-ui'
import 'nprogress/nprogress.css' // progress bar style
axios.defaults.timeout = 30000;
//返回其他状态吗
axios.defaults.validateStatus = function(status) {
return status >= 200 && status <= 500; // 默认的
};
//跨域请求,允许保存cookie
axios.defaults.withCredentials = true;
axios.defaults.timeout = 30000
// 返回其他状态吗
axios.defaults.validateStatus = function (status) {
return status >= 200 && status <= 500 // 默认的
}
// 跨域请求,允许保存cookie
axios.defaults.withCredentials = true
// NProgress Configuration
NProgress.configure({
showSpinner: false
});
//HTTPrequest拦截
showSpinner: false
})
// HTTPrequest拦截
axios.interceptors.request.use(config => {
NProgress.start() // start progress bar
const isToken = (config.data || {}).isToken === false
if (store.getters.access_token && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
}
const TENANT_ID = getStore({ name: 'tenantId' });
if (TENANT_ID) {
config.headers['TENANT_ID'] = TENANT_ID // 租户ID
}
//headers中配置serialize为true开启序列化
if (config.methods === 'post' && config.headers.serialize) {
config.data = serialize(config.data);
delete config.data.serialize;
}
return config
NProgress.start() // start progress bar
const isToken = (config.data || {}).isToken === false
if (store.getters.access_token && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
}
const TENANT_ID = getStore({ name: 'tenantId' })
if (TENANT_ID) {
config.headers['TENANT_ID'] = TENANT_ID // 租户ID
}
// headers中配置serialize为true开启序列化
if (config.methods === 'post' && config.headers.serialize) {
config.data = serialize(config.data)
delete config.data.serialize
}
return config
}, error => {
return Promise.reject(error)
});
//HTTPresponse拦截
return Promise.reject(error)
})
// HTTPresponse拦截
axios.interceptors.response.use(res => {
NProgress.done();
const status = Number(res.status) || 200;
const statusWhiteList = website.statusWhiteList || [];
const message = res.data.message || errorCode[status] || errorCode['default'];
if (status !== 200 & !statusWhiteList.includes(status)) {
Message({
message: message,
type: 'error'
})
return Promise.reject(new Error(message))
}
if (status !== 200) return Promise.reject(res);
return res;
NProgress.done()
const status = Number(res.status) || 200
const statusWhiteList = website.statusWhiteList || []
const message = res.data.message || errorCode[status] || errorCode['default']
if (status !== 200 & !statusWhiteList.includes(status)) {
Message({
message: message,
type: 'error'
})
return Promise.reject(new Error(message))
}
if (status !== 200) return Promise.reject(res)
return res
}, error => {
NProgress.done()
return Promise.reject(new Error(error))
NProgress.done()
return Promise.reject(new Error(error))
})
export default axios
\ No newline at end of file
export default axios
import VueRouter from 'vue-router';
import VueRouter from 'vue-router'
import PageRouter from './page/'
import ViewsRouter from './views/'
import AvueRouter from './avue-router';
import Store from '../store/';
import AvueRouter from './avue-router'
import Store from '../store/'
let Router = new VueRouter({
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
if (from.meta.keepAlive) {
from.meta.savedPosition = document.body.scrollTop;
}
return {
x: 0,
y: to.meta.savedPosition || 0
}
}
},
routes: [].concat([])
});
AvueRouter.install(Router, Store);
Router.$avueRouter.formatRoutes(Store.state.user.menu, true);
Router.addRoutes([...PageRouter, ...ViewsRouter]);
export default Router;
\ No newline at end of file
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
if (from.meta.keepAlive) {
from.meta.savedPosition = document.body.scrollTop
}
return {
x: 0,
y: to.meta.savedPosition || 0
}
}
},
routes: [].concat([])
})
AvueRouter.install(Router, Store)
Router.$avueRouter.formatRoutes(Store.state.user.menu, true)
Router.addRoutes([...PageRouter, ...ViewsRouter])
export default Router
......@@ -14,7 +14,7 @@ const store = new Vuex.Store({
logs,
tags
},
getters,
getters
})
export default store
import {getStore, removeStore, setStore} from '@/util/store'
import { getStore, removeStore, setStore } from '@/util/store'
import website from '@/const/website'
const common = {
......@@ -8,97 +8,97 @@ const common = {
isFullScren: false,
isShade: false,
screen: -1,
isLock: getStore({name: 'isLock'}) || false,
showTag: getStore({name: 'showTag'}),
showDebug: getStore({name: 'showDebug'}),
showCollapse: getStore({name: 'showCollapse'}),
showSearch: getStore({name: 'showSearch'}),
showLock: getStore({name: 'showLock'}),
showFullScren: getStore({name: 'showFullScren'}),
showTheme: getStore({name: 'showTheme'}),
showColor: getStore({name: 'showColor'}),
showMenu: getStore({name: 'showMenu'}),
theme: getStore({name: 'theme'}) || '#409EFF',
themeName: getStore({name: 'themeName'}) || '',
lockPasswd: getStore({name: 'lockPasswd'}) || '',
website: website,
isLock: getStore({ name: 'isLock' }) || false,
showTag: getStore({ name: 'showTag' }),
showDebug: getStore({ name: 'showDebug' }),
showCollapse: getStore({ name: 'showCollapse' }),
showSearch: getStore({ name: 'showSearch' }),
showLock: getStore({ name: 'showLock' }),
showFullScren: getStore({ name: 'showFullScren' }),
showTheme: getStore({ name: 'showTheme' }),
showColor: getStore({ name: 'showColor' }),
showMenu: getStore({ name: 'showMenu' }),
theme: getStore({ name: 'theme' }) || '#409EFF',
themeName: getStore({ name: 'themeName' }) || '',
lockPasswd: getStore({ name: 'lockPasswd' }) || '',
website: website
},
actions: {},
mutations: {
SET_SHADE: (state, active) => {
state.isShade = active;
state.isShade = active
},
SET_COLLAPSE: (state) => {
state.isCollapse = !state.isCollapse;
state.isCollapse = !state.isCollapse
},
SET_FULLSCREN: (state) => {
state.isFullScren = !state.isFullScren;
state.isFullScren = !state.isFullScren
},
SET_SHOWCOLLAPSE: (state, active) => {
state.showCollapse = active;
state.showCollapse = active
setStore({
name: 'showCollapse',
content: state.showCollapse
})
},
SET_SHOWTAG: (state, active) => {
state.showTag = active;
state.showTag = active
setStore({
name: 'showTag',
content: state.showTag
})
},
SET_SHOWMENU: (state, active) => {
state.showMenu = active;
state.showMenu = active
setStore({
name: 'showMenu',
content: state.showMenu
})
},
SET_SHOWLOCK: (state, active) => {
state.showLock = active;
state.showLock = active
setStore({
name: 'showLock',
content: state.showLock
})
},
SET_SHOWSEARCH: (state, active) => {
state.showSearch = active;
state.showSearch = active
setStore({
name: 'showSearch',
content: state.showSearch
})
},
SET_SHOWFULLSCREN: (state, active) => {
state.showFullScren = active;
state.showFullScren = active
setStore({
name: 'showFullScren',
content: state.showFullScren
})
},
SET_SHOWDEBUG: (state, active) => {
state.showDebug = active;
state.showDebug = active
setStore({
name: 'showDebug',
content: state.showDebug
})
},
SET_SHOWTHEME: (state, active) => {
state.showTheme = active;
state.showTheme = active
setStore({
name: 'showTheme',
content: state.showTheme
})
},
SET_SHOWCOLOR: (state, active) => {
state.showColor = active;
state.showColor = active
setStore({
name: 'showColor',
content: state.showColor
})
},
SET_LOCK: (state) => {
state.isLock = true;
state.isLock = true
setStore({
name: 'isLock',
content: state.isLock,
......@@ -106,24 +106,24 @@ const common = {
})
},
SET_SCREEN: (state, screen) => {
state.screen = screen;
state.screen = screen
},
SET_THEME: (state, color) => {
state.theme = color;
state.theme = color
setStore({
name: 'theme',
content: state.theme,
content: state.theme
})
},
SET_THEME_NAME: (state, themeName) => {
state.themeName = themeName;
state.themeName = themeName
setStore({
name: 'themeName',
content: state.themeName,
content: state.themeName
})
},
SET_LOCK_PASSWD: (state, lockPasswd) => {
state.lockPasswd = lockPasswd;
state.lockPasswd = lockPasswd
setStore({
name: 'lockPasswd',
content: state.lockPasswd,
......@@ -131,15 +131,15 @@ const common = {
})
},
CLEAR_LOCK: (state) => {
state.isLock = false;
state.lockPasswd = '';
state.isLock = false
state.lockPasswd = ''
removeStore({
name: 'lockPasswd'
});
})
removeStore({
name: 'isLock'
});
},
})
}
}
}
export default common
import {getStore, setStore} from '@/util/store'
import {dateFormat} from '@/filters/'
import {sendLogs} from '@/api/admin/log'
import { getStore, setStore } from '@/util/store'
import { dateFormat } from '@/filters/'
import { sendLogs } from '@/api/admin/log'
const logs = {
state: {
logsList: getStore({name: 'logsList'}) || [],
logsList: getStore({ name: 'logsList' }) || []
},
actions: {
//发送错误日志
SendLogs({state, commit}) {
// 发送错误日志
SendLogs ({ state, commit }) {
return new Promise((resolve, reject) => {
sendLogs(state.logsList).then(() => {
commit('CLEAR_LOGS');
resolve();
commit('CLEAR_LOGS')
resolve()
}).catch(error => {
reject(error)
})
})
},
}
},
mutations: {
ADD_LOGS: (state, {type, message, stack, info}) => {
ADD_LOGS: (state, { type, message, stack, info }) => {
state.logsList.push(Object.assign({
url: window.location.href,
time: dateFormat(new Date())
......@@ -30,14 +30,14 @@ const logs = {
stack,
info: info.toString()
}))
setStore({name: 'logsList', content: state.logsList})
setStore({ name: 'logsList', content: state.logsList })
},
CLEAR_LOGS: (state) => {
state.logsList = [];
setStore({name: 'logsList', content: state.logsList})
state.logsList = []
setStore({ name: 'logsList', content: state.logsList })
}
}
};
}
export default logs;
export default logs
import {getStore, setStore} from '@/util/store'
import {diff} from '@/util/util'
import { getStore, setStore } from '@/util/store'
import { diff } from '@/util/util'
import website from '@/const/website'
const isFirstPage = website.isFirstPage;
const tagWel = website.fistPage;
const isFirstPage = website.isFirstPage
const tagWel = website.fistPage
const tagObj = {
label: '', //标题名称
value: '', //标题的路径
params: '', //标题的路径参数
query: '', //标题的参数
group: [], //分组
label: '', // 标题名称
value: '', // 标题的路径
params: '', // 标题的路径参数
query: '', // 标题的参数
group: [] // 分组
}
//处理首个标签
function setFistTag(list) {
// 处理首个标签
function setFistTag (list) {
if (list.length == 1) {
list[0].close = false;
list[0].close = false
} else {
list.forEach(ele => {
if (ele.value === tagWel.value && isFirstPage === false) {
......@@ -27,39 +27,38 @@ function setFistTag(list) {
}
}
const navs = {
state: {
tagList: getStore({name: 'tagList'}) || [],
tag: getStore({name: 'tag'}) || tagObj,
tagList: getStore({ name: 'tagList' }) || [],
tag: getStore({ name: 'tag' }) || tagObj,
tagWel: tagWel
},
actions: {},
mutations: {
ADD_TAG: (state, action) => {
state.tag = action;
setStore({name: 'tag', content: state.tag, type: 'session'})
state.tag = action
setStore({ name: 'tag', content: state.tag, type: 'session' })
if (state.tagList.some(ele => diff(ele, action))) return
state.tagList.push(action)
setFistTag(state.tagList);
setStore({name: 'tagList', content: state.tagList, type: 'session'})
setFistTag(state.tagList)
setStore({ name: 'tagList', content: state.tagList, type: 'session' })
},
DEL_TAG: (state, action) => {
state.tagList = state.tagList.filter(item => {
return !diff(item, action);
return !diff(item, action)
})
setFistTag(state.tagList);
setStore({name: 'tagList', content: state.tagList, type: 'session'})
setFistTag(state.tagList)
setStore({ name: 'tagList', content: state.tagList, type: 'session' })
},
DEL_ALL_TAG: (state) => {
state.tagList = [state.tagWel];
setStore({name: 'tagList', content: state.tagList, type: 'session'})
state.tagList = [state.tagWel]
setStore({ name: 'tagList', content: state.tagList, type: 'session' })
},
DEL_TAG_OTHER: (state) => {
state.tagList = state.tagList.filter(item => item.value === state.tag.value)
setFistTag(state.tagList);
setStore({name: 'tagList', content: state.tagList, type: 'session'})
},
setFistTag(state.tagList)
setStore({ name: 'tagList', content: state.tagList, type: 'session' })
}
}
}
export default navs
import {removeToken, setToken} from '@/util/auth'
import {getStore, setStore} from '@/util/store'
import {isURL} from '@/util/validate'
import {getUserInfo, loginByMobile, loginBySocial, loginByUsername, logout} from '@/api/login'
import {deepClone, encryption} from '@/util/util'
import webiste from '@/const/website';
import {GetMenu} from '@/api/admin/menu'
import { removeToken, setToken } from '@/util/auth'
import { getStore, setStore } from '@/util/store'
import { isURL } from '@/util/validate'
import { getUserInfo, loginByMobile, loginBySocial, loginByUsername, logout } from '@/api/login'
import { deepClone, encryption } from '@/util/util'
import webiste from '@/const/website'
import { GetMenu } from '@/api/admin/menu'
function addPath(ele, first) {
const propsConfig = webiste.menu.props;
function addPath (ele, first) {
const propsConfig = webiste.menu.props
const propsDefault = {
label: propsConfig.label || 'label',
path: propsConfig.path || 'path',
icon: propsConfig.icon || 'icon',
children: propsConfig.children || 'children'
}
const isChild = ele[propsDefault.children] && ele[propsDefault.children].length !== 0;
const isChild = ele[propsDefault.children] && ele[propsDefault.children].length !== 0
if (!isChild && first) {
ele[propsDefault.path] = ele[propsDefault.path] + '/index'
return
......@@ -23,7 +23,7 @@ function addPath(ele, first) {
if (!isURL(child[propsDefault.path])) {
child[propsDefault.path] = `${ele[propsDefault.path]}/${child[propsDefault.path] ? child[propsDefault.path] : 'index'}`
}
addPath(child);
addPath(child)
})
}
......@@ -44,8 +44,8 @@ const user = {
}) || ''
},
actions: {
//根据用户名登录
LoginByUsername({commit}, userInfo) {
// 根据用户名登录
LoginByUsername ({ commit }, userInfo) {
const user = encryption({
data: userInfo,
key: 'pigxpigxpigxpigx',
......@@ -64,8 +64,8 @@ const user = {
})
})
},
//根据手机号登录
LoginByPhone({commit}, userInfo) {
// 根据手机号登录
LoginByPhone ({ commit }, userInfo) {
return new Promise((resolve, reject) => {
loginByMobile(userInfo.mobile, userInfo.code).then(response => {
const data = response.data
......@@ -80,7 +80,7 @@ const user = {
})
},
// 根据OpenId登录
LoginBySocial({commit}, param) {
LoginBySocial ({ commit }, param) {
return new Promise((resolve, reject) => {
loginBySocial(param.state, param.code).then(response => {
const data = response.data
......@@ -94,33 +94,33 @@ const user = {
})
})
},
GetUserInfo({commit}) {
GetUserInfo ({ commit }) {
return new Promise((resolve, reject) => {
getUserInfo().then((res) => {
const data = res.data.data || {};
commit('SET_USERIFNO', data.sysUser);
commit('SET_ROLES', data.roles || []);
const data = res.data.data || {}
commit('SET_USERIFNO', data.sysUser)
commit('SET_ROLES', data.roles || [])
commit('SET_PERMISSIONS', data.permissions || [])
resolve(data);
resolve(data)
}).catch((err) => {
reject();
reject()
})
})
},
//刷新token
RefeshToken({commit}) {
// 刷新token
RefeshToken ({ commit }) {
return new Promise((resolve, reject) => {
logout().then(() => {
commit('SET_TOKEN', new Date().getTime());
setToken();
resolve();
commit('SET_TOKEN', new Date().getTime())
setToken()
resolve()
}).catch(error => {
reject(error)
})
})
},
// 登出
LogOut({commit}) {
LogOut ({ commit }) {
return new Promise((resolve, reject) => {
logout().then(() => {
commit('SET_MENU', [])
......@@ -130,7 +130,7 @@ const user = {
commit('SET_REFRESH_TOKEN', '')
commit('SET_ROLES', [])
commit('DEL_ALL_TAG')
commit('CLEAR_LOCK');
commit('CLEAR_LOCK')
removeToken()
resolve()
}).catch(error => {
......@@ -138,8 +138,8 @@ const user = {
})
})
},
//注销session
FedLogOut({commit}) {
// 注销session
FedLogOut ({ commit }) {
return new Promise(resolve => {
commit('SET_MENU', [])
commit('SET_PERMISSIONS', [])
......@@ -148,21 +148,21 @@ const user = {
commit('SET_REFRESH_TOKEN', '')
commit('SET_ROLES', [])
commit('DEL_ALL_TAG')
commit('CLEAR_LOCK');
commit('CLEAR_LOCK')
removeToken()
resolve()
})
},
//获取系统菜单
GetMenu({
commit
}) {
// 获取系统菜单
GetMenu ({
commit
}) {
return new Promise(resolve => {
GetMenu().then((res) => {
const data = res.data.data
let menu = deepClone(data);
let menu = deepClone(data)
menu.forEach(ele => {
addPath(ele);
addPath(ele)
})
commit('SET_MENU', menu)
resolve(menu)
......@@ -189,7 +189,7 @@ const user = {
})
},
SET_USERIFNO: (state, userInfo) => {
state.userInfo = userInfo;
state.userInfo = userInfo
},
SET_MENU: (state, menu) => {
state.menu = menu
......@@ -198,13 +198,12 @@ const user = {
content: state.menu,
type: 'session'
})
},
SET_MENU_ALL: (state, menuAll) => {
state.menuAll = menuAll;
state.menuAll = menuAll
},
SET_ROLES: (state, roles) => {
state.roles = roles;
state.roles = roles
},
SET_PERMISSIONS: (state, permissions) => {
const list = {}
......
export default {
getScreen: function () {
var width = document.body.clientWidth;
var width = document.body.clientWidth
if (width >= 1200) {
return 3; //大屏幕
return 3 // 大屏幕
} else if (width >= 992) {
return 2; //中屏幕
return 2 // 中屏幕
} else if (width >= 768) {
return 1; //小屏幕
return 1 // 小屏幕
} else {
return 0; //超小屏幕
return 0 // 超小屏幕
}
}
}
......@@ -2,14 +2,14 @@ import Cookies from 'js-cookie'
const TokenKey = 'x-access-token'
export function getToken() {
export function getToken () {
return Cookies.get(TokenKey)
}
export function setToken(token) {
export function setToken (token) {
return Cookies.set(TokenKey, token)
}
export function removeToken() {
export function removeToken () {
return Cookies.remove(TokenKey)
}
export const calcDate = (date1, date2) => {
var date3 = date2 - date1;
var date3 = date2 - date1
var days = Math.floor(date3 / (24 * 3600 * 1000))
var leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
var leave1 = date3 % (24 * 3600 * 1000) // 计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000))
var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
var leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000))
var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
var leave3 = leave2 % (60 * 1000) // 计算分钟数后剩余的毫秒数
var seconds = Math.round(date3 / 1000)
return {
leave1,
......@@ -18,6 +18,6 @@ export const calcDate = (date1, date2) => {
days: days,
hours: hours,
minutes: minutes,
seconds: seconds,
seconds: seconds
}
}
import {validatenull} from '@/util/validate';
import { validatenull } from '@/util/validate'
/**
* 存储localStorage
......@@ -7,16 +7,16 @@ export const setStore = (params) => {
let {
name,
content,
type,
} = params;
type
} = params
let obj = {
dataType: typeof (content),
content: content,
type: type,
datetime: new Date().getTime()
}
if (type) window.sessionStorage.setItem(name, JSON.stringify(obj));
else window.localStorage.setItem(name, JSON.stringify(obj));
if (type) window.sessionStorage.setItem(name, JSON.stringify(obj))
else window.localStorage.setItem(name, JSON.stringify(obj))
}
/**
* 获取localStorage
......@@ -26,26 +26,27 @@ export const getStore = (params) => {
let {
name,
debug
} = params;
let obj = {},
content;
obj = window.sessionStorage.getItem(name);
if (validatenull(obj)) obj = window.localStorage.getItem(name);
if (validatenull(obj)) return;
obj = JSON.parse(obj);
} = params
let obj = {}
let content
obj = window.sessionStorage.getItem(name)
if (validatenull(obj)) obj = window.localStorage.getItem(name)
if (validatenull(obj)) return
obj = JSON.parse(obj)
if (debug) {
return obj;
return obj
}
if (obj.dataType == 'string') {
content = obj.content;
content = obj.content
} else if (obj.dataType == 'number') {
content = Number(obj.content);
content = Number(obj.content)
} else if (obj.dataType == 'boolean') {
content = eval(obj.content);
content = eval(obj.content)
} else if (obj.dataType == 'object') {
content = obj.content;
content = obj.content
}
return content;
return content
}
/**
* 删除localStorage
......@@ -53,19 +54,19 @@ export const getStore = (params) => {
export const removeStore = params => {
let {
name
} = params;
window.localStorage.removeItem(name);
window.sessionStorage.removeItem(name);
} = params
window.localStorage.removeItem(name)
window.sessionStorage.removeItem(name)
}
/**
* 获取全部localStorage
*/
export const getAllStore = (params) => {
let list = [];
let list = []
let {
type
} = params;
} = params
for (let i = 1; i <= window.sessionStorage.length; i++) {
if (type) {
list.push({
......@@ -79,14 +80,13 @@ export const getAllStore = (params) => {
list.push(getStore({
name: window.localStorage.key(i),
content: getStore({
name: window.localStorage.key(i),
name: window.localStorage.key(i)
})
}))
}
}
return list;
return list
}
/**
......@@ -95,9 +95,9 @@ export const getAllStore = (params) => {
export const clearStore = (params) => {
let {
type
} = params;
} = params
if (type) {
window.sessionStorage.clear();
window.sessionStorage.clear()
return
}
window.localStorage.clear()
......
import {validatenull} from './validate'
//表单序列化
import { validatenull } from './validate'
// 表单序列化
export const serialize = data => {
let list = [];
let list = []
Object.keys(data).forEach(ele => {
list.push(`${ele}=${data[ele]}`)
})
return list.join('&');
};
return list.join('&')
}
export const getObjType = obj => {
var toString = Object.prototype.toString;
var toString = Object.prototype.toString
var map = {
'[object Boolean]': 'boolean',
'[object Number]': 'number',
......@@ -20,79 +20,79 @@ export const getObjType = obj => {
'[object Undefined]': 'undefined',
'[object Null]': 'null',
'[object Object]': 'object'
};
}
if (obj instanceof Element) {
return 'element';
return 'element'
}
return map[toString.call(obj)];
};
return map[toString.call(obj)]
}
/**
* 对象深拷贝
*/
export const deepClone = data => {
var type = getObjType(data);
var obj;
var type = getObjType(data)
var obj
if (type === 'array') {
obj = [];
obj = []
} else if (type === 'object') {
obj = {};
obj = {}
} else {
//不再具有下一层次
return data;
// 不再具有下一层次
return data
}
if (type === 'array') {
for (var i = 0, len = data.length; i < len; i++) {
obj.push(deepClone(data[i]));
obj.push(deepClone(data[i]))
}
} else if (type === 'object') {
for (var key in data) {
obj[key] = deepClone(data[key]);
obj[key] = deepClone(data[key])
}
}
return obj;
};
return obj
}
/**
* 判断路由是否相等
*/
export const diff = (obj1, obj2) => {
delete obj1.close;
var o1 = obj1 instanceof Object;
var o2 = obj2 instanceof Object;
delete obj1.close
var o1 = obj1 instanceof Object
var o2 = obj2 instanceof Object
if (!o1 || !o2) { /* 判断不是对象 */
return obj1 === obj2;
return obj1 === obj2
}
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
return false;
//Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
return false
// Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
}
for (var attr in obj1) {
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
var t1 = obj1[attr] instanceof Object
var t2 = obj2[attr] instanceof Object
if (t1 && t2) {
return diff(obj1[attr], obj2[attr]);
return diff(obj1[attr], obj2[attr])
} else if (obj1[attr] !== obj2[attr]) {
return false;
return false
}
}
return true;
return true
}
/**
* 设置灰度模式
*/
export const toggleGrayMode = (status) => {
if (status) {
document.body.className = document.body.className + ' grayMode';
document.body.className = document.body.className + ' grayMode'
} else {
document.body.className = document.body.className.replace(' grayMode', '');
document.body.className = document.body.className.replace(' grayMode', '')
}
};
}
/**
* 设置主题
*/
export const setTheme = (name) => {
document.body.className = name;
document.body.className = name
}
/**
......@@ -129,38 +129,37 @@ export const encryption = (params) => {
return result
}
/**
* 浏览器判断是否全屏
*/
export const fullscreenToggel = () => {
if (fullscreenEnable()) {
exitFullScreen();
exitFullScreen()
} else {
reqFullScreen();
reqFullScreen()
}
};
}
/**
* esc监听全屏
*/
export const listenfullscreen = (callback) => {
function listen() {
function listen () {
callback()
}
document.addEventListener("fullscreenchange", function () {
listen();
});
document.addEventListener("mozfullscreenchange", function () {
listen();
});
document.addEventListener("webkitfullscreenchange", function () {
listen();
});
document.addEventListener("msfullscreenchange", function () {
listen();
});
};
document.addEventListener('fullscreenchange', function () {
listen()
})
document.addEventListener('mozfullscreenchange', function () {
listen()
})
document.addEventListener('webkitfullscreenchange', function () {
listen()
})
document.addEventListener('msfullscreenchange', function () {
listen()
})
}
/**
* 浏览器判断是否全屏
*/
......@@ -168,8 +167,8 @@ export const fullscreenEnable = () => {
var isFullscreen = document.fullscreenEnabled ||
window.fullScreen ||
document.mozFullscreenEnabled ||
document.webkitIsFullScreen;
return isFullscreen;
document.webkitIsFullScreen
return isFullscreen
}
/**
......@@ -177,25 +176,25 @@ export const fullscreenEnable = () => {
*/
export const reqFullScreen = () => {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
document.documentElement.requestFullScreen()
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen();
document.documentElement.webkitRequestFullScreen()
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
document.documentElement.mozRequestFullScreen()
}
};
}
/**
* 浏览器退出全屏
*/
export const exitFullScreen = () => {
if (document.documentElement.requestFullScreen) {
document.exitFullScreen();
document.exitFullScreen()
} else if (document.documentElement.webkitRequestFullScreen) {
document.webkitCancelFullScreen();
document.webkitCancelFullScreen()
} else if (document.documentElement.mozRequestFullScreen) {
document.mozCancelFullScreen();
document.mozCancelFullScreen()
}
};
}
/**
* 递归寻找子类的父类
*/
......@@ -205,16 +204,16 @@ export const findParent = (menu, id) => {
if (menu[i].children.length != 0) {
for (let j = 0; j < menu[i].children.length; j++) {
if (menu[i].children[j].id == id) {
return menu[i];
return menu[i]
} else {
if (menu[i].children[j].children.length != 0) {
return findParent(menu[i].children[j].children, id);
return findParent(menu[i].children[j].children, id)
}
}
}
}
}
};
}
/**
* 判断2个对象属性和值是否相等
*/
......@@ -224,74 +223,74 @@ export const findParent = (menu, id) => {
*/
export const loadStyle = url => {
const link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = url;
const head = document.getElementsByTagName('head')[0];
head.appendChild(link);
};
const link = document.createElement('link')
link.type = 'text/css'
link.rel = 'stylesheet'
link.href = url
const head = document.getElementsByTagName('head')[0]
head.appendChild(link)
}
/**
* 判断路由是否相等
*/
export const isObjectValueEqual = (a, b) => {
let result = true;
let result = true
Object.keys(a).forEach(ele => {
const type = typeof (a[ele]);
if (type === 'string' && a[ele] !== b[ele]) result = false;
else if (type === 'object' && JSON.stringify(a[ele]) !== JSON.stringify(b[ele])) result = false;
const type = typeof (a[ele])
if (type === 'string' && a[ele] !== b[ele]) result = false
else if (type === 'object' && JSON.stringify(a[ele]) !== JSON.stringify(b[ele])) result = false
})
return result;
return result
}
/**
* 根据字典的value显示label
*/
export const findByvalue = (dic, value) => {
let result = '';
if (validatenull(dic)) return value;
if (typeof (value) == 'string' || typeof (value) == 'number' || typeof (value) == 'boolean') {
let index = 0;
index = findArray(dic, value);
let result = ''
if (validatenull(dic)) return value
if (typeof (value) === 'string' || typeof (value) === 'number' || typeof (value) === 'boolean') {
let index = 0
index = findArray(dic, value)
if (index != -1) {
result = dic[index].label;
result = dic[index].label
} else {
result = value;
result = value
}
} else if (value instanceof Array) {
result = [];
let index = 0;
result = []
let index = 0
value.forEach(ele => {
index = findArray(dic, ele);
index = findArray(dic, ele)
if (index != -1) {
result.push(dic[index].label);
result.push(dic[index].label)
} else {
result.push(value);
result.push(value)
}
});
result = result.toString();
})
result = result.toString()
}
return result;
};
return result
}
/**
* 根据字典的value查找对应的index
*/
export const findArray = (dic, value) => {
for (let i = 0; i < dic.length; i++) {
if (dic[i].value == value) {
return i;
return i
}
}
return -1;
};
return -1
}
/**
* 生成随机len位数字
*/
export const randomLenNum = (len, date) => {
let random = '';
random = Math.ceil(Math.random() * 100000000000000).toString().substr(0, len ? len : 4);
if (date) random = random + Date.now();
return random;
};
let random = ''
random = Math.ceil(Math.random() * 100000000000000).toString().substr(0, len || 4)
if (date) random = random + Date.now()
return random
}
/**
* 打开小窗口
*/
......
......@@ -2,7 +2,7 @@
* 邮箱
* @param {*} s
*/
export function isEmail(s) {
export function isEmail (s) {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
......@@ -10,7 +10,7 @@ export function isEmail(s) {
* 手机号码
* @param {*} s
*/
export function isMobile(s) {
export function isMobile (s) {
return /^1[0-9]{10}$/.test(s)
}
......@@ -18,7 +18,7 @@ export function isMobile(s) {
* 电话号码
* @param {*} s
*/
export function isPhone(s) {
export function isPhone (s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
......@@ -26,54 +26,54 @@ export function isPhone(s) {
* URL地址
* @param {*} s
*/
export function isURL(s) {
export function isURL (s) {
return /^http[s]?:\/\/.*/.test(s)
}
export function isvalidUsername(str) {
export function isvalidUsername (str) {
const valid_map = ['admin', 'editor']
return valid_map.indexOf(str.trim()) >= 0
}
/* 合法uri*/
export function validateURL(textval) {
/* 合法uri */
export function validateURL (textval) {
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
return urlregex.test(textval)
}
/* 小写字母*/
export function validateLowerCase(str) {
/* 小写字母 */
export function validateLowerCase (str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/* 大写字母*/
export function validateUpperCase(str) {
/* 大写字母 */
export function validateUpperCase (str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/* 大小写字母*/
export function validatAlphabets(str) {
/* 大小写字母 */
export function validatAlphabets (str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/*验证pad还是pc*/
/* 验证pad还是pc */
export const vaildatePc = function () {
const userAgentInfo = navigator.userAgent;
const Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"
];
let flag = true;
const userAgentInfo = navigator.userAgent
const Agents = ['Android', 'iPhone',
'SymbianOS', 'Windows Phone',
'iPad', 'iPod'
]
let flag = true
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
flag = false
break
}
}
return flag;
return flag
}
/**
......@@ -81,7 +81,7 @@ export const vaildatePc = function () {
* @param email
* @returns {boolean}
*/
export function validateEmail(email) {
export function validateEmail (email) {
const re = /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return re.test(email)
}
......@@ -89,169 +89,167 @@ export function validateEmail(email) {
/**
* 判断身份证号码
*/
export function cardid(code) {
let list = [];
let result = true;
let msg = '';
export function cardid (code) {
let list = []
let result = true
let msg = ''
var city = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "内蒙古",
21: "辽宁",
22: "吉林",
23: "黑龙江 ",
31: "上海",
32: "江苏",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山东",
41: "河南",
42: "湖北 ",
43: "湖南",
44: "广东",
45: "广西",
46: "海南",
50: "重庆",
51: "四川",
52: "贵州",
53: "云南",
54: "西藏 ",
61: "陕西",
62: "甘肃",
63: "青海",
64: "宁夏",
65: "新疆",
71: "台湾",
81: "香港",
82: "澳门",
91: "国外 "
};
11: '北京',
12: '天津',
13: '河北',
14: '山西',
15: '内蒙古',
21: '辽宁',
22: '吉林',
23: '黑龙江 ',
31: '上海',
32: '江苏',
33: '浙江',
34: '安徽',
35: '福建',
36: '江西',
37: '山东',
41: '河南',
42: '湖北 ',
43: '湖南',
44: '广东',
45: '广西',
46: '海南',
50: '重庆',
51: '四川',
52: '贵州',
53: '云南',
54: '西藏 ',
61: '陕西',
62: '甘肃',
63: '青海',
64: '宁夏',
65: '新疆',
71: '台湾',
81: '香港',
82: '澳门',
91: '国外 '
}
if (!validatenull(code)) {
if (code.length == 18) {
if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
msg = "证件号码格式错误";
msg = '证件号码格式错误'
} else if (!city[code.substr(0, 2)]) {
msg = "地址编码错误";
msg = '地址编码错误'
} else {
//18位身份证需要验证最后一位校验位
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
//校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'];
var sum = 0;
var ai = 0;
var wi = 0;
// 18位身份证需要验证最后一位校验位
code = code.split('')
// ∑(ai×Wi)(mod 11)
// 加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
// 校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x']
var sum = 0
var ai = 0
var wi = 0
for (var i = 0; i < 17; i++) {
ai = code[i];
wi = factor[i];
sum += ai * wi;
ai = code[i]
wi = factor[i]
sum += ai * wi
}
if (parity[sum % 11] != code[17]) {
msg = "证件号码校验位错误";
msg = '证件号码校验位错误'
} else {
result = false;
result = false
}
}
} else {
msg = "证件号码长度不为18位";
msg = '证件号码长度不为18位'
}
} else {
msg = "证件号码不能为空";
msg = '证件号码不能为空'
}
list.push(result);
list.push(msg);
return list;
list.push(result)
list.push(msg)
return list
}
/**
* 判断手机号码是否正确
*/
export function isvalidatemobile(phone) {
let list = [];
let result = true;
let msg = '';
var isPhone = /^0\d{2,3}-?\d{7,8}$/;
//增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
export function isvalidatemobile (phone) {
let list = []
let result = true
let msg = ''
var isPhone = /^0\d{2,3}-?\d{7,8}$/
// 增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
if (!validatenull(phone)) {
if (phone.length == 11) {
if (isPhone.test(phone)) {
msg = '手机号码格式不正确';
msg = '手机号码格式不正确'
} else {
result = false;
result = false
}
} else {
msg = '手机号码长度不为11位';
msg = '手机号码长度不为11位'
}
} else {
msg = '手机号码不能为空';
msg = '手机号码不能为空'
}
list.push(result);
list.push(msg);
return list;
list.push(result)
list.push(msg)
return list
}
/**
* 判断姓名是否正确
*/
export function validatename(name) {
var regName = /^[\u4e00-\u9fa5]{2,4}$/;
if (!regName.test(name)) return false;
return true;
export function validatename (name) {
var regName = /^[\u4e00-\u9fa5]{2,4}$/
if (!regName.test(name)) return false
return true
}
/**
* 判断是否为整数
*/
export function validatenum(num, type) {
let regName = /[^\d.]/g;
export function validatenum (num, type) {
let regName = /[^\d.]/g
if (type == 1) {
if (!regName.test(num)) return false;
if (!regName.test(num)) return false
} else if (type == 2) {
regName = /[^\d]/g;
if (!regName.test(num)) return false;
regName = /[^\d]/g
if (!regName.test(num)) return false
}
return true;
return true
}
/**
* 判断是否为小数
*/
export function validatenumord(num, type) {
let regName = /[^\d.]/g;
export function validatenumord (num, type) {
let regName = /[^\d.]/g
if (type == 1) {
if (!regName.test(num)) return false;
if (!regName.test(num)) return false
} else if (type == 2) {
regName = /[^\d.]/g;
if (!regName.test(num)) return false;
regName = /[^\d.]/g
if (!regName.test(num)) return false
}
return true;
return true
}
/**
* 判断是否为空
*/
export function validatenull(val) {
if (typeof val == 'boolean') {
return false;
export function validatenull (val) {
if (typeof val === 'boolean') {
return false
}
if (typeof val == 'number') {
return false;
if (typeof val === 'number') {
return false
}
if (val instanceof Array) {
if (val.length == 0) return true;
if (val.length == 0) return true
} else if (val instanceof Object) {
if (JSON.stringify(val) === '{}') return true;
if (JSON.stringify(val) === '{}') return true
} else {
if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true;
return false;
if (val == 'null' || val == null || val == 'undefined' || val == undefined || val == '') return true
return false
}
return false;
return false
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment