common.ts 3.23 KB
import { ElMessage } from 'element-plus'
import { getDownloadUrl, download } from "@/utils/common";
import { getImageContent } from "@/api/modules/queryService";
import { getDownFileSignByUrl, obsDownloadRequest, parseAndDecodeUrl } from './obsService';

// export const onUploadFilePreview = (file) => {
//   let url = file.url;
//   getImageContent(url).then((res: any) => {
//     if (res && !res.msg) {
//       let name = file.name;
//       var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1).toLowerCase() : '';
//       if (fileSuffix === 'png' || fileSuffix === 'jpeg' || fileSuffix === 'jpg' || fileSuffix === 'pdf') { //浏览器可以支持图片和pdf预览
//         let fileUrl = <string>getDownloadUrl(res, name, fileSuffix);
//         let win = window.open(fileUrl, name);
//         win && (win.document.title = name);
//       } else {
//         download(res, name, fileSuffix);
//       }
//     } else {
//       res?.msg && ElMessage.error(res?.msg);
//     }
//   })
// }

// export const onUploadFileDownload = (file) => {
//   let url = file.url;
//   getImageContent(url).then((res: any) => {
//     if (res && !res.msg) {
//       let name = file.name;
//       var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : '';
//       download(res, name, fileSuffix);
//     } else {
//       res?.msg && ElMessage.error(res?.msg);
//     }
//   })
// }
export const onUploadFileDownload = async (params) => {
  const {name, url} = params;
  const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(url).fileName);
  if (!refSignInfo?.data) {
    refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
    return;
  }
  obsDownloadRequest(refSignInfo?.data).then((res: any) => {
    if (res && !res.msg) {
      var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : '';
      download(res, name, fileSuffix);
    } else {
      res?.msg && ElMessage.error(res?.msg);
    }
  })
}

export const onUploadFilePreview = async (params) => {
  console.log(params, 'params');
  const {name, url} = params;
  // let f = formInline.value[item.field].find(i => i.name == file.name);
  // let url = f.url;
  let fileName: string = parseAndDecodeUrl(url).fileName;
  const refSignInfo: any = await getDownFileSignByUrl(fileName);
  if (!refSignInfo?.data) {
    refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
    return;
  }
  obsDownloadRequest(refSignInfo?.data).then((res: any) => {
    if (res && !res.msg) {
      var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1).toLowerCase() : '';
      if (fileSuffix === 'png' || fileSuffix === 'jpeg' || fileSuffix === 'jpg' || fileSuffix === 'pdf') { //浏览器可以支持图片和pdf预览
        let fileUrl = <string>getDownloadUrl(res, name, fileSuffix);
        let win = window.open(fileUrl, name);
        win && (win.document.title = name);
      } else {
        download(res, name, fileSuffix);
      }
    } else {
      res?.msg && ElMessage.error(res?.msg);
    }
  });
}

// 设置显示的文件名
export const setFileName = (name) => {
  if(name && name.indexOf('_') > -1){
    const s = name.indexOf("_");
    const e = name.indexOf(".");
    const newName = name.slice(0, s) + name.slice(e);
    return newName
  } else {
    return name || '--';
  }
}