久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

el-table?動態合并不定項多級表頭的方法

瀏覽:4日期:2022-06-12 17:14:37

我們的需求是根據不同的廠配不同的多級表頭,每個表頭有需要合并的項,并且不確定

如圖所示

對表格進行循環操作,此處不贅述,最下方有全部代碼

表頭是單獨寫在js方便后期更改,然后引入js文件,然后根據情況去調取

// 獲取表頭 getHeader(nv) { this.factoryCodes = nv; this.headerRow2 = []; // 'xx污水處理廠' if (nv == 'zgjn-H WS 0101') {//修改表頭this.tableHeader = deviceRunReportHead[1];this.headerRow2 = ['紫外線殺菌裝置']; // 需要合并的表頭名稱數組 } else if (nv == 'zgjn-H WS 0106') {// xx污水處理廠this.tableHeader = deviceRunReportHead[2];this.headerRow2 = ['紫外線殺菌裝置', '除臭系統']; // 需要合并的表頭名稱數組 } else if (nv == 'zgjn-H WS 0105') {//xx污水處理廠this.tableHeader = deviceRunReportHead[3];this.headerRow2 = ['紫外線殺菌裝置', '除臭系統']; // 需要合并的表頭名稱數組 } else {// 其他廠this.tableHeader = deviceRunReportHead[3]; } // 刷新表格樣式 this.$nextTick(() => {this.$refs.slantTable.doLayout();this.getTableDom(); }); this.keyIndex++; // 此處是重點,更新完表頭之后必須強制刷新表格,否則上一次合并的信息會影響此次合并,keyIndex在el-table的key上, },

以下是合并方法

//表頭樣式設置,將“紫外線殺菌裝置”字段設置為行高2(默認是行高1),并將其所占行偏移的部分設置為none headerStyle({ row, column, rowIndex, columnIndex }) { if (this.headerRow2.includes(column.label)) {this.$nextTick(() => { if (document.getElementsByClassName(column.id).length !== 0) { document .getElementsByClassName(column.id)[0] .setAttribute('rowSpan', 2); // 默認合并兩行,因為我這都是最多只需要合并兩行 return false; }});return column; } if (column.label == undefined) { // 最后一層是沒有name的即沒有label,則取消合并return { display: 'none' }; } },

下方是全部vue代碼

<!-- 設備運行記錄表 --><template> <div class='deviceRunReport-template'> <pageIndexTemp @refresh='refreshTableDom'> <!-- 查詢框 --> <el-form ref='form' slot='searchBox' :model='form' inline size='small'><el-form-item label='日期' class='date_item'> <el-date-picker v-model='form.queryTimeDay' type='date' placeholder='選擇日期' value-format='yyyy-MM-dd' :clearable='false' > </el-date-picker></el-form-item><el-form-item label='城鎮污水處理廠'> <el-select v-model='form.assetCode' placeholder='請選擇城鎮污水處理廠' > <el-option v-for='item in townSwagePlantList' :key='item.id' :label='item.aname' :value='item.acode' > </el-option> </el-select></el-form-item><el-form-item> <el-button type='primary' icon='el-icon-search' @click='onSearch' size='mini' >篩選</el-button ></el-form-item> </el-form> <!-- 右邊按鈕 --> <div slot='btnsR'><el-button icon='el-icon-download' @click='onExport(1)' size='mini' type='primary' >按日導出</el-button><el-button icon='el-icon-download' @click='onExport(2)' v-if='type == 1' size='mini' type='primary' >按月導出</el-button> </div> <!-- 表格 --> <div slot='tablePage' v-loading='Loading'><div :style='{ '--slantOneColWidth': tableOneColWidth + 'px', '--tableWidth': tableWidth, }'> <el-table :data='tableData' ref='slantTable' :header-cell- border :key='keyIndex' > <el-table-column v-for='(column1, index) in tableHeader' :key='index' :label='column1.name' : : > <el-table-columnv-for='(column2, index2) in column1.columns':key='index2':prop='column2.prop':label='column2.name': : ><el-table-column v-for='(column3, index3) in column2.columns' :key='index3' :prop='column3.prop' :label='column3.name' : : > <template slot-scope='scope'> <!-- 編輯 --> <div v-if='(type == 3 && scope.row.isEdit && !disabledProp.includes(column3.prop)) || (type == 2 && scope.row.isEdit && scope.row.editProp.includes(column3.prop)) ' > <el-selectv-model='scope.row[column3.prop]'placeholder='請選擇'size='mini'clearable ><el-option v-for='item in options' :key='item.value' :label='item.label' :value='item.value'></el-option> </el-select> </div> <div v-else> {{disabledProp.includes(column3.prop) ? formatTime(scope.row[column3.prop]) : formatStatus(scope.row[column3.prop]) }} </div> </template></el-table-column><template slot-scope='scope'> <!-- 編輯 --> <div v-if=' (type == 3 &&scope.row.isEdit &&!disabledProp.includes(column2.prop)) ||(type == 2 && scope.row.isEdit && scope.row.editProp.includes(column2.prop)) ' > <el-select v-model='scope.row[column2.prop]' placeholder='請選擇' size='mini' clearable > <el-optionv-for='item in options':key='item.value':label='item.label':value='item.value' > </el-option> </el-select> </div> <div v-else> {{ disabledProp.includes(column2.prop)? formatTime(scope.row[column2.prop]): formatStatus(scope.row[column2.prop]) }} </div></template> </el-table-column> <template slot-scope='scope'><!-- 編輯 --><div v-if=' (type == 3 && scope.row.isEdit && !disabledProp.includes(column1.prop)) || (type == 2 &&scope.row.isEdit &&scope.row.editProp.includes(column1.prop)) '> <el-select v-model='scope.row[column1.prop]' placeholder='請選擇' size='mini' clearable > <el-option v-for='item in options' :key='item.value' :label='item.label' :value='item.value' > </el-option> </el-select></div><div v-else> {{ disabledProp.includes(column1.prop) ? formatTime(scope.row[column1.prop]) : formatStatus(scope.row[column1.prop]) }}</div> </template> </el-table-column> <el-table-column fixed='right' label='操作' v-if='type !== 1' > <template slot-scope='scope'><el-button type='primary' plain size='mini' v-if=' type == 3 && !scope.row.isEdit && compareTime(scope.row) ' @click='handleClickEdit(scope.$index, scope.row)' >編輯</el-button><el-button type='primary' plain size='mini' v-if=' type == 2 && ifShowEdit(scope.row) && !scope.row.isEdit && compareTime(scope.row) ' @click='handleClickEdit(scope.$index, scope.row)' >編輯</el-button><el-button type='primary' size='mini' v-if='scope.row.isEdit' @click='handleClickSaveRow(scope.$index, scope.row)' >保存</el-button> </template> </el-table-column> <div slot='append' class='appendTable'> 填表要求:1、正常運行:√; 2、故障:×;3、備用停機:△;4、其他:開機時間或停機時間等情況請填寫備注欄 </div> </el-table></div> </div> </pageIndexTemp> </div></template><script>import moment from 'moment';import cloneDeep from 'lodash.clonedeep';import { downloadXls, downloadZip } from '@/utils/download';import pageIndexTemp from '../../../components/pageIndexTemp.vue';import { deviceRunReportHead } from '@/utils/deviceRunReportHead.js';export default { name: 'deviceRunReport', components: { pageIndexTemp }, props: { // 說明: // 1 - 不可編輯,僅展示,默認值是1; // 2 - 空白處可編輯,保存后已填入部分不可編輯,單行無空白不出現任何按鈕; // 3 - 除部分固定字段外數據可編輯,出現按鈕 type: { type: Number, default: 1, }, }, filters: {}, data() { return { //查詢參數 form: {queryTimeDay: moment().format('yyyy-MM-DD'),assetCode: '', }, Loading: false, // 城鎮污水廠列表 townSwagePlantList: [], //表格數據 tableData: [], tableOneColWidth: 100, tableMinColumnWidth: 80, tableWidth: '0px', tableAlignDef: 'center', tableHeader: [], options: [{ label: '√', value: '0' },{ label: '△', value: '1' },{ label: '×', value: '2' }, ], disabledProp: ['time'], queryTime: '', assetCode: '', assetName: '', startForm: {}, factoryCodes: '', headerRow2: [], keyIndex: 1, }; }, mounted() { this.getTableDom(); }, created() { this.getTownSwagePlantList(); }, methods: { //查詢 onSearch() { // this.getHeader(this.form.assetCode); this.getTableData(); }, // 查詢城鎮污水廠列表 getTownSwagePlantList() { this.$api.reportManagement.getAssetList({ level: 1, cId: 42 }).then((res) => { this.townSwagePlantList = res.data || []; if (this.townSwagePlantList.length > 0) { this.form.assetCode = this.townSwagePlantList[0].acode; this.assetCode = this.form.assetCode; // this.getHeader(this.form.assetCode); // 獲取表頭 this.assetName = this.townSwagePlantList[0].aname; this.getTableData(); }}); }, // 獲取表頭 getHeader(nv) { this.factoryCodes = nv; this.headerRow2 = []; // 'xx污水處理廠' if (nv == 'zgjn-H WS 0101') {//修改表頭this.tableHeader = deviceRunReportHead[1];this.headerRow2 = ['紫外線殺菌裝置']; // 需要合并的表頭 } else if (nv == 'zgjn-H WS 0106') {// xx污水處理廠this.tableHeader = deviceRunReportHead[2];this.headerRow2 = ['紫外線殺菌裝置', '除臭系統']; // 需要合并的表頭 } else if (nv == 'zgjn-H WS 0105') {// xx污水處理廠this.tableHeader = deviceRunReportHead[3];this.headerRow2 = ['紫外線殺菌裝置', '除臭系統']; // 需要合并的表頭 } else {// 其他廠this.tableHeader = deviceRunReportHead[3]; } // 刷新表格樣式 this.$nextTick(() => {this.$refs.slantTable.doLayout();this.getTableDom(); }); this.keyIndex++; }, //查詢表格數據 getTableData() { this.Loading = true; this.queryTime = this.form.queryTimeDay; this.assetCode = this.form.assetCode; this.assetName =this.townSwagePlantList.find((item) => item.acode == this.assetCode) .aname || ''; this.startForm = JSON.parse(JSON.stringify(this.form)); this.$api.reportManagement.getDeviceState(this.form).then((res) => { if (res.code == 200) { this.tableData = res.data || []; this.getHeader(this.form.assetCode); // 獲取表頭 } else { this.$message.error(res.msg); } this.Loading = false;}).catch(() => { this.Loading = false;}); }, // 更新table dom refreshTableDom() { this.$nextTick(() => {this.$refs.slantTable.doLayout(); }); }, // 時間轉換 formatTime(val) { return moment(val).format('HH:mm'); }, //獲取table的DOM元素,篩查出el-table__header的DOM,并獲取其寬度,用以控制append部分的寬度設置 getTableDom() { let slantTable = this.$refs.slantTable; let tableDom = slantTable.$children.find((el) => el.$el.className == 'el-table__header' ); this.tableWidth = tableDom.table.bodyWidth; }, //表頭樣式設置,將“紫外線殺菌裝置”字段設置為行高2(默認是行高1),并將其所占行偏移的部分設置為none headerStyle({ row, column, rowIndex, columnIndex }) { if (this.headerRow2.includes(column.label)) {this.$nextTick(() => { if (document.getElementsByClassName(column.id).length !== 0) { document .getElementsByClassName(column.id)[0] .setAttribute('rowSpan', 2); return false; }});return column; } if (column.label == undefined) {return { display: 'none' }; } }, // 點擊導出按鈕 onExport(val) { if (this.form.assetCode == '' || this.form.queryTimeDay == '') {this.$message.warning('請選擇日期和污水廠后再進行導出');return; } let flag = JSON.stringify(this.form) == JSON.stringify(this.startForm); // 按日導出重新搜索列表 if (val == 1 && !flag) {this.getTableData(); } let obj = this.townSwagePlantList.find((item) => item.acode == this.form.assetCode ); let names =val == 1 ? this.form.queryTimeDay : moment(this.form.queryTimeDay).format('yyyy-MM') + '月'; if (obj) {this.handelDownload(obj, names, val); } }, // 下載xls/zip文件 handelDownload(obj, names, val) { let fileName = obj.aname + '設備運行記錄表' + names + '導出數據'; let newName = val == 1 ? '.xls' : '.zip'; this.$confirm(`此操作將下載'${fileName}${newName}' 文件, 是否繼續?`,'提示',{ confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning',} ).then(() => { const datas = { type: val, ...this.form, }; this.$api.reportManagement.exportDeviceState(datas).then((res) => { val == 1 ? downloadXls(res, fileName) : downloadZip(res, fileName); });}).catch(() => { this.$message({ type: 'info', message: `已取消下載${names}數據`, });}); }, // 判斷是否顯示編輯按鈕 ifShowEdit(row) { let cloneRow = cloneDeep(row); let arr = []; let keys = Object.keys(cloneRow); for (let i = 0; i < keys.length; i++) {if (!cloneRow[keys[i]]) { arr.push(keys[i]);} } return arr.length > 0 ? true : false; }, // 判斷當前時間是否會顯示編輯按鈕 compareTime(val) { let current = moment(new Date()).valueOf(); let time = moment(val.time).valueOf(); return time < current ? true : false; }, // 點擊編輯按鈕 handleClickEdit(index, row) { if (this.queryTime !== this.form.queryTimeDay ||this.assetCode !== this.form.assetCode ) {this.$message.warning('查詢條件和列表數據不一致,不可編輯!');return false; } this.$set(row, 'isEdit', true); // 當type=2時,部分可編輯 if (this.type == 2) {this.$set(row, 'editProp', []);let keys = Object.keys(row);for (let i = 0; i < keys.length; i++) { if (!row[keys[i]]) { row.editProp.push(keys[i]); }} } }, // 點擊保存按鈕 handleClickSaveRow(index, row) { console.log(index, row); let arr = this.multSaveIndexArr(); if (arr.length > 1) {this.$confirm('當前頁面存在多條數據需要保存, 是否繼續?', '提示', { confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning',}) .then(() => { let times = 0; arr.map((i) => { this.$set(this.tableData[i], 'isEdit', false); let editRow = cloneDeep(this.tableData[i]); if (this.type == 2) {delete editRow.editProp; } delete editRow.isEdit; this.$set(editRow, 'acquisitionTime', editRow.time); delete editRow.time; this.$api.reportManagement[editRow.id ? 'editDeviceData' : 'addDeviceData' ](editRow.id ? editRow : this.getAddRow(editRow)).then(() => {times++;if (times == arr.length) { this.$message.success('編輯成功'); this.getTableData();} }); }); }) .catch(() => { this.$message({ type: 'info', message: '已取消', }); }); } else {this.$set(row, 'isEdit', false);if (this.type == 2) { delete row.editProp;}let editRow = cloneDeep(row);delete editRow.isEdit;delete editRow.time;this.$set(editRow, 'acquisitionTime', row.time);if (editRow.id) { this.editEvent(editRow);} else { let addRow = this.getAddRow(editRow); console.log('addRow', addRow); this.addEvent(addRow);} } }, //獲取新增數據 getAddRow(row) { this.$set(row, 'acode', this.assetCode); this.$set(row, 'aname', this.assetName); return row; }, // 單條數據-新增事件 addEvent(form) { this.$api.reportManagement.addDeviceData(form).then((res) => {if (res.code == 200) { this.$message.success('編輯成功'); this.getTableData();} else { this.$message.error(res.msg);} }); }, // 單條數據-編輯事件 editEvent(form) { console.log('form', form); this.$api.reportManagement.editDeviceData(form).then((res) => {if (res.code == 200) { this.$message.success('編輯成功'); this.getTableData();} else { this.$message.error(res.msg);} }); }, // 判斷當前是否有多個保存的需求 multSaveIndexArr() { let arr = []; this.tableData.map((item, index) => {if (item.isEdit) { arr.push(index);} }); return arr; }, // 轉換狀態 formatStatus(val) { if (val) {let obj = this.options.find((item) => item.value == val);return obj ? obj.label : ''; } else {return val; } }, },};</script><style lang='less'>@import '../../../../assets/css/element-ui.less';.deviceRunReport-template { width: 100%; height: 100%; .date_item { margin: 0 20px 0 24px; } .table { height: 100%; .slantTableStyle { width: 100%; height: 100%; .appendTable {box-sizing: border-box;padding: 12px; } .el-table {.el-table__header { position: relative;}.el-table__append-wrapper { width: var(--tableWidth);}.el-table__body-wrapper { overflow: auto;}thead { &::before { width: var(--slantOneColWidth); height: 100%; position: absolute; top: 0; left: 0; display: block; content: ''; z-index: 1; box-sizing: border-box; background-image: linear-gradient( to bottom left, transparent 49.5%, @tableBorder, transparent 50.5% ); } &.is-group tr:first-of-type th:first-of-type { border-bottom: none; }} } } }}</style>

下面是js代碼

/** * 工藝運行記錄表表頭 */export const craftRunReportHead = { 1: [ { name: '巡視時間', prop: 'time', }, { name: '污水處理量', columns: [{ name: '進水瞬時 流量m3/h', prop: 'inInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'inInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'inInstantFlow2', rule: 'isFloat', }, ],},{ name: '出水瞬時 流量m3/h', prop: 'outInstantFlow', rule: 'isFloat',},{ name: '內回流瞬時 流量m3/h', prop: 'inGyrusInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'inGyrusInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'inGyrusInstantFlow2', rule: 'isFloat', }, ],},{ name: '外回流瞬時 流量m3/h', prop: 'exGyrusInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'exGyrusInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'exGyrusInstantFlow2', rule: 'isFloat', }, ],}, ], }, { name: 'PH值', columns: [{ columns: [ { name: '進水', prop: 'inPh', rule: 'isFloat', }, { name: '出水', prop: 'outPh', rule: 'isFloat', }, ],}, ], }, { name: 'COD mg/L', columns: [{ columns: [ { name: '進水', prop: 'inCod', rule: 'isFloat', }, { name: '出水', prop: 'outCod', rule: 'isFloat', }, ],}, ], }, { name: '氨氮mg/L', columns: [{ columns: [ { name: '進水', prop: 'inNh3n', rule: 'isFloat', }, { name: '出水', prop: 'outNh3n', rule: 'isFloat', }, ],}, ], }, { name: '總磷mg/L', columns: [{ columns: [ { name: '進水', prop: 'inTp', rule: 'isFloat', }, { name: '出水', prop: 'outTp', rule: 'isFloat', }, ],}, ], }, { name: '總氮mg/L', columns: [{ columns: [ { name: '進水', prop: 'inTn', rule: 'isFloat', }, { name: '出水', prop: 'outTn', rule: 'isFloat', }, ],}, ], }, { name: 'DO儀表mg/L', columns: [{ name: '厭氧池', columns: [ { name: '1#系列', prop: 'anaerobicTank1', rule: 'isFloat', }, { name: '2#系列', prop: 'anaerobicTank2', rule: 'isFloat', }, ],},{ name: '缺氧池', columns: [ { name: '1#系列', prop: 'anoxicPool1', rule: 'isFloat', }, { name: '2#系列', prop: 'anoxicPool2', rule: 'isFloat', }, ],},{ name: '1#好氧池', columns: [ { name: '前端', prop: 'aerobicTank1Before', rule: 'isFloat', }, { name: '后端', prop: 'aerobicTank1After', rule: 'isFloat', }, ],},{ name: '2#好氧池', columns: [ { name: '前端', prop: 'aerobicTank2Before', rule: 'isFloat', }, { name: '后端', prop: 'aerobicTank2After', rule: 'isFloat', }, ],}, ], }, { name: 'ORP儀表', columns: [{ name: 'mv', columns: [ { name: '厭氧池', prop: 'orpAnaerobicPool', rule: 'isFloat', }, ],},{ name: 'mv', columns: [ { name: '1#好氧池', prop: 'orpAerobicPool1', rule: 'isFloat', }, ],},{ name: 'mv', columns: [ { name: '2#好氧池', prop: 'orpAerobicPool2', rule: 'isFloat', }, ],}, ], }, { name: 'MLSS (污泥濃度)', columns: [{ name: 'mg/L', columns: [ { name: '1#好氧池', prop: 'mlss1', rule: 'isFloat', }, ],},{ name: 'mg/L', columns: [ { name: '2#好氧池', prop: 'mlss2', rule: 'isFloat', }, ],}, ], }, { name: 'SV30(2-4次/天)', columns: [{ name: '%', columns: [ { name: '1#好氧池', prop: 'sv30One', rule: 'isFloat', }, ],},{ name: '%', columns: [ { name: '2#好氧池', prop: 'sv30Two', rule: 'isFloat', }, ],}, ], }, { name: '進水溫度/鹽度', prop: 'inTemOrSal', rule: 'isFloat', }, ], 2: [ { name: '巡視時間', prop: 'time', }, { name: '污水處理量', columns: [{ name: '進水瞬時 流量m3/h', prop: 'inInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'inInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'inInstantFlow2', rule: 'isFloat', }, ],},{ name: '出水瞬時 流量m3/h', prop: 'outInstantFlow', rule: 'isFloat',},{ name: '內回流瞬時 流量m3/h', prop: 'inGyrusInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'inGyrusInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'inGyrusInstantFlow2', rule: 'isFloat', }, ],},{ name: '外回流瞬時 流量m3/h', prop: 'exGyrusInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'exGyrusInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'exGyrusInstantFlow2', rule: 'isFloat', }, ],}, ], }, { name: 'PH值', columns: [{ columns: [ { name: '進水', prop: 'inPh', rule: 'isFloat', }, { name: '出水', prop: 'outPh', rule: 'isFloat', }, ],}, ], }, { name: 'COD mg/L', columns: [{ columns: [ { name: '進水', prop: 'inCod', rule: 'isFloat', }, { name: '出水', prop: 'outCod', rule: 'isFloat', }, ],}, ], }, { name: '氨氮mg/L', columns: [{ columns: [ { name: '進水', prop: 'inNh3n', rule: 'isFloat', }, { name: '出水', prop: 'outNh3n', rule: 'isFloat', }, ],}, ], }, { name: '總磷mg/L', columns: [{ columns: [ { name: '進水', prop: 'inTp', rule: 'isFloat', }, { name: '出水', prop: 'outTp', rule: 'isFloat', }, ],}, ], }, { name: '總氮mg/L', columns: [{ columns: [ { name: '進水', prop: 'inTn', rule: 'isFloat', }, { name: '出水', prop: 'outTn', rule: 'isFloat', }, ],}, ], }, { name: 'DO儀表mg/L', columns: [{ name: '厭氧池', columns: [ { name: '1#系列', prop: 'anaerobicTank1', rule: 'isFloat', }, { name: '2#系列', prop: 'anaerobicTank2', rule: 'isFloat', }, ],},{ name: '缺氧池', columns: [ { name: '1#系列', prop: 'anoxicPool1', rule: 'isFloat', }, { name: '2#系列', prop: 'anoxicPool2', rule: 'isFloat', }, ],},{ name: '1#好氧池', columns: [ { name: '前端', prop: 'aerobicTank1Before', rule: 'isFloat', }, { name: '后端', prop: 'aerobicTank1After', rule: 'isFloat', }, ],},{ name: '2#好氧池', columns: [ { name: '前端', prop: 'aerobicTank2Before', rule: 'isFloat', }, { name: '后端', prop: 'aerobicTank2After', rule: 'isFloat', }, ],}, ], }, { name: 'MLSS (污泥濃度)', columns: [{ name: 'mg/L', columns: [ { name: '1#好氧池', prop: 'mlss1', rule: 'isFloat', }, ],},{ name: 'mg/L', columns: [ { name: '2#好氧池', prop: 'mlss2', rule: 'isFloat', }, ],}, ], }, { name: 'SV30(2-4次/天)', columns: [{ name: '%', columns: [ { name: '1#好氧池', prop: 'sv30One', rule: 'isFloat', }, ],},{ name: '%', columns: [ { name: '2#好氧池', prop: 'sv30Two', rule: 'isFloat', }, ],}, ], }, { name: '二沉池泥水界面儀', columns: [{ name: 'm', columns: [ { name: '1#二沉池', prop: 'sedimentationTank1', rule: 'isFloat', }, ],},{ name: 'm', columns: [ { name: '2#二沉池', prop: 'sedimentationTank2', rule: 'isFloat', }, ],}, ], }, { name: '進水溫度/鹽度', prop: 'inTemOrSal', rule: 'isFloat', }, ], // 其他水廠 3: [ { name: '巡視時間', prop: 'time', }, { name: '污水處理量', columns: [{ name: '進水瞬時 流量m3/h', prop: 'inInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'inInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'inInstantFlow2', rule: 'isFloat', }, ],},{ name: '出水瞬時 流量m3/h', prop: 'outInstantFlow', rule: 'isFloat',},{ name: '內回流瞬時 流量m3/h', prop: 'inGyrusInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'inGyrusInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'inGyrusInstantFlow2', rule: 'isFloat', }, ],},{ name: '外回流瞬時 流量m3/h', prop: 'exGyrusInstantFlow', rule: 'isFloat', columns: [ { name: '1#系列', prop: 'exGyrusInstantFlow1', rule: 'isFloat', }, { name: '2#系列', prop: 'exGyrusInstantFlow2', rule: 'isFloat', }, ],}, ], }, { name: 'PH值', columns: [{ columns: [ { name: '進水', prop: 'inPh', rule: 'isFloat', }, { name: '出水', prop: 'outPh', rule: 'isFloat', }, ],}, ], }, { name: 'COD mg/L', columns: [{ columns: [ { name: '進水', prop: 'inCod', rule: 'isFloat', }, { name: '出水', prop: 'outCod', rule: 'isFloat', }, ],}, ], }, { name: '氨氮mg/L', columns: [{ columns: [ { name: '進水', prop: 'inNh3n', rule: 'isFloat', }, { name: '出水', prop: 'outNh3n', rule: 'isFloat', }, ],}, ], }, { name: '總磷mg/L', columns: [{ columns: [ { name: '進水', prop: 'inTp', rule: 'isFloat', }, { name: '出水', prop: 'outTp', rule: 'isFloat', }, ],}, ], }, { name: '總氮mg/L', columns: [{ columns: [ { name: '進水', prop: 'inTn', rule: 'isFloat', }, { name: '出水', prop: 'outTn', rule: 'isFloat', }, ],}, ], }, { name: 'DO儀表mg/L', columns: [{ name: '厭氧池', columns: [ { name: '1#系列', prop: 'anaerobicTank1', rule: 'isFloat', }, { name: '2#系列', prop: 'anaerobicTank2', rule: 'isFloat', }, ],},{ name: '缺氧池', columns: [ { name: '1#系列', prop: 'anoxicPool1', rule: 'isFloat', }, { name: '2#系列', prop: 'anoxicPool2', rule: 'isFloat', }, ],},{ name: '1#好氧池', columns: [ { name: '前端', prop: 'aerobicTank1Before', rule: 'isFloat', }, { name: '后端', prop: 'aerobicTank1After', rule: 'isFloat', }, ],},{ name: '2#好氧池', columns: [ { name: '前端', prop: 'aerobicTank2Before', rule: 'isFloat', }, { name: '后端', prop: 'aerobicTank2After', rule: 'isFloat', }, ],}, ], }, { name: 'MLSS (污泥濃度)', columns: [{ name: 'mg/L', columns: [ { name: '1#好氧池', prop: 'mlss1', rule: 'isFloat', }, ],},{ name: 'mg/L', columns: [ { name: '2#好氧池', prop: 'mlss2', rule: 'isFloat', }, ],}, ], }, { name: 'SV30(2-4次/天)', columns: [{ name: '%', columns: [ { name: '1#好氧池', prop: 'sv30One', rule: 'isFloat', }, ],},{ name: '%', columns: [ { name: '2#好氧池', prop: 'sv30Two', rule: 'isFloat', }, ],}, ], }, { name: '二沉池泥水界面儀', columns: [{ name: 'm', columns: [ { name: '1#二沉池', prop: 'sedimentationTank1', rule: 'isFloat', }, ],},{ name: 'm', columns: [ { name: '2#二沉池', prop: 'sedimentationTank2', rule: 'isFloat', }, ],},{ name: 'm', columns: [ { name: '3#二沉池', prop: 'sedimentationTank3', rule: 'isFloat', }, ],},{ name: 'm', columns: [ { name: '4#二沉池', prop: 'sedimentationTank4', rule: 'isFloat', }, ],}, ], }, { name: '進水溫度/鹽度', prop: 'inTemOrSal', rule: 'isFloat', }, ],};

到此這篇關于el-table 動態合并不定項多級表頭的方法的文章就介紹到這了,更多相關el-table 動態合并不定項表頭內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
主站蜘蛛池模板: 国产精品一区二区无线 | 欧美一级毛片久久99精品蜜桃 | 国产精品久久久久久久久免费 | 一区二区三区回区在观看免费视频 | 成人午夜在线视频 | 久久综合九色综合欧美狠狠 | 久久精品免费一区二区三区 | 亚洲香蕉在线观看 | 久热精品视频 | 精品国产不卡一区二区三区 | 一区二区久久 | 操操操av | 日韩在线二区 | 国产精品久久久久久久久久久久久 | 国产精品久久久一区二区 | 色综合天天天天做夜夜夜夜做 | www.久久 | 亚洲国产精品一区二区久久 | 亚洲国产日韩a在线播放性色 | 美女视频久久 | 日韩免费视频 | 黄色av网站在线免费观看 | www.色94色.com| 亚洲欧美日韩国产综合 | 亚洲美女av在线 | 欧美日韩中文 | 国产精品国产 | 亚洲欧美国产一区二区三区 | 黄色在线 | 成人免费xxxxxxx| 久久精品一区视频 | 国产精品中文字幕在线 | 91国内外精品自在线播放 | 免费的日批视频 | 欧美乱淫| 日韩色综合 | 6080yy午夜一二三区久久 | 精品国产99 | 黄免费观看 | 国产一区二区三区四区在线观看 | 久久人人爽爽爽人久久久 | 北条麻妃99精品青青久久主播 | 久久91精品国产91久久跳 | 在线精品亚洲欧美日韩国产 | 亚洲视频在线观看 | 老司机深夜福利视频 | 91精品国产综合久久久亚洲 | 国产午夜精品久久久久久久 | 亚洲国产成人在线 | 亚洲一区二区三区免费观看 | 国产无区一区二区三麻豆 | 九九热这里只有精品8 | 欧美一区二区三区电影 | 婷婷久久综合九色综合绿巨人 | 青青久视频 | 91中文字幕| 日本三级欧美三级 | 欧美成视频 | 成人午夜精品一区二区三区 | 欧美精品一区二区在线观看 | 91av在线视频播放 | 国产视频久久 | 欧美在线操 | 午夜精品久久久久久久 | 国产激情精品一区二区三区 | 成人免费大片黄在线播放 | 欧美一区| 一级大片一级一大片 | 天天综合网7799精品 | 在线免费视频一区 | www.日本精品| a级在线 | 久久av资源网 | 国产一级在线观看 | 久久久久久久久久久久91 | 成人看片免费 | 日本三级在线网站 | 国产日韩欧美一区二区在线观看 | 久草资源在线视频 | 亚洲精品九九 | 日韩欧美三区 | 国产一级特黄 | 国产综合在线视频 | 美女超碰 | 狠狠操夜夜操 | 午夜羞羞 | 99久久九九| 狠狠综合久久av一区二区老牛 | 狠狠操操| 日本黄色片免费看 | 欧美极品视频 | 午夜免费观看视频 | 亚洲高清视频在线 | 日韩欧美精品一区二区三区 | av看片网 | 欧美国产在线观看 | 日本三级在线观看网站 | 国产精品成人在线观看 | 婷婷狠狠 | 欧美成人猛片aaaaaaa | 精品视频一区二区三区在线观看 | 久久久精品国产 | 欧美国产日本一区 | 日韩中文字幕电影 | 国产精品久久久久久吹潮 | 久久国产精品毛片 | 91高清在线 | 成人国产精品久久久 | 国产精品福利在线 | 中文字幕乱码亚洲精品一区 | 免费中文字幕日韩欧美 | 伊人小视频 | 国产精品久久久99 | 国产精品一区二区三区在线播放 | 在线播放国产精品 | 久久久久久综合 | 成人免费淫片aa视频免费 | 久草综合网 | 噜噜噜噜狠狠狠7777视频 | 国产超碰人人模人人爽人人添 | 久久国产精彩视频 | 日韩精品一区二区三区中文在线 | 一区二区免费 | 国产中文字幕一区 | 日韩电影免费在线观看中文字幕 | 日韩av片在线免费观看 | 国产91一区 | 国产精品毛片一区二区三区 | 欧洲一区在线 | 欧美在线一二三 | www.毛片 | 日韩在线中文字幕 | 欧美激情精品久久久久 | 中文字幕在线影院 | 久久久.com | 天天操妹子 | 久久另类ts人妖一区二区 | 精品国产青草久久久久福利 | 国产精品1区2区 | 精品欧美一区二区精品久久久 | 精品久久久久久久久久久久 | 天天摸天天摸 | 直接看av的网站 | 成人一区二区在线 | 国产精品久久久久久久久久99 | 91免费看 | 国产精品美女久久久久久免费 | 亚洲一区二区在线电影 | 成人在线免费 | 国产传媒在线视频 | 中文字幕在线观看一区二区三区 | 欧美白人做受xxxx视频 | 干干人人 | 激情视频在线观看 | 91精品久久久久久久久久 | 狠狠插狠狠操 | 四虎小视频 | 欧美精品在线不卡 | 久久久久国产 | 国产毛片毛片 | 在线观看国精产品二区1819 | 日本在线一区 | 亚洲一区二区三区免费在线观看 | 精品国产鲁一鲁一区二区三区 | 99视频在线免费观看 | 97人人超碰| 久久精品一区二区三区四区 | 日韩在线视频一区 | 亚洲色图在线播放 | 99视频免费在线观看 | 国产一区二区三区视频 | 国产91亚洲精品久久久 | 欧美a在线| a级在线| 欧美一区在线观看视频 | 在线免费视频一区 | 国产成人午夜高潮毛片 | 亚洲精选国产 | 99亚洲精品 | 激情999| 日日爱视频 | 天天干天天添 | 久久兔费看a级 | 亚洲一区二区三区爽爽爽爽爽 | 日本黄色大片免费 | 97在线播放 | 亚洲性片| 日日精品 | 亚洲精品国产精品国自产 | 最新黄色网址在线播放 | 日韩成人在线观看 | 亚洲一区二区在线 | 国产一区www | 欧美黑人一级爽快片淫片高清 | 欧美亚洲国产日韩 | 免费观看国产视频在线 | 国产三区在线视频 | 亚洲成人精品 | 精品国产乱码久久久久夜 | 亚洲欧洲精品一区二区三区 | 欧美日韩午夜精品 | 欧美日韩一 | 日韩视频网 | 亚洲日韩欧美一区二区在线 | 国产精品视频区 | www.日韩系列 | 国产日韩精品一区二区 | 日韩在线视频观看 | 91视频爱爱| 午夜免费剧场 | 日韩欧美在线播放 | 91亚洲精| 91精品久久久久久久久久 | 亚洲一区在线视频 | 久在线视频 | 欧美一级免费看 | 日本不卡一区二区三区在线观看 | 日韩看片 | 一级毛片免费网站 | 成人午夜在线视频 | 亚洲精品国产综合区久久久久久久 | 亚洲成人一二区 | 希岛爱理在线 | 欧美精品综合 | 国产激情偷乱视频一区二区三区 | 久久久久久免费毛片精品 | 国产3区| 99re在线视频| 国产日韩精品一区二区 | 欧美日在线| 久久人人爽人人爽 | 亚洲精品高清视频 | 亚洲欧美国产另类 | 特级淫片裸体免费看 | 国产精品久久久久久网站 | 中文字幕在线观看 | 亚洲精久久 | 男人亚洲天堂网 | 欧美视频在线免费看 | 欧美亚洲免费 | 精品综合 | 一区二区三区在线播放视频 | 国产成人精品综合 | 国产成人天天爽高清视频 | 欧美狠狠操 | 久久婷婷视频 | 欧美精品一区二区三区一线天视频 | 中文字幕亚洲一区 | 一区二区三区精品视频 | 国产一区二区三区在线免费观看 | 久久免费精品视频 | 久久精品欧美 | 久久精品国产99国产精2020新增功能 | 丁香久久| 91资源在线观看 | 999久久久国产999久久久 | 成人欧美一区二区三区在线播放 | 国产成人在线免费观看 | 国产精品久久久久久久久久久久久久 | 日韩一二三区视频 | 天堂在线中文 | 久久av资源| 久久综合爱 | 亚洲欧洲一区 | 国产91久久精品一区二区 | 欧美一级片在线 | 日韩综合一区 | 久久99一区二区 | 伊人热久久婷婷 | 男女深夜视频 | 蜜桃视频麻豆女神沈芯语免费观看 | 综合久久久 | 黄色日批视频 | 在线视频91| 成人在线观看网 | 在线99热| 成人中文字幕在线 | 日韩欧美国产精品综合嫩v 高清av网站 | 国产成人不卡 | 中文字幕视频 | 蜜桃官网 | 亚洲精品日韩激情欧美 | 国产精品一区在线看 | 国产精品美女久久久久久免费 | 免费av在线网站 | 国产视频一区二区 | 久久久久a| 亚洲二区在线 | 毛片a片| 精品一区久久 | 日韩视频在线观看视频 | h小视频 | 国产目拍亚洲精品99久久精品 | 2022中文字幕 | 国产一区在线免费 | 久久免费精品视频 | 中文字幕在线视频网站 | 亚洲欧美日韩在线 | 一区二区日韩在线观看 | 成全视频免费观看在线看黑人 | 午夜精品一区二区三区在线观看 | 欧美色综合一区二区三区 | 久草视频在线播放 | 国产在视频一区二区三区吞精 | 午夜欧美| 中文字幕在线播放一区 | 精品国产黄a∨片高清在线 99热婷婷 | 不卡在线 | 精品久久一区二区三区 | 国产视频一区二区 | 日韩在线免费 | 成人精品免费视频 | 范冰冰一级做a爰片久久毛片 | 亚洲一区二区三区四区五区中文 | 国产精品亲子伦av一区二区三区 | 国产免费一区二区三区 | 久久1区| 国产欧美精品区一区二区三区 | 国产欧美日韩一区 | 久久精品欧美 | 中文字幕一区二区三区在线视频 | 天堂亚洲| 在线精品亚洲欧美日韩国产 | 成人一区二区电影 | 欧美日韩一级在线观看 | 天天曰夜夜操 | 中文字幕在线看 | 国产一区二区三区免费 | 国产高清在线精品 | 欧美顶级毛片在线播放 | 成人黄色a | 亚洲一级黄色 | 国产精品一区二区三区在线播放 | 情趣视频在线免费观看 | 国产一级免费视频 | 91成人免费在线观看 | 在线观看日韩 | 午夜国产精品视频 | 亚洲视频在线观看 | 91资源在线 | 国产黄色网址在线观看 | 毛片综合| 久久久久久av | av电影中文字幕在线观看 | 成人特区| 你懂的免费在线观看 | 91精品国产综合久久久久久丝袜 | 玖玖玖视频| 草草成人 | 国产成人a亚洲精品 | 国产色片在线 | 最近中文字幕免费观看 | 久久精品国产99国产 | 国产一级在线观看 | 1000部精品久久久久久久久 | 国产精品久久久久久亚洲调教 | 日韩在线网| 亚洲高清网 | 国产激情精品一区二区三区 | 99亚洲| 一级毛片免费看 | 国产不卡视频 | 国产成人在线一区二区 | 在线看av网址| 欧美精品影院 | 中文字幕在线观看第一页 | 天天看天天操 | 综合精品久久久 | 视频一区二区三区中文字幕 | 日韩在线观看一区 | 日韩精品视频在线观看免费 | 日本一区二区精品 | 国产精品亚洲第一区在线暖暖韩国 | 国产精品乱码久久 | 国产精品国产三级国产a | 国产精品久久久久久久久动漫 | av免费观看网页 | 日韩一区二区三区在线看 | 国内精品一区二区 | 99精品免费观看 | 日本欧美久久久久免费播放网 | 99国产精品久久久久久久 | 免费观看一级视频 | 一区三区视频 | 亚洲高清免费 | 在线国产一区 | 中文字幕在线观看亚洲 | www.一区二区 | 国产伦精品一区二区三区在线 | 国产91在线播放精品91 | 久久国产一区二区 | 91香蕉视频 | 日韩欧美在线视频播放 | 亚洲一区二区精品视频 | 欧美一区二区免费 | 亚洲精品二区 | 亚洲精品一区二区三区99 | 成年人免费看 | 伊人激情综合网 | 亚洲一区二区在线视频 | 狠久久 | 久久精选视频 | 免费一级毛片 | 国产女人和拘做受在线视频 | 我要看a级毛片 | 91精品国产欧美一区二区成人 | 中文字幕在线一区二区三区 | 国产中文字幕在线观看 | 免费观看a视频 | 日本 欧美 国产 | 五月在线视频 | 欧美性猛片 | 在线观看中文视频 | 九九视频这里只有精品 | 一区二区中文字幕在线观看 | 91中文字幕网 | 天天夜碰日日摸日日澡 | 黄色一级片黄色一级片 | 欧美一区二区免费在线 | 成人免费在线 | 国产欧美在线观看 | 九九综合 | 五月婷婷激情网 | 91亚洲精品乱码久久久久久蜜桃 | 久久国产高清 | 91精品久久久久久久久久入口 | 在线观看免费视频黄 | 欧美freesex交免费视频 | 亚洲一区 | 99热精品久久 | 久久精品首页 | 精品综合久久 | 99热在线播放 | 毛片免费观看网址 | 日韩毛片 | 中文字幕视频在线观看 | 成人不卡在线观看 | 亚洲精品国产一区 | 蜜桃视频在线观看www社区 | 91国在线高清视频 | 在线成人www免费观看视频 | 中文字幕亚洲欧美精品一区四区 | 日本免费www| 在线成人av | 一级欧美| 99视频免费观看 | 日韩国产在线看 | 中文av一区| 亚洲高清一区二区三区 | 国产999免费视频 | 欧美与黑人午夜性猛交久久久 | 中文字幕一区二区三区乱码图片 | a级片在线观看 | 91精品久久久久久久久中文字幕 | av黄色在线看 | 日本妇乱大交xxxxx | 日韩一区二区黄色片 | 亚洲精品在线看 | 亚洲欧洲综合av | 国产伦精品一区二区 | 日韩综合一区二区 | 在线观看国产 | 亚洲一区二区黄 | 免费日韩av| 黄色免费高清视频 | 在线精品国产 | 亚洲激情在线 | 中文字幕在线永久 | 最新黄色网址在线播放 | 91精品久久久久久久久久 | 中文字幕视频在线播放 | 中文字幕在线播放一区 | 亚洲精品一区二区三区在线播放 | h视频在线免费观看 | 黄色一级片免费 | 欧美福利一区二区 | 777kkk999成人ww | 亚洲成人中文字幕 | 亚洲精品一区二区三区蜜桃久 | 成人黄页在线观看 | 欧美一区二区三区黄 | 亚洲国产精品精华液网站 | 99久久婷婷国产综合精品电影 | 欧美成人福利 | 国产a一三三四区电影 | 久久九精品 | 精品成人久久 | 男人天堂99| 91国偷自产一区二区三区亲奶 | 99热这里有精品 | 99久久婷婷国产综合精品电影 | 成人午夜av | 国产美女在线播放 | 久久综合中文字幕 | 欧美日韩亚洲一区 | 欧美一级视频在线观看 | 久久久日韩精品一区二区三区 | 日本一区二区三区在线视频 | 精品久久久久久国产 | 亚洲香蕉在线观看 | 一区二区三区国产视频 | 国产精品中文字幕在线观看 | 一区二区三区国产 | 精品久久久久久久久久久下田 | 欧美日韩精品一区二区三区蜜桃 | 在线观看视频一区二区 | 精品一区二区三区免费毛片爱 | 精品国产乱码久久久久久闺蜜 | 日韩成人一区二区 | 亚洲成人精品 | 美女久久久久 | 粉嫩高清一区二区三区 | 91成人短视频在线观看 | 乱人伦xxxx国语对白 | 凹凸日日摸日日碰夜夜 | 亚洲综合99 | 亚洲一二三 | 在线观看亚洲专区 | 日韩在线免费 | 国产视频99| 中文字幕 国产精品 | 亚洲一区二区三区免费在线 | 伊人爱爱网| 国产中文一区 | 国产精品一区欧美 | 亚洲精品成人无限看 | 欧美精品欧美精品系列 | 国产精品片aa在线观看 | 日本在线免费 | 日韩一区二区在线观看 | 亚洲在线免费观看 | 日韩欧美一区二区三区免费观看 | 国产精品久久久久久久一区探花 | 欧美一级二级视频 | 国产大奶视频 | 成人午夜精品一区二区三区 | 亚洲欧美精品久久 | 波多野结衣一二三区 | 国产毛片精品 | 免费黄色在线观看 | 久久久久久综合 | 亚洲午夜视频 | 色婷婷综合网 | 欧美片网站免费 | 中文字幕亚洲欧美日韩在线不卡 | 欧美日韩精品一区二区三区四区 | 亚洲一区中文 | 午夜黄色影院 | 99久久99热这里只有精品 | av中文字幕在线播放 | 国产亚洲一区二区精品 | 国产精品美女久久久久久久网站 | 亚洲日本韩国欧美 | 国产在线在线 | 99视频免费| 九色一区 | 99久久99久久久精品色圆 | www.788.com色淫免费 | 亚洲午夜精品一区二区三区他趣 | 成人国产一区 | 91原创视频在线观看 | 九九九色 | 999成人网| 免费xxxx大片国产在线 | 久久久精品免费观看 | av免费看在线 | 国产精品69毛片高清亚洲 | 久久九| 国产欧美精品一区二区色综合 | 中文字幕国产视频 | 琪琪午夜伦伦电影福利片 | 午夜无码国产理论在线 | 国产欧美日韩 | 精品乱子伦一区二区三区 | 亚洲成人福利在线观看 | 日韩爱爱免费视频 | 不卡中文一区 | www.久久精品 | 91丨九色丨国产在线 | 亚洲国产91| 亚洲一区精品在线 | 精品久久av | 啪啪网免费 | 91精品国产乱码久久蜜臀 | 在线 丝袜 欧美 日韩 制服 | 国产精品国产三级国产aⅴ无密码 | 日韩av免费在线观看 | 欧美在线视频播放 | 美女一区 | 九色国产 | 四虎影院最新网址 | 国产一区二 | 亚洲91在线| 99国产精品99久久久久久 | 久久久久久九九九九九九 | 一区久久| 欧美中文在线 | 久久99精品久久久久久琪琪 | 国产精品久久久久久久粉嫩 | 97在线观看视频 | 欧美 日韩 国产 一区 | 91视频网址 | 欧美国产精品一区 | 成人午夜免费网站 | 免费av在线网站 | 日韩国产欧美在线观看 | 国产一级一级特黄女人精品毛片 | av免费网站在线观看 | 亚洲欧洲一区二区 | 国产一区二区三区免费 | 四虎永久免费在线 | 97精品久久| 国产精品久久久久久久久软件 | 国产一区亚洲 | 国产一区二区视频在线观看 |