ant-design-vue/components/vc-table/src/ExpandIcon.jsx

35 lines
899 B
JavaScript

import PropTypes from '../../_util/vue-types'
import BaseMixin from '../../_util/BaseMixin'
export default {
mixins: [BaseMixin],
name: 'ExpandIcon',
props: {
record: PropTypes.object,
prefixCls: PropTypes.string,
expandable: PropTypes.any,
expanded: PropTypes.bool,
needIndentSpaced: PropTypes.bool,
},
methods: {
onExpand (e) {
this.__emit('expand', this.record, e)
},
},
render () {
const { expandable, prefixCls, onExpand, needIndentSpaced, expanded } = this
if (expandable) {
const expandClassName = expanded ? 'expanded' : 'collapsed'
return (
<span
class={`${prefixCls}-expand-icon ${prefixCls}-${expandClassName}`}
onClick={onExpand}
/>
)
} else if (needIndentSpaced) {
return <span class={`${prefixCls}-expand-icon ${prefixCls}-spaced`} />
}
return null
},
}