12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import axios from "axios";
- import crypto from "crypto-js";
- /*
- * 生成 uuid 字符串
- */
- export function uuid() {
- var s: any[] = [];
- var hexDigits = "0123456789abcdef";
- for (var i = 0; i < 36; i++) {
- s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
- }
- s[14] = "4";
- s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
- s[8] = s[13] = s[18] = s[23] = "-";
- var uuid = s.join("");
- return `${uuid}-${new Date().getTime()}`;
- }
- /**
- * 生成 rgba 数字
- * @param rgba rgba 字符串
- */
- export function rgbaNum(rgba: string) {
- let val = rgba.match(/(\d(\.\d+)?)+/g);
- return val;
- }
- /**
- * svg流转换为base64字符串
- *
- * @param url 获取base的路径
- */
- export function svgTobase64(url: string) {
- let baseUrl: string = ''
- return new Promise((relve, res) => {
- if (url.includes(".svg")) {
- axios.get(url).then((res) => {
- if (res.data) {
- const regexp = /\<\?xml .*\?\>/i,
- newXml = '<?xml version="1.0" encoding="UTF-8"?>';
- res.data = res.data.replace(regexp, newXml);
- if ("<?xml".indexOf(res.data) === -1) {
- res.data = '<?xml version="1.0" encoding="UTF-8"?>' + res.data;
- }
- const index = res.data.indexOf('"UTF-8"?>');
- const str = res.data.substr(index + 9);
- const a = crypto.enc.Utf8.parse(str);
- baseUrl =
- "data:image/svg+xml;base64," + crypto.enc.Base64.stringify(a);
- }
- relve(baseUrl)
- }).catch((err) => {
- res(err)
- });
- } else {
- baseUrl = url;
- relve(baseUrl)
- }
- })
- }
|