¶Ô±ÈÐÂÎļþ |
| | |
| | | // å·¥å
·ç±»å½æ° |
| | | |
| | | // éæºid |
| | | function createRandomId(): string { |
| | | return ( |
| | | (Math.random() * 10000000).toString(16).substr(0, 4) + |
| | | new Date().getTime() + |
| | | Math.random().toString().substr(2, 5) |
| | | ) |
| | | } |
| | | |
| | | // éæºæ° |
| | | function randomNumber(min = 1, max = 100) { |
| | | return parseInt(Math.random() * (max - min + 1) + min.toString()) |
| | | } |
| | | |
| | | function getTableHeight(num?: number | undefined) { |
| | | const pageHeight = window.innerHeight |
| | | const height = num ? num / 100 : 0.81 |
| | | const heightPx = Math.floor(pageHeight * height) |
| | | |
| | | return heightPx |
| | | } |
| | | |
| | | // æ¯å¦æ°å |
| | | function isNumber(val: string | number): boolean { |
| | | // ä¸è½è½¬æ¢ä¸ºæ°åçç´æ¥æåº |
| | | if (isNaN(Number(val))) return false |
| | | |
| | | // å»é¤ææç©ºæ ¼ï¼ä»ä¹é½æ²¡æ |
| | | const val1 = val.toString().replace(/\s+/g, '') |
| | | if (!val1) return false |
| | | |
| | | // å°æ°ç¹åï¼ä»ä¹é½æ²¡æ |
| | | const val2 = val.toString().split('.') |
| | | if (val2.length >= 2) { |
| | | if (!val2[1]) return false |
| | | } |
| | | |
| | | return true |
| | | } |
| | | |
| | | // èªéåºå辨ç |
| | | function adaptiveResolution() { |
| | | // è·åå±å¹å®½ãé« |
| | | // bodyW = document.body.clientWidth, |
| | | // bodyH = document.body.clientHeight, |
| | | var bodyW = window.innerWidth |
| | | var bodyH = window.innerHeight |
| | | // var bodyW = window.screen.width; |
| | | // var bodyH = window.screen.height; |
| | | |
| | | var appBodyWRatio = bodyW / 1920 // å±å¹å®½ ä¸ è®¾å®çæå°å®½åº¦ çæ¯å¼ |
| | | var appBodyHRatio = bodyH / 1080 // å±å¹å®½ ä¸ è®¾å®çæå°å®½åº¦ çæ¯å¼ |
| | | // var appEle = document.getElementById('app') // #app |
| | | var appEle = document.body // body |
| | | appEle.style.position = 'relative' |
| | | // console.log('appBodyWRatio == ', appBodyWRatio, 'appBodyHRatio == ', appBodyHRatio) |
| | | if (appBodyWRatio <= 1 || appBodyHRatio <= 1) { |
| | | // æ¯å¼å°äº1æ¶ï¼éè¦å¤ç |
| | | var appH = bodyH / appBodyHRatio // éæ°è®¾ç½®é¡µé¢é«åº¦ |
| | | var appW = bodyW / appBodyWRatio // éæ°è®¾ç½®é¡µé¢é«åº¦ |
| | | // var positionBase = (1 - appBodyRatio) / 2 * 100 + 9; // éæ°è®¾ç½®ä½ç§»å¼ |
| | | // var positionLeft = (1920 - bodyW) / 2; // éæ°è®¾ç½®leftä½ç§»å¼ |
| | | var positionRight = (appH - bodyH) / 2 // éæ°è®¾ç½®leftä½ç§»å¼ |
| | | // var positionRight = (appH - bodyH) / 2; // éæ°è®¾ç½®rightä½ç§»å¼ |
| | | var positionLeft = (appW - bodyW) / 2 // éæ°è®¾ç½®rightä½ç§»å¼ |
| | | // appEle.style.width = "1920px"; |
| | | appEle.style.width = appW + 'px' |
| | | appEle.style.height = appH + 'px' |
| | | // appEle.style.height = "1080px"; |
| | | appEle.style.transform = |
| | | 'scale(' + appBodyWRatio + ', ' + appBodyHRatio + ')' |
| | | appEle.style.left = -positionLeft + 'px' |
| | | appEle.style.top = -positionRight + 'px' |
| | | } else { |
| | | appEle.style.width = '100%' |
| | | appEle.style.height = '100%' |
| | | appEle.style.transform = '' |
| | | appEle.style.position = '0' |
| | | appEle.style.top = '0' |
| | | } |
| | | } |
| | | |
| | | function generateUniqueId() { |
| | | let id = '' |
| | | const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' |
| | | const charactersLength = characters.length |
| | | for (let i = 0; i < 10; i++) { |
| | | id += characters.charAt(Math.floor(Math.random() * charactersLength)) |
| | | } |
| | | return id |
| | | } |
| | | |
| | | // @ts-ignore |
| | | function downloadFile(file, fileName) { |
| | | const blob = new Blob([file]) |
| | | // å
¼å®¹ä¸åæµè§å¨çURL对象 |
| | | // const url:any = window.URL || window.webkitURL || window.moxURL |
| | | const url = window.URL || window.webkitURL |
| | | // å建ä¸è½½é¾æ¥ |
| | | const downloadHref = url.createObjectURL(blob) |
| | | // å建aæ ç¾å¹¶ä¸ºå
¶æ·»å 屿§ |
| | | let downloadLink = document.createElement('a') |
| | | downloadLink.href = downloadHref |
| | | downloadLink.download = fileName |
| | | // 触åç¹å»äºä»¶æ§è¡ä¸è½½ |
| | | downloadLink.click() |
| | | // @ts-ignore |
| | | window.URL.revokeObjectURL(url) |
| | | } |
| | | |
| | | /** |
| | | * å°mapè½¬æ¢ææ°ç»list |
| | | * @param map |
| | | */ |
| | | function genMapToArrayList(map: Record<string, any>): any[] { |
| | | const list: any[] = [] |
| | | for (const key in map) { |
| | | if (map.hasOwnProperty(key)) { |
| | | list.push(map[key]) |
| | | } |
| | | } |
| | | return list |
| | | } |
| | | |
| | | /** |
| | | * å°[{description: 'xx', value: 1}]转ææ[{label: 'xx',value: 1}] |
| | | */ |
| | | export function transformOptions(data: any): any[] { |
| | | return data.map((item: any) => { |
| | | return { |
| | | label: item.description, |
| | | value: item.value, |
| | | name: item.name, |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 夿æ°ç»çæä¸ªå段æ¯å¦æéå¤é¡¹ |
| | | * @param array æ°ç»æº |
| | | * @param property éè¦å¤ææ°ç»ä¸å¯¹è±¡çåæ®µå |
| | | * @returns boolean |
| | | */ |
| | | const hasDuplicates = (array: any[], property: string) => { |
| | | var values = array.map((element) => element[property]) |
| | | var uniqueValues = new Set(values) |
| | | return values.length !== uniqueValues.size |
| | | } |
| | | |
| | | export { |
| | | hasDuplicates, |
| | | genMapToArrayList, |
| | | createRandomId, |
| | | randomNumber, |
| | | isNumber, |
| | | adaptiveResolution, |
| | | getTableHeight, |
| | | generateUniqueId, |
| | | downloadFile, |
| | | } |