var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { jsx as _jsx } from "react/jsx-runtime"; import { ceil, compact, fill, isArray, isEmpty, isObject, some, truncate, zipObject } from "lodash"; import moment from "moment"; import React from "react"; import WORD_IMG from "./icon/word.svg"; import PDF_IMG from "./icon/pdf.svg"; import PPT_IMG from "./icon/ppt.svg"; import EXCEL_IMG from "./icon/excel.svg"; import OTHER_IMG from "./icon/other.svg"; import VIDEO_IMG from "./icon/video.svg"; import { clearStorage } from "../lib"; import { Modal } from "antd"; import axios from "axios"; import { getToken } from "./store"; // 退出登录 export function logoutOut(navigate) { clearStorage(); const loca = window.location; if (process.env.NODE_ENV === "development") { navigate && navigate("/"); } else { const REACT_APP_PATH_NAME = process.env.REACT_APP_PATH_NAME; loca.href = REACT_APP_PATH_NAME + "?logoutType=manual"; } } //手机号加密 export function phoneEncryption(phone) { const tel = phone.split(""); return fill(tel, "*", 3, tel.length - 4); } export function idEncryption(id) { if (id) { return id.replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2"); } else { return id; } } //字符串转对象 export function jsonString(str) { return __awaiter(this, void 0, void 0, function* () { try { JSON.parse(str); } catch (e) { return []; } const data = JSON.parse(str); if (isArray(data) && some(data, item => item.uid)) { return yield formatImageUrl(data); } return JSON.parse(str); }); } // message export function themeMessage(result, callback, content) { Modal[result.type]({ content: content || result.message, onOk() { if (result.type === "success") { callback && callback(); } } }); } export function replaceString(str) { return str ? str.replace(/(\r\n)|(\n)/g, "
") : ""; } export function dateFormatter(str) { if (!str) { return ""; } return moment(str).format("YYYY-MM-DD HH:mm"); } export function truncateText(text) { if (!text) { return "-"; } return (_jsx("div", Object.assign({ title: text }, { children: truncate(text, { length: 24, separator: "..." }) }))); } export const extname = (url) => { var _a; const l = url ? url === null || url === void 0 ? void 0 : url.split("?") : []; return l[0] ? (_a = l[0]) === null || _a === void 0 ? void 0 : _a.split(".").pop().toLowerCase() : ""; }; export function isImageUrl(url) { const fileExtension = extname(url); if (/^data:image\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(fileExtension)) { return true; } } export function getPreviewIcon(url) { const fileExtension = extname(url); if (isImageUrl(url)) { return url; } switch (fileExtension) { case "doc": case "docx": case "pages": return WORD_IMG; case "csv": case "xls": case "xlsx": case "numbers": return EXCEL_IMG; case "ppt": return PPT_IMG; case "pdf": return PDF_IMG; case "mp4": return VIDEO_IMG; default: return OTHER_IMG; } } //图片url请求接口并将文件流转为地址 function getFileUrl(api, path) { return axios.get(`${api}${path}`, { responseType: "blob", withCredentials: false, headers: { token: getToken() } }).then((response) => { return URL.createObjectURL(response.data); }).catch(e => { console.log(e); }); } function getImageData(item) { return __awaiter(this, void 0, void 0, function* () { const api = process.env.REACT_APP_API_URL; if (isImageUrl(item.name)) { const url = yield getFileUrl(api === null || api === void 0 ? void 0 : api.replace("/base", ""), `${item === null || item === void 0 ? void 0 : item.thumbUrl}`); return { uid: item.uid, name: item.name, status: item.status, url: item.url, thumbUrl: url, init: item }; } else { return Object.assign(Object.assign({}, item), { thumbUrl: getPreviewIcon(item.name) }); } }); } //格式化图片地址 export function formatImageUrl(str) { if (!str) { return []; } if (Array.isArray(str)) { return Promise.all(str.map((item) => { return getImageData(item); })); } if (typeof str === "string") { try { JSON.parse(str); } catch (e) { return []; } const data = JSON.parse(str); const api = process.env.REACT_APP_API_URL; if (Array.isArray(data)) { return data.map((item) => { if (isImageUrl(item.name)) { return getFileUrl(api === null || api === void 0 ? void 0 : api.replace("/base", ""), `${item === null || item === void 0 ? void 0 : item.thumbUrl}`).then((url) => { return { uid: item.uid, name: item.name, status: item.status, thumbUrl: url, url: item.url }; }); } else { const url = getPreviewIcon(item.name); return { uid: item.uid, name: item.name, status: item.status, thumbUrl: url, url: item.url }; } }); } if (isObject(data)) { if (isImageUrl(data.name)) { return getFileUrl(api === null || api === void 0 ? void 0 : api.replace("/base", ""), `${data === null || data === void 0 ? void 0 : data.thumbUrl}`).then((response) => { return [ { uid: data.uid, name: data.name, status: data.status, thumbUrl: URL.createObjectURL(response.data), url: data.url } ]; }); } else { return [ { uid: data.uid, name: data.name, status: data.status, thumbUrl: getPreviewIcon(data.name), url: data.url } ]; } } } return []; } export function transformDate(value, dataLabel) { const data = compact(value); const times = isEmpty(data) ? [] : data.map((item) => moment(item).format("YYYY-MM-DD")); return zipObject(dataLabel, isEmpty(times) ? [null, null] : [`${times[0]} 00:00:00`, `${times[1]} 23:59:59`]); } export function toFixed(num) { if (!num || num == null) { return "0.00"; } return ceil(Number(num), 3).toFixed(2); } export function numberWithStatistic(x) { return x === null || x === void 0 ? void 0 : x.toString().replace(/\B(?