报表功能调整

This commit is contained in:
2025-02-22 14:29:12 +08:00
parent 3c2cbcc8ca
commit 87b103f2e9
3 changed files with 48 additions and 3 deletions

View File

@@ -36,6 +36,7 @@
"echarts-gl": "^2.0.8", "echarts-gl": "^2.0.8",
"echarts-wordcloud": "^2.0.0", "echarts-wordcloud": "^2.0.0",
"element-ui": "2.15.6", "element-ui": "2.15.6",
"exceljs": "^4.4.0",
"file-saver": "2.0.1", "file-saver": "2.0.1",
"fuse.js": "3.4.4", "fuse.js": "3.4.4",
"highlight.js": "^11.2.0", "highlight.js": "^11.2.0",
@@ -65,6 +66,7 @@
"vuedraggable": "^2.20.0", "vuedraggable": "^2.20.0",
"vuex": "3.6.0", "vuex": "3.6.0",
"vxe-table": "^3.7.8", "vxe-table": "^3.7.8",
"vxe-table-plugin-export-xlsx": "legacy",
"xe-utils": "^3.5.11", "xe-utils": "^3.5.11",
"xlsx": "^0.18.5", "xlsx": "^0.18.5",
"zradmin": "file:" "zradmin": "file:"

View File

@@ -46,7 +46,11 @@ import * as echarts from 'echarts'
import ECharts from 'vue-echarts' import ECharts from 'vue-echarts'
// VXE-Table相关组件 // VXE-Table相关组件
import VXETable from 'vxe-table' import VXETable from 'vxe-table'
import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx'
import ExcelJS from 'exceljs'
VXETable.use(VXETablePluginExportXLSX, {
ExcelJS,
})
import 'vxe-table/lib/style.css' import 'vxe-table/lib/style.css'
import dataV from '@jiaminghi/data-view' import dataV from '@jiaminghi/data-view'
@@ -108,6 +112,7 @@ Vue.use(Element, {
}) })
Vue.use(VXETable) Vue.use(VXETable)
Vue.use(dataV) Vue.use(dataV)
Vue.use(AFTableColumn) Vue.use(AFTableColumn)
DictData.install() DictData.install()

View File

@@ -22,12 +22,14 @@
</el-form-item> </el-form-item>
<el-form-item label="站点" prop="siteNo"> <el-form-item label="站点" prop="siteNo">
<el-select v-model="queryParams.siteNo" placeholder="请选择站点" @change="selectChange"> <el-select v-model="queryParams.siteNo" placeholder="请选择站点" @change="selectChange">
<el-option label="全部" value=""></el-option>
<el-option v-for="item in siteOptions" :key="item.code" :label="item.name" :value="item.code"> <el-option v-for="item in siteOptions" :key="item.code" :label="item.name" :value="item.code">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="班组" prop="team"> <el-form-item label="班组" prop="team">
<el-select v-model="queryParams.team" placeholder="请选择班组" @change="selectChange"> <el-select v-model="queryParams.team" placeholder="请选择班组" @change="selectChange">
<el-option label="全部" value=""></el-option>
<el-option v-for="item in teamOptions" :key="item.code" :label="item.name" :value="item.code"> <el-option v-for="item in teamOptions" :key="item.code" :label="item.name" :value="item.code">
</el-option> </el-option>
</el-select> </el-select>
@@ -43,6 +45,7 @@
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 统计数据区域 --> <!-- 统计数据区域 -->
@@ -58,8 +61,9 @@
<!-- 数据区域 --> <!-- 数据区域 -->
<vxe-table size="mini" ref="xTable" border height="860px" :scroll-y="{ gt: 500 }" :data="dataList" <vxe-table size="mini" ref="xTable" border height="860px" :scroll-y="{ gt: 500 }" :data="dataList"
:loading="loading" :row-config="{ isHover: true, isCurrent: true, height: 60 }" :loading="loading" :row-config="{ isHover: true, isCurrent: true, height: 60 }"
:column-config="{ resizable: true }" :header-cell-style="headerCellStyle" :merge-cells="mergeCells" :column-config="{ resizable: true }" :header-cell-style="headerCellStyle" :export-config="exportConfig"
:cell-style="cellStyle" @menu-click="contextMenuClickEvent" :menu-config="tableMenu"> :merge-cells="mergeCells" :cell-style="cellStyle" @menu-click="contextMenuClickEvent"
:menu-config="tableMenu">
<vxe-colgroup title="工单信息" align="center" fixed="left"> <vxe-colgroup title="工单信息" align="center" fixed="left">
<vxe-column field="workOrder" title="工单号" align="center" width="100px" /> <vxe-column field="workOrder" title="工单号" align="center" width="100px" />
<vxe-column field="partNumber" title="零件号" align="center" width="100px" /> <vxe-column field="partNumber" title="零件号" align="center" width="100px" />
@@ -198,6 +202,26 @@ export default {
}, },
// 总记录数 // 总记录数
total: 0, total: 0,
exportConfig: {
types: ['xlsx'],
remote: false,
original: false,
isPrint: false,
mode: 'current',
message: true,
sheetMethod({ options, worksheet }) {
if (options.mergeCells && options.mergeCells.length) {
options.mergeCells.forEach(merge => {
worksheet.mergeCells(
merge.row + 1, // 起始行从1开始
merge.col + 1, // 起始列从1开始
merge.row + merge.rowspan, // 结束行
merge.col + merge.colspan // 结束列
);
});
}
}
}
}; };
}, },
created() { created() {
@@ -382,6 +406,20 @@ export default {
fontWeight: '600', fontWeight: '600',
} }
}, },
handleExport() {
const $table = this.$refs.xTable
if ($table) {
$table.exportData()
// 设置导出类型为 xlsx
// $table.exportData({
// type: 'xlsx',
// }).then(() => {
// console.log('导出成功');
// }).catch(error => {
// console.error('导出失败:', error);
// });
}
}
}, },
}; };
</script> </script>