king
2019-12-19 ff045a6a19e2e0bd5c2433aae71145401627c22d
src/api/index.js
@@ -34,7 +34,6 @@
axios.interceptors.response.use((response) => {
  if (response.data.ErrCode === 'LoginError') {
    setCurrentUrl()
    // return Promise.resolve(response.data)
  } else {
    return Promise.resolve(response.data)
  }
@@ -204,15 +203,50 @@
  /**
   * @description 导出Excel
   */
  getExcelOut (param) {
  getExcelOut (param, name) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    
    return axios({
      url: '/webapi/doexcel',
      data: param
    return new Promise(resolve => {
      axios({
        url: '/webapi/doexcel',
        responseType: 'blob',
        data: param
      }).then(res => {
        try {
          const blob = new Blob([res])
          if (res.type === 'application/json') {
            const reader = new FileReader()
            reader.onload = e => resolve(JSON.parse(e.target.result))
            reader.readAsText(blob)
          } else {
            if ('download' in document.createElement('a')) { // 非IE下载
              const elink = document.createElement('a')
              elink.download = name
              elink.style.display = 'none'
              elink.href = URL.createObjectURL(blob)
              document.body.appendChild(elink)
              elink.click()
              URL.revokeObjectURL(elink.href) // 释放URL 对象
              document.body.removeChild(elink)
            } else { // IE10+下载
              navigator.msSaveBlob(blob, name)
            }
            resolve()
          }
        } catch {
          resolve({
            ErrCode: 'E',
            ErrMesg: '文件解析错误',
            message: '',
            status: false
          })
        }
      })
    })
  }