|  |  |  | @ -1,18 +1,26 @@ | 
			
		
	
		
			
				
					|  |  |  |  | import { parseTime } from './ruoyi' | 
			
		
	
		
			
				
					|  |  |  |  | import { parseTime } from "./ruoyi"; | 
			
		
	
		
			
				
					|  |  |  |  | import { dayjs } from "element-plus"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  |  |  * 表格时间格式化 | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function formatDate(cellValue) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (cellValue == null || cellValue == "") return ""; | 
			
		
	
		
			
				
					|  |  |  |  |   var date = new Date(cellValue) 
 | 
			
		
	
		
			
				
					|  |  |  |  |   var year = date.getFullYear() | 
			
		
	
		
			
				
					|  |  |  |  |   var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 | 
			
		
	
		
			
				
					|  |  |  |  |   var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() 
 | 
			
		
	
		
			
				
					|  |  |  |  |   var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() 
 | 
			
		
	
		
			
				
					|  |  |  |  |   var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() 
 | 
			
		
	
		
			
				
					|  |  |  |  |   var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() | 
			
		
	
		
			
				
					|  |  |  |  |   return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds | 
			
		
	
		
			
				
					|  |  |  |  |   var date = new Date(cellValue); | 
			
		
	
		
			
				
					|  |  |  |  |   var year = date.getFullYear(); | 
			
		
	
		
			
				
					|  |  |  |  |   var month = | 
			
		
	
		
			
				
					|  |  |  |  |     date.getMonth() + 1 < 10 | 
			
		
	
		
			
				
					|  |  |  |  |       ? "0" + (date.getMonth() + 1) | 
			
		
	
		
			
				
					|  |  |  |  |       : date.getMonth() + 1; | 
			
		
	
		
			
				
					|  |  |  |  |   var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); | 
			
		
	
		
			
				
					|  |  |  |  |   var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); | 
			
		
	
		
			
				
					|  |  |  |  |   var minutes = | 
			
		
	
		
			
				
					|  |  |  |  |     date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); | 
			
		
	
		
			
				
					|  |  |  |  |   var seconds = | 
			
		
	
		
			
				
					|  |  |  |  |     date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); | 
			
		
	
		
			
				
					|  |  |  |  |   return ( | 
			
		
	
		
			
				
					|  |  |  |  |     year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds | 
			
		
	
		
			
				
					|  |  |  |  |   ); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -21,40 +29,40 @@ export function formatDate(cellValue) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {string} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function formatTime(time, option) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (('' + time).length === 10) { | 
			
		
	
		
			
				
					|  |  |  |  |     time = parseInt(time) * 1000 | 
			
		
	
		
			
				
					|  |  |  |  |   if (("" + time).length === 10) { | 
			
		
	
		
			
				
					|  |  |  |  |     time = parseInt(time) * 1000; | 
			
		
	
		
			
				
					|  |  |  |  |   } else { | 
			
		
	
		
			
				
					|  |  |  |  |     time = +time | 
			
		
	
		
			
				
					|  |  |  |  |     time = +time; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   const d = new Date(time) | 
			
		
	
		
			
				
					|  |  |  |  |   const now = Date.now() | 
			
		
	
		
			
				
					|  |  |  |  |   const d = new Date(time); | 
			
		
	
		
			
				
					|  |  |  |  |   const now = Date.now(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   const diff = (now - d) / 1000 | 
			
		
	
		
			
				
					|  |  |  |  |   const diff = (now - d) / 1000; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   if (diff < 30) { | 
			
		
	
		
			
				
					|  |  |  |  |     return '刚刚' | 
			
		
	
		
			
				
					|  |  |  |  |     return "刚刚"; | 
			
		
	
		
			
				
					|  |  |  |  |   } else if (diff < 3600) { | 
			
		
	
		
			
				
					|  |  |  |  |     // less 1 hour
 | 
			
		
	
		
			
				
					|  |  |  |  |     return Math.ceil(diff / 60) + '分钟前' | 
			
		
	
		
			
				
					|  |  |  |  |     return Math.ceil(diff / 60) + "分钟前"; | 
			
		
	
		
			
				
					|  |  |  |  |   } else if (diff < 3600 * 24) { | 
			
		
	
		
			
				
					|  |  |  |  |     return Math.ceil(diff / 3600) + '小时前' | 
			
		
	
		
			
				
					|  |  |  |  |     return Math.ceil(diff / 3600) + "小时前"; | 
			
		
	
		
			
				
					|  |  |  |  |   } else if (diff < 3600 * 24 * 2) { | 
			
		
	
		
			
				
					|  |  |  |  |     return '1天前' | 
			
		
	
		
			
				
					|  |  |  |  |     return "1天前"; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   if (option) { | 
			
		
	
		
			
				
					|  |  |  |  |     return parseTime(time, option) | 
			
		
	
		
			
				
					|  |  |  |  |     return parseTime(time, option); | 
			
		
	
		
			
				
					|  |  |  |  |   } else { | 
			
		
	
		
			
				
					|  |  |  |  |     return ( | 
			
		
	
		
			
				
					|  |  |  |  |       d.getMonth() + | 
			
		
	
		
			
				
					|  |  |  |  |       1 + | 
			
		
	
		
			
				
					|  |  |  |  |       '月' + | 
			
		
	
		
			
				
					|  |  |  |  |       "月" + | 
			
		
	
		
			
				
					|  |  |  |  |       d.getDate() + | 
			
		
	
		
			
				
					|  |  |  |  |       '日' + | 
			
		
	
		
			
				
					|  |  |  |  |       "日" + | 
			
		
	
		
			
				
					|  |  |  |  |       d.getHours() + | 
			
		
	
		
			
				
					|  |  |  |  |       '时' + | 
			
		
	
		
			
				
					|  |  |  |  |       "时" + | 
			
		
	
		
			
				
					|  |  |  |  |       d.getMinutes() + | 
			
		
	
		
			
				
					|  |  |  |  |       '分' | 
			
		
	
		
			
				
					|  |  |  |  |     ) | 
			
		
	
		
			
				
					|  |  |  |  |       "分" | 
			
		
	
		
			
				
					|  |  |  |  |     ); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -63,18 +71,18 @@ export function formatTime(time, option) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Object} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function getQueryObject(url) { | 
			
		
	
		
			
				
					|  |  |  |  |   url = url == null ? window.location.href : url | 
			
		
	
		
			
				
					|  |  |  |  |   const search = url.substring(url.lastIndexOf('?') + 1) | 
			
		
	
		
			
				
					|  |  |  |  |   const obj = {} | 
			
		
	
		
			
				
					|  |  |  |  |   const reg = /([^?&=]+)=([^?&=]*)/g | 
			
		
	
		
			
				
					|  |  |  |  |   url = url == null ? window.location.href : url; | 
			
		
	
		
			
				
					|  |  |  |  |   const search = url.substring(url.lastIndexOf("?") + 1); | 
			
		
	
		
			
				
					|  |  |  |  |   const obj = {}; | 
			
		
	
		
			
				
					|  |  |  |  |   const reg = /([^?&=]+)=([^?&=]*)/g; | 
			
		
	
		
			
				
					|  |  |  |  |   search.replace(reg, (rs, $1, $2) => { | 
			
		
	
		
			
				
					|  |  |  |  |     const name = decodeURIComponent($1) | 
			
		
	
		
			
				
					|  |  |  |  |     let val = decodeURIComponent($2) | 
			
		
	
		
			
				
					|  |  |  |  |     val = String(val) | 
			
		
	
		
			
				
					|  |  |  |  |     obj[name] = val | 
			
		
	
		
			
				
					|  |  |  |  |     return rs | 
			
		
	
		
			
				
					|  |  |  |  |   }) | 
			
		
	
		
			
				
					|  |  |  |  |   return obj | 
			
		
	
		
			
				
					|  |  |  |  |     const name = decodeURIComponent($1); | 
			
		
	
		
			
				
					|  |  |  |  |     let val = decodeURIComponent($2); | 
			
		
	
		
			
				
					|  |  |  |  |     val = String(val); | 
			
		
	
		
			
				
					|  |  |  |  |     obj[name] = val; | 
			
		
	
		
			
				
					|  |  |  |  |     return rs; | 
			
		
	
		
			
				
					|  |  |  |  |   }); | 
			
		
	
		
			
				
					|  |  |  |  |   return obj; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -83,14 +91,14 @@ export function getQueryObject(url) { | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function byteLength(str) { | 
			
		
	
		
			
				
					|  |  |  |  |   // returns the byte length of an utf8 string
 | 
			
		
	
		
			
				
					|  |  |  |  |   let s = str.length | 
			
		
	
		
			
				
					|  |  |  |  |   let s = str.length; | 
			
		
	
		
			
				
					|  |  |  |  |   for (var i = str.length - 1; i >= 0; i--) { | 
			
		
	
		
			
				
					|  |  |  |  |     const code = str.charCodeAt(i) | 
			
		
	
		
			
				
					|  |  |  |  |     if (code > 0x7f && code <= 0x7ff) s++ | 
			
		
	
		
			
				
					|  |  |  |  |     else if (code > 0x7ff && code <= 0xffff) s += 2 | 
			
		
	
		
			
				
					|  |  |  |  |     if (code >= 0xDC00 && code <= 0xDFFF) i-- | 
			
		
	
		
			
				
					|  |  |  |  |     const code = str.charCodeAt(i); | 
			
		
	
		
			
				
					|  |  |  |  |     if (code > 0x7f && code <= 0x7ff) s++; | 
			
		
	
		
			
				
					|  |  |  |  |     else if (code > 0x7ff && code <= 0xffff) s += 2; | 
			
		
	
		
			
				
					|  |  |  |  |     if (code >= 0xdc00 && code <= 0xdfff) i--; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   return s | 
			
		
	
		
			
				
					|  |  |  |  |   return s; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -98,13 +106,13 @@ export function byteLength(str) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Array} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function cleanArray(actual) { | 
			
		
	
		
			
				
					|  |  |  |  |   const newArray = [] | 
			
		
	
		
			
				
					|  |  |  |  |   const newArray = []; | 
			
		
	
		
			
				
					|  |  |  |  |   for (let i = 0; i < actual.length; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |     if (actual[i]) { | 
			
		
	
		
			
				
					|  |  |  |  |       newArray.push(actual[i]) | 
			
		
	
		
			
				
					|  |  |  |  |       newArray.push(actual[i]); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   return newArray | 
			
		
	
		
			
				
					|  |  |  |  |   return newArray; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -112,13 +120,13 @@ export function cleanArray(actual) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Array} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function param(json) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (!json) return '' | 
			
		
	
		
			
				
					|  |  |  |  |   if (!json) return ""; | 
			
		
	
		
			
				
					|  |  |  |  |   return cleanArray( | 
			
		
	
		
			
				
					|  |  |  |  |     Object.keys(json).map(key => { | 
			
		
	
		
			
				
					|  |  |  |  |       if (json[key] === undefined) return '' | 
			
		
	
		
			
				
					|  |  |  |  |       return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]) | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  |   ).join('&') | 
			
		
	
		
			
				
					|  |  |  |  |     Object.keys(json).map((key) => { | 
			
		
	
		
			
				
					|  |  |  |  |       if (json[key] === undefined) return ""; | 
			
		
	
		
			
				
					|  |  |  |  |       return encodeURIComponent(key) + "=" + encodeURIComponent(json[key]); | 
			
		
	
		
			
				
					|  |  |  |  |     }), | 
			
		
	
		
			
				
					|  |  |  |  |   ).join("&"); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -126,21 +134,21 @@ export function param(json) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Object} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function param2Obj(url) { | 
			
		
	
		
			
				
					|  |  |  |  |   const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') | 
			
		
	
		
			
				
					|  |  |  |  |   const search = decodeURIComponent(url.split("?")[1]).replace(/\+/g, " "); | 
			
		
	
		
			
				
					|  |  |  |  |   if (!search) { | 
			
		
	
		
			
				
					|  |  |  |  |     return {} | 
			
		
	
		
			
				
					|  |  |  |  |     return {}; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   const obj = {} | 
			
		
	
		
			
				
					|  |  |  |  |   const searchArr = search.split('&') | 
			
		
	
		
			
				
					|  |  |  |  |   searchArr.forEach(v => { | 
			
		
	
		
			
				
					|  |  |  |  |     const index = v.indexOf('=') | 
			
		
	
		
			
				
					|  |  |  |  |   const obj = {}; | 
			
		
	
		
			
				
					|  |  |  |  |   const searchArr = search.split("&"); | 
			
		
	
		
			
				
					|  |  |  |  |   searchArr.forEach((v) => { | 
			
		
	
		
			
				
					|  |  |  |  |     const index = v.indexOf("="); | 
			
		
	
		
			
				
					|  |  |  |  |     if (index !== -1) { | 
			
		
	
		
			
				
					|  |  |  |  |       const name = v.substring(0, index) | 
			
		
	
		
			
				
					|  |  |  |  |       const val = v.substring(index + 1, v.length) | 
			
		
	
		
			
				
					|  |  |  |  |       obj[name] = val | 
			
		
	
		
			
				
					|  |  |  |  |       const name = v.substring(0, index); | 
			
		
	
		
			
				
					|  |  |  |  |       const val = v.substring(index + 1, v.length); | 
			
		
	
		
			
				
					|  |  |  |  |       obj[name] = val; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   }) | 
			
		
	
		
			
				
					|  |  |  |  |   return obj | 
			
		
	
		
			
				
					|  |  |  |  |   }); | 
			
		
	
		
			
				
					|  |  |  |  |   return obj; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -148,9 +156,9 @@ export function param2Obj(url) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {string} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function html2Text(val) { | 
			
		
	
		
			
				
					|  |  |  |  |   const div = document.createElement('div') | 
			
		
	
		
			
				
					|  |  |  |  |   div.innerHTML = val | 
			
		
	
		
			
				
					|  |  |  |  |   return div.textContent || div.innerText | 
			
		
	
		
			
				
					|  |  |  |  |   const div = document.createElement("div"); | 
			
		
	
		
			
				
					|  |  |  |  |   div.innerHTML = val; | 
			
		
	
		
			
				
					|  |  |  |  |   return div.textContent || div.innerText; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -160,21 +168,21 @@ export function html2Text(val) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Object} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function objectMerge(target, source) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (typeof target !== 'object') { | 
			
		
	
		
			
				
					|  |  |  |  |     target = {} | 
			
		
	
		
			
				
					|  |  |  |  |   if (typeof target !== "object") { | 
			
		
	
		
			
				
					|  |  |  |  |     target = {}; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   if (Array.isArray(source)) { | 
			
		
	
		
			
				
					|  |  |  |  |     return source.slice() | 
			
		
	
		
			
				
					|  |  |  |  |     return source.slice(); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   Object.keys(source).forEach(property => { | 
			
		
	
		
			
				
					|  |  |  |  |     const sourceProperty = source[property] | 
			
		
	
		
			
				
					|  |  |  |  |     if (typeof sourceProperty === 'object') { | 
			
		
	
		
			
				
					|  |  |  |  |       target[property] = objectMerge(target[property], sourceProperty) | 
			
		
	
		
			
				
					|  |  |  |  |   Object.keys(source).forEach((property) => { | 
			
		
	
		
			
				
					|  |  |  |  |     const sourceProperty = source[property]; | 
			
		
	
		
			
				
					|  |  |  |  |     if (typeof sourceProperty === "object") { | 
			
		
	
		
			
				
					|  |  |  |  |       target[property] = objectMerge(target[property], sourceProperty); | 
			
		
	
		
			
				
					|  |  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |  |       target[property] = sourceProperty | 
			
		
	
		
			
				
					|  |  |  |  |       target[property] = sourceProperty; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   }) | 
			
		
	
		
			
				
					|  |  |  |  |   return target | 
			
		
	
		
			
				
					|  |  |  |  |   }); | 
			
		
	
		
			
				
					|  |  |  |  |   return target; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -183,18 +191,18 @@ export function objectMerge(target, source) { | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function toggleClass(element, className) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (!element || !className) { | 
			
		
	
		
			
				
					|  |  |  |  |     return | 
			
		
	
		
			
				
					|  |  |  |  |     return; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   let classString = element.className | 
			
		
	
		
			
				
					|  |  |  |  |   const nameIndex = classString.indexOf(className) | 
			
		
	
		
			
				
					|  |  |  |  |   let classString = element.className; | 
			
		
	
		
			
				
					|  |  |  |  |   const nameIndex = classString.indexOf(className); | 
			
		
	
		
			
				
					|  |  |  |  |   if (nameIndex === -1) { | 
			
		
	
		
			
				
					|  |  |  |  |     classString += '' + className | 
			
		
	
		
			
				
					|  |  |  |  |     classString += "" + className; | 
			
		
	
		
			
				
					|  |  |  |  |   } else { | 
			
		
	
		
			
				
					|  |  |  |  |     classString = | 
			
		
	
		
			
				
					|  |  |  |  |       classString.substr(0, nameIndex) + | 
			
		
	
		
			
				
					|  |  |  |  |       classString.substr(nameIndex + className.length) | 
			
		
	
		
			
				
					|  |  |  |  |       classString.substr(nameIndex + className.length); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   element.className = classString | 
			
		
	
		
			
				
					|  |  |  |  |   element.className = classString; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -202,10 +210,10 @@ export function toggleClass(element, className) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Date} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function getTime(type) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (type === 'start') { | 
			
		
	
		
			
				
					|  |  |  |  |     return new Date().getTime() - 3600 * 1000 * 24 * 90 | 
			
		
	
		
			
				
					|  |  |  |  |   if (type === "start") { | 
			
		
	
		
			
				
					|  |  |  |  |     return new Date().getTime() - 3600 * 1000 * 24 * 90; | 
			
		
	
		
			
				
					|  |  |  |  |   } else { | 
			
		
	
		
			
				
					|  |  |  |  |     return new Date(new Date().toDateString()) | 
			
		
	
		
			
				
					|  |  |  |  |     return new Date(new Date().toDateString()); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -216,38 +224,38 @@ export function getTime(type) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @return {*} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function debounce(func, wait, immediate) { | 
			
		
	
		
			
				
					|  |  |  |  |   let timeout, args, context, timestamp, result | 
			
		
	
		
			
				
					|  |  |  |  |   let timeout, args, context, timestamp, result; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   const later = function () { | 
			
		
	
		
			
				
					|  |  |  |  |     // 据上一次触发时间间隔
 | 
			
		
	
		
			
				
					|  |  |  |  |     const last = +new Date() - timestamp | 
			
		
	
		
			
				
					|  |  |  |  |     const last = +new Date() - timestamp; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
 | 
			
		
	
		
			
				
					|  |  |  |  |     if (last < wait && last > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |       timeout = setTimeout(later, wait - last) | 
			
		
	
		
			
				
					|  |  |  |  |       timeout = setTimeout(later, wait - last); | 
			
		
	
		
			
				
					|  |  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |  |       timeout = null | 
			
		
	
		
			
				
					|  |  |  |  |       timeout = null; | 
			
		
	
		
			
				
					|  |  |  |  |       // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
 | 
			
		
	
		
			
				
					|  |  |  |  |       if (!immediate) { | 
			
		
	
		
			
				
					|  |  |  |  |         result = func.apply(context, args) | 
			
		
	
		
			
				
					|  |  |  |  |         if (!timeout) context = args = null | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |         result = func.apply(context, args); | 
			
		
	
		
			
				
					|  |  |  |  |         if (!timeout) context = args = null; | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   return function (...args) { | 
			
		
	
		
			
				
					|  |  |  |  |     context = this | 
			
		
	
		
			
				
					|  |  |  |  |     timestamp = +new Date() | 
			
		
	
		
			
				
					|  |  |  |  |     const callNow = immediate && !timeout | 
			
		
	
		
			
				
					|  |  |  |  |     context = this; | 
			
		
	
		
			
				
					|  |  |  |  |     timestamp = +new Date(); | 
			
		
	
		
			
				
					|  |  |  |  |     const callNow = immediate && !timeout; | 
			
		
	
		
			
				
					|  |  |  |  |     // 如果延时不存在,重新设定延时
 | 
			
		
	
		
			
				
					|  |  |  |  |     if (!timeout) timeout = setTimeout(later, wait) | 
			
		
	
		
			
				
					|  |  |  |  |     if (!timeout) timeout = setTimeout(later, wait); | 
			
		
	
		
			
				
					|  |  |  |  |     if (callNow) { | 
			
		
	
		
			
				
					|  |  |  |  |       result = func.apply(context, args) | 
			
		
	
		
			
				
					|  |  |  |  |       context = args = null | 
			
		
	
		
			
				
					|  |  |  |  |       result = func.apply(context, args); | 
			
		
	
		
			
				
					|  |  |  |  |       context = args = null; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     return result | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |     return result; | 
			
		
	
		
			
				
					|  |  |  |  |   }; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -258,18 +266,18 @@ export function debounce(func, wait, immediate) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Object} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function deepClone(source) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (!source && typeof source !== 'object') { | 
			
		
	
		
			
				
					|  |  |  |  |     throw new Error('error arguments', 'deepClone') | 
			
		
	
		
			
				
					|  |  |  |  |   if (!source && typeof source !== "object") { | 
			
		
	
		
			
				
					|  |  |  |  |     throw new Error("error arguments", "deepClone"); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   const targetObj = source.constructor === Array ? [] : {} | 
			
		
	
		
			
				
					|  |  |  |  |   Object.keys(source).forEach(keys => { | 
			
		
	
		
			
				
					|  |  |  |  |     if (source[keys] && typeof source[keys] === 'object') { | 
			
		
	
		
			
				
					|  |  |  |  |       targetObj[keys] = deepClone(source[keys]) | 
			
		
	
		
			
				
					|  |  |  |  |   const targetObj = source.constructor === Array ? [] : {}; | 
			
		
	
		
			
				
					|  |  |  |  |   Object.keys(source).forEach((keys) => { | 
			
		
	
		
			
				
					|  |  |  |  |     if (source[keys] && typeof source[keys] === "object") { | 
			
		
	
		
			
				
					|  |  |  |  |       targetObj[keys] = deepClone(source[keys]); | 
			
		
	
		
			
				
					|  |  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |  |       targetObj[keys] = source[keys] | 
			
		
	
		
			
				
					|  |  |  |  |       targetObj[keys] = source[keys]; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   }) | 
			
		
	
		
			
				
					|  |  |  |  |   return targetObj | 
			
		
	
		
			
				
					|  |  |  |  |   }); | 
			
		
	
		
			
				
					|  |  |  |  |   return targetObj; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -277,16 +285,16 @@ export function deepClone(source) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {Array} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function uniqueArr(arr) { | 
			
		
	
		
			
				
					|  |  |  |  |   return Array.from(new Set(arr)) | 
			
		
	
		
			
				
					|  |  |  |  |   return Array.from(new Set(arr)); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {string} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function createUniqueString() { | 
			
		
	
		
			
				
					|  |  |  |  |   const timestamp = +new Date() + '' | 
			
		
	
		
			
				
					|  |  |  |  |   const randomNum = parseInt((1 + Math.random()) * 65536) + '' | 
			
		
	
		
			
				
					|  |  |  |  |   return (+(randomNum + timestamp)).toString(32) | 
			
		
	
		
			
				
					|  |  |  |  |   const timestamp = +new Date() + ""; | 
			
		
	
		
			
				
					|  |  |  |  |   const randomNum = parseInt((1 + Math.random()) * 65536) + ""; | 
			
		
	
		
			
				
					|  |  |  |  |   return (+(randomNum + timestamp)).toString(32); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -296,7 +304,7 @@ export function createUniqueString() { | 
			
		
	
		
			
				
					|  |  |  |  |  * @returns {boolean} | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function hasClass(ele, cls) { | 
			
		
	
		
			
				
					|  |  |  |  |   return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) | 
			
		
	
		
			
				
					|  |  |  |  |   return !!ele.className.match(new RegExp("(\\s|^)" + cls + "(\\s|$)")); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -305,7 +313,7 @@ export function hasClass(ele, cls) { | 
			
		
	
		
			
				
					|  |  |  |  |  * @param {string} cls | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function addClass(ele, cls) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (!hasClass(ele, cls)) ele.className += ' ' + cls | 
			
		
	
		
			
				
					|  |  |  |  |   if (!hasClass(ele, cls)) ele.className += " " + cls; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -315,76 +323,82 @@ export function addClass(ele, cls) { | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | export function removeClass(ele, cls) { | 
			
		
	
		
			
				
					|  |  |  |  |   if (hasClass(ele, cls)) { | 
			
		
	
		
			
				
					|  |  |  |  |     const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') | 
			
		
	
		
			
				
					|  |  |  |  |     ele.className = ele.className.replace(reg, ' ') | 
			
		
	
		
			
				
					|  |  |  |  |     const reg = new RegExp("(\\s|^)" + cls + "(\\s|$)"); | 
			
		
	
		
			
				
					|  |  |  |  |     ele.className = ele.className.replace(reg, " "); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | export function makeMap(str, expectsLowerCase) { | 
			
		
	
		
			
				
					|  |  |  |  |   const map = Object.create(null) | 
			
		
	
		
			
				
					|  |  |  |  |   const list = str.split(',') | 
			
		
	
		
			
				
					|  |  |  |  |   const map = Object.create(null); | 
			
		
	
		
			
				
					|  |  |  |  |   const list = str.split(","); | 
			
		
	
		
			
				
					|  |  |  |  |   for (let i = 0; i < list.length; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |     map[list[i]] = true | 
			
		
	
		
			
				
					|  |  |  |  |     map[list[i]] = true; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   return expectsLowerCase | 
			
		
	
		
			
				
					|  |  |  |  |     ? val => map[val.toLowerCase()] | 
			
		
	
		
			
				
					|  |  |  |  |     : val => map[val] | 
			
		
	
		
			
				
					|  |  |  |  |   return expectsLowerCase ? (val) => map[val.toLowerCase()] : (val) => map[val]; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | export const exportDefault = 'export default ' | 
			
		
	
		
			
				
					|  |  |  |  | export const exportDefault = "export default "; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | export const beautifierConf = { | 
			
		
	
		
			
				
					|  |  |  |  |   html: { | 
			
		
	
		
			
				
					|  |  |  |  |     indent_size: '2', | 
			
		
	
		
			
				
					|  |  |  |  |     indent_char: ' ', | 
			
		
	
		
			
				
					|  |  |  |  |     max_preserve_newlines: '-1', | 
			
		
	
		
			
				
					|  |  |  |  |     indent_size: "2", | 
			
		
	
		
			
				
					|  |  |  |  |     indent_char: " ", | 
			
		
	
		
			
				
					|  |  |  |  |     max_preserve_newlines: "-1", | 
			
		
	
		
			
				
					|  |  |  |  |     preserve_newlines: false, | 
			
		
	
		
			
				
					|  |  |  |  |     keep_array_indentation: false, | 
			
		
	
		
			
				
					|  |  |  |  |     break_chained_methods: false, | 
			
		
	
		
			
				
					|  |  |  |  |     indent_scripts: 'separate', | 
			
		
	
		
			
				
					|  |  |  |  |     brace_style: 'end-expand', | 
			
		
	
		
			
				
					|  |  |  |  |     indent_scripts: "separate", | 
			
		
	
		
			
				
					|  |  |  |  |     brace_style: "end-expand", | 
			
		
	
		
			
				
					|  |  |  |  |     space_before_conditional: true, | 
			
		
	
		
			
				
					|  |  |  |  |     unescape_strings: false, | 
			
		
	
		
			
				
					|  |  |  |  |     jslint_happy: false, | 
			
		
	
		
			
				
					|  |  |  |  |     end_with_newline: true, | 
			
		
	
		
			
				
					|  |  |  |  |     wrap_line_length: '110', | 
			
		
	
		
			
				
					|  |  |  |  |     wrap_line_length: "110", | 
			
		
	
		
			
				
					|  |  |  |  |     indent_inner_html: true, | 
			
		
	
		
			
				
					|  |  |  |  |     comma_first: false, | 
			
		
	
		
			
				
					|  |  |  |  |     e4x: true, | 
			
		
	
		
			
				
					|  |  |  |  |     indent_empty_lines: true | 
			
		
	
		
			
				
					|  |  |  |  |     indent_empty_lines: true, | 
			
		
	
		
			
				
					|  |  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |  |   js: { | 
			
		
	
		
			
				
					|  |  |  |  |     indent_size: '2', | 
			
		
	
		
			
				
					|  |  |  |  |     indent_char: ' ', | 
			
		
	
		
			
				
					|  |  |  |  |     max_preserve_newlines: '-1', | 
			
		
	
		
			
				
					|  |  |  |  |     indent_size: "2", | 
			
		
	
		
			
				
					|  |  |  |  |     indent_char: " ", | 
			
		
	
		
			
				
					|  |  |  |  |     max_preserve_newlines: "-1", | 
			
		
	
		
			
				
					|  |  |  |  |     preserve_newlines: false, | 
			
		
	
		
			
				
					|  |  |  |  |     keep_array_indentation: false, | 
			
		
	
		
			
				
					|  |  |  |  |     break_chained_methods: false, | 
			
		
	
		
			
				
					|  |  |  |  |     indent_scripts: 'normal', | 
			
		
	
		
			
				
					|  |  |  |  |     brace_style: 'end-expand', | 
			
		
	
		
			
				
					|  |  |  |  |     indent_scripts: "normal", | 
			
		
	
		
			
				
					|  |  |  |  |     brace_style: "end-expand", | 
			
		
	
		
			
				
					|  |  |  |  |     space_before_conditional: true, | 
			
		
	
		
			
				
					|  |  |  |  |     unescape_strings: false, | 
			
		
	
		
			
				
					|  |  |  |  |     jslint_happy: true, | 
			
		
	
		
			
				
					|  |  |  |  |     end_with_newline: true, | 
			
		
	
		
			
				
					|  |  |  |  |     wrap_line_length: '110', | 
			
		
	
		
			
				
					|  |  |  |  |     wrap_line_length: "110", | 
			
		
	
		
			
				
					|  |  |  |  |     indent_inner_html: true, | 
			
		
	
		
			
				
					|  |  |  |  |     comma_first: false, | 
			
		
	
		
			
				
					|  |  |  |  |     e4x: true, | 
			
		
	
		
			
				
					|  |  |  |  |     indent_empty_lines: true | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  |     indent_empty_lines: true, | 
			
		
	
		
			
				
					|  |  |  |  |   }, | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | // 首字母大小
 | 
			
		
	
		
			
				
					|  |  |  |  | export function titleCase(str) { | 
			
		
	
		
			
				
					|  |  |  |  |   return str.replace(/( |^)[a-z]/g, L => L.toUpperCase()) | 
			
		
	
		
			
				
					|  |  |  |  |   return str.replace(/( |^)[a-z]/g, (L) => L.toUpperCase()); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | // 下划转驼峰
 | 
			
		
	
		
			
				
					|  |  |  |  | export function camelCase(str) { | 
			
		
	
		
			
				
					|  |  |  |  |   return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase()) | 
			
		
	
		
			
				
					|  |  |  |  |   return str.replace(/_[a-z]/g, (str1) => str1.substr(-1).toUpperCase()); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | export function isNumberStr(str) { | 
			
		
	
		
			
				
					|  |  |  |  |   return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) | 
			
		
	
		
			
				
					|  |  |  |  |   return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | export function customFormatDate(date, format) { | 
			
		
	
		
			
				
					|  |  |  |  |   // 日期不存在,则返回空
 | 
			
		
	
		
			
				
					|  |  |  |  |   if (!date) { | 
			
		
	
		
			
				
					|  |  |  |  |     return ""; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   // 日期存在,则进行格式化
 | 
			
		
	
		
			
				
					|  |  |  |  |   return date ? dayjs(date).format(format ?? "YYYY-MM-DD HH:mm:ss") : ""; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |