UNPKG

ming-demo3

Version:
272 lines (233 loc) 8.22 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 _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