Ver Fonte

feat:添加下载

AmandaG há 1 ano atrás
pai
commit
772d0c986b
1 ficheiros alterados com 62 adições e 118 exclusões
  1. 62 118
      src/views/Dashboard/src/components/BarChart.vue

+ 62 - 118
src/views/Dashboard/src/components/BarChart.vue

@@ -69,96 +69,10 @@ const downloadName = computed(() => {
 const isShowTooltips = computed(() => {
   return bar_data.value?.isShowTooltips
 })
-const columns1 = [
-  {
-    title: 'Currency',
-    dataIndex: 'Currency'
-  },
-  {
-    title: 'Total Amount',
-    dataIndex: 'Total Amount'
-  },
-  {
-    title: 'Month',
-    dataIndex: 'Month'
-  }
-]
-const columns2 = [
-  {
-    title: 'Invoice Issue Date',
-    dataIndex: 'Invoice Issue Date'
-  },
-  {
-    title: 'Invoice Number',
-    dataIndex: 'Invoice Number'
-  },
-  {
-    title: 'HBL Number',
-    dataIndex: 'HBL Number'
-  },
-  {
-    title: 'Amount',
-    dataIndex: 'Amount'
-  },
-  {
-    title: 'Currency',
-    dataIndex: 'Currency'
-  }
-]
-const tableData = [
-  {
-    Currency: 'ust',
-    ['Total Amount']: '1,985',
-    Month: 'JAN,2024'
-  }
-]
-const tableData2 = [
-  {
-    ['Invoice Issue Date']: '11/12/2024',
-    ['Invoice Number']: 'H907657653',
-    ['HBL Number']: 'SXTYOA201733',
-    Amount: 580,
-    Currency: 'USD'
-  }
-]
-let filterA = columns1.map((el: any) => {
-  return el.dataIndex
-})
-let titleA = columns1.map((el: any) => {
-  return el.title
-})
-let filterB = columns2.map((el: any) => {
-  return el.dataIndex
-})
-let titleB = columns2.map((el: any) => {
-  return el.title
-})
-let result: any = [
-  {
-    tHeader: titleA,
-    filterVal: filterA,
-    tableDatas: tableData,
-    sheetName: 'Monthly Summary Data'
-  },
-  {
-    tHeader: titleB,
-    filterVal: filterB,
-    tableDatas: tableData2,
-    sheetName: 'Invoice Detailed Data'
-  }
-]
 let header: any = []
 let data: any = []
 let sheetname: any = []
-let formatJson = (filterVal: any, jsonData: any) => {
-  return jsonData.map((v: any) => filterVal.map((j: any) => v[j]))
-}
-for (var i in result) {
-  header.push(result[i].tHeader)
-  sheetname.push(result[i].sheetName)
-  data.push(formatJson(result[i].filterVal, result[i].tableDatas))
-}
-const exportData = ({ header, data, sheetname, filename }: any) => {
+const exportData = ({ filename }: any) => {
   $api
     .RevenueDownload({
       date_start: props.RevenueStartDate,
@@ -166,39 +80,69 @@ const exportData = ({ header, data, sheetname, filename }: any) => {
     })
     .then((res: any) => {
       if (res.code === 200) {
-        console.log(res)
+        let filterA = res.data.r2_cloumn.map((el: any) => {
+          return el.dataIndex
+        })
+        let titleA = res.data.r2_cloumn.map((el: any) => {
+          return el.title
+        })
+        let filterB = res.data.r3_cloumn.map((el: any) => {
+          return el.dataIndex
+        })
+        let titleB = res.data.r3_cloumn.map((el: any) => {
+          return el.title
+        })
+        let result: any = [
+          {
+            tHeader: titleA,
+            filterVal: filterA,
+            tableDatas: res.data.r2,
+            sheetName: res.data.r2_title
+          },
+          {
+            tHeader: titleB,
+            filterVal: filterB,
+            tableDatas: res.data.r3,
+            sheetName: res.data.r3_title
+          }
+        ]
+        let formatJson = (filterVal: any, jsonData: any) => {
+          return jsonData.map((v: any) => filterVal.map((j: any) => v[j]))
+        }
+        for (var i in result) {
+          header.push(result[i].tHeader)
+          sheetname.push(result[i].sheetName)
+          data.push(formatJson(result[i].filterVal, result[i].tableDatas))
+        }
       }
     })
-    .finally(() => {})
-  // 将表头插入数据数组中
-  for (let i = 0; i < header.length; i++) {
-    data[i].unshift(header[i])
-  }
-  let ws_name = sheetname
-  // 创建工作簿对象
-  let wb = XLSX.utils.book_new()
-  let ws: any = []
-  // 创建每个工作表并设置列宽
-  for (let j = 0; j < header.length; j++) {
-    ws.push(XLSX.utils.aoa_to_sheet(data[j]))
-    let arr: any = []
-    header[j].forEach((val: any) => {
-      arr.push({
-        wpx: 120
-      })
+    .finally(() => {
+      // 将表头插入数据数组中
+      for (let i = 0; i < header.length; i++) {
+        data[i].unshift(header[i])
+      }
+      let ws_name = sheetname
+      // 创建工作簿对象
+      let wb = XLSX.utils.book_new()
+      let ws: any = []
+      // 创建每个工作表并设置列宽
+      for (let j = 0; j < header.length; j++) {
+        ws.push(XLSX.utils.aoa_to_sheet(data[j]))
+        let arr: any = []
+        header[j].forEach((val: any) => {
+          arr.push({
+            wpx: 120
+          })
+        })
+        ws[j]['!cols'] = arr
+      }
+      // 将工作表对象添加到工作簿中
+      for (let k = 0; k < header.length; k++) {
+        wb.SheetNames.push(ws_name[k])
+        wb.Sheets[ws_name[k]] = ws[k]
+      }
+      XLSX.writeFile(wb, filename + '.xlsx') // 导出文件
     })
-    ws[j]['!cols'] = arr
-  }
-  // 将工作表对象添加到工作簿中
-  for (let k = 0; k < header.length; k++) {
-    wb.SheetNames.push(ws_name[k])
-    wb.Sheets[ws_name[k]] = ws[k]
-  }
-  // XLSX.writeFile(wb, filename + '.xlsx') // 导出文件
-  // const data = XLSX.utils.json_to_sheet(tableData) //此处tableData.value为表格的数据
-  // const wb = XLSX.utils.book_new()
-  // XLSX.utils.book_append_sheet(wb, data, 'test-data') //test-data为自定义的sheet表名
-  // XLSX.writeFile(wb, 'test.xlsx') //test.xlsx为自定义的文件名
 }
 
 // 数额
@@ -329,7 +273,7 @@ const initOption = reactive({
         icon: 'image://' + updateIcon,
         onclick: function () {
           let filename = 'Revenue Spent Details ' + barName.value[0] + '-' + barName.value[1]
-          exportData({ header, data, sheetname, filename: filename })
+          exportData({ filename: filename })
         }
       }
     },