From 32dce44249f1b3fb8487a154517c381d55123fbc Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 29 十一月 2023 19:31:49 +0800
Subject: [PATCH] feat: 1、库存管理各种单据导出对接

---
 admin-web/src/views/mixins/listPage.js |  120 ++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 76 insertions(+), 44 deletions(-)

diff --git a/admin-web/src/views/mixins/listPage.js b/admin-web/src/views/mixins/listPage.js
index be556bc..5aba8aa 100644
--- a/admin-web/src/views/mixins/listPage.js
+++ b/admin-web/src/views/mixins/listPage.js
@@ -1,23 +1,24 @@
 import * as DateFormatter from '@/utils/DateFormatter';
 import {mapGetters} from 'vuex';
+import * as dataExport from "@/api/exportExcel"
 
 export default {
     data() {
         return {
             loading: false,
             list: [],
-            items:[],
-            filterFrom:{},
+            items: [],
+            filterFrom: {},
             editSetting: {
-              title: '',
-              id: '',
-              orgId: '',
-              show: false,
+                title: '',
+                id: '',
+                orgId: '',
+                show: false,
             },
             detailSetting: {
-              title: '璇︽儏',
-              id: '',
-              show: false,
+                title: '璇︽儏',
+                id: '',
+                show: false,
             },
             pageNum: 1,
             pageSize: 10,
@@ -25,67 +26,98 @@
         }
     },
     computed: {
-      ...mapGetters(['userInfo']),
-      clientHeight() {
-        return document.documentElement.clientHeight;
-      },
+        ...mapGetters(['userInfo']),
+        clientHeight() {
+            return document.documentElement.clientHeight;
+        },
     },
     created() {
     },
     filters: {
-      formatTime(time) {
-        if (!time) return '-';
-        return DateFormatter.LongToDateTime(time);
-      },
+        formatTime(time) {
+            if (!time) return '-';
+            return DateFormatter.LongToDateTime(time);
+        },
     },
-    methods:{
-        fetchData() {},
+    methods: {
         // 瀵煎嚭
-        handleExport() {},
+        handleExport(api, fileName, params) {
+            console.log(fileName)
+            let loading = this.$loading({
+                lock: true,
+                text: '瀵煎嚭涓紝璇风◢鍊�...',
+                spinner: 'el-icon-loading',
+                background: 'rgba(0, 0, 0, 0.7)',
+            });
+            // 鍒ゆ柇鎬绘潯鏁版槸鍚﹀ぇ浜庢渶澶ф敮鎸佹潯鏁�
+            dataExport[api](params)
+                .then((res) => {
+                    const blob = new Blob([res], {type: 'application/vnd.ms-excel'});
+                    if ('download' in document.createElement('a')) {
+                        // 闈濱E涓嬭浇
+                        const elink = document.createElement('a');
+                        elink.download = `${fileName}.xls`;
+                        elink.style.display = 'none';
+                        elink.href = URL.createObjectURL(blob);
+                        document.body.appendChild(elink);
+                        elink.click();
+                        URL.revokeObjectURL(elink.href);
+                        document.body.removeChild(elink);
+                    } else {
+                        // IE10+涓嬭浇
+                        navigator.msSaveBlob(blob, `${fileName}.xls`);
+                    }
+                    this.$message.success('瀵煎嚭鎴愬姛锛�');
+                    loading.close();
+                })
+                .catch(() => {
+                    loading.close();
+                });
+        },
         // 鏂板
         handleAdd() {
-          this.editSetting.id = null;
-          this.editSetting.info = null;
-          this.editSetting.title = '鏂板';
-          this.editSetting.show = true;
+            this.editSetting.id = null;
+            this.editSetting.info = null;
+            this.editSetting.title = '鏂板';
+            this.editSetting.show = true;
         },
         // 缂栬緫
         handleEdit(row) {
-          this.editSetting.id = row.id;
-          this.editSetting.info = null;
-          this.editSetting.title = '缂栬緫';
-          this.editSetting.show = true;
+            this.editSetting.id = row.id;
+            this.editSetting.info = null;
+            this.editSetting.title = '缂栬緫';
+            this.editSetting.show = true;
         },
         // 璇︽儏
         handleDetail(row) {
-          this.detailSetting.id = row.id;
-          this.detailSetting.title = '璇︽儏';
-          this.detailSetting.show = true;
+            this.detailSetting.id = row.id;
+            this.detailSetting.title = '璇︽儏';
+            this.detailSetting.show = true;
         },
         // 鍒嗛〉
         handleSizeChange(pageSize) {
-          this.pageSize = pageSize;
-          this.search({ pageNum: 1 });
+            this.pageSize = pageSize;
+            this.search({pageNum: 1});
         },
         handleCurrentChange(pageNum) {
-          this.pageNum = pageNum;
-          this.search();
+            this.pageNum = pageNum;
+            this.search();
         },
         // 鏌ヨtable鍒楄〃
         search(pageNum) {
-          if(pageNum){
-            this.pageNum = pageNum
-          }
-          this.fetchData();
+            if (pageNum) {
+                this.pageNum = pageNum
+            }
+            this.fetchData();
         },
         refreshData() {
-          this.pageNum = 1;
-          this.pageSize = 10;
-          this.search();
+            this.pageNum = 1;
+            this.pageSize = 10;
+            this.search();
         },
         fifterForm(params) {
-          this.filterFrom = Object.assign(this.filterFrom, params);
-          this.search(1);
+            this.filterFrom = Object.assign(this.filterFrom, params);
+            this.search(1);
         },
     }
 }

--
Gitblit v1.9.1