ming-demo1
Version:
mdf metaui web
329 lines (283 loc) • 10.5 kB
JavaScript
"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