vue-ant-patterns
Version:
vue-ant-patterns
110 lines (99 loc) • 2.73 kB
JavaScript
import _defineProperty from 'babel-runtime/helpers/defineProperty';
import PropTypes from 'ant-design-vue/es/_util/vue-types';
import cx from 'classnames';
import DFormBorderItem from './formborderitem';
var DFormBorder = {
name: 'DFormBorder',
props: {
prefixCls: PropTypes.string.def('depot-dformborder'),
// 主标题
title: PropTypes.any,
// 是否隐藏锚点
hiddenanchor: PropTypes.bool.def(true)
},
Item: DFormBorderItem,
data: function data() {
return {
defaultActiveKey: []
};
},
methods: {
panelRender: function panelRender() {
var h = this.$createElement;
var prefixCls = this.prefixCls;
var panel = this.$slots.panel;
return panel.map(function (item, index) {
var panelWrapper = {
key: String(index),
props: {
header: item.data.attrs.title,
key: item.data.key
},
'class': cx(_defineProperty({}, prefixCls + '-panel', true))
};
return h(
'a-collapse-panel',
panelWrapper,
[item]
);
});
}
},
render: function render() {
var _cx5;
var h = arguments[0];
var prefixCls = this.prefixCls,
$slots = this.$slots,
title = this.title,
hiddenanchor = this.hiddenanchor;
var tileft = $slots.tileft,
tiright = $slots.tiright;
var titleWrapper = {
'class': cx(_defineProperty({}, prefixCls + '-title', true))
};
var contentWrapper = {
'class': cx(_defineProperty({}, prefixCls + '-content', true))
};
var panels = this.panelRender();
var defaultActiveKey = [];
panels.forEach(function (item, index) {
defaultActiveKey.push(String(index));
});
var collapseWrapper = {
props: {
bordered: false,
defaultActiveKey: defaultActiveKey
},
'class': cx(_defineProperty({}, '' + prefixCls, true))
};
var anchorWrapper = {
'class': cx((_cx5 = {}, _defineProperty(_cx5, prefixCls + '-content-anchor', true), _defineProperty(_cx5, prefixCls + '-content-anchor-hidden', hiddenanchor), _cx5))
};
return h('div', [h(
'div',
titleWrapper,
[title ? h(
'span',
{ 'class': prefixCls + '-title-text' },
[title]
) : tileft ? tileft : '', tiright ? tiright : '']
), h(
'div',
contentWrapper,
[h(
'div',
{ 'class': prefixCls + '-content-coll' },
[h(
'a-collapse',
collapseWrapper,
[panels]
)]
), h(
'div',
anchorWrapper,
[h('a-anchor', ['\u951A\u70B9'])]
)]
)]);
}
};
export default DFormBorder;