export function dateFormat(dateString,fmt) { let date = new Date(dateString); let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 "H+": date.getHours().toString(), // 时 "M+": date.getMinutes().toString(), // 分 "S+": date.getSeconds().toString() // 秒 // 有其他格式化字符需求可以继续添加,必须转化成字符串 }; for (let k in opt) { ret = new RegExp("(" + k + ")").exec(fmt); if (ret) { fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) }; }; return fmt; } export function timeFix () { const time = new Date() const hour = time.getHours() return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好' } export function welcome () { const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 LOL', '我猜你可能累了'] const index = Math.floor(Math.random() * arr.length) return arr[index] } /** * 触发 window.resize */ export function triggerWindowResizeEvent () { const event = document.createEvent('HTMLEvents') event.initEvent('resize', true, true) event.eventType = 'message' window.dispatchEvent(event) } export function handleScrollHeader (callback) { let timer = 0 let beforeScrollTop = window.pageYOffset callback = callback || function () {} window.addEventListener( 'scroll', event => { clearTimeout(timer) timer = setTimeout(() => { let direction = 'up' const afterScrollTop = window.pageYOffset const delta = afterScrollTop - beforeScrollTop if (delta === 0) { return false } direction = delta > 0 ? 'down' : 'up' callback(direction) beforeScrollTop = afterScrollTop }, 50) }, false ) } export function isIE () { const bw = window.navigator.userAgent const compare = (s) => bw.indexOf(s) >= 0 const ie11 = (() => 'ActiveXObject' in window)() return compare('MSIE') || ie11 } /** * Remove loading animate * @param id parent element id or class * @param timeout */ export function removeLoadingAnimate (id = '', timeout = 1500) { if (id === '') { return } setTimeout(() => { document.body.removeChild(document.getElementById(id)) }, timeout) } /* 生成随机uuid * n:uuid的长度 * type:类型(0-大小写字母+数字,1-小写字母+数字,2-纯数字,3-大小写字母,4-小写字母) */ export function uuid(n=6,type=0){ let res='', uType=0; const __uuidLetter = function(){ const __tempArr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] return __tempArr[Math.floor(Math.random()*26)]; } for (let i=0;i= maxSize) { fileInfo.status = 'error' return { success: false, msg: "文件大小超过最大限度" } } if (fileInfo.size <= 0) { fileInfo.status = 'error' return { success: false, msg: "所选信息中存在空文件或目录" } } const type = fileInfo.name.slice(fileInfo.name.lastIndexOf('.') + 1).toLowerCase() if (!typeArr.includes('.' + type)) { fileInfo.status = 'error' return { success: false, msg: "不支持以 ."+ type + "扩展类型的文件或图片上传!" } } return { success: true, msg: "上传成功!" } } export function parseDemandText() { let text = "1.支持Excel2007及以上版本文件。\n"; text += "2.为保证数据顺利导入,请下载\""+ "导入模板\"\n"; text += "3.导入新增数据时不能超过5000行。\n"; text += "4.导入更新数据时不能超过2000行。"; return text; } /** * 根据列集合信息生成文本描述 * @param columnInfos */ export function parseExcelFieldText(columnInfos) { let text = "", typeName = { "System.String": "文本。如: 钟孝本", "System.Int32": "数字。如: 4377", "System.Int64": "数字。如: 4377", "System.Decimal": "数字。如: 43.77", "System.DateTimeOffset": "日期。 如: 2023/3/1", "System.DateTime": "日期。 如: 2023/3/1", }; columnInfos.forEach(x => { text += x.columnComment + "(" + (x.isRequired ? "必填" : "非必填") + "): "; text += (typeName[x.dataType] ? typeName[x.dataType] : ("文本。 可选项为: " + x.remark)) + "\n" ; }); return text; } export function downloadFile(res) { let blob = new Blob([res.data], { type: 'application/octet-stream;charset=UTF-8' }) let contentDisposition = res.headers['content-disposition'] let pattern = new RegExp('filename=([^;]+\\.[^\.;]+);*') let result = pattern.exec(contentDisposition) let filename = result[1]; let downloadElement = document.createElement('a') let href = window.URL.createObjectURL(blob) // 创建下载的链接 let reg = /^["](.*)["]$/g downloadElement.style.display = 'none' downloadElement.href = href downloadElement.download = decodeURI(filename.replace(reg, '$1')) // 下载后文件名 document.body.appendChild(downloadElement) downloadElement.click() // 点击下载 document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) } export function getObjectType(obj){ if (typeof obj !== 'object') { return null; } else { let objTypeStr = Object.prototype.toString.call(obj).toLowerCase().trim(); objTypeStr = objTypeStr.substr(1,objTypeStr.length-2) let tempA = objTypeStr.split(" "); return tempA[1]; } } export function getUserDefaultArea($store,arr,valueField='code'){ let res = '' const _default = $store.getters['userInfo']['workShopType'] for (let i=0;i