vue封裝可編輯表格

1.組件UsualiyTable.js部分践叠。

import Vue from 'vue';

/**封裝公共可編輯表格(不含搜索條件)

* 傳過來的參數(shù)dataSource? 代表表格數(shù)據(jù)

* columns? 代表表格表頭

* total? 代表數(shù)據(jù)條數(shù)(分頁時使用)

* onChange? 代表數(shù)據(jù)回調(diào)函數(shù)? 傳給父級所搜條件值在父級請求新數(shù)據(jù)

* name? 代表表格類名? 可以控制不同表格樣式

* pagination? 代表是否分頁 (傳pagination={true}表示分頁表格郊霎, 不傳表示展示表格不做分頁處理)

* sortable? 代表是否有排序箭頭

* allChange? allChange={1}代表與全選的選擇框

* 要想表格表內(nèi)可以編輯? 表頭要render()進(jìn)行判斷? 數(shù)據(jù)要加上edit=false表示可編輯表格蟹漓。

*/

export default {

name: 'UsualiyTable',

data() {

return {

page: 1,

pageSize: 10,

order: 'createDate',

multipleSelection: []

};

},

props: ['dataSource', 'columns', 'total', 'onChange', 'allChange', 'deleteFunc', 'pagination', 'sortable', 'loading'],

computed: {

},

beforeUpdate(nextProps) {

//外面查詢數(shù)據(jù)注入進(jìn)來

// if (this.dataSource) {

//? ? this.searchObject = this.searchList;

//? ? this.searchObject1 = this.search;

// }

},

methods: {

//表頭渲染方法如果不是方法泛释,返回value的值? 如果是? 請執(zhí)行方法

renderHeader: (value, item, index) => {

if (typeof value === 'function') {

return value(item, index);

}

return value;

},

//表格每一列渲染方法? 如果有返回方法? 請執(zhí)行 否則輸出值

renderRow: (render, row, columns, value, index, render1) => {

if (typeof render === 'function') {

value = render(value, row, index);

}

return value;

},

change() {

let obj = {

page: this.page,

pageSize: this.pageSize,

order: this.order

};

this.$emit('change', obj);

},

handleSizeChange(value) {

console.log('value11', value);

this.pageSize = value;

this.page = 1;

this.change();

},

handleCurrentChange(value) {

console.log('value', value);

this.page = value;

this.change();

},

submit() {

this.change();

},

//全選時候賦值并且返回選擇結(jié)果

handleSelectionChange(val) {

this.multipleSelection = val;

this.$emit('deleteFunc', val);

console.log('multipleSelection', val);

},

//排序

sortMaskListData(param) {

this.sort = param.prop;

if (param.order === 'ascending') {

this.order = 'asc';

} else {

this.order = 'desc';

}

this.change();

},

//表格內(nèi)行選中值

handleSelectGoods(row) {

this.$emit('rowClick', row);

}

},

render() {

let _this = this;

return (

{

_this.allChange === 1 ?

type="selection"

width="55">

: ''

}

{

_this.columns.length > 0 ? _this.columns.map(function(item, index) {

if (item.sortable) {

return (

header-align='center'

align={item.align || 'left'}

label={_this.$STR(item.label, item.title)}

prop={item.dataIndex}

key={item.key || item.dataIndex}

render-header={_this.renderHeader.bind(null, item.title, _this.dataSource[index], index)}

width={item.width || ''}

formatter={_this.renderRow.bind(null, item.render)}

show-overflow-tooltip={true}

sortable

>

);

} else {

return (

header-align='center'

align={item.align || 'left'}

label={_this.$STR(item.label, item.title)}

prop={item.dataIndex}

key={item.key || item.dataIndex}

render-header={_this.renderHeader.bind(null, item.title, _this.dataSource[index], index)}

width={item.width || ''}

formatter={_this.renderRow.bind(null, item.render)}

show-overflow-tooltip={true}

>

);

}

}) : ''

}

{

_this.pagination ?

on-size-change={(value) => { _this.handleSizeChange(value); }}

on-current-change={(value) => { _this.handleCurrentChange(value); }}

current-page={_this.page}

page-sizes={[10, 20, 30, 40]}

page-size={_this.pageSize}

layout="total, sizes, prev, pager, next, jumper"

total={_this.total || 0}>

: ''

}

);

}

};

2.頁面調(diào)用部分直接導(dǎo)入這個組件衫哥,傳入需要顯示的表格表頭以及從后臺請求返回的表格數(shù)據(jù)圃伶,如果是分頁的話,傳入pagination

={true}

表示此表格是可以分頁的烈疚,傳入頁數(shù)黔牵,條數(shù),一頁多少條等參數(shù)即可爷肝,以下是父級頁面使用組件的方法以及所要傳入的參數(shù),要想表格可編輯陆错,可在render()里面return

一個input,或者開關(guān)等表單組件灯抛,直接上代碼。

1.表頭部分:

columns: [{

title: '序列',

dataIndex: 'index',

key: 'index',

width: '50',

align: 'right',

label: 'Operation:Delete:Hint', //可以做多語言的_this.$STR('', '序列')

render: (value, item, index) => {

return index + 1;

}

},

{

title: '訂單編號',

dataIndex: 'orderNo',

key: 'orderNo',

sortable: true,

render: (value, item) => {

return

{? this.detailsNewApplic(item); }}>{value}
;

}

},

{

title: '申請碼量',

dataIndex: 'applyAmount',

key: 'applyAmount',

align: 'right',

sortable: true,

render: (value, item) => {

//console.log('typeof', typeof value);

let apply = item.apply ? item.apply : {};

let b = apply.applyAmount.toString().replace(/(\d{1,3})(?=(\d{3})+$)/g, function($1) { return $1 = $1 + ','; });

return b;

}

}

},

{

title: '操作',

dataIndex: '',

key: '',

render: (value, item) => {

if (item.status === 0 || item.status === 2) {

return (

{ this.addNewApplic(item); }}>審核

);

} else {

return (

);

}

}

}

], //表格頭部數(shù)據(jù)

引入組件音瓷,傳入數(shù)據(jù)


3.組件回調(diào)分頁后調(diào)用父組件的請求后臺數(shù)據(jù)方法this.getData()為調(diào)用后臺請求.



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末对嚼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子绳慎,更是在濱河造成了極大的恐慌纵竖,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杏愤,死亡現(xiàn)場離奇詭異靡砌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)珊楼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門通殃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厕宗,你說我怎么就攤上這事画舌《榈#” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵曲聂,是天一觀的道長霹购。 經(jīng)常有香客問我,道長朋腋,這世上最難降的妖魔是什么齐疙? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮乍丈,結(jié)果婚禮上剂碴,老公的妹妹穿的比我還像新娘。我一直安慰自己轻专,他們只是感情好忆矛,可當(dāng)我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著请垛,像睡著了一般催训。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宗收,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天漫拭,我揣著相機(jī)與錄音,去河邊找鬼混稽。 笑死采驻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匈勋。 我是一名探鬼主播礼旅,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼洽洁!你這毒婦竟也來了痘系?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤饿自,失蹤者是張志新(化名)和其女友劉穎汰翠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昭雌,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡复唤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了城豁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苟穆。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雳旅,到底是詐尸還是另有隱情跟磨,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布攒盈,位于F島的核電站抵拘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏型豁。R本人自食惡果不足惜僵蛛,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迎变。 院中可真熱鬧充尉,春花似錦、人聲如沸衣形。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谆吴。三九已至倒源,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間句狼,已是汗流浹背笋熬。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留腻菇,地道東北人胳螟。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像筹吐,于是被迫代替她去往敵國和親旺隙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,666評論 2 350

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