Avue-data數(shù)據(jù)大屏-自定義vue組件

自定義vue組件:

使用 Element UI 的<el-table>組件冕末,并根據(jù)設備組字段:device_group_desc,進行合并表格中的行:

1侣颂、動態(tài)生成列定義:根據(jù)數(shù)據(jù)動態(tài)生成列定義档桃。

2、合并行:根據(jù)相同的設備組字段:device_group_desc憔晒,來實現(xiàn)行合并藻肄。

效果如下:

<template>? ? <div style="overflow: auto">? ? ? ? {{dataChart.value}}? ? ? ? <el-table :data="filteredTableData" border class="custom-table" :span-method="spanMethod">? ? ? ? ? ? <el-table-column v-for="(column, index) in columns" :key="index" :prop="column.prop" :label="column.label"? ? ? ? ? ? ? ? :align="column.align" />? ? ? ? </el-table>? ? </div></template><script>? ? export default {? ? ? ? data() {? ? ? ? ? ? return {? ? ? ? ? ? ? ? // 原始數(shù)據(jù)? ? ? ? ? ? ? ? rawData: [? ? ? ? ? ? ? ? ? ? { device_group_desc: "1#達克羅線", batch_code: "2471-2", afqty: "3630/3775", product_spec: "M36*450", product_date: "2024-10-06", aaa: 123, work_shift: "機甲班組" },? ? ? ? ? ? ? ? ? ? { device_group_desc: "1#達克羅線", batch_code: "249143-2", afqty: "520/525", product_spec: "M56*760", product_date: "2024-09-27", work_shift: "機甲班組" },? ? ? ? ? ? ? ? ? ? { device_group_desc: "1#達克羅線", batch_code: "249325-2", afqty: "796/805", product_spec: "M52*470", product_date: "2024-09-27", work_shift: "機甲班組" },? ? ? ? ? ? ? ? ? ? { device_group_desc: "鋸床-1", batch_code: "246410-1", afqty: "670/690", product_spec: "Φ124*Φ66*100", product_date: "2024-10-16", work_shift: "機甲班組" },? ? ? ? ? ? ? ? ? ? { device_group_desc: "鋸床-2", batch_code: "246410-1", afqty: "670/690", product_spec: "Φ124*Φ66*100", product_date: "2024-10-16", aaa: 345, work_shift: "質(zhì)檢班組" }? ? ? ? ? ? ? ? ],? ? ? ? ? ? ? ? filteredTableData: [],? ? ? ? ? ? ? ? columns: [],? ? ? ? ? ? ? ? rowSpanObj: {},? ? ? ? ? ? };? ? ? ? },? ? ? ? computed: {? ? ? ? ? ? // 動態(tài)生成列定義? ? ? ? ? ? dynamicColumns() {? ? ? ? ? ? ? ? const keys = Object.keys(this.filteredTableData[0]);? ? ? ? ? ? ? ? return keys? ? ? ? ? ? ? ? ? ? .filter((key) => key !== "work_shift")? ? ? ? ? ? ? ? ? ? .map((key, index) => {? ? ? ? ? ? ? ? ? ? ? ? let str;? ? ? ? ? ? ? ? ? ? ? ? if (key === 'device_group_desc') {? ? ? ? ? ? ? ? ? ? ? ? ? ? str = "設備組"? ? ? ? ? ? ? ? ? ? ? ? } else {? ? ? ? ? ? ? ? ? ? ? ? ? ? str = `生產(chǎn)批次${index}`? ? ? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? ? ? return {? ? ? ? ? ? ? ? ? ? ? ? ? ? label: str, // 動態(tài)生成列名? ? ? ? ? ? ? ? ? ? ? ? ? ? prop: key,? ? ? ? ? ? ? ? ? ? ? ? ? ? width: "180",? ? ? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? });? ? ? ? ? ? },? ? ? ? },? ? ? ? methods: {? ? ? ? ? ? initData() {? ? ? ? ? ? ? ? const { rawData, rowSpanObj } = this;? ? ? ? ? ? ? ? // 篩選班組? ? ? ? ? ? ? ? const filteredData = rawData.filter(? ? ? ? ? ? ? ? ? ? (item) => item.work_shift === "機甲班組"? ? ? ? ? ? ? ? );? ? ? ? ? ? ? ? // 初始化列定義? ? ? ? ? ? ? ? this.columns = this.dynamicColumns;? ? ? ? ? ? },? ? ? ? ? ? // 合并方法? ? ? ? ? ? spanMethod({ row, column, rowIndex, columnIndex }) {? ? ? ? ? ? ? ? if (columnIndex === 0) { // 只合并第一列? ? ? ? ? ? ? ? ? ? if (rowIndex > 0 && row.device_group_desc === this.filteredTableData[rowIndex - 1].device_group_desc) {? ? ? ? ? ? ? ? ? ? ? ? // 如果當前行和前一行的 device_group_desc 相同,則合并? ? ? ? ? ? ? ? ? ? ? ? return {? ? ? ? ? ? ? ? ? ? ? ? ? ? rowspan: 0,? ? ? ? ? ? ? ? ? ? ? ? ? ? colspan: 1? ? ? ? ? ? ? ? ? ? ? ? };? ? ? ? ? ? ? ? ? ? } else {? ? ? ? ? ? ? ? ? ? ? ? // 否則拒担,計算 rowspan? ? ? ? ? ? ? ? ? ? ? ? let rowspan = 1;? ? ? ? ? ? ? ? ? ? ? ? for (let i = rowIndex + 1; i < this.filteredTableData.length; i++) {? ? ? ? ? ? ? ? ? ? ? ? ? ? if (row.device_group_desc === this.filteredTableData[i].device_group_desc) {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? rowspan++;? ? ? ? ? ? ? ? ? ? ? ? ? ? } else {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;? ? ? ? ? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? ? ? return {? ? ? ? ? ? ? ? ? ? ? ? ? ? rowspan: rowspan,? ? ? ? ? ? ? ? ? ? ? ? ? ? colspan: 1? ? ? ? ? ? ? ? ? ? ? ? };? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? return {? ? ? ? ? ? ? ? ? ? rowspan: 1,? ? ? ? ? ? ? ? ? ? colspan: 1? ? ? ? ? ? ? ? };? ? ? ? ? ? },? ? ? ? },? ? ? ? mounted() {? ? ? ? ? ? this.filteredTableData = this.rawData;? ? ? ? ? ? this.initData();? ? ? ? },? ? };</script><style scoped>? ? .el-table__cell {? ? ? ? color: #4484dc;? ? ? ? background-color: #142c44;? ? }? ? .custom-table .el-table__header th {? ? ? ? text-align: center;? ? ? ? background-color: #142c44;? ? ? ? /* 設置表頭字體大小 */? ? ? ? font-size: 16px;? ? }? ? .el-table__empty-block {? ? ? ? height: 100%;? ? ? ? background-color: #142c44;? ? }</style>
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嘹屯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子从撼,更是在濱河造成了極大的恐慌抚垄,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谋逻,死亡現(xiàn)場離奇詭異呆馁,居然都是意外死亡,警方通過查閱死者的電腦和手機毁兆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門浙滤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人气堕,你說我怎么就攤上這事纺腊。” “怎么了茎芭?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵揖膜,是天一觀的道長。 經(jīng)常有香客問我梅桩,道長壹粟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任宿百,我火速辦了婚禮趁仙,結果婚禮上,老公的妹妹穿的比我還像新娘垦页。我一直安慰自己雀费,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布痊焊。 她就那樣靜靜地躺著盏袄,像睡著了一般忿峻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辕羽,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天逛尚,我揣著相機與錄音,去河邊找鬼逛漫。 笑死黑低,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酌毡。 我是一名探鬼主播克握,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼枷踏!你這毒婦竟也來了菩暗?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旭蠕,失蹤者是張志新(化名)和其女友劉穎停团,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掏熬,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡佑稠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旗芬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌胶。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疮丛,靈堂內(nèi)的尸體忽然破棺而出幔嫂,到底是詐尸還是另有隱情,我是刑警寧澤誊薄,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布履恩,位于F島的核電站,受9級特大地震影響呢蔫,放射性物質(zhì)發(fā)生泄漏切心。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一咐刨、第九天 我趴在偏房一處隱蔽的房頂上張望昙衅。 院中可真熱鬧,春花似錦定鸟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春沸久,著一層夾襖步出監(jiān)牢的瞬間季眷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工卷胯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留子刮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓窑睁,卻偏偏與公主長得像挺峡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子担钮,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容