@ccs-design/rc-pro
Version:
ccs design basic react component
96 lines (84 loc) • 4.19 kB
JavaScript
import "antd/es/space/style";
import _Space from "antd/es/space";
import "antd/es/button/style";
import _Button from "antd/es/button";
import "antd/es/form/style";
import _Form from "antd/es/form";
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; }
import React, { useMemo, cloneElement } from 'react';
import { classPrefix } from '.';
/** 操作按钮、查询,重置、列筛选、 */
function ToolbarComponent(_ref) {
var form = _ref.form,
toolbar = _ref.toolbar,
_ref$formItems = _ref.formItems,
formItems = _ref$formItems === void 0 ? [] : _ref$formItems,
formInitValues = _ref.formInitValues,
onSearch = _ref.onSearch;
// render item 判断是否有依赖
var renderFormItem = function renderFormItem(items) {
return items.map(function (item) {
return item.depends ? /*#__PURE__*/React.createElement(_Form.Item, {
noStyle: true,
key: item.name,
shouldUpdate: function shouldUpdate(l, n) {
var _item$depends;
return ((_item$depends = item.depends) === null || _item$depends === void 0 ? void 0 : _item$depends.some(function (i) {
return l[i] !== n[i];
})) || false;
}
}, function (_ref2) {
var _item$depends2;
var getFieldValue = _ref2.getFieldValue;
var dependParam = {};
(_item$depends2 = item.depends) === null || _item$depends2 === void 0 ? void 0 : _item$depends2.forEach(function (i) {
var value = getFieldValue(i);
dependParam[i] = value;
});
return /*#__PURE__*/React.createElement(_Form.Item, {
name: item.name,
label: item.label,
key: item.name,
rules: item.rules
}, /*#__PURE__*/cloneElement(item.value, _objectSpread(_objectSpread({}, dependParam), {}, {
size: 'small'
})));
}) : /*#__PURE__*/React.createElement(_Form.Item, {
name: item.name,
label: item.label,
key: item.name,
rules: item.rules
}, /*#__PURE__*/cloneElement(item.value, {
size: 'small'
}));
});
};
var flatFormItems = useMemo(function () {
return formItems.flat(Infinity);
}, []); // 查询部分
var renderSearch = function renderSearch() {
return /*#__PURE__*/React.createElement(React.Fragment, null, renderFormItem(flatFormItems), /*#__PURE__*/React.createElement(_Form.Item, null, /*#__PURE__*/React.createElement(_Button, {
type: "primary",
onClick: function onClick() {
return onSearch();
},
size: "small"
}, "\u67E5\u8BE2")));
};
return /*#__PURE__*/React.createElement("div", {
className: "".concat(classPrefix, "-simple-toolbar")
}, toolbar ? /*#__PURE__*/React.createElement(_Space, {
style: {
minHeight: '32px'
}
}, toolbar) : /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", {
className: "".concat(classPrefix, "-form")
}, /*#__PURE__*/React.createElement(_Form, {
initialValues: formInitValues,
form: form,
layout: "inline"
}, renderSearch())));
}
export default ToolbarComponent;