//导出指定列的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")+")");
|
}
|