wujingjing
2025-02-27 c6aaf42adce93b315a1eb34ab939adc72bb11937
导出Excel
已修改1个文件
28 ■■■■■ 文件已修改
src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue
@@ -17,20 +17,15 @@
                    :disabled="disabled"
                ></component>
            </template>
            <div v-if="isTotalTable" class="ml-auto space-x-2 flex-items-center">
                <el-button v-if="showMode === DisplayModeType.List" @click="exportExcel">导出Excel</el-button>
            <el-button v-if="showMode2 === DisplayModeType2.List || showMode === DisplayModeType.List" class="ml-auto"  @click="exportExcel">导出Excel</el-button>
            <DisplayMode
                v-if="isTotalTable"
                class="ml-auto"
                :order="modeChangeOrder"
                v-model="showMode"
                :modeTypeMap="displayModeTypeMap"
                @change="displayModeChange"
            />
                <DisplayMode :order="modeChangeOrder" v-model="showMode" :modeTypeMap="displayModeTypeMap" @change="displayModeChange" />
            </div>
            <div class="ml-auto space-x-2 flex-items-center" v-if="isMap || !isTotalTable">
                <el-button v-if="showMode2 === DisplayModeType2.List" @click="exportExcel">导出Excel</el-button>
                <ColFilter
                    v-if="(!isMap && !isTotalTable) || (isMap && showMode2 === DisplayModeType2.List && !isTotalTable)"
                    :columnList="colList"
@@ -233,7 +228,7 @@
    const agg_count_col = propsData?.agg_count_col;
    const current = (propsData?.values ?? []) as Array<any[]>;
    if (checkIsTotalTable(propsData)&& !current.find(item=>item[0]==='合计') ) {
    if (checkIsTotalTable(propsData) && !current.find((item) => item[0] === '合计')) {
        const last = current[current.length - 1];
        const lastItemIndex = last?.length > 0 ? last.length - 1 : 0;
        valueColIndex = agg_count_col ?? lastItemIndex;
@@ -1192,20 +1187,17 @@
const exportExcel = () => {
    const data = tableValues.value;
    console.log("🚀 ~ data:", data)
    const keyLabelMap = new Map(colList.value.map((item) => [item.prop, item.label]));
    console.log("🚀 ~ keyLabelMap:", keyLabelMap)
    const excelData = data.map((item) => {
        const excelItem = {};
        item.forEach((item, index) => {
            const label  = keyLabelMap.get(index+'');
            if(!label) return;
            const label = keyLabelMap.get(index + '');
            if (!label) return;
            excelItem[label] = item;
        });
        return excelItem;
    });
    console.log("🚀 ~ excelData:", excelData)
    downloadExcel(excelData, props.data.title);
};