gcz 4 rokov pred
rodič
commit
7f028db8ff

+ 2 - 2
config/dev.env.js

@@ -4,9 +4,9 @@ const prodEnv = require('./prod.env')
 
 module.exports = merge(prodEnv, {
   NODE_ENV: '"development"',
-  // BASE_API: '"http://172.16.90.3:9098/forest-admin"'//邱波电脑
+  BASE_API: '"http://172.16.90.3:9098/forest-admin"'//邱波电脑
   // BASE_API: '"http://172.16.90.64:9098/forest-admin"'
   // BASE_API: '"http://172.16.90.102:9098/forest-admin"'//邱波
-  BASE_API: '"http://172.16.90.8:9098/forest-admin"'//东东
+  // BASE_API: '"http://172.16.90.8:9098/forest-admin"'//东东
   // BASE_API: '"http://172.16.90.43:9098/forest-admin"'//东东
 })

+ 2 - 1
src/api/order.js

@@ -73,7 +73,8 @@ export function exportExcel(data) {
   return request({    
     url:'/order/list/excel',
     method:'get',
-    headers: {'responseType': 'blob','biz-source-param': 'BLG','Content-Type': 'application/x-www-form-urlencoded'},
+    responseType: 'blob',
+    headers: {'responseType': 'blob','Content-Type':'application/x-download'},
     params:data
   })
 }

+ 4 - 0
src/main.js

@@ -18,6 +18,10 @@ import '@/permission' // permission control
 
 import { download } from '@/utils/request'
 
+// 导出Excel函数
+import { exportExcel } from "@/utils/exportexcel";
+Vue.prototype.exportExcel = exportExcel;
+
 Vue.prototype.download = download
 
 Vue.use(ElementUI, { locale })

+ 39 - 0
src/utils/exportexcel.js

@@ -0,0 +1,39 @@
+import { parseTime } from "@/utils/index";
+import { Message } from 'element-ui';
+
+/**
+ * 导出Excel
+ * @param {*} data 导出Excel文件流数据
+ * @param {*} fileName 导出Excel文件名称
+ */
+export function exportExcel(data, fileName) {
+  const contentByExportExcel = data;
+  const blobByExportExcel = new Blob([contentByExportExcel], { type: "application/vnd.ms-excel;charset=utf-8" });
+  console.log('blobByExportExcel',blobByExportExcel);
+  // const filenameByExportExcel = fileName + "_" + parseTime(new Date(), "{y}-{m}-{d}") + "_" + new Date().getTime() + ".xlsx";
+  const filenameByExportExcel = fileName + Date.parse(new Date()) + ".xlsx";
+  if ('download' in document.createElement('a')) {
+    const elink = document.createElement('a');
+    elink.download = filenameByExportExcel;
+    elink.style.display = 'none';
+    elink.href = URL.createObjectURL(blobByExportExcel);
+    document.body.appendChild(elink);
+    elink.click();
+    URL.revokeObjectURL(elink.href);
+    document.body.removeChild(elink);
+    Message({
+      message: "导出Excel成功!",
+      type: 'success',
+      showClose: true,
+      center: true
+    });
+  } else {
+    navigator.msSaveBlob(blobByExportExcel, filenameByExportExcel);
+    Message({
+      message: "导出Excel成功!",
+      type: 'success',
+      showClose: true,
+      center: true
+    });
+  }
+}

+ 16 - 30
src/views/oms/order/index.vue

@@ -510,36 +510,22 @@
         this.listQuery.endTime =  formatDate(endDate, 'yyyy-MM-dd hh:mm:ss');
       },
       handleExportExcel(fileName){
-        if(!fileName || typeof fileName != "string"){
-          fileName = "订单"
-        }
-        exportExcel(this.listQuery).then(res => {
-          console.log('new Blob([res])',new Blob([res]));
-          if (!res) {
-            this.$message("文件下载失败")
-            return
-          }
-          if (typeof window.navigator.msSaveBlob !== 'undefined') {
-            window.navigator.msSaveBlob(new Blob([res]), fileName+'.xlsx')
-          }else{
-            let blob = new Blob([res], {
-              type: 'application/vnd.ms-excel'
-            });
-            console.log('blob',blob);
-            let url = window.URL.createObjectURL(blob)
-            // let url = window.URL.createObjectURL(new Blob([res]))
-            let link = document.createElement('a')
-            link.style.display = 'none'
-            link.href = url
-            link.setAttribute('download', fileName+new Date().getTime()+'.xlsx')
-            document.body.appendChild(link)
-            link.click()
-            document.body.removeChild(link); //下载完成移除元素
-            window.URL.revokeObjectURL(url); //释放掉blob对象
-          }
-          // console.log(res)
-        }).catch(err =>{
-          console.log(err)
+        this.$confirm('确定要导出当前查询的数据吗?', '提示', {
+          confirmButtonText: '确定 ',
+          cancelButtonText: '取消 ',
+          type: 'warning'
+        }).then(() => {
+          // this.exportFullscreenLoading = true;
+          exportExcel(this.listQuery).then(response => {
+            this.exportExcel(response, '订单');
+            // this.exportFullscreenLoading = false;
+          }).catch((error) => {
+            this.msgError('导出Excel异常!');
+            // this.exportFullscreenLoading = false;
+          });
+        }).catch(() => {
+          this.msgInfo('您已取消导出!');
+          // this.exportFullscreenLoading = false;
         });
 
       },