Files
mes-ui-d2/src/pages/demo/components/bigdata-table/index.vue
liyang f4a4087386 %full
Former-commit-id: 6b6b6fe892101c8a02cc6a997faf7c2996be682a [formerly 1080932e0e0d080528a6f69d87cd0a04e54655bd] [formerly 6b6b6fe892101c8a02cc6a997faf7c2996be682a [formerly 1080932e0e0d080528a6f69d87cd0a04e54655bd] [formerly 6b6b6fe892101c8a02cc6a997faf7c2996be682a [formerly 1080932e0e0d080528a6f69d87cd0a04e54655bd] [formerly 1080932e0e0d080528a6f69d87cd0a04e54655bd [formerly bfd356388e4e7b888c38a8924e25cf27934fed81 [formerly f9cae0a6098f73a04976fbdec103232c34a45cdd]]]]]
Former-commit-id: 4ab626b1631f3db9357c671260ea23acae3e26b5
Former-commit-id: 97c0f38ae0eddd5564f5b0d5092012974b241927
Former-commit-id: 37b4d8cfe57369e18bcf9c48101e0aa1c88f047a [formerly 89217d41cbd0ea3aa75d8b97e12d41427d13b553]
Former-commit-id: 766e7a630892b2db1c4920c8cee8653de0ca41a6
Former-commit-id: a91c451781878b8f3cf6b3a4f9a8eecbe5b7644f
Former-commit-id: 1e48587db872cf9ef30b5e90a9db8f97614d3e92
Former-commit-id: c0c38b9d639e9cbfc5b78101a2d14da315018b94
Former-commit-id: 663f8da447500cfed36211063002a5170cbe5a8d
2018-07-07 20:06:54 +08:00

138 lines
3.7 KiB
Vue

<template>
<d2-container>
<el-button-group slot="header">
<el-button size="mini" @click="scrollRowTo(2)">跳转到第3行</el-button>
<el-button size="mini" @click="scrollRowTo(Math.round(tableDataHandled.length * 0.8))">
跳转到第{{Math.round(tableDataHandled.length * 0.8) + 1}}
</el-button>
<el-button size="mini" @click="editCell">编辑第{{ editRow }}行第{{ editCol }}</el-button>
<el-button size="mini" @click="changeData(Math.round(Math.random() * 30000))">改变数据</el-button>
<el-button size="mini" @click="changeDefaultSort">改变默认排序方式</el-button>
</el-button-group>
<h1 class="d2-mt-0">当前数据量 {{tableDataHandled.length}}</h1>
<div class="wraper">
<bigdata-table
ref="table"
v-model="tableDataHandled"
:row-num="20"
:col-num="7"
show-index
start-edit-type="dblclick"
fixed
stripe
:col-width="200"
:header-height="50"
:can-edit="canEdit"
:at-right-cell-posi="20"
:at-left-cell-posi="40"
:columns="columns"
:index-render="indexRender"
:fixed-col="0"
:sort-index="2"
:default-sort="defaultSort"
selectable
paste
:beforeSave="beforeSave"
:disabled-hover="false"
@on-success-save="handleSuccessEdit"
@on-fail-save="handleFailEdit"
@on-moving-on-header="handleMoving"
@on-click-tr="handleClickTr"
@on-click-td="handleClickTd"/>
</div>
</d2-container>
</template>
<script>
/* eslint-disable */
// 本页是由 https://github.com/lison16/vue-bigdata-table/blob/master/src/App.vue 修改而来
// 由于原页面有太多的地方不符合本项目的代码规范,本页面不做代码检查
export default {
data () {
return {
tableData: [],
columns: [],
tableDataHandled: [], // 带有数据的表格数据
emptyData: [], // 空的表格数据
canEdit: true,
editRow: 1,
editCol: 1,
defaultSort: {1: 'down'}
}
},
watch: {
tableDataHandled (res) {
// res
}
},
methods: {
indexRender (h, index) {
return h('div', {}, index + 1)
},
handleMoving (e) {
// this.$log('handleMoving', e.atGivenArea + '......' + e.colIndex)
},
scrollRowTo (index) {
this.$refs.table.scrollToRow(index)
},
handleClickTr (index) {
this.$log('handleClickTr', index)
},
handleClickTd (params) {
this.$log('handleClickTd', params)
},
clickEditBtn () {
this.canEdit = !this.canEdit
},
beforeSave ({ row, col, value }) {
return (row + 1) % 2
},
handleSuccessEdit ({ row, col, value, initRowIndex }) {
this.$message(`${initRowIndex + 1}行第${initRowIndex + 1}列改为${value}`)
},
handleFailEdit (res) {
this.$message('偶数行不能编辑')
},
editCell () {
this.$refs.table.editCell(this.editRow - 1, this.editCol - 1)
},
changeData (rowLen) {
let dataArr = []
for (let i = 0; i < rowLen; i++) {
let arr = [
i + '00',
'count' + i,
'23.4534534345',
'0023' + i,
'123.234534534534',
'namenasdfsdfsdfsdfssdfsdfsdsdfsdfsf' + i,
'2014年1月1日'
]
dataArr.push(arr)
}
this.tableDataHandled = dataArr
},
changeDefaultSort () {
this.defaultSort = {2: 'up'}
}
},
mounted () {
this.changeData(10000)
let columns = ['这是数字', '这是字符1列', '这是纬度', '这是数字', '这是经度', '这是字符2列', '这是时间'].map((title, col) => {
return {
title: title,
align: 'center'
}
})
this.columns = columns
}
}
</script>
<style lang="scss">
.wraper{
height: 400px;
overflow: auto;
}
</style>