ze-react-component-library
Version:
ZeroETP React Component Library
159 lines (144 loc) • 4.99 kB
JavaScript
import "antd/es/date-picker/style";
import _DatePicker from "antd/es/date-picker";
import "antd/es/auto-complete/style";
import _AutoComplete from "antd/es/auto-complete";
import "antd/es/select/style";
import _Select from "antd/es/select";
import "antd/es/input-number/style";
import _InputNumber from "antd/es/input-number";
var __assign = this && this.__assign || function () {
__assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
}
return t;
};
return __assign.apply(this, arguments);
};
import moment from "moment";
import React, { memo } from "react";
var ValueHandler = /*#__PURE__*/memo(function (_a) {
var type = _a.type,
operator = _a.operator,
valueProps = _a.valueProps,
_onChange = _a.onChange,
value = _a.value,
tip = _a.tip;
if (operator === "is not null" || operator === "is null") {
return null;
}
if (type === "Number") {
if (operator === "between") {
var startValue_1 = value === null || value === void 0 ? void 0 : value[0];
var endValue_1 = value === null || value === void 0 ? void 0 : value[1];
return /*#__PURE__*/React.createElement("div", {
className: "form-operator-value-handler-inner-wrapper"
}, tip, /*#__PURE__*/React.createElement(_InputNumber, __assign({
placeholder: "\u6700\u5C0F\u503C"
}, valueProps, {
value: startValue_1,
max: endValue_1,
onChange: function onChange(v) {
_onChange([v, endValue_1]);
}
})), /*#__PURE__*/React.createElement("span", null, "~"), /*#__PURE__*/React.createElement(_InputNumber, __assign({
placeholder: "\u6700\u5927\u503C"
}, valueProps, {
value: endValue_1,
min: startValue_1,
onChange: function onChange(v) {
_onChange([startValue_1, v]);
}
})));
}
return /*#__PURE__*/React.createElement(React.Fragment, null, tip, /*#__PURE__*/React.createElement(_InputNumber, __assign({
placeholder: "\u8BF7\u8F93\u5165"
}, valueProps, {
value: value,
onChange: function onChange(v) {
_onChange(v);
}
})));
}
if (type === "String") {
if (operator && ["$in"].includes(operator)) {
return /*#__PURE__*/React.createElement(React.Fragment, null, tip, /*#__PURE__*/React.createElement(_Select, __assign({
placeholder: "请选择或输入后回车",
style: {
minWidth: 160
}
}, valueProps, {
mode: "tags",
value: value,
onChange: function onChange(v) {
_onChange(v);
}
})));
}
return /*#__PURE__*/React.createElement(React.Fragment, null, tip, /*#__PURE__*/React.createElement(_AutoComplete, {
placeholder: "\u8BF7\u8F93\u5165",
style: {
minWidth: 100
},
options: valueProps === null || valueProps === void 0 ? void 0 : valueProps.options,
dropdownMatchSelectWidth: false,
value: value,
onChange: function onChange(v) {
_onChange(v);
}
}));
}
if (type === "Boolean") {
return /*#__PURE__*/React.createElement(React.Fragment, null, tip, /*#__PURE__*/React.createElement(_Select, __assign({
placeholder: "\u8BF7\u9009\u62E9"
}, valueProps, {
options: [{
label: "是",
value: true
}, {
label: "否",
value: false
}],
value: value,
onChange: function onChange(v) {
_onChange(v);
}
})));
}
if (type === "Date" || type === "Timestamp") {
var props = valueProps || {};
var _b = props.format,
format_1 = _b === void 0 ? "YYYY-MM-DD" : _b;
if (operator === "between") {
return /*#__PURE__*/React.createElement(React.Fragment, null, tip, /*#__PURE__*/React.createElement(_DatePicker.RangePicker, __assign({
placeholder: ["开始时间", "结束时间"]
}, valueProps, {
allowClear: false,
value: value instanceof Array ? value.map(function (v) {
return v ? moment(v, format_1) : undefined;
}) : undefined,
onChange: function onChange(v) {
if (v instanceof Array) {
_onChange(v.map(function (m) {
return m === null || m === void 0 ? void 0 : m.format(format_1);
}));
}
}
})));
}
return /*#__PURE__*/React.createElement(React.Fragment, null, tip, /*#__PURE__*/React.createElement(_DatePicker, __assign({
placeholder: "\u8BF7\u9009\u62E9"
}, valueProps, {
allowClear: false,
value: typeof value === "string" ? moment(value, format_1) : undefined,
onChange: function onChange(v) {
_onChange(v === null || v === void 0 ? void 0 : v.format(format_1));
}
})));
}
return null;
});
export default ValueHandler;