ming-demo3
Version:
mdf metaui web
272 lines (233 loc) • 8.22 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 _label = _interopRequireDefault(require("./label"));
var _text = _interopRequireDefault(require("./text"));
var TreeNode = _baseui.TreeSelect.TreeNode;
var TreeRefer = function (_Component) {
(0, _inherits2["default"])(TreeRefer, _Component);
function TreeRefer(props) {
var _this;
(0, _classCallCheck2["default"])(this, TreeRefer);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(TreeRefer).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (value) {
if (value == null) _this.referViewModel.execute('afterOkClick', value);
});
var cStyle = _this.props.cStyle;
if (cStyle) {
var config = null;
try {
config = JSON.parse(cStyle);
} catch (e) {
config = {};
}
_this.refresh = config.refresh;
}
_this.state = {
bIsNull: props.bIsNull
};
return _this;
}
(0, _createClass2["default"])(TreeRefer, [{
key: "getModel",
value: function getModel() {
return this.props.model || this.model;
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
var _this2 = this;
if (this.props.model) {
this.props.model.addListener(this);
var parent = this.props.model.getParent();
if (parent) parent.on('updateTreeRefer', function () {
return _this2.onClick();
});
}
if (this.props.focus) this.refs.input.refs.input.focus();
}
}, {
key: "handleClick",
value: function handleClick() {
if (this.state.disabled) return;
if (!this.refresh) {
if (this.hasClicked) return;
this.hasClicked = true;
}
this.onClick();
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var model = this.getModel();
if (model) model.removeListener(this);
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
if (this.props.model) return;
if (nextProps.value != this.state.value) this.setState({
value: nextProps.value
});
}
}, {
key: "open",
value: function open(e) {
this.referViewModel = e.vm;
this.treeModel = e.vm.get('tree');
this.treeModel.addListener(this);
if (typeof this.props.afterOkClick === 'function') this.referViewModel.on('afterOkClick', this.props.afterOkClick);
}
}, {
key: "setValue",
value: function setValue(value) {
if (cb.utils.isArray(value)) return;
this.setState({
value: value
});
}
}, {
key: "onClick",
value: function onClick() {
var model = this.getModel();
if (!model && this.props.cRefType) {
this.model = new cb.models.ReferModel({
cRefType: this.props.cRefType,
multiple: this.props.multiple,
isList: this.props.isList ? true : false,
value: this.props.value
});
this.model.addListener(this);
}
model = this.getModel();
if (model) model.browse();
}
}, {
key: "handleJointQuery",
value: function handleJointQuery() {
var model = this.getModel();
if (!model && this.props.cRefType) {
this.model = new cb.models.ReferModel({
cRefType: this.props.cRefType,
multiple: this.props.multiple,
isList: this.props.isList ? true : false,
value: this.props.value
});
this.model.addListener(this);
}
model = this.getModel();
if (model) model.fireEvent('jointQuery');
}
}, {
key: "onSelect",
value: function onSelect(selectedKeys, e) {
if (this.props.onSelect) this.props.onSelect(selectedKeys, e);
if (this.treeModel) this.treeModel.select(selectedKeys);
this.referViewModel.execute('afterOkClick', this.treeModel.getSelectedNodes());
}
}, {
key: "setDataSource",
value: function setDataSource(dataSource) {
this.setState({
dataSource: dataSource
});
}
}, {
key: "baseControl",
value: function baseControl() {
var _this3 = this;
var baseControl = null;
if (this.state.readOnly) {
baseControl = (0, _text["default"])(this.state.value);
} else {
var dataSource = this.state.dataSource || [];
var titleField = this.state.titleField;
var keyField = this.state.keyField;
var childrenField = this.state.childrenField;
var loop = function loop(data) {
return data.map(function (item) {
if (item[childrenField]) {
return _react["default"].createElement(TreeNode, {
data: item,
value: item[keyField],
title: item[titleField],
key: item[keyField]
}, loop(item[childrenField]));
}
return _react["default"].createElement(TreeNode, {
data: item,
value: item[keyField],
title: item[titleField],
key: item[keyField],
isLeaf: item.isLeaf,
disabled: item.disabled
});
});
};
var treeNodes = loop(dataSource);
baseControl = _react["default"].createElement(_baseui.TreeSelect, {
disabled: this.state.disabled,
treeNodeFilterProp: "title",
onClick: function onClick() {
return _this3.handleClick();
},
showSearch: true,
value: this.state.value,
dropdownStyle: {
maxHeight: 400,
overflow: 'auto'
},
allowClear: true,
onSelect: function onSelect(selectedKeys, e) {
return _this3.onSelect(selectedKeys, e);
},
onChange: this.onChange
}, treeNodes);
}
return baseControl;
}
}, {
key: "getControl",
value: function getControl() {
var _this4 = this;
var _this$props = this.props,
bJointQuery = _this$props.bJointQuery,
cShowCaption = _this$props.cShowCaption;
var title = bJointQuery ? _react["default"].createElement("a", {
onClick: function onClick(e) {
return _this4.handleJointQuery(e);
}
}, cShowCaption) : cShowCaption;
title = !this.state.readOnly && this.state.bIsNull === false && cShowCaption ? _react["default"].createElement("label", null, _react["default"].createElement(_baseui.Icon, {
type: "star"
}), title) : _react["default"].createElement("label", null, title);
var control = cShowCaption ? _react["default"].createElement(_label["default"], {
control: this.baseControl(),
title: title
}) : this.baseControl();
return control;
}
}, {
key: "render",
value: function render() {
var control = this.getControl();
return control;
}
}]);
return TreeRefer;
}(_react.Component);
exports["default"] = TreeRefer;
//# sourceMappingURL=treerefer1.js.map