数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.0 KiB

import {
Document,
Picture,
VideoPlay,
Headset,
Files,
Tickets,
} from '@element-plus/icons-vue'
import { matterInfo } from "@/api/doc/type"
export function getExpirTime(val:string){
let now= Date.now() //haomiao
switch(val){
case "sixhour":
now+=6*3600*1000
break
case "oneday":
now+=24*3600*1000
break
case "threeday":
now+=3*24*3600*1000
break
case "oneweek":
now+=7*24*3600*1000
break
case "onemonth":
now+=30*24*3600*1000
break
case "threemonth":
now+=90*24*3600*1000
break
default:
now+=6*3600*1000
}
let nt=new Date(now)
return nt.toISOString().slice(0,10)+" "+nt.toLocaleTimeString()
}
export function checkExpirTime(val:matterInfo){
if (val.expireInfinity) return false
if (val.expireTime) {
let now = Date.now() //haomiao
let expireTime = new Date(val.expireTime).getTime()
if (expireTime > now) return false
}
return true
}
export const getFileIcon = (fileName:string) => {
const extension = fileName?.split('.').pop()?.toLowerCase();
switch(extension) {
case 'pdf':
case 'doc':
case 'docx':
case 'xls':
case 'xlsx':
return Document;
case 'jpg':
case 'jpeg':
case 'png':
case 'gif':
case 'svg':
return Picture;
case 'mp4':
case 'mov':
case 'avi':
return VideoPlay;
case 'mp3':
case 'wav':
return Headset;
case 'zip':
case 'rar':
case '7z':
return Files;
default:
return Tickets;
}
}
export function readableSize(val:matterInfo){
if(val.size<1024) return "1 Kb"
//1024*1024
if(val.size<1048576) return (val.size/1024).toFixed(1)+"Kb"
//1024*1024*1024
if(val.size<1073741824) return (val.size/1048576).toFixed(1)+"Mb"
//1024*1024*1024*1024
if(val.size<1099511627776) return (val.size/1073741824).toFixed(1)+"Gb"
return "BIG"
}