| | |
| | | :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" |
| | |
| | | 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; |
| | |
| | | |
| | | 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); |
| | | }; |
| | | |