基于element自動表格

需求是根據JSON文件生成表格,包含配置和自動props屬性以及過濾器;

數據示例:

表格設置:

/*** 表格表頭信息* @chineseToPinYin: 這是封裝的根據中文漢字轉換為拼音的方法* @prop: 表頭字段名* @filter: 數據過濾器* @label: 表頭顯示名稱*/
const tableTitle = [{ prop: chineseToPinYin('日期'), label: '日期', width: '160' },{ prop: chineseToPinYin('地點'), label: '地點', filter: addressFilter },{ prop: chineseToPinYin('早餐'), label: '早餐' },{ prop: chineseToPinYin('開會'), label: '開會' },{ prop: chineseToPinYin('紀要'), label: '紀要' },{ prop: chineseToPinYin('工作'), label: '工作' },{ prop: chineseToPinYin('午餐'), label: '午餐' },{ prop: chineseToPinYin('午休'), label: '午休' },{ prop: chineseToPinYin('下班'), label: '下班' }
]

addressFilter 過濾器:

function addressFilter (value) {return addressOptions.filter(i => i.value === value)[0].label
}

表格事件示例:

/*** 表格按鈕事件* @event: 按鈕事件名(子組件直接@eventName=handleCustomizeEvent)* @primary:按鈕類型(按鈕的顏色)*/
const tableButton = [{ label: '編輯', event: 'edit', type: 'primary' },{ label: '刪除', event: 'delete', type: 'danger' }
]

拋出示例:

export { tableTitle, tableButton }

組件示例:

<el-table ref="autoTable" size='mini'border stripe default-expand-allrow-key="id":data="data"tooltip-effect="dark":header-cell-style="headerCellStyle":cell-style="cellStyle"style="width: 100%"cell-class-name='custom-table'@cell-click="handleClickCells"@row-click="handleClickRow"@selection-change="handleSelectionChange"><!--左側自定義插槽--><slot name="before"></slot><!--左側是否有勾選--><el-table-column v-if="isChecked" fixed="left" label="全選" type="selection" width="40"></el-table-column><!--循環表格--><el-table-column v-for="(item, key) in title" :label="item.label" :width="item.width" :key="key"><template slot-scope="scope"><span v-if="item.filter">{{item.filter(scope.row[item.prop])}}</span><span v-else>{{scope.row[item.prop]}}</span></template></el-table-column>
<!--    <el-table-column v-for="(item, key) in title" :prop="item.prop" :label="item.label" :width="item.width" :key="key"/>--><!--右側自定義插槽--><slot name="after"></slot><!--右側按鈕集合--><el-table-column v-if="event.length" fixed="right" :width="event.length*70" label="操作"><template slot-scope="scope"><span class="customize-link" v-for="(item, key) in event" :key="key" @click="handleTableEvent(item.event, scope.$index, scope.row)"><el-link :type="item.type" :icon="item.icon" size="mini">{{item.label}}</el-link></span></template></el-table-column></el-table>

PROPS示例:

  props: {isChecked: {type: Boolean,default: false},title: {type: Array,default: () => ([])},data: {type: Array,default: () => ([])},event: {type: Array,default: () => ([])}}

methods示例:

  methods: {// 表格選擇行handleSelectionChange (row) {this.$emit('checkRow', row, this.$refs.autoTable)},// 表格操作事件handleTableEvent (event, index, row) {this.$emit(event, index, row)},// 單擊行handleClickRow (row, column, event) {this.$emit('clickRow', row, column, event)},// 選擇某個單元格handleClickCells (row, column, cell, event) {this.$emit('clickCell', row, column, cell, event)}}

頁面示例:

<auto-table is-checked :title="tableTitle" :data="mockTableData" :event="tableButton" @checkRow="handleTableCheckRow" @edit="handleClickTableEdit" @delete="handleClickTableDelete"/>

事件部分就不用叨叨了吧;

效果示例:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163211.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163211.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163211.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

最長連續序列【中等】

leetcode鏈接 給定一個未排序的整數數組 nums &#xff0c;找出數字連續的最長序列&#xff08;不要求序列元素在原數組中連續&#xff09;的長度。 請你設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1&#xff1a;輸入&#xff1a;nums [100,4,200,1,3,2] 輸出&am…

『new Date 在 IOS 失效 の bug』

問題&#xff1a;new Date()在安卓下正常&#xff0c;在IOS下顯示不出來。 原因&#xff1a;在IOS下&#xff0c;new Date(“2000-2-22 00:10”),返回的是undefined&#xff0c;因為IOS不支持這種類型格式。 解決&#xff1a;更換下格式&#xff1a;new Date(“2000/2/22”) …

類初始化,類加載,類加載器

類初始化&#xff0c;類加載&#xff0c;類加載器 1. 類加載1.1. 類的加載1.2. 類的鏈接1.2.1. 驗證1.2.2. 準備1.2.3. 解析 2. 類加載器2.1. 類加載器分為四種&#xff1a;前三種為虛擬機自帶的加載器。2.2. 類加載有三種方式&#xff1a;2.3. **JVM類加載機制**2.4. 雙親委派…

GeoTrust通配符證書:保護您的網站安全

GeoTrust通配符 SSL證書是一種特殊的 SSL 證書類型&#xff0c;它可以同時為您的主域名及其所有子域提供安全保護。無論您有多少個不同的子域需要保障&#xff0c;都可以通過單一的 GeoTrust 通配符 SSL 證書輕松實現&#xff0c;極大地簡化了管理流程并降低了成本。 此外&…

1688商品詳情數據接口(1688.item_get)

1688商品詳情數據接口是一種程序化的接口&#xff0c;通過這個接口&#xff0c;商家或開發者可以使用自己的編程技能&#xff0c;對1688平臺上的商品信息進行查詢、獲取和更新。這個接口允許商家根據自身的需求&#xff0c;獲取商品的詳細信息&#xff0c;例如價格、庫存、描述…

JUC(Java Util Concurrent)多線程并發庫

JUC&#xff08;Java Util Concurrent&#xff09;是Java中用于編寫多線程并發程序的庫。開發過程中使用JUC主要有以下幾個好處&#xff1a; 1. 提高程序性能&#xff1a;使用JUC可以實現多線程并發執行&#xff0c;充分利用多核CPU&#xff0c;提高程序的性能。 2. 簡化代碼…

群暉NAS搭建WebDav服務做文件共享,可隨時隨地遠程訪問

文章目錄 1. 在群暉套件中心安裝WebDav Server套件1.1 安裝完成后&#xff0c;啟動webdav服務&#xff0c;并勾選HTTP復選框 2. 局域網測試WebDav服務2.1 下載RaiDrive客戶端2.2 打開RaiDrive&#xff0c;設置界面語言可以選擇中文2.3 點擊添加按鈕&#xff0c;新建虛擬驅動區2…

從事軟件測試8年,對業務測試人員的一些思考

自從事測試工作八年多以來&#xff0c;經歷過三個部門多條業務線&#xff0c;也經歷過測試轉型再回到測試&#xff0c;在此過程中對測試工作和角色的認知也逐步有些思考&#xff0c;想把這些思考分享給大家&#xff0c;希望為業務測試同學提供一些有價值的思路。 同時&#xff…

YOLOV7主干改進,使用fasternet輕量化改進主干(完整教程)

1&#xff0c;Pconv&#xff08;來自Fasternet&#xff09;&#xff08;可作為模型中的基礎卷積模塊使用&#xff09; 論文鏈接&#xff1a;https://arxiv.org/abs/2303.03667 2&#xff0c;為了大家方便的使用&#xff0c;這里我對原本的PConv的代碼做了部分的改動&#xff0…

立哥尖端技術-云安全整合方案

云安全管理中心 安全管理中心具有集中管控云環境整體安全態勢的功能&#xff0c;具備以下功能&#xff1a; &#xff08;1&#xff09;部署方式&#xff1a;與云平臺緊耦合&#xff0c;可實現云平臺一鍵下單&#xff0c;自動交付。 &#xff08;2&#xff09;安全態勢總覽&a…

拿下掙值管理,軟考集成你就成功了一半!

在備考軟考集成的時候&#xff0c;掙值管理有多重要呢&#xff1f;掙值管理的計算題考的頻率非常高&#xff0c;基本上每年都會考。 而且&#xff0c;計算題基本上都是20分左右&#xff0c;只要能在這道計算題上得滿分&#xff0c;那么45分及格的考試就已經成功了一半。 今天…

豪華程度堪比飛機頭等艙?奔馳在北美發布Tourrider系列巴士

今年三月&#xff0c;奔馳工廠附近出現了一臺特殊的測試車。其突出的前保險杠以及豎置雙風擋等特殊配置&#xff0c;都在暗示著它并非是為歐洲市場打造。 根據特征推測&#xff0c;這臺車應該是為北美市場打造。 就在昨天&#xff0c;奔馳發布了旗下全新Tourrider系列豪華客車&…

python數據分析高效代碼合集

文章目錄 問題:我有5個dataframe,都包含time 列,如何將它們根據time列取交集,并保存到同一個excel的不同sheet頁中。**df1,df2, df3, df4, df5,其也要用取交集后的time列**問題:我有5個dataframe,都包含time 列,如何將它們根據time列取交集,并保存到同一個excel的不同…

npm安裝 node-sass

第一步&#xff1a;安裝node-gyp 1.: npm install node-gyp -g2.: node-gyp install3.: npm install node-sass

QML24、常規組件StackView

1.簡介與示例 StackView管理著view頁面的生命周期,提供了頁面的棧式導航。這些view頁面可能有業務需要,根據業務需要,可以一級一級向深處跳轉,根據當前view的狀態與設定的情況,可能產生一個新view或者返回之前view 比如:注冊賬號分步驟,輸入用戶名,密碼,點擊下…

嵌入式單片機方向和Linux驅動開發方向哪個發展前景好?

嵌入式單片機方向和Linux驅動開發方向哪個發展前景好&#xff1f; 在某些平臺上看到很多人鼓吹嵌入式Linux開發比單片機開發要好&#xff0c;讓所有人都去做嵌入式Linux開發。說這種話的人大多數是嵌入式Linux的培訓機構&#xff0c;或者是一開始就以嵌入式Linux入門的那一批人…

小型養豬場污水處理技術方案

諸城市鑫淼環保小編帶大家了解一下小型養豬場污水處理技術方案 1.初步處理&#xff1a; 豬舍設立固液分離裝置&#xff1a;這可以幫助將固體糞便與液體污水分開&#xff0c;減少進一步處理的難度和成本。 設置沉淀池&#xff1a;讓分離后的污水在沉淀池內停留&#xff0c;使部分…

Windows更換主板后一直提示,你的pin碼不可再用解決辦法

最近惠普電腦主板壞了&#xff0c;到售后去維修電腦更換了個主板。 在經過了一系列的重新開機后&#xff0c;就直接卡在了“你的pin碼不可再用”那里。 主要癥狀就是&#xff0c;一直點一直連不上windows的 microsoft賬戶&#xff0c;點完一會兒黑屏。然后就回到了一開頭的“你…

飛書如何接入ChatGPT-打造個人智能問答助手實現無障礙交流

目錄 前言 環境列表 1.飛書設置 2.克隆feishu-chatgpt項目 3.配置config.yaml文件 4.運行feishu-chatgpt項目 5.安裝cpolar內網穿透 6.固定公網地址 7.機器人權限配置 8.創建版本 9.創建測試企業 10. 機器人測試 總結 前言 在飛書中創建chatGPT機器人并且對話&am…

python連接數據庫的方式

python連接數據庫的方式 pyzenith.connect&#xff08;&#xff09;函數就是連接數據庫&#xff1b; exception.ScriptException&#xff08;&#xff09;這一句是自定義異常&#xff0c;可以不用我這個&#xff1b; finally里面還有一個try finally是有必要的&#xff0c;防止…