fastlion-amis
Version:
一种MIS页面生成工具
49 lines (48 loc) • 3.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ItemSelection = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var components_1 = require("../../../components");
var tpl_1 = require("../../../utils/tpl");
var lodash_1 = require("lodash");
var helper_1 = require("../../../utils/helper");
var ItemSelection = function (_a) {
var props = _a.props, control = _a.control;
var store = props.store, cx = props.classnames, labelField = props.labelField, labelTpl = props.labelTpl, primaryField = props.primaryField, __ = props.translate;
if (!store.selectedItems.length) {
return null;
}
var unSelectItem = (0, react_1.useCallback)(function (item, index) {
var _a, _b, _c;
var data = (_b = (_a = control === null || control === void 0 ? void 0 : control.props) === null || _a === void 0 ? void 0 : _a.store) === null || _b === void 0 ? void 0 : _b.rows.concat();
var Item = data === null || data === void 0 ? void 0 : data.find(function (items) { return (0, lodash_1.isEqual)(item, items.data); });
if (Item) {
(_c = control === null || control === void 0 ? void 0 : control.handleCheck) === null || _c === void 0 ? void 0 : _c.call(control, Item);
}
var selected = store.selectedItems.concat();
var unSelected = store.unSelectedItems.concat();
var idx = selected.indexOf(item);
~idx && unSelected.push.apply(unSelected, selected.splice(idx, 1));
store.setSelectedItems(selected);
store.setUnSelectedItems(unSelected);
}, []);
var clearSelection = (0, react_1.useCallback)(function () {
control === null || control === void 0 ? void 0 : control.handleCheckAll(2);
var selected = store.selectedItems.concat();
var unSelected = store.unSelectedItems.concat();
store.setSelectedItems([]);
store.setUnSelectedItems(unSelected.concat(selected));
}, []);
return (react_1.default.createElement("div", { className: cx('Crud-selection') },
react_1.default.createElement("div", { className: cx('Crud-selectionLabel') }, __('CRUD.selected')),
store.selectedItems.map(function (item, index) {
return react_1.default.createElement("div", { key: index, className: cx("Crud-value") },
react_1.default.createElement("span", { "data-tooltip": __('delete'), "data-position": "bottom", className: cx('Crud-valueIcon'), onClick: function () { return unSelectItem(item, index); } }, "\u00D7"),
react_1.default.createElement("span", { className: cx('Crud-valueLabel') }, labelTpl ? (react_1.default.createElement(components_1.Html, { html: (0, tpl_1.filter)(labelTpl, item) })) : ((0, helper_1.getVariable)(item, labelField || 'label') ||
(0, helper_1.getVariable)(item, primaryField || 'id'))));
}),
react_1.default.createElement("a", { onClick: clearSelection, className: cx('Crud-selectionClear') }, __('clear'))));
};
exports.ItemSelection = ItemSelection;
//# sourceMappingURL=./renderers/CRUD/components/Selection.js.map