You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.2 KiB
TypeScript

import {RcFile} from "antd/es/upload/interface";
import {message} from "antd";
const file_type_list = [
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', //xlsx
'application/vnd.ms-excel', //xls
'application/vnd.openxmlformats-officedocument.wordprocessingml.document', //docx
'text/plain', //text
'application/pdf', //pdf
'application/json', //json
'application/msword', //doc
]
export const parseIds = (data: string | undefined)=>{
console.log(555, data)
if (data === undefined || data === '') {
console.log(88888, data)
return []
} else {
return data.split(",").map((item)=>{return parseInt(item)})
}
}
export const handleOneFile: any = (values: any, name: string)=>{
if (values[name] && values[name].length) {
// 有文件
if(values[name][0].status === 'error'){
// 第一个文件 上传失败
delete values[name]
} else {
if (values[name][0]?.response && values[name][0]?.response?.data?.path) {
values[name] = values[name][0]?.response?.data?.path
} else {
delete values[name]
}
}
} else {
delete values[name]
}
return values
}
export const beforeUploadImage = (file: RcFile) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
console.log(file.type)
if (!isJpgOrPng) {
message.error('不是图片类型');
}
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M) {
message.error('大小超过2M');
}
return isJpgOrPng && isLt2M;
};
export const beforeUploadFile = (file: RcFile) => {
const isLt50M = file.size / 1024 / 1024 < 50;
if (!isLt50M) {
message.error('大小超过50M');
}
return isLt50M;
};
export const imageInit = (host: string, data: any)=>{
if (data) {
return [{uid: '-1', name: 'image.png', status: 'done', url: host+data,}]
} else {
return []
}
}
export const getEnum = (intl: any, data: Array<string>)=>{
let temp = {}
data.forEach((v)=>{
let name = v.split('.enum.')[1]
// @ts-ignore
temp[name] = intl.formatMessage({id: `${v}`, defaultMessage: '$$$',})
})
return temp
}
export function addObjectByCode(obj: any, code: any, data:any) {
if (obj.code === code) {
if (!obj.children) {
obj.children = [];
}
obj.children.push(data);
return true;
} else if (obj.children) {
for (let i = 0; i < obj.children.length; i++) {
const added = addObjectByCode(obj.children[i], code, data);
if (added) {
return true;
}
}
}
return false;
}
export function floatFormat(num: number, precision = 12) {
return +parseFloat(num.toPrecision(precision));
}
export function getAllRouteNameTile(routes: any[], parent_name: string) {
let temp: any[] = []
routes.forEach((v)=>{
temp.push({name: `${parent_name}.${v.name}`, title: v.title})
let new_parent_name = `${parent_name}.${v.name}`
if (v.routes.length) {
temp = temp.concat(getAllRouteNameTile(v.routes, new_parent_name))
}
})
return temp
}
export function dateFormat(date: string) : string{
const datetime = new Date(date);
const year = datetime.getFullYear();
const month = (datetime.getMonth() + 1).toString().padStart(2, '0');
const day = datetime.getDate().toString().padStart(2, '0');
return `${year}-${month}-${day}`
}