fastlion-amis
Version:
一种MIS页面生成工具
135 lines (134 loc) • 10.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RadioWrapper = exports.DataArea = exports.SelectContent = exports.SelectWrapperGroup = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var antd_1 = require("antd");
var icons_1 = require("../../components/icons");
var CheckboxGroup = antd_1.Checkbox.Group;
//selectCheckbox
function SelectWrapperGroup(props) {
var label = props.label, data = props.data, onChange = props.onChange, defaultValue = props.defaultValue, _a = props.type, type = _a === void 0 ? "multiple" : _a, isCombine = props.isCombine, barValue = props.barValue, lineValue = props.lineValue, setBarValue = props.setBarValue, setLineValue = props.setLineValue, hideToolbar = props.hideToolbar;
var handleChange = function (checkedValue) {
if (type === 'multiple') {
onChange(checkedValue);
}
else {
var singleValue = checkedValue.slice(-1);
onChange(singleValue);
}
};
var handleSelectAll = function () {
var _a, _b;
onChange((_b = (_a = data === null || data === void 0 ? void 0 : data.filter(function (item) { return !item.disabled; })) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item.value; })) !== null && _b !== void 0 ? _b : []);
if (isCombine && lineValue && barValue) {
var newBarValue_1 = [];
data.forEach(function (item) {
if (!(defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.includes(item.value)) && !item.disabled) {
newBarValue_1.push(item.value);
}
});
setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue(tslib_1.__spreadArray(tslib_1.__spreadArray([], barValue, true), newBarValue_1, true));
}
};
var handleSelectReverse = function () {
var _a;
var allValues = (_a = data === null || data === void 0 ? void 0 : data.filter(function (item) { return !item.disabled; })) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item.value; });
var newValues = allValues.filter(function (v) { return (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.indexOf(v)) == -1; });
onChange(newValues);
if (isCombine && lineValue && barValue) {
setLineValue === null || setLineValue === void 0 ? void 0 : setLineValue([]);
setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue(newValues);
}
};
var handleSelectClear = function () {
onChange([]);
if (isCombine) {
setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue([]);
setLineValue === null || setLineValue === void 0 ? void 0 : setLineValue([]);
}
};
//业务逻辑,组合图默认得有一个图的类型
var handleClick = function (value) {
if (isCombine && barValue && lineValue) {
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.includes(value)) {
barValue.includes(value) ? setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue(barValue.filter(function (item) { return item !== value; })) :
setLineValue === null || setLineValue === void 0 ? void 0 : setLineValue(lineValue.filter(function (item) { return item !== value; }));
}
else {
setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue(tslib_1.__spreadArray(tslib_1.__spreadArray([], barValue, true), [value], false));
}
}
};
var handleChangeChart = function (e, value) {
e.stopPropagation();
if (isCombine && barValue && lineValue) {
if (barValue.includes(value)) {
setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue(barValue.filter(function (item) { return item !== value; }));
setLineValue === null || setLineValue === void 0 ? void 0 : setLineValue(tslib_1.__spreadArray(tslib_1.__spreadArray([], lineValue, true), [value], false));
}
else {
setLineValue === null || setLineValue === void 0 ? void 0 : setLineValue(lineValue.filter(function (item) { return item !== value; }));
setBarValue === null || setBarValue === void 0 ? void 0 : setBarValue(tslib_1.__spreadArray(tslib_1.__spreadArray([], barValue, true), [value], false));
}
}
};
return (react_1.default.createElement("div", { className: "common-select-container" },
react_1.default.createElement("div", { className: "sel-top" },
react_1.default.createElement("span", null, label),
hideToolbar ? null : type === 'multiple' &&
react_1.default.createElement("div", { className: "sel-btn-group" },
react_1.default.createElement("span", { className: "btn", onClick: handleSelectAll }, "\u5168\u9009"),
react_1.default.createElement("span", { className: "btn", onClick: handleSelectReverse }, "\u53CD\u9009"),
react_1.default.createElement("span", { className: "btn", onClick: handleSelectClear }, "\u4E0D\u9009"))),
react_1.default.createElement("div", { className: "sel-body" },
react_1.default.createElement(CheckboxGroup, { onChange: handleChange, value: defaultValue }, data === null || data === void 0 ? void 0 : data.map(function (item) { return (react_1.default.createElement("div", { title: item.title, onClick: function () { return handleClick(item.value); }, key: item.value, className: "checkbox-container ".concat(isCombine ? 'combine-chart-select' : '') },
react_1.default.createElement(antd_1.Checkbox, { onClick: function (e) { return e.stopPropagation(); }, disabled: item.disabled, value: item.value }, item.title),
isCombine && (barValue === null || barValue === void 0 ? void 0 : barValue.includes(item.value)) && !item.disabled && react_1.default.createElement("div", { onClick: function (e) { return handleChangeChart(e, item.value); }, className: 'combine-chart-item' }, "\u67F1\u56FE"),
isCombine && (lineValue === null || lineValue === void 0 ? void 0 : lineValue.includes(item.value)) && !item.disabled && react_1.default.createElement("div", { onClick: function (e) { return handleChangeChart(e, item.value); }, className: 'combine-chart-item' }, "\u6298\u7EBF"))); })))));
}
exports.SelectWrapperGroup = SelectWrapperGroup;
//统计内容
function SelectContent(props) {
var label = props.label, data = props.data, onChange = props.onChange, defaultValue = props.defaultValue;
var handleChange = function (checkedValue) {
onChange(checkedValue);
};
return (react_1.default.createElement("div", { className: "select-content-container" },
react_1.default.createElement("div", { className: "sel-content-top" }, label),
react_1.default.createElement("div", { className: "sel-content-body" },
react_1.default.createElement(CheckboxGroup, { onChange: handleChange, value: defaultValue }, data === null || data === void 0 ? void 0 : data.map(function (item) { return (react_1.default.createElement(antd_1.Checkbox, { disabled: item.disabled, key: item.value, value: item.value },
react_1.default.createElement("div", { className: "sel-content-item-container" },
react_1.default.createElement("div", { className: "icon-container" },
react_1.default.createElement(icons_1.Icon, { icon: item.icon, className: "icon" })),
react_1.default.createElement("span", { className: "sel-title" }, item.title)))); })))));
}
exports.SelectContent = SelectContent;
function DataArea(props) {
var value = props.value, onChange = props.onChange, className = props.className, radioList = props.radioList;
var classNm = className ? 'tools-area ' + className : 'tools-area';
return (react_1.default.createElement(antd_1.Row, { className: classNm },
react_1.default.createElement(antd_1.Col, { span: 4, className: 'tools-label' },
react_1.default.createElement("span", null, "\u6570\u636E\u8303\u56F4")),
react_1.default.createElement(antd_1.Col, { span: 20 },
react_1.default.createElement(antd_1.Radio.Group, { onChange: onChange, value: value }, (radioList === null || radioList === void 0 ? void 0 : radioList.length) ?
radioList.map(function (radio) { return react_1.default.createElement(antd_1.Radio, { key: radio.value, value: radio.value }, radio.title); })
:
[
react_1.default.createElement(antd_1.Radio, { key: 'present', value: 'present' }, "\u5F53\u524D\u9875\u6570\u636E"),
react_1.default.createElement(antd_1.Radio, { key: 'some', value: 'some' }, "\u9009\u4E2D\u6570\u636E"),
react_1.default.createElement(antd_1.Radio, { key: 'all', value: 'all' }, "\u5168\u90E8\u6570\u636E")
]))));
}
exports.DataArea = DataArea;
function RadioWrapper(props) {
var title = props.title, value = props.value, onChange = props.onChange, data = props.data, className = props.className;
var classNm = className ? 'tools-area ' + className : 'tools-area';
return (react_1.default.createElement(antd_1.Row, { className: classNm },
react_1.default.createElement(antd_1.Col, { span: 4, className: 'tools-label' },
react_1.default.createElement("span", null, title)),
react_1.default.createElement(antd_1.Col, { span: 20 },
react_1.default.createElement(antd_1.Radio.Group, { onChange: onChange, value: value }, data.map(function (item) { return react_1.default.createElement(antd_1.Radio, { key: item.value, value: item.value }, item.title); })))));
}
exports.RadioWrapper = RadioWrapper;
//# sourceMappingURL=./renderers/Table/commonSelect.js.map