elementui表格⽗⼦表_vue+element-ui实现主⼦表
需要实现如下效果
⼀般ERP中,订单数据都分为汇总信息与明细信息,然后在查询的时候⼀次性从后台查询多条订单json数据,并将汇总信息展⽰到表格中。但是明细信息也是⽤户需要关注的,⽐如⽤户可能会想知道某个订单⾥⾯具体包含哪些商品,下单数量分别是多少。这时候就需要能够点击具体汇总信息⾏数据的时候,在下⽅展⽰出对应的明细数据。
实现要点
1、主表格绑定 @expand-change 事件
2、增加展开列,并在展开列中再加⼀个table(作为⼦表)
3、methods中增加rowExpand⽅法具体实现
rowExpand(row, expandeRows) {
console.log('点开了' + derId)
console.derDetails)
const _this = this
_derDetailData = derDetails
}
完整代码如下
v-if="checkPermission(['ADMIN'])"
:ref="derId"
placement="top"
width="180">
确定删除本条数据吗?
取消
确定删除
:total="total"
layout="total, prev, pager, next, sizes"
@size-change="sizeChange"
@current-change="pageChange"/>
import checkPermission from '@/utils/permission'
import initData from '@/mixins/initData'
import { parseTime } from '@/utils/index'
import eHeader from './module/header'
import { del } from '@/api/ordersMan'
import edit from './module/edit'
export default {
components: { eHeader, edit },
mixins: [initData],
data() {
return {
// delLoading: false, sup_this: this, orderDetailData: [{ orderId: '11111', skuName: 'ddddddd' }, { orderId: '22222', skuName: 'ffffffff' }]
delLoading: false, sup_this: this, orderDetailData: null
}
},
created() {
this.$nextTick(() => {
this.init()
})
},
methods: {
parseTime,
checkPermission,
beforeInit() {
this.url = 'api/orders'
const sort = 'orderId,desc'
this.params = { page: this.page, size: this.size, sort: sort }
const query = this.query
const type = pe
const value = query.value
if (type && value) { this.params[type] = value }
return true
},
subDelete(orderId) {
this.delLoading = true
del(orderId).then(res => {
this.delLoading = false
this.$refs[orderId].doClose()
this.$notify({
title: '删除成功',
type: 'success',
duration: 2500
})
}).catch(err => {
vue element adminthis.delLoading = false
this.$refs[orderId].doClose()
console.ssage)
})
},
rowExpand(row, expandeRows) {
console.log('点开了' + derId)
console.derDetails)
const _this = this
_derDetailData = derDetails
}
}
}
.demo-table-expand {
font-size: 0;
}
.
demo-table-expand label {
width: 90px;
color: #99a9bf;
}
.demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
width: 50%;
}
坑
其实不能算做坑,只是⾃⼰对于VUE不熟悉⾃⼰坑了⾃⼰
return {
// delLoading: false, sup_this: this, orderDetailData: [{ orderId: '11111', skuName: 'ddddddd' }, { orderId: '22222', skuName: 'ffffffff' }]
delLoading: false, sup_this: this, orderDetailData: null
}
},
data中需要给orderDetailData给个null值,那么后⾯的rowExpand⽅法中再给_derDetailData 赋值界⾯上的数据才会重新渲染。这个问题在官⽅⽂档中有说明:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论