nsn-comp
Version:
NSN核心组件
146 lines (118 loc) • 4.67 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getToolBar = void 0;
require("antd/lib/divider/style");
var _divider = _interopRequireDefault(require("antd/lib/divider"));
var _nsnUtil = require("nsn-util");
var _react = _interopRequireDefault(require("react"));
var _comp = require("../_comp");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var getToolBar = function getToolBar(comp) {
var _comp$props = comp.props,
toolbar = _comp$props.toolbar,
table = _comp$props.table;
if (toolbar === false) {
return [];
}
var selectedRows = comp.state.selectedRows;
var tree = table.tree;
var _ref = {},
createProps = _ref.create,
removeProps = _ref.remove,
menus = _ref.menus,
others = _ref.others;
if (_nsnUtil.NType.isFunction(toolbar)) {
var toolbarProps = toolbar(comp);
createProps = toolbarProps.create;
removeProps = toolbarProps.remove;
menus = toolbarProps.menus;
others = toolbarProps.others;
} else if (toolbar) {
createProps = toolbar.create;
removeProps = toolbar.remove;
menus = toolbar.menus;
others = toolbar.others;
}
var toolbarItems = []; // remove 按钮
if (removeProps !== false && selectedRows && selectedRows.length > 0) {
toolbarItems.push(_react.default.createElement(_comp.RemoveAction, Object.assign({
key: "RemoveAction"
}, {
comp: comp
})));
} // create 按钮
if (createProps !== false) {
toolbarItems.push(_react.default.createElement(_comp.CreateAction, Object.assign({
key: "CreateAction"
}, {
comp: comp
})));
} // 其他按钮
if (_nsnUtil.NType.isArray(others)) {
others.forEach(function (btnProps, index) {
return toolbarItems.push(_react.default.createElement(_comp.OtherAction, Object.assign({
key: "toolbar-others-btn-".concat(btnProps.id || index)
}, {
comp: comp
}, btnProps)));
});
} else if (_nsnUtil.NType.isFunction(others)) {
others(comp).forEach(function (btnProps, index) {
return toolbarItems.push(_react.default.createElement(_comp.OtherAction, Object.assign({
key: "toolbar-others-btn-".concat(btnProps.id || index)
}, {
comp: comp
}, btnProps)));
});
} else if (others) {
toolbarItems.push(_react.default.createElement(_comp.OtherAction, Object.assign({
key: "toolbar-others-btn-".concat(others.id || 0)
}, {
comp: comp
}, others)));
} // 表格树,默认添加工具栏下拉菜单
var menusProps = {
items: []
};
if (_nsnUtil.NType.isArray(menus)) {
if (tree) {
menusProps.items = menus;
} else {
menusProps = {
collapseAll: false,
expandAll: false,
items: menus
};
}
} else if (menus) {
if (tree) {
menusProps = menus;
} else {
// 不显示默认的下拉菜单项,除非设置了显示变量
menusProps = _objectSpread({
collapseAll: false,
expandAll: false
}, menus);
}
}
if (tree || (menusProps.items || []).length > 0) {
toolbarItems.push(_react.default.createElement(_comp.MoreMenus, Object.assign({
key: "MoreMenus"
}, {
comp: comp
}, menusProps)));
} // 分割线
if (toolbarItems.length > 0) {
toolbarItems.push(_react.default.createElement(_divider.default, {
key: "ActionDivider",
type: "vertical"
}));
}
return toolbarItems;
};
exports.getToolBar = getToolBar;