ming-demo3
Version:
mdf metaui web
229 lines (198 loc) • 6.79 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireWildcard(require("react"));
var _baseui = require("@mdf/baseui");
var _label = _interopRequireDefault(require("./label"));
var _text = _interopRequireDefault(require("./text"));
var Option = _baseui.Select.Option;
var ListRefer = function (_Component) {
(0, _inherits2["default"])(ListRefer, _Component);
function ListRefer(props) {
var _this;
(0, _classCallCheck2["default"])(this, ListRefer);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ListRefer).call(this, props));
_this.state = {
bIsNull: props.bIsNull
};
return _this;
}
(0, _createClass2["default"])(ListRefer, [{
key: "getModel",
value: function getModel() {
return this.props.model || this.model;
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
if (this.props.focus) this.refs.input.refs.input.focus();
}
}, {
key: "handleClick",
value: function handleClick() {
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.gridModel = e.vm.get('table');
this.gridModel.addListener(this);
if (typeof this.props.afterOkClick === 'function') this.referViewModel.on('afterOkClick', this.props.afterOkClick);
}
}, {
key: "setValue",
value: function setValue(value) {
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) model.browse(true);
}
}, {
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: "onChange",
value: function onChange(value) {
var referValue;
if (value == null) {
referValue = value;
} else {
this.gridModel.select([value]);
referValue = this.gridModel.getSelectedRows();
}
this.referViewModel.execute('afterOkClick', referValue);
}
}, {
key: "setDataSource",
value: function setDataSource(dataSource) {
this.setState({
dataSource: dataSource
});
}
}, {
key: "baseControl",
value: function baseControl() {
var _this2 = 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.textField || 'name';
var keyField = this.state.keyField || 'code';
var value = dataSource.findIndex(function (item) {
return item[titleField] === _this2.state.value;
});
if (value === -1) {
value = this.state.value;
} else {
value = value.toString();
}
var loop = function loop(data) {
return data.map(function (item, index) {
return _react["default"].createElement(Option, {
value: index.toString()
}, item[titleField]);
});
};
var optionNodes = loop(dataSource);
baseControl = _react["default"].createElement(_baseui.Select, {
onFocus: function onFocus() {
return _this2.handleClick();
},
value: value,
allowClear: true,
onChange: function onChange(value) {
return _this2.onChange(value);
}
}, optionNodes);
}
return baseControl;
}
}, {
key: "getControl",
value: function getControl() {
var _this3 = 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 _this3.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 ListRefer;
}(_react.Component);
exports["default"] = ListRefer;
//# sourceMappingURL=listrefer2.js.map