Browse Source

将订单数据导出为excel

hzj18279462576@163.com 3 years ago
parent
commit
d2c2dbf1ee
5 changed files with 136 additions and 15 deletions
  1. BIN
      admin/admin.zip
  2. 66 0
      admin/package-lock.json
  3. 3 1
      admin/package.json
  4. 1 0
      admin/src/main.js
  5. 66 14
      admin/src/views/order/index.vue

BIN
admin/admin.zip


+ 66 - 0
admin/package-lock.json

@@ -402,6 +402,11 @@
       "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
       "dev": true
     },
+    "adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+    },
     "agent-base": {
       "version": "2.1.1",
       "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-2.1.1.tgz",
@@ -2560,6 +2565,15 @@
         "lazy-cache": "^1.0.3"
       }
     },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      }
+    },
     "chai-nightwatch": {
       "version": "0.1.1",
       "resolved": "https://registry.npmmirror.com/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz",
@@ -2934,6 +2948,11 @@
       "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
       "dev": true
     },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+    },
     "collection-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz",
@@ -3226,6 +3245,11 @@
         "parse-json": "^4.0.0"
       }
     },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+    },
     "create-ecdh": {
       "version": "4.0.4",
       "resolved": "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz",
@@ -5722,6 +5746,11 @@
         }
       }
     },
+    "file-saver": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
+      "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+    },
     "file-uri-to-path": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
@@ -5899,6 +5928,11 @@
       "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
       "dev": true
     },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+    },
     "fragment-cache": {
       "version": "0.2.1",
       "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -15001,6 +15035,14 @@
       "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
       "dev": true
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "sshpk": {
       "version": "1.17.0",
       "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
@@ -17973,6 +18015,16 @@
       "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==",
       "dev": true
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -18076,6 +18128,20 @@
         "async-limiter": "~1.0.0"
       }
     },
+    "xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
     "xml-name-validator": {
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz",

+ 3 - 1
admin/package.json

@@ -16,11 +16,13 @@
   "dependencies": {
     "better-scroll": "^2.4.2",
     "element-ui": "^2.15.2",
+    "file-saver": "^2.0.5",
     "moment": "^2.29.4",
     "svg-sprite-loader": "^4.3.0",
     "vue": "^2.5.2",
     "vue-router": "^3.0.1",
-    "vuex": "^4.0.2"
+    "vuex": "^4.0.2",
+    "xlsx": "^0.18.5"
   },
   "devDependencies": {
     "autoprefixer": "^7.1.2",

+ 1 - 0
admin/src/main.js

@@ -7,6 +7,7 @@ import router from './router'
 import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 
+
 Vue.component('IconSvg', require('./components/SvgIcon').default)
 
 Vue.config.productionTip = false

+ 66 - 14
admin/src/views/order/index.vue

@@ -13,7 +13,7 @@
           >
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
-          <el-button>查询</el-button>
+          <el-button @click="inquire">查询</el-button>
           <div class="paydate">
             <span class="demonstration">支付时间</span>
             <el-date-picker
@@ -55,7 +55,7 @@
               </el-option>
             </el-select>
           </div>
-          <div class="export">导出订单</div>
+          <div class="export" @click="exportExcel">导出订单</div>
         </div>
         <div class="inform-table">
           <el-table
@@ -64,6 +64,7 @@
             height="576"
             style="width: 1550px"
             stripe
+            class="Devicetable"
             :cell-style="rowbg"
             :header-cell-style="{
               color: ' rgba(0, 0, 0, 1)',
@@ -338,13 +339,16 @@
 </template>
 
 <script>
+import FileSaver from "file-saver";
+import * as XLSX from "xlsx";
+
 export default {
   name: "Inform",
   data() {
     return {
       // 显示的数据
       data: [],
-
+      Tdata: [],
       // 总数据
       tableData: [
         {
@@ -359,7 +363,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "216161656",
           state: "入住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -370,7 +374,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "316161656",
           state: "已入",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -381,7 +385,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "416161656",
           state: "已住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -392,7 +396,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "516161656",
           state: "已入住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -403,7 +407,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "616161656",
           state: "已入住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -414,7 +418,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "716161656",
           state: "已入住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -425,7 +429,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "816161656",
           state: "已入住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -436,7 +440,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "916161656",
           state: "入",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -447,7 +451,7 @@ export default {
           pay: "2022.07.02 08:50:50",
         },
         {
-          orderNum: "116161656",
+          orderNum: "106161656",
           state: "住",
           room: "17栋1单元2层04房",
           electricity: "2.09",
@@ -504,9 +508,35 @@ export default {
     document.getElementsByClassName(
       "el-pagination__jump"
     )[0].childNodes[0].nodeValue = "跳转到";
+
     this.handleCurrentChange(this.currentPage);
+    this.Tdata = this.tableData;
   },
   methods: {
+    // 导出表格
+    exportExcel() {
+      var xlsxParam = { raw: true };
+      /* generate workbook object from table */
+      var wb = XLSX.utils.table_to_book(
+        document.querySelector(".inform-table")
+      );
+      /* get binary string as output */
+      var wbout = XLSX.write(wb, {
+        bookType: "xlsx",
+        bookSST: true,
+        type: "array",
+      });
+      try {
+        FileSaver.saveAs(
+          new Blob([wbout], { type: "application/octet-stream" }),
+          "订单管理.xlsx"
+        );
+      } catch (e) {
+        if (typeof console !== "undefined") console.log(e, wbout);
+      }
+      return wbout;
+    },
+
     allRead($event, index) {
       this.className = this.className.map((item) => (item = ""));
       this.className[index] = "active";
@@ -539,9 +569,15 @@ export default {
       this.$confirm("确认删除?")
         .then((res) => {
           if (res == "confirm") {
-            this.tableData.splice((this.currentPage - 1) * 8 + index, 1);
+            let data = this.tableData.filter((item) => {
+              return item.orderNum !== row.orderNum;
+            });
+            this.tableData = data;
+            this.Tdata = this.Tdata.filter((item) => {
+              return item.orderNum !== row.orderNum;
+            });
           }
-          console.log(this.currentPage);
+          // console.log(this.currentPage);
           if (this.data.length <= 1) {
             this.currentPage = this.currentPage - 1;
           }
@@ -551,6 +587,22 @@ export default {
           console.log(res);
         });
     },
+
+    inquire() {
+      if (this.value == false) {
+        this.tableData = this.Tdata;
+      } else {
+        let quireData = this.tableData.filter((item) => {
+          if (item.orderNum.includes(this.value)) {
+            return item.orderNum;
+          }
+        });
+        this.tableData = quireData;
+      }
+      this.currentPage = 1;
+      this.handleCurrentChange(this.currentPage);
+    },
+
     handleClose(done) {
       this.dialogVisible = false;
     },