import PropTypes from '../../_util/vue-types'
import ExpandIcon from './ExpandIcon'
import BaseMixin from '../../_util/BaseMixin'
import { connect } from '../../_util/store'
const ExpandableRow = {
mixins: [BaseMixin],
name: 'ExpandableRow',
props: {
prefixCls: PropTypes.string.isRequired,
rowKey: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
]).isRequired,
fixed: PropTypes.oneOfType([
PropTypes.string,
PropTypes.bool,
]),
record: PropTypes.object.isRequired,
indentSize: PropTypes.number,
needIndentSpaced: PropTypes.bool.isRequired,
expandRowByClick: PropTypes.bool,
expanded: PropTypes.bool.isRequired,
expandIconAsCell: PropTypes.bool,
expandIconColumnIndex: PropTypes.number,
childrenColumnName: PropTypes.string,
expandedRowRender: PropTypes.func,
// onExpandedChange: PropTypes.func.isRequired,
// onRowClick: PropTypes.func,
// children: PropTypes.func.isRequired,
},
beforeDestroy () {
this.handleDestroy()
},
methods: {
hasExpandIcon (columnIndex) {
const { expandRowByClick } = this
return !this.tempExpandIconAsCell &&
!expandRowByClick &&
columnIndex === this.tempExpandIconColumnIndex
},
handleExpandChange (record, event) {
const { expanded, rowKey } = this
this.__emit('expandedChange', !expanded, record, event, rowKey)
},
handleDestroy () {
const { rowKey, record } = this
this.__emit('expandedChange', false, record, null, rowKey, true)
},
handleRowClick (record, index, event) {
const { expandRowByClick } = this
if (expandRowByClick) {
this.handleExpandChange(record, event)
}
this.__emit('rowClick', record, index, event)
},
renderExpandIcon () {
const { prefixCls, expanded, record, needIndentSpaced } = this
return (