element-datatable

element-datatable

一款基于element-ui的表格插件秕磷,支持所有element-ui的屬性和方法掀虎,可以接受本地數(shù)據(jù)和ajax參數(shù)異步請求服務器數(shù)據(jù)

A form plug-in based on element-ui that supports the properties and methods of all element-ui and can accept local data or ajax parameter asynchronous request server data

相關依賴 Dependencies

基本用法 Build Setup

  • 安裝 install
npm i element-datatable -S
  • 在項目中引入element-ui依賴,參見http://element.eleme.io. 引入element相關的css等文件.

  • 使用本地數(shù)據(jù) use local data

<template>
  <div id="app">
    <element-datatable :column-attributes="columnAttributes" :data="tableData" />
  </div>
</template>

<script>
import { ElementDatatable  } from '@/components'

export default {
  name: "App",
  components: {
    ElementDatatable
  },
  data() {
    return {
      tableData: [
        {
          date: '2018-09-30',
          content: '123',
          isDelay: false,
          delayReason: '',
          checked: true
        }
      ],
      columnAttributes: [ // columnAttributes里面的屬性與table-column attributes 一致, 但是采用小駝峰命名
        { label: "序號", type: 'index', width: '50', align: 'center' },
        { type: 'selection', align: 'center', width: 55 },
        { label: '日期', prop: 'date', width: '120', align: 'center', sortable: true },
        { label: '工作內容', prop: 'content', headerAlign: 'center', },
        { label: '工期是否延誤', prop: 'isDelay', headerAlign: 'center', width: 130 },
        { label: '延誤原因', prop: 'delayReason', headerAlign: 'center' }
      ]
    }
  }
}
</script>
  • 使用ajax獲取數(shù)據(jù) get data by ajax
<template>
  <div id="app">
    <element-datatable :column-attributes="columnAttributes" :ajax="ajax" />
  </div>
</template>

<script>
import ElementDatatable from './components'

export default {
  name: "App",
  components: {
    ElementDatatable
  },
  data() {
    return {
      tableData: [
        {
          date: '2018-09-30',
          content: '123',
          isDelay: false,
          delayReason: '',
          checked: true
        }
      ],
      columnAttributes: [
        { label: "序號", type: 'index', width: '50', align: 'center' },
        { type: 'selection', align: 'center', width: 55 },
        { label: '日期', prop: 'date', width: '120', align: 'center', sortable: true },
        { label: '工作內容', prop: 'content', headerAlign: 'center', },
        { label: '工期是否延誤', prop: 'isDelay', headerAlign: 'center', width: 130 },
        { label: '延誤原因', prop: 'delayReason', headerAlign: 'center' }
      ],
      ajax: { // 支持傳入完整的ajax對象
        url: '',
        method: '',
        headers: {},
        params: {},
        data: {}
      }
    }
  }
}
</script>

有關el-table和el-table-column使用方法泳炉,請參考element-ui相關說明

其它功能 Other property & event

  • 支持所有的el-table、el-table-column屬性、事件和方法.

  • checked-prop
    僅在tyep="selection"時有效,該屬性接收一個字符串指定某一屬性或方法,通過驗證數(shù)據(jù)的指定屬性值確認是否選中該條數(shù)據(jù)围苫;方法接收兩個參數(shù)(row, index), 通過返回true或false指定該數(shù)據(jù)是否選中

  • selectAbleProp
    僅在tyep="selection"時有效裤园,該屬性接收一個字符串指定某一屬性,通過驗證數(shù)據(jù)的該屬性值判斷是否可選剂府,作用與el-table-column的selectable屬性相同拧揽。

ElementDatatable Attributes

參數(shù) 說明 類型 可選值 默認值
ajax 用于向后端發(fā)送ajax請求, 類型為string時接收一個url地址, 類型為object時接收整個ajax對象腺占, 默認使用get方式 string / object -- --
serverParams 表格請求的查詢條件淤袜、請求參數(shù) object -- --
showLoading 表格請求時是否顯示loading加載 boolean -- true
columnAttributes 表格列的屬性, 屬性值與element table-column attributes 一致衰伯, 但是采用小駝峰命名規(guī)則 array -- --
checkedProp 僅對 type=selection 的列有效铡羡, 指定默認選中, 或者傳入一個函數(shù)意鲸,返回一個Boolean 表示是否選中 string/function(row, index) -- --
selectAbleProp 僅對 type=selection 的列有效烦周,與表格列中的selectAble屬性作用一致,決定這一行的 CheckBox 是否可以勾選 string -- --
createdUnload 指定表格初始化的時候是否發(fā)送請求獲取數(shù)據(jù) boolean -- false
pageIndexKey 指定表格的pageIndex屬性 string -- pageIndex
pageSizeKey 指定表格的pageSize屬性 string -- pageSize
dataKey 指定后臺返回數(shù)據(jù)的key值 string -- tbody
totalKey 指定后臺返回表格總條數(shù)的key值 string -- --
data 采用本地數(shù)據(jù)時有效怎顾,顯示的數(shù)據(jù) array -- --
height Table 的高度读慎,默認為自動高度。如果 height 為 number 類型槐雾,單位 px夭委;如果 height 為 string 類型,則這個高度會設置為 Table 的 style.height 的值募强,Table 的高度會受控于外部樣式株灸。 string/number -- --
max-height Table 的最大高度 string/number -- --
stripe 是否為斑馬紋 table boolean -- false
border 是否帶有縱向邊框 boolean -- true
size Table 的尺寸 string medium / small / mini --
fit 列的寬度是否自撐開 boolean -- true
show-header 是否顯示表頭 boolean -- true
highlight-current-row 是否要高亮當前行 boolean -- false
current-row-key 當前行的 key,只寫屬性 string/number -- --
row-class-name 行的 className 的回調方法擎值,也可以使用字符串為所有行設置一個固定的 className蚂且。 Function({row, rowIndex})/String -- --
row-style 行的 style 的回調方法,也可以使用一個固定的 Object 為所有行設置一樣的 Style幅恋。 Function({row, rowIndex})/Object -- --
cell-class-name 單元格的 className 的回調方法杏死,也可以使用字符串為所有單元格設置一個固定的 className。 Function({row, column, rowIndex, columnIndex})/String -- --
cell-style 單元格的 style 的回調方法,也可以使用一個固定的 Object 為所有單元格設置一樣的 Style淑翼。 Function({row, column, rowIndex, columnIndex})/Object -- --
header-row-class-name 表頭行的 className 的回調方法腐巢,也可以使用字符串為所有表頭行設置一個固定的 className。 Function({row, rowIndex})/String -- --
header-row-style 表頭行的 style 的回調方法玄括,也可以使用一個固定的 Object 為所有表頭行設置一樣的 Style冯丙。 Function({row, rowIndex})/Object -- --
header-cell-class-name 表頭單元格的 className 的回調方法,也可以使用字符串為所有表頭單元格設置一個固定的 className遭京。 Function({row, column, rowIndex, columnIndex})/String -- --
header-cell-style 表頭單元格的 style 的回調方法胃惜,也可以使用一個固定的 Object 為所有表頭單元格設置一樣的 Style。 Function({row, column, rowIndex, columnIndex})/Object -- --
row-key 行數(shù)據(jù)的 Key哪雕,用來優(yōu)化 Table 的渲染船殉;在使用 reserve-selection 功能的情況下,該屬性是必填的斯嚎。類型為 String 時利虫,支持多層訪問:user.info.id,但不支持 user.info[0].id堡僻,此種情況請使用 Function糠惫。 Function(row)/String -- --
empty-text 空數(shù)據(jù)時顯示的文本內容,也可以通過 slot="empty" 設置 String -- 暫無數(shù)據(jù)
default-expand-all 是否默認展開所有行钉疫,當 Table 中存在 type="expand" 的 Column 的時候有效 Boolean -- false
expand-row-keys 可以通過該屬性設置 Table 目前的展開行硼讽,需要設置 row-key 屬性才能使用,該屬性為展開行的 keys 數(shù)組牲阁。 Array --
default-sort 默認的排序列的 prop 和順序理郑。它的prop屬性指定默認的排序的列,order指定默認排序的順序 Object order: ascending, descending 如果只指定了prop, 沒有指定order, 則默認順序是ascending
tooltip-effect tooltip effect 屬性 String dark/light --
show-summary 是否在表尾顯示合計行 Boolean -- false
sum-text 合計行第一列的文本 String -- 合計
summary-method 自定義的合計計算方法 Function({ columns, data }) -- --
span-method 合并行或列的計算方法 Function({ row, column, rowIndex, columnIndex }) -- --
select-on-indeterminate 在多選表格中咨油,當僅有部分行被選中時您炉,點擊表頭的多選框時的行為。若為 true役电,則選中所有行赚爵;若為 false,則取消選擇所有行 Boolean -- true
small 是否使用小型分頁樣式 boolean -- false
background 是否為分頁按鈕添加背景色 -- false
page-count 總頁數(shù)法瑟,total 和 page-count 設置任意一個就可以達到顯示頁碼的功能冀膝;如果要支持 page-sizes 的更改,則需要使用 total 屬性 Number -- --
pager-count 頁碼按鈕的數(shù)量霎挟,當總頁數(shù)超過該值時會折疊 number 大于等于 5 且小于等于 21 的奇數(shù) 7
layout 組件布局窝剖,子組件名用逗號分隔 String sizes, prev, pager, next, jumper, ->, total, slot 'prev, pager, next, jumper, ->, total'
page-sizes 每頁顯示個數(shù)選擇器的選項設置 number[] -- [10, 20, 30, 50, 100]
popper-class 每頁顯示個數(shù)選擇器的下拉框類名 string -- --
prev-text 替代圖標顯示的上一頁文字 string -- --
next-text 替代圖標顯示的下一頁文字 string -- --
disabled 是否禁用分頁按鈕 boolean -- false

ElementDatatable Events

事件名 說明 參數(shù)
select 當用戶手動勾選數(shù)據(jù)行的 Checkbox 時觸發(fā)的事件 selection, row
select-all 當用戶手動勾選全選 Checkbox 時觸發(fā)的事件 selection
selection-change 當選擇項發(fā)生變化時會觸發(fā)該事件 selection
cell-mouse-enter 當單元格 hover 進入時會觸發(fā)該事件 row, column, cell, event
cell-mouse-leave 當單元格 hover 退出時會觸發(fā)該事件 row, column, cell, event
cell-click 當某個單元格被點擊時會觸發(fā)該事件 row, column, cell, event
cell-dblclick 當某個單元格被雙擊擊時會觸發(fā)該事件 row, column, cell, event
row-click 當某一行被點擊時會觸發(fā)該事件 row, event, column
row-contextmenu 當某一行被鼠標右鍵點擊時會觸發(fā)該事件 row, event
row-dblclick 當某一行被雙擊時會觸發(fā)該事件 row, event
header-click 當某一列的表頭被點擊時會觸發(fā)該事件 column, event
header-contextmenu 當某一列的表頭被鼠標右鍵點擊時觸發(fā)該事件 column, event
sort-change 當表格的排序條件發(fā)生變化的時候會觸發(fā)該事件 { column, prop, order }
filter-change 當表格的篩選條件發(fā)生變化的時候會觸發(fā)該事件,參數(shù)的值是一個對象酥夭,對象的 key 是 column 的 columnKey赐纱,對應的 value 為用戶選擇的篩選條件的數(shù)組脊奋。 filters
current-change 當表格的當前行發(fā)生變化的時候會觸發(fā)該事件,如果要高亮當前行疙描,請打開表格的 highlight-current-row 屬性 currentRow, oldCurrentRow
header-dragend 當拖動表頭改變了列的寬度的時候會觸發(fā)該事件 newWidth, oldWidth, column, event
expand-change 當用戶對某一行展開或者關閉的時候會觸發(fā)該事件 row, expandedRows

ElementDatatable Methods

方法名 說明 參數(shù)
reloadData 重新加載表格數(shù)據(jù),可以新加參數(shù)座位查詢字段 searchObj

ElementDatatable Slot

slot
slot name=“first”

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末诚隙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子起胰,更是在濱河造成了極大的恐慌久又,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件效五,死亡現(xiàn)場離奇詭異地消,居然都是意外死亡,警方通過查閱死者的電腦和手機畏妖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門脉执,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瓜客,你說我怎么就攤上這事适瓦「涂” “怎么了谱仪?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長否彩。 經(jīng)常有香客問我疯攒,道長,這世上最難降的妖魔是什么列荔? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任敬尺,我火速辦了婚禮,結果婚禮上贴浙,老公的妹妹穿的比我還像新娘砂吞。我一直安慰自己,他們只是感情好崎溃,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布蜻直。 她就那樣靜靜地躺著,像睡著了一般袁串。 火紅的嫁衣襯著肌膚如雪概而。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天囱修,我揣著相機與錄音赎瑰,去河邊找鬼。 笑死破镰,一個胖子當著我的面吹牛餐曼,可吹牛的內容都是我干的压储。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼晋辆,長吁一口氣:“原來是場噩夢啊……” “哼渠脉!你這毒婦竟也來了?” 一聲冷哼從身側響起瓶佳,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤芋膘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霸饲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體为朋,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年厚脉,在試婚紗的時候發(fā)現(xiàn)自己被綠了习寸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡傻工,死狀恐怖霞溪,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情中捆,我是刑警寧澤鸯匹,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站泄伪,受9級特大地震影響殴蓬,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蟋滴,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一染厅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧津函,春花似錦肖粮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蕉堰,卻和暖如春凌净,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屋讶。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工冰寻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人皿渗。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓斩芭,卻偏偏與公主長得像轻腺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子划乖,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345