222
schangxiang@126.com
2024-12-13 f46564ce50e256a884db070b4a492e2e170de9cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//导出指定列的excel数据
import { ElMessage } from 'element-plus';
// import XLSX from 'xlsx';
import XLSXS from 'xlsx-js-style';
import { exportExcel } from '/@/utils/exportExcel2' //引入导出方法
import { formatDate } from '/@/utils/formatTime'
 
export function exportPageExcel(exportDataList: any[], tableRef: any={}, fileName:string,functionMap:any[]) {
  const columns = tableRef.value.store.states.columns; // 获取列配置
  const data_columns=new Array();
  columns._value.forEach((column) => {
           //console.log('列名:'+column.label+',属性名:'+column.property);
           if(column.property!=undefined){
            let _formatter=undefined;
            if(column.formatter!=undefined){
              _formatter=column.formatter.name;
            }
            data_columns.push( {
            label:column.label,
            property:column.property,
            formatter:_formatter
           });
           }
   });
  let entozh = {};
  data_columns.forEach(item => {
     entozh[item.property] = item.label
    });
  exportDataList.forEach(item => {
    var arrKeys = Object.keys(item);
    arrKeys.forEach(key => {
 
      //日期处理
      data_columns.forEach(itemIn => {
      if (itemIn.formatter !=undefined && key == itemIn.property && item[key]) {
        if(itemIn.formatter=="formatDate_T_Date" || itemIn.formatter=="formatDate_T_Time"){
          item[key] = functionMap[itemIn.formatter](null,null,item[key]);
        }else{
          //隐藏提示 【Editby shaocx,2024-07-08】
          //ElMessage.warning("不支持的方法:"+itemIn.formatter);
        }
      }});
     
      //枚举转值
      //首先首字母大写转换
      var toUpperStr=key.charAt(0).toUpperCase() + key.slice(1);
      var strFieldDic = "getEnum"+toUpperStr + 'Data_Index';
      const bb= functionMap[strFieldDic]?.value;
      if(bb!=undefined){
        if(typeof item[key] === 'boolean'){
          let new_key_value=item[key]?1:0;
          item[key] = bb[new_key_value]?.describe || '';
        }else{
          item[key] = bb.find(o=>o.value==item[key])?.describe || '';
        }
      }
    });
  });  
  
  exportExcel(exportDataList, entozh, "xlsx", fileName+"("+formatDate(new Date(),"YYYY-mm-dd HH:MM")+")");
}