@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
37 lines (35 loc) • 938 B
JSX
import PropTypes from '../../_util/vue-types';
import BaseMixin from '../../_util/BaseMixin';
export default {
name: 'ExpandIcon',
mixins: [BaseMixin],
inheritAttrs: false,
props: {
record: PropTypes.object,
prefixCls: PropTypes.string,
expandable: PropTypes.any,
expanded: PropTypes.looseBool,
needIndentSpaced: PropTypes.looseBool,
},
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}
/>
);
}
if (needIndentSpaced) {
return <span class={`${prefixCls}-expand-icon ${prefixCls}-spaced`} />;
}
return null;
},
};