马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - <template>
- <div>
- <el-table :data="tableData" style="width: 100%" :span-method="objectSpanMethod">
- <el-table-column align="center" label="" prop="bigCategoryName" fixed></el-table-column>
- <el-table-column align="center" label="" prop="smallCategoryName" fixed></el-table-column>
- <el-table-column v-for="header in tableHeaders" align="center" :key="header.key" :prop="header.key"
- :label="header.label">
- <el-table-column v-show="header.children" v-for="child in header.children" align="center" :key="child.key"
- :prop="child.key" :label="child.label">
- <el-table-column v-show="child.children" v-for="child2 in child.newChildren" align="center"
- :label="child2.propName" :key="child2.key" :prop="child2.prop"></el-table-column>
- </el-table-column>
- </el-table-column>
- <el-table-column align="center" label="">
- <el-table-column align="center" label="累计">
- <el-table-column align="center" label="本日" prop="todayTotal" ></el-table-column>
- <el-table-column align="center" label="比率/出率" prop="rateTotal" ></el-table-column>
- <el-table-column align="center" label="月累计" prop="monthTotalTotal"></el-table-column>
- <el-table-column align="center" label="月比率/出率" prop="monthRateTotal" ></el-table-column>
- </el-table-column>
- <el-table-column align="center" label="上月比率/出率" prop="lastMonthRateTotal" width="100px"></el-table-column>
- </el-table-column>
- </el-table>
- </div>
- </template>
- <script>
- export default {
- name: 'table_test',
- data() {
- return {
- tableHeaders: [
- {
- "label": "孔令召",
- "children": [
- {
- "label": "白班",
- "newChildren": [
- {
- "prop": "todayShift",
- "propName": "本日",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "rateShift",
- "propName": "比率/出率",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "monthTotalShift",
- "propName": "月累计",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "monthRateShift",
- "propName": "月比率/月出率",
- "propDescribtion": null,
- "hasSort": false
- }
- ]
- }
- ]
- },
- {
- "label": "杨晓超",
- "children": [
- {
- "label": "中班",
- "newChildren": [
- {
- "prop": "todayMiddle",
- "propName": "本日",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "rateMiddle",
- "propName": "比率/出率",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "monthTotalMiddle",
- "propName": "月累计",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "monthRateMiddle",
- "propName": "月比率/月出率",
- "propDescribtion": null,
- "hasSort": false
- }
- ]
- }
- ]
- },
- {
- "label": "王文强",
- "children": [
- {
- "label": "夜班",
- "newChildren": [
- {
- "prop": "todayNight",
- "propName": "本日",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "rateNight",
- "propName": "比率/出率",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "monthTotalNight",
- "propName": "月累计",
- "propDescribtion": null,
- "hasSort": false
- },
- {
- "prop": "monthRateNight",
- "propName": "月比率/月出率",
- "propDescribtion": null,
- "hasSort": false
- }
- ]
- }
- ]
- }
- ],
- tableData: [
- {
- "bigCategoryName": "原料",
- "smallCategoryName": "投料量",
- "todayShift": 30340,
- "rateShift": 2150.0,
- "monthTotalShift": 45270.0,
- "monthRateShift": 2160.0,
- "todayMiddle": 32670,
- "rateMiddle": 2170.0,
- "monthTotalMiddle": 67550.0,
- "monthRateMiddle": 2170.0,
- "todayNight": 31700,
- "rateNight": 2190.0,
- "monthTotalNight": 67880.0,
- "monthRateNight": 2180.0,
- "todayTotal": 94710,
- "rateTotal": 2170.75,
- "monthTotalTotal": 180700,
- "monthRateTotal": 2170.05,
- "lastMonthRateTotal": 107.35
- },
- {
- "bigCategoryName": "辅料投入",
- "smallCategoryName": "辅料1",
- "todayShift": 70,
- "rateShift": 0.0,
- "monthTotalShift": 140.0,
- "monthRateShift": 0.01,
- "todayMiddle": 70,
- "rateMiddle": 0.0,
- "monthTotalMiddle": 140.0,
- "monthRateMiddle": 0.0,
- "todayNight": 70,
- "rateNight": 0.0,
- "monthTotalNight": 140.0,
- "monthRateNight": 0.0,
- "todayTotal": 210,
- "rateTotal": 4.81,
- "monthTotalTotal": 420,
- "monthRateTotal": 5.04,
- "lastMonthRateTotal": 144.27
- },
- {
- "bigCategoryName": "辅料投入",
- "smallCategoryName": "辅料2",
- "todayShift": 30,
- "rateShift": 0.0,
- "monthTotalShift": 60.0,
- "monthRateShift": 0.0,
- "todayMiddle": 30,
- "rateMiddle": 0.0,
- "monthTotalMiddle": 60.0,
- "monthRateMiddle": 0.0,
- "todayNight": 30,
- "rateNight": 0.0,
- "monthTotalNight": 60.0,
- "monthRateNight": 0.0,
- "todayTotal": 90,
- "rateTotal": 2.06,
- "monthTotalTotal": 180,
- "monthRateTotal": 2.16,
- "lastMonthRateTotal": 92.56
- },
- {
- "bigCategoryName": "辅料投入",
- "smallCategoryName": "辅料3",
- "todayShift": 2182.4,
- "rateShift": 160.0,
- "monthTotalShift": 3242.6,
- "monthRateShift": 0.16,
- "todayMiddle": 2335.85,
- "rateMiddle": 160.0,
- "monthTotalMiddle": 4817.4,
- "monthRateMiddle": 0.15,
- "todayNight": 2244.4,
- "rateNight": 160.0,
- "monthTotalNight": 4832.9,
- "monthRateNight": 0.16,
- "todayTotal": 6762.65,
- "rateTotal": 155,
- "monthTotalTotal": 12892.90,
- "monthRateTotal": 154.83,
- "lastMonthRateTotal": 126.1
- }
- ]
- }
- },
-
- mounted() {
- this.gettableList()
- },
- methods: {
- // 整体表格PC端合并列
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
- let that = this;
- // 因为日期在第一项,从0开始判断columnIndex === 0合并第一列
- if (columnIndex === 0) {
- // 当前行值及日期值为:bigCategoryName
- let idName = that.tableData[rowIndex].bigCategoryName;
- // rowIndex是行索引,判定第二行是不是和前面一行的日期值相同
- if (rowIndex > 0) {
- if (that.tableData[rowIndex].bigCategoryName != that.tableData[rowIndex - 1].bigCategoryName) {
- let i = rowIndex;
- let num = 0;
- // 遍历
- while (i < that.tableData.length) {
- if (that.tableData[i].bigCategoryName === idName) {
- i++;
- num++;
- } else {
- i = that.tableData.length;
- }
- }
- return {
- // 这里返回的num就是有相同的行数
- rowspan: num,
- // 合并几列,实例中只是跨行合并,不跨列合并,所以用的1
- colspan: 1,
- }
- } else {
- return {
- rowspan: 0,
- colspan: 1,
- }
- }
- } else {
- let i = rowIndex;
- let num = 0;
- while (i < that.tableData.length) {
- if (that.tableData[i].bigCategoryName === idName) {
- i++;
- num++;
- } else {
- i = that.tableData.length;
- }
- }
- return {
- rowspan: num,
- colspan: 1,
- }
- }
- }
- },
- gettableList(){
- let data={
- date:this.time,
- }
- productionProcessPC(data).then((response) => {
- this.tableData=response.data.list
- this.tableHeaders=response.data.tableHeaders
- })
- },
- };
- </script>
- <style lang='' scoped>
- </style>
复制代码 |