UNPKG

ming-demo1

Version:
329 lines (283 loc) 10.5 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _baseui = require("@mdf/baseui"); var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon")); var Search = _baseui.Input.Search; var ListTag = function (_Component) { (0, _inherits2["default"])(ListTag, _Component); function ListTag(props) { var _this; (0, _classCallCheck2["default"])(this, ListTag); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ListTag).call(this, props)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (e, value) { var titleField = _this.state.textField || 'name'; var index = _this.state.dataSource.findIndex(function (item) { return item[titleField] === value; }); var referValue; if (value == null) { referValue = value; } else { _this.gridModel.select([index]); referValue = _this.gridModel.getSelectedRows(); } _this.referViewModel.execute('afterOkClick', referValue); _this.props.closePop(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onButtonClick", function (e, type) { var _this$state = _this.state, checkedKeys = _this$state.checkedKeys, dataSource = _this$state.dataSource; var rows = []; if (type == 'submit') { checkedKeys.map(function (ele) { rows.push(dataSource[ele]); }, (0, _assertThisInitialized2["default"])(_this)); _this.referViewModel.execute('afterOkClick', rows); } _this.props.closePop(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChecked", function (e, id) { var _this$state2 = _this.state, dataStatus = _this$state2.dataStatus, checkedKeys = _this$state2.checkedKeys; var checked = e.target.checked; dataStatus[id].checked = checked; if (checked) { checkedKeys.push(dataStatus[id].index); } else { checkedKeys = []; for (var key in dataStatus) { if (dataStatus[key].checked) { checkedKeys.push(dataStatus[key].index); } } } _this.setState({ dataStatus: dataStatus, checkedKeys: checkedKeys }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onSearchChange", function (e) { var value = e.target.value; _this.setState({ searchValue: value }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onSearchClear", function () { _this.setState({ searchValue: '' }); }); _this.state = { multiple: props.multiple, dataStatus: {}, checkedKeys: [], searchValue: '' }; return _this; } (0, _createClass2["default"])(ListTag, [{ key: "componentDidMount", value: function componentDidMount() { this.referViewModel = this.props.viewModel; this.gridModel = this.referViewModel.get('table'); this.gridModel.addListener(this); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.gridModel.removeListener(this); } }, { key: "select", value: function select(selectedRowIndexes) { var _this$state3 = this.state, dataSource = _this$state3.dataSource, dataStatus = _this$state3.dataStatus; if (!dataSource || dataSource.length) { return; } dataSource.forEach(function (v, index) { dataStatus[v.id].checked = selectedRowIndexes.includes(index); }); this.setState({ dataStatus: dataStatus, checkedKeys: selectedRowIndexes }); } }, { key: "setDataSource", value: function setDataSource(dataSource) { this.setState({ dataSource: dataSource }); var dataStatus = this.state.dataStatus; var checkedKeys = []; var checkedArr = this.props.checkedArr; if (this.state.multiple) { if (!dataStatus || dataStatus == {}) { dataSource.map(function (ele, index) { dataStatus[ele.id] = { name: ele.name, checked: false, index: index }; if (checkedArr && checkedArr.length && checkedArr.includes(ele.name)) { dataStatus[ele.id] = { name: ele.name, checked: true, index: index }; checkedKeys.push(index); } }); } else { dataSource.map(function (ele, index) { dataStatus[ele.id] = { name: ele.name, checked: false, index: index }; if (checkedArr && checkedArr.length && checkedArr.includes(ele.name)) { dataStatus[ele.id] = { name: ele.name, checked: true, index: index }; checkedKeys.push(index); } }); } this.setState({ dataStatus: dataStatus, checkedKeys: checkedKeys }); } } }, { key: "getPopContent", value: function getPopContent(data) { var _this3 = this; var searchClear = false; var _this$state4 = this.state, multiple = _this$state4.multiple, disabled = _this$state4.disabled, value = _this$state4.value, dataStatus = _this$state4.dataStatus, searchValue = _this$state4.searchValue, checkedKeys = _this$state4.checkedKeys; var controls = []; var loopData = data; if (searchValue != '') { loopData = []; data.map(function (ele) { if (ele.name.indexOf(searchValue) > -1) { loopData.push(ele); } }); searchClear = true; } else { searchClear = false; } var searchClearControl = searchClear ? _react["default"].createElement("span", { onClick: this.onSearchClear, className: "ant-select-selection__clear" }) : null; if (loopData.length <= 0) { return _react["default"].createElement("div", null, searchClearControl, _react["default"].createElement(Search, { value: searchValue, onChange: this.onSearchChange }), _react["default"].createElement("div", { className: "no-data" }, searchValue ? null : _react["default"].createElement(_SvgIcon["default"], { type: "nodata" }), searchValue ? "暂无搜索结果哦~" : "暂时没有数据哦~")); } if (loopData.length === 0) { if (!multiple) { controls.push(_react["default"].createElement("li", { className: "no-data" }, "\u6682\u65E0\u641C\u7D22\u7ED3\u679C\u54E6~")); } else { controls.push(_react["default"].createElement("div", { className: "no-data" }, "\u6682\u65E0\u641C\u7D22\u7ED3\u679C\u54E6~")); } } loopData.length && loopData.map(function (ele) { var _this2 = this; if (!multiple) { controls.push(_react["default"].createElement("li", { onClick: function onClick(e) { return _this2.onChange(e, ele.name); } }, ele.name)); } else { var checked = dataStatus[ele.id] ? dataStatus[ele.id].checked : false; controls.push(_react["default"].createElement(_baseui.Checkbox, { checked: checked, key: ele.id, onChange: function onChange(e) { return _this2.onChecked(e, ele.id); } }, ele.name)); } }, this); if (!multiple) { return _react["default"].createElement("div", null, searchClearControl, _react["default"].createElement(Search, { value: searchValue, onChange: this.onSearchChange }), _react["default"].createElement("ul", null, controls)); } else { return _react["default"].createElement("div", { className: "listRefer" }, searchClearControl, _react["default"].createElement(Search, { value: searchValue, onChange: this.onSearchChange }), _react["default"].createElement("div", { className: "listRefer-content", style: { "max-height": "210px" } }, controls), _react["default"].createElement("div", { className: "filter-btn-1" }, _react["default"].createElement(_baseui.Button, { className: "ant-btn-sm", type: "primary", onClick: function onClick(e) { return _this3.onButtonClick(e, 'submit'); } }, "\u786E\u5B9A"), _react["default"].createElement(_baseui.Button, { className: "ant-btn-sm", type: "default", onClick: function onClick(e) { return _this3.onButtonClick(e, 'cancel'); } }, "\u53D6\u6D88"))); } } }, { key: "render", value: function render() { var dataSource = this.state.dataSource || []; return this.getPopContent(dataSource); } }]); return ListTag; }(_react.Component); exports["default"] = ListTag; //# sourceMappingURL=listtag.js.map