Source: packages/utils/addWatermark.js

// import UUID from './utils/uuid'
import * as Watermark from './Watermark'
import * as WaterMark2PDF from './WaterMark2PDF'
import ruleWatermark from './ruleWatermark'
import { getCaptionFileName, getFileExtension, isBlobUrl, getWatermarkConfig } from './util'
import IS from './is'

/**
 * 添加水印
 * @param {string} url 
 * @param {*} pageSelf 
 * @param {*} watermarkConfig_ 
 * @param {*} isShowWatermark_ 
 * @returns {Object} {}
 */
export const addWatermark = async (url, pageSelf, watermarkConfig_ = { title:'', subtitle:'中雄机密文件禁止外传' },isShowWatermark_= false)=> {
  // console.log('######addWatermark 0###################',pageSelf,pageSelf.$enableDefaultRule);
  
    const watermarkConfig = watermarkConfig_
    if(!IS.isNullOrUnDef(pageSelf) && pageSelf.$enableDefaultRule == true){
      const temp = getWatermarkConfig()
      watermarkConfig.title = temp.title
      watermarkConfig.subtitle = temp.subtitle
    }
    //['jpg', 'png', 'jpeg','pdf']
    const getFileSuffix = (filePath) => {
      if(!filePath){
        return ''
      }
      return getFileExtension(filePath)
      // var startIndex = filePath.lastIndexOf(".");
      // if (startIndex != -1)
      //   return filePath.substring(startIndex + 1, filePath.length).toLowerCase();
      // else return "";
    }
  
    const picFun = async (url) => {
      let url_ = url
      if(IS.isNullOrUnDef(pageSelf) || pageSelf.$isShowWatermark == true || isShowWatermark_ == true){
        const fileData = await Watermark.adddWatermark(url,watermarkConfig)
        url_ = Watermark.base64Img2Blob(fileData.base64, window)
      }
      // return {url:url_,...fileData.fileInfo}
      return url_
    }
    const SuffixList = {
      'jpg': picFun,
      'png': picFun,
      'jpeg': picFun,
      "pdf": async (url) => {
        // const str = localStorage.getItem('pro__Login_Userinfo')
        // const userInfo = str ? JSON.parse(str) : {};
        // // console.log('@@@@@@@@@@@@@@@@@@@@@', userInfo.value);
        // let WatermarkText = '请勿外传'
        // if (userInfo.value) {
        //   const { phone, realname } = userInfo.value
        //   if(phone){
  
        //     WatermarkText = `${realname} ${phone&&phone.substr(7, 4)}`
        //   }else{
        //     WatermarkText = realname
  
        //   }
        // }
        let url_ = url
        if(IS.isNullOrUnDef(pageSelf)  || pageSelf.$isShowWatermark == true || isShowWatermark_ == true){
          url_ = await WaterMark2PDF.addPDFWaterMark(url, { text: watermarkConfig, size: 10 })
        }
        // 20230327 暂停此功能
        return url_
      }
    }
    const res = { url: '', suffix: '', name:'' }
    if(isBlobUrl(url)==true){
      res.url= url
    } else {
      const fileSuffix = getFileSuffix(url)
      const fileName = getCaptionFileName(url)
      res.suffix = fileSuffix
      res.name = fileName
      if (SuffixList[fileSuffix]) {
        const url_ = await SuffixList[fileSuffix](url)
        res.url = url_
      } else {
        res.url = url
      }
    }
    // console.log('添加水印===========》',url,watermarkConfig,pageSelf.$isShowWatermark,isShowWatermark_, res);
    return res
  }