beelink/src/utils/common.ts
2020-12-15 09:27:08 +08:00

145 lines
3.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import router from '@/router';
import { message } from 'ant-design-vue';
import { geti18n } from './i18n';
/**
* 图片转Base64
*/
function getBase64(file: File): Promise<string | ArrayBuffer | null> {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
/**
* 预览图片
*/
export async function previewCover(file: any): Promise<string> {
if (!file.url && !file.preview) {
file.preview = await getBase64(file.originFileObj);
}
return file.url || file.preview || '';
}
/**
* 存储对应key
* @param key 键值
* @param value 内容 object自动序列化
*/
export function saveValue(key: string, value: any): boolean{
if(key == "token"){
saveValue("time",new Date().getTime())
}
if(typeof value == 'object'){
value = JSON.stringify(value)
}
try {
localStorage.setItem(key, value);
return true;
} catch (error) {
return false;
}
}
/**
* 获取对应key
* @param key 键值
*/
export function getValue(key: string): any{
let value = localStorage.getItem(key);
if(value != null){
try {
value = JSON.parse(value);
} catch (error) {
return value;
}
}
return value;
}
/**
* 验证图片是否为对应类型
* @param name 图片名字
*/
export function provenimg(file: any): boolean | void{
const lan = geti18n()
const type = ['png', 'jpg'];
const ntypearr = file.name.split('.');
const ntype = ntypearr[ntypearr.length - 1];
console.log(ntype)
const size = 2 * 1024 * 1024;
if(file.size > size){
message.error(lan.$t('zuida') + "2MB")
return false;
}
for(const i in type){
if(type[i] == ntype){
return true
}
}
message.error(lan.$t("leixingcuowu"))
return false;
}
/**
* 验证视频是否为对应类型
* @param name 图片名字
*/
export function provenvideo(file: any, isvideo?: boolean): boolean{
const lan = geti18n()
const type = ['flv', 'mp4', 'wmv', 'mov', 'avi'];
const ntypearr = file.name.split('.');
const ntype = ntypearr[ntypearr.length - 1];
if(isvideo){
const size = 500 * 1024 * 1024;
if(file.size > size){
message.error(lan.$t('zuida') + "500MB")
return false;
}
}else{
const size = 100 * 1024 * 1024;
if(file.size > size){
message.error(lan.$t('zuida') + "100MB")
return false;
}
}
for(const i in type){
if(type[i] == ntype){
return true;
}
}
message.error(lan.$t("leixingcuowu"))
return false;
}
export function toindex(){
function GetUrlRelativePath() {
const url = document.location.toString();
const arrUrl = url.split("//");
const start = arrUrl[1].indexOf("/");
let relUrl = arrUrl[1].substring(start); //stop省略截取从start开始到结尾的所有字符
if (relUrl.indexOf("?") != -1) {
relUrl = relUrl.split("?")[0];
}
return relUrl;
}
const url = GetUrlRelativePath()
console.log(url)
const list = ['/wblogin','/wbloginerr','/fblogin','/fbloginerr', '/wxlogin']
for(const i in list){
if(list[i] == url){
console.log("return")
return ;
}
}
console.log("跳转")
router.push("/")
}