ming-demo3
Version:
mdf metaui web
484 lines (424 loc) • 15.9 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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
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 _util = require("@mdf/cube/lib/helpers/util");
var TreeNode = _baseui.Tree.TreeNode;
var Search = _baseui.Input.Search;
var Option = _baseui.Select.Option;
var selectedKey2Title = null,
key2Data = null,
title2ResultKey = null;
var definedLeftcontent = function (_React$Component) {
(0, _inherits2["default"])(definedLeftcontent, _React$Component);
function definedLeftcontent(props) {
var _this;
(0, _classCallCheck2["default"])(this, definedLeftcontent);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(definedLeftcontent).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getParentKey", function (billNodata, value, selecData) {
var self = (0, _assertThisInitialized2["default"])(_this);
billNodata.forEach(function (ele) {
if (ele.title.indexOf(value) > -1) {
if (ele.children) {
selecData.push(ele);
self.getParentKey(ele.children, value, selecData);
} else {
selecData.push(ele);
}
} else if (ele.children && ele.children.length > 0) {
self.getParentKey(ele.children, value, selecData);
}
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onExpand", function (expandedKeys) {
_this.setState({
expandedKeys: expandedKeys,
autoExpandParent: false
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (e, treeNode) {
var _this$state = _this.state,
billNodata = _this$state.billNodata,
isClear = _this$state.isClear;
var value = e.target.value;
var expandedKeys = [];
if (value != "" && billNodata && billNodata.length > 0) {
_this.getParentKey(billNodata, value, expandedKeys);
}
isClear = value ? true : false;
_this.setState({
expandedKeys: expandedKeys,
searchValue: value,
isClear: isClear,
autoExpandParent: true
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "loadData", function (treeNode) {
var self = (0, _assertThisInitialized2["default"])(_this);
self.getLoadData(treeNode);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "emitEmpty", function () {
var isClear = _this.state.isClear;
var value = '';
isClear = value ? true : false;
_this.setState({
isClear: isClear,
searchValue: value,
expandedKeys: [],
autoExpandParent: false,
selecData: []
});
});
var billNo = _this.props.model.getParams().billNo;
_this.state = {
expandedKeys: [],
searchValue: '',
autoExpandParent: true,
selectedKeys: [],
selectName: '',
billNo: billNo,
billNodata: [],
entitydata: [],
isClear: false,
selecData: []
};
return _this;
}
(0, _createClass2["default"])(definedLeftcontent, [{
key: "componentDidMount",
value: function componentDidMount() {
var billNo = this.state.billNo;
this.getdataSource(billNo);
}
}, {
key: "getdataSource",
value: function () {
var _getdataSource = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(billNo) {
var config, json, billNodata;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
config = {
url: 'report/getEntityInfoByBillNo.do',
method: 'GET',
params: {
billno: billNo
}
};
_context.next = 3;
return (0, _util.proxy)(config);
case 3:
json = _context.sent;
if (!(json.code !== 200)) {
_context.next = 6;
break;
}
return _context.abrupt("return");
case 6:
billNodata = json.data;
key2Data = {};
selectedKey2Title = {};
title2ResultKey = {};
this.rebuildTreeData(billNodata);
this.setState({
billNodata: billNodata
});
case 12:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function getdataSource(_x) {
return _getdataSource.apply(this, arguments);
}
return getdataSource;
}()
}, {
key: "onTreeselect",
value: function onTreeselect(selectedKeys, e) {
if (!selectedKeys.length) {
selectedKeys = this.state.selectedKeys;
}
var selectionStart = this.props.selectionStart;
var conditionDesc = '';
if (this.props.operatorValue) {
conditionDesc = this.props.operatorValue;
selectionStart = conditionDesc.length;
}
var leftExp = conditionDesc.substr(0, selectionStart);
var rightExp = conditionDesc.substr(selectionStart);
conditionDesc = leftExp + selectedKey2Title[selectedKeys[0]] + rightExp;
selectionStart = conditionDesc.length;
this.setState({
selectName: e.selectedNodes,
selectedKeys: selectedKeys
});
this.props.onSelect(conditionDesc, selectionStart);
}
}, {
key: "getLoadData",
value: function () {
var _getLoadData = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(treeNode) {
var billNodata, key, expandData, entityName, config, json;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
billNodata = this.state.billNodata;
key = treeNode.props.eventKey;
expandData = key2Data[key];
entityName = expandData.entityName;
config = {
url: 'report/getEntityInfoByName.do',
method: 'GET',
params: {
entityName: entityName
}
};
_context2.next = 7;
return (0, _util.proxy)(config);
case 7:
json = _context2.sent;
if (!(json.code !== 200)) {
_context2.next = 10;
break;
}
return _context2.abrupt("return");
case 10:
expandData.children = json.data;
key2Data = {};
selectedKey2Title = {};
title2ResultKey = {};
billNodata = billNodata.map(function (t) {
return t.mergeCode == expandData.mergeCode ? expandData : t;
});
this.rebuildTreeData(billNodata);
this.setState({
billNodata: billNodata
});
case 17:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
function getLoadData(_x2) {
return _getLoadData.apply(this, arguments);
}
return getLoadData;
}()
}, {
key: "rebuildTreeData",
value: function rebuildTreeData(data, mergeCode, mergeName) {
var _this2 = this;
if (data && data.length > 0) {
data.forEach(function (item) {
var codes = [],
names = [];
if (mergeCode) codes.push(mergeCode);
codes.push(item.name);
if (mergeName) names.push(mergeName);
names.push(item.title);
item.mergeCode = codes.join('.');
key2Data[item.mergeCode] = item;
item.mergeName = names.join('.');
var mergeTitle = "[".concat(item.mergeName, "]");
selectedKey2Title[item.mergeCode] = mergeTitle;
title2ResultKey[mergeTitle] = item.mergeCode;
if (!item.children) return;
_this2.rebuildTreeData(item.children, item.mergeCode, item.mergeName);
});
}
}
}, {
key: "searchSelect",
value: function searchSelect(value, option) {
var _this$state2 = this.state,
searchValue = _this$state2.searchValue,
billNodata = _this$state2.billNodata;
var expandedKeys = [];
searchValue = option.props.children;
var _index = null;
this.loopSelect(billNodata, value, expandedKeys, _index);
this.setState({
expandedKeys: expandedKeys,
searchValue: searchValue,
autoExpandParent: true
});
}
}, {
key: "loopSelect",
value: function loopSelect(billNodata, value, expandedKeys, index) {
var self = this;
var newindex = index;
var NewBillNodata = billNodata;
var selectdata = [];
if (index != null) {
selectdata = billNodata[index];
NewBillNodata = billNodata[index].children ? billNodata[index].children : [].push(billNodata[index]);
}
NewBillNodata.forEach(function (ele, index) {
if (ele.mergeCode == value) {
if (ele.children) {
expandedKeys.push(selectdata.mergeCode);
self.loopSelect(NewBillNodata, value, expandedKeys, index);
}
if (!ele.children && !ele.isExpand) {
expandedKeys.push(ele.mergeCode);
}
if (!ele.children && ele.isExpand) {
expandedKeys.push(selectdata.mergeCode);
}
} else if (ele.children && ele.children.length > 0) {
self.loopSelect(NewBillNodata, value, expandedKeys, index);
}
});
}
}, {
key: "onSearch",
value: function onSearch(value) {
var _this$state3 = this.state,
billNodata = _this$state3.billNodata,
isClear = _this$state3.isClear;
var expandedKeys = [];
var selecData = [];
if (value != "" && billNodata && billNodata.length > 0) {
this.getParentKey(billNodata, value, selecData);
}
if (value === "") {
selecData = [];
expandedKeys = [];
}
isClear = value ? true : false;
this.setState({
searchValue: value,
isClear: isClear,
selecData: selecData,
expandedKeys: expandedKeys
});
}
}, {
key: "getSearchOptions",
value: function getSearchOptions() {
var _this$state4 = this.state,
searchValue = _this$state4.searchValue,
selecData = _this$state4.selecData;
if (searchValue == '') return;
var options = [];
if (!selecData.length) {
options.push(_react["default"].createElement(Option, {
key: 'nodata',
className: "haveNodata",
disabled: true
}, "暂无搜索结果~"));
}
;
selecData.forEach(function (ele) {
options.push(_react["default"].createElement(Option, {
key: ele.mergeCode,
className: ele.isCheck ? "selected" : "haveNoselect"
}, ele.title));
}, this);
return options;
}
}, {
key: "render",
value: function render() {
var _this3 = this;
var _this$state5 = this.state,
searchValue = _this$state5.searchValue,
expandedKeys = _this$state5.expandedKeys,
autoExpandParent = _this$state5.autoExpandParent,
selectName = _this$state5.selectName,
billNodata = _this$state5.billNodata,
entitydata = _this$state5.entitydata,
isClear = _this$state5.isClear;
var loop = function loop(data) {
return data.map(function (item) {
var mergeCode = item.mergeCode,
isExpand = item.isExpand,
children = item.children;
var index = item.title.indexOf(searchValue);
var beforeStr = item.title.substr(0, index);
var afterStr = item.title.substr(index + searchValue.length);
var title = index > -1 ? _react["default"].createElement("span", null, beforeStr, _react["default"].createElement("span", {
style: {
color: '#f50'
}
}, searchValue), afterStr) : _react["default"].createElement("span", null, item.title);
if (isExpand) {
return _react["default"].createElement(TreeNode, {
key: mergeCode,
title: title
}, loop(children || []));
}
return _react["default"].createElement(TreeNode, {
key: mergeCode,
title: title,
isLeaf: true
});
});
};
var loopData = billNodata == false ? null : loop(billNodata);
var clearValue = isClear ? _react["default"].createElement(_baseui.Icon, {
type: "close-circle",
onClick: function onClick() {
return _this3.emitEmpty();
}
}) : null;
var options = this.getSearchOptions();
return _react["default"].createElement("div", {
className: "defind_all"
}, _react["default"].createElement(_baseui.Button, {
icon: "search",
className: "defind_icon"
}), _react["default"].createElement(_baseui.Select, {
placeholder: this.state.placeholder,
mode: "combobox",
value: this.state.searchValue,
className: "defind_select",
onSelect: function onSelect(value, option) {
return _this3.searchSelect(value, option);
},
onSearch: function onSearch(value) {
return _this3.onSearch(value);
},
defaultActiveFirstOption: false,
showArrow: false,
filterOption: false,
onChange: this.handleChange,
dropdownMatchSelectWidth: false
}, options), clearValue, _react["default"].createElement(_baseui.Tree, {
selectedKeys: this.state.selectedKeys,
onSelect: function onSelect(selectedKeys, e) {
return _this3.onTreeselect(selectedKeys, e);
},
onExpand: this.onExpand,
expandedKeys: expandedKeys,
autoExpandParent: autoExpandParent,
loadData: this.loadData
}, loopData));
}
}]);
return definedLeftcontent;
}(_react["default"].Component);
exports["default"] = definedLeftcontent;
//# sourceMappingURL=definedLeftcontent.js.map