Bladeren bron

订单管理-导出

dujingxian 4 jaren geleden
bovenliggende
commit
074ff81d33
3 gewijzigde bestanden met toevoegingen van 118 en 1 verwijderingen
  1. 13 0
      src/api/index.js
  2. 34 1
      src/pages/subPages/order.vue
  3. 71 0
      src/utils/export.js

+ 13 - 0
src/api/index.js

@@ -209,6 +209,19 @@ export const queryList = (params) => {
         timeout: 120000,
     })
 }
+// 导出
+export const exportList = (params) => {
+    return axios({
+        method: 'post',
+        url: `${Prefix}act=merchant_order&op=OrderExport&client_type=ajax&page=50`,
+        withCredentials: true,
+        headers: {
+            "Content-Type": "application/x-www-form-urlencoded"
+          },
+        data: params,
+        timeout: 120000,
+    })
+}
 
 // 修改管理员密码
 export const editPwd = (params) => {

+ 34 - 1
src/pages/subPages/order.vue

@@ -67,6 +67,7 @@
         <div>
             <el-button style="margin-right:10px;margin-bottom:20px" type="primary" @click="queryList">查询</el-button>
             <el-button style="margin-right:10px;margin-left:0px;margin-bottom:20px" type="danger" @click="onReset">重置</el-button>
+            <el-button style="margin-right:10px;margin-left:0px;margin-bottom:20px" type="warning" @click="onExport">导出</el-button>
         </div>
     </el-header>
    
@@ -114,10 +115,12 @@
 import {
     // actionLogList
     getOrderList,
-    queryList
+    queryList,
+    exportList
 } from "@/api";
 import { moneyType, orderState, amountConstant, timeConstant } from '@/utils/constants'
 // import getIp from '@/utils/ip'
+import {JSONToExcelConvertor} from '@/utils/export.js'
 export default {
     name: 'order',
     data() {
@@ -305,6 +308,36 @@ export default {
             let timeEnd = (new Date(`${y}/${m}/${dEnd}`)).getTime()
             this.dataRange[0] = timeStart
             this.dataRange[1] = timeEnd
+        },
+        // 导出
+        async onExport() {
+            if (this.dataRange == null) {
+                this.startTime = ''
+                this.endTime = ''
+            } else {
+                this.startTime =  this.dataRange[0]/1000 || ''
+                this.endTime = this.dataRange[1]/1000 || ''
+            }
+            try {
+                let param = new URLSearchParams()
+                param.append('curpage', this.pageNumber)
+                param.append('start_time', this.startTime)
+                param.append('end_time', this.endTime)
+                param.append('card_type', this.RechargeType)
+                param.append('order_state', this.RechargeStatus)
+                param.append('refill_amount', this.amount)
+                param.append('mch_order', this.mch_order)
+                param.append('time', this.time)
+                param.append('card_no', this.card_no)
+                param.append('order_sn', this.order_sn)
+                const res = await exportList(param)
+                console.log('导出', res);
+                if (res && res.code == 200) {
+                    JSONToExcelConvertor(res.datas.data, "交易流水", res.datas.title )
+                }
+            } catch (error) {
+                console.log(error);
+            }
         }
     },
 };

+ 71 - 0
src/utils/export.js

@@ -0,0 +1,71 @@
+/* eslint-disable no-redeclare */
+export function JSONToExcelConvertor(JSONData, FileName, ShowLabel) { 
+  //先转化json 
+  var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData; 
+    
+  var excel = '<table>';   
+    
+  //设置表头 
+  var row = "<tr>"; 
+  for (var i = 0, l = ShowLabel.length; i < l; i++) { 
+    row += "<td>" + ShowLabel[i].value + '</td>'; 
+  } 
+    
+    
+  //换行 
+  excel += row + "</tr>"; 
+    
+  //设置数据 
+  for (var i = 0; i < arrData.length; i++) { 
+    var row = "<tr>"; 
+      
+    for (var index in arrData[i]) { 
+      var value = arrData[i][index].value === "." ? "" : arrData[i][index].value; 
+      row += '<td>' + value + '</td>'; 
+    } 
+      
+    excel += row + "</tr>"; 
+  } 
+
+  excel += "</table>"; 
+
+  var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>"; 
+  excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">'; 
+  excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel'; 
+  excelFile += '; charset=UTF-8">'; 
+  excelFile += "<head>"; 
+  excelFile += "<!--[if gte mso 9]>"; 
+  excelFile += "<xml>"; 
+  excelFile += "<x:ExcelWorkbook>"; 
+  excelFile += "<x:ExcelWorksheets>"; 
+  excelFile += "<x:ExcelWorksheet>"; 
+  excelFile += "<x:Name>"; 
+  excelFile += "{worksheet}"; 
+  excelFile += "</x:Name>"; 
+  excelFile += "<x:WorksheetOptions>"; 
+  excelFile += "<x:DisplayGridlines/>"; 
+  excelFile += "</x:WorksheetOptions>"; 
+  excelFile += "</x:ExcelWorksheet>"; 
+  excelFile += "</x:ExcelWorksheets>"; 
+  excelFile += "</x:ExcelWorkbook>"; 
+  excelFile += "</xml>"; 
+  excelFile += "<![endif]-->"; 
+  excelFile += "</head>"; 
+  excelFile += "<body>"; 
+  excelFile += excel; 
+  excelFile += "</body>"; 
+  excelFile += "</html>"; 
+
+    
+  var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile); 
+    
+  var link = document.createElement("a");   
+  link.href = uri; 
+    
+  link.style = "visibility:hidden"; 
+  link.download = FileName + ".xls"; 
+    
+  document.body.appendChild(link); 
+  link.click(); 
+  document.body.removeChild(link); 
+}