import * as PDFJS from 'pdfjs-dist/legacy/build/pdf.js'
import pdfjsWorker from 'pdfjs-dist/legacy/build/pdf.worker.entry'
PDFJS.cMapUrl = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.10.377/cmaps/'
PDFJS.cMapPacked = true
PDFJS.GlobalWorkerOptions.workerSrc = pdfjsWorker

export const verificationTypeList = [
  '001',
  '00101',
  '00102',
  '00103',
  '002',
  '00104',
]

export const getImgUrl = (objId, yearFlag) => {
  return new Promise((resolve, reject) => {
    window.GMS.$http.post(
      `/yxgl/getImageContent`,
      { imageId: objId, yearFlag },
      {
        responseType: "blob",
      }
    ).then((res) => {
      const _res = res.data;
      const fileType = res.headers['content-type'] == 'application/pdf' ? 'pdf' : 'img'
      const dis = res.headers['content-disposition']
      let fileName = dis.split("filename*=UTF-8''")[1]
      fileName = decodeURIComponent(fileName)
      let blob = new Blob([_res], { type: res.headers['content-type'] });
      let href = window.URL.createObjectURL(blob); //创建下载的链接
      if (fileType == 'img') {
        resolve({ url: href, fileName })
      }
      else if (fileType == 'pdf') {
        getPdfImg(href).then((res) => {
          resolve({ url: res, fileName })
        })
      }
      else {
        reject('invalid img file type')
      }
    }).catch((err) => {
      reject(err)
    })
  })
}
export const getPdfImg = (href) => {
  return new Promise((resolve, reject) => {
    const pdfParam = {
      url: href,
      cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.10.377/cmaps/',
      cMapPacked: true
    }
    PDFJS.getDocument(pdfParam).promise.then(function (pdfdoc) {
      //pdfdoc.numPages;pdf文件的总页数
      pdfdoc.getPage(1).then(function (page) {
        let scale = 2
        let viewport = page.getViewport({scale});
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        canvas.height = viewport.height;
        canvas.width = viewport.width;
        let renderContext = {
          canvasContext: context,
          viewport: viewport,
        };
        page.render(renderContext).promise.then(() => {
          //返回图片的base64数据   可直接用于img的src属性
          resolve(canvas.toDataURL("image/jpeg"));
        });
      });
    });
  });
}