From 7affdc596091a32dee82fb7bff6a244361e14933 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期六, 02 十二月 2023 21:03:56 +0800
Subject: [PATCH] fix: 11-30漏洞修复

---
 admin-web/src/views/mixins/listPage.js |  206 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 121 insertions(+), 85 deletions(-)

diff --git a/admin-web/src/views/mixins/listPage.js b/admin-web/src/views/mixins/listPage.js
index 48fc6e0..416cae5 100644
--- a/admin-web/src/views/mixins/listPage.js
+++ b/admin-web/src/views/mixins/listPage.js
@@ -1,90 +1,126 @@
 import * as DateFormatter from '@/utils/DateFormatter';
-import { mapGetters } from 'vuex';
+import {mapGetters} from 'vuex';
+import * as dataExport from "@/api/exportExcel"
+
 export default {
-    data() {
-        return {
-            loading: false,
-            list: [],
-            items:[],
-            filterFrom:{},
-            editSetting: {
-              title: '',
-              id: '',
-              orgId: '',
-              show: false,
-            },
-            detailSetting: {
-              title: '璇︽儏',
-              id: '',
-              show: false,
-            },
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-        }
-    },
-    computed: {
-      ...mapGetters(['userInfo']),
-      clientHeight() {
-        return document.documentElement.clientHeight;
+  data() {
+    return {
+      loading: false,
+      list: [],
+      items: [],
+      filterFrom: {},
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
       },
-    },
-    created() {
-    },
-    filters: {
-      formatTime(time) {
-        if (!time) return '-';
-        return DateFormatter.LongToDateTime(time);
+      detailSetting: {
+        title: '璇︽儏',
+        id: '',
+        show: false,
       },
-    },
-    methods:{
-        fetchData() {},
-        // 瀵煎嚭
-        handleExport() {},
-        // 鏂板
-        handleAdd() {
-          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;
-        },
-        // 璇︽儏
-        handleDetail(row) {
-          this.detailSetting.id = row.id;
-          this.detailSetting.title = '璇︽儏';
-          this.detailSetting.show = true;
-        },
-        // 鍒嗛〉
-        handleSizeChange(pageSize) {
-          this.pageSize = pageSize;
-          this.search({ pageNum: 1 });
-        },
-        handleCurrentChange(pageNum) {
-          this.pageNum = pageNum;
-          this.search();
-        },
-        // 鏌ヨtable鍒楄〃
-        search(pageNum) {
-          if(pageNum){
-            this.pageNum = pageNum
-          }
-          this.fetchData();
-        },
-        refreshData() {
-          this.pageNum = 1;
-          this.pageSize = 10;
-          this.search();
-        },
-        fifterForm(params) {
-          this.filterFrom = Object.assign(this.filterFrom, params);
-          this.search(1);
-        },
+      pageNum: 1,
+      pageSize: 10,
+      total: 0,
     }
-}
\ No newline at end of file
+  },
+  computed: {
+    ...mapGetters(['userInfo']),
+    clientHeight() {
+      return document.documentElement.clientHeight;
+    },
+  },
+  created() {
+  },
+  filters: {
+    formatTime(time) {
+      if (!time) return '-';
+      return DateFormatter.LongToDateTime(time);
+    },
+  },
+  methods: {
+    // 瀵煎嚭
+    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';
+            const URL = window.URL || window.webkitURL
+            const href = URL.createObjectURL(blob)
+            elink.href = href;
+            document.body.appendChild(elink);
+            elink.click();
+            URL.revokeObjectURL(elink.href);
+            document.body.removeChild(elink);
+            window.URL.revokeObjectURL(href)
+          } 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;
+    },
+    // 缂栬緫
+    handleEdit(row) {
+      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;
+    },
+    // 鍒嗛〉
+    handleSizeChange(pageSize) {
+      this.pageSize = pageSize;
+      this.search({pageNum: 1});
+    },
+    handleCurrentChange(pageNum) {
+      this.pageNum = pageNum;
+      this.search();
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum) {
+        this.pageNum = pageNum
+      }
+      this.fetchData();
+    },
+    refreshData() {
+      this.pageNum = 1;
+      this.pageSize = 10;
+      this.search();
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params);
+      this.search(1);
+    },
+  }
+}

--
Gitblit v1.9.1