@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
61 lines (56 loc) • 1.66 kB
JavaScript
import { Fragment as _Fragment, createVNode as _createVNode } from "vue";
import { defineComponent } from 'vue';
import { default as Divider } from '../../../divider';
import useConfigInject from '../../../_util/hooks/useConfigInject';
import { getSlot } from '../../../_util/props-util';
import TableSettingComp from './settings/index';
import TableTitle from './table-title';
export default defineComponent({
name: 'TableProHeader',
components: {
Divider: Divider,
TableTitle: TableTitle,
TableSetting: TableSettingComp
},
props: {
title: {
type: [Function, String]
},
tableSetting: {
type: Object
},
showTableSetting: {
type: Boolean
},
titleHelpMessage: {
type: [String, Array],
default: ''
},
prefixCls: String
},
setup: function setup(props) {
var _useConfigInject = useConfigInject('table-pro-header', props),
prefixClsNew = _useConfigInject.prefixCls;
return {
prefixClsNew: prefixClsNew
};
},
render: function render() {
var tableTitleNode = getSlot(this, 'tableTitle');
if (!tableTitleNode.length) {
tableTitleNode = [_createVNode(TableTitle, {
"help-message": this.titleHelpMessage,
"title": this.title
}, null)];
}
var settingNode = null;
if (this.showTableSetting) {
settingNode = _createVNode(TableSettingComp, {
"setting": this.tableSetting
}, null);
}
return _createVNode(_Fragment, null, [tableTitleNode, _createVNode("div", {
"class": "".concat(this.prefixClsNew, "__toolbar")
}, [getSlot(this, 'toolbar'), settingNode])]);
}
});