ming-demo3
Version:
mdf metaui web
307 lines (267 loc) • 10.4 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 _reactDom = require("react-dom");
var _baseui = require("@mdf/baseui");
var _ReferToolbar = _interopRequireDefault(require("./ReferToolbar"));
var _basic = require("../basic");
var _SearchTree = _interopRequireDefault(require("../meta/SearchTree"));
var _ReferTable = _interopRequireDefault(require("./ReferTable"));
var _ReferPagination = _interopRequireDefault(require("./ReferPagination"));
var _env = _interopRequireDefault(require("../../helpers/env"));
var ConvenientQuery = null;
var ReferModal = function (_React$Component) {
(0, _inherits2["default"])(ReferModal, _React$Component);
function ReferModal(props) {
var _this2;
(0, _classCallCheck2["default"])(this, ReferModal);
_this2 = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ReferModal).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "afterClose", function () {
_this2.hasClickOk = false;
});
ConvenientQuery = require('../filter')["default"];
_this2.state = {
className: _env["default"].INTERACTIVE_MODE === 'touch' ? ' refer-modal-touch' : '',
title: (_this2.props.title || '') + '参照',
visible: _this2.props.visible,
referType: _this2.props.referType,
bodyHeight: 0,
tableHeight: 0,
modalWidth: 0
};
_this2.__isElectronic = false;
_this2._clientHeight = 0;
return _this2;
}
(0, _createClass2["default"])(ReferModal, [{
key: "componentDidMount",
value: function componentDidMount() {
if (window.__isElectronic) {
this.__isElectronic = true;
}
this.clientHeight = document.documentElement.clientHeight;
}
}, {
key: "getModel",
value: function getModel() {
return this.props.model || this.model;
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
var _this3 = this;
this.setState({
visible: nextProps.visible
});
var model = nextProps.model;
if (model) {
var referType = nextProps.referType;
var modalHeight = this.clientHeight - this.clientHeight * 0.16;
if (modalHeight < 340) modalHeight = 340;
var bodyHeight = modalHeight - 110;
var tHeight;
var modalWidth = modalHeight * (this.__isElectronic ? 1.4 : 1.6);
if (modalWidth < 900) modalWidth = 900;
switch (referType) {
case 'Table':
tHeight = bodyHeight - 44;
break;
case 'TreeTable':
tHeight = bodyHeight - 56;
break;
}
this.setState({
referType: referType,
bodyHeight: bodyHeight,
tableHeight: tHeight,
modalWidth: modalWidth
});
if (!this.props.model) {
model.un('filterHeightUpdate');
model.on('filterHeightUpdate', function () {
var toolbarHeight = (0, _reactDom.findDOMNode)(_this3.refs.ReferToolbar).clientHeight;
var tableHeight = _this3.state.bodyHeight - toolbarHeight;
_this3.props.model.get('table').execute('toolbarHeightUpdate', tableHeight);
});
if (typeof this.props.afterOkClick === 'function') model.on('afterOkClick', this.props.afterOkClick);
}
} else {
if (this.props.cRefType) {
model = this.getModel();
if (!model) {
var self = this;
this.model = cb.loader.initRefer(this.props.cRefType, this.props.multiple || false, null, function (data) {
self.setState({
referType: data.cTplType
});
}, this.props.afterOkClick);
}
}
}
}
}, {
key: "handleCancel",
value: function handleCancel() {
this.setState({
visible: false
});
if (this.props.close) this.props.close();
}
}, {
key: "handleOk",
value: function handleOk() {
if (this.hasClickOk) return;
this.hasClickOk = true;
this.handleCancel();
var model = this.getModel();
if (model) model.okClick();
}
}, {
key: "getFilterContainer",
value: function getFilterContainer() {
var container = document.getElementById('yxyweb-support-mount-model') || document.body;
var _div = document.createElement("div");
container.appendChild(_div);
return _div;
}
}, {
key: "render",
value: function render() {
var _this4 = this;
var _this = this;
var _this$state = this.state,
referType = _this$state.referType,
bodyHeight = _this$state.bodyHeight,
tableHeight = _this$state.tableHeight,
modalWidth = _this$state.modalWidth,
title = _this$state.title,
visible = _this$state.visible;
var model = this.getModel();
var key = model && model.getParams().refCode;
var treeContent = '';
var cardContent = '';
var className = 'referModal ' + referType + this.state.className;
className += ' modalkey_' + key;
if (referType == 'Tree') {
treeContent = _react["default"].createElement(_basic.Col, {
span: 24,
className: "leftPanel"
}, _react["default"].createElement(_basic.Row, {
colCount: 2
}, _react["default"].createElement(_basic.Col, {
span: 1
}, _react["default"].createElement(_SearchTree["default"], {
model: model.get('tree'),
height: bodyHeight
}))));
} else if (referType == 'TreeTable') {
treeContent = _react["default"].createElement("div", {
className: "leftPanel"
}, _react["default"].createElement(_SearchTree["default"], {
text: "".concat(this.props.title, "\u5206\u7C7B"),
parentType: "TreeTable",
height: bodyHeight,
model: model.get('tree')
}));
var filterId = model.getParams().filterId;
cardContent = _react["default"].createElement("div", {
className: "rightPanel"
}, _react["default"].createElement(_basic.Row, {
ref: "ReferToolbar"
}, filterId ? _react["default"].createElement(ConvenientQuery, {
model: model,
cols: 2
}) : null, _react["default"].createElement(_ReferToolbar["default"], {
model: model,
filterId: filterId
})), _react["default"].createElement(_basic.Row, null, _react["default"].createElement(_ReferTable["default"], {
model: model.get('table'),
width: modalWidth - 201,
maxRowCount: 20,
height: tableHeight
})));
} else if (referType == 'Table') {
var _filterId = model.getParams().filterId;
cardContent = _react["default"].createElement(_basic.Col, {
span: 24,
className: "rightPanel"
}, _react["default"].createElement(_basic.Row, {
ref: "ReferToolbar"
}, _filterId ? _react["default"].createElement(ConvenientQuery, {
model: model,
cols: 2
}) : null, _react["default"].createElement(_ReferToolbar["default"], {
model: model,
filterId: _filterId
})), _react["default"].createElement(_basic.Row, null, _react["default"].createElement(_ReferTable["default"], {
model: model.get('table'),
width: modalWidth,
maxRowCount: 20,
height: tableHeight
})));
} else if (referType === 'TreeList') {
var _filterId2 = model.getParams().filterId;
cardContent = _react["default"].createElement(_basic.Col, {
span: 24,
className: "rightPanel"
}, _react["default"].createElement(_basic.Row, {
ref: "ReferToolbar"
}, _filterId2 ? _react["default"].createElement(ConvenientQuery, {
model: model,
cols: 2
}) : null, _react["default"].createElement(_ReferToolbar["default"], {
model: model,
filterId: _filterId2
})), _react["default"].createElement(_basic.Row, null, _react["default"].createElement(_basic.TreeTable, {
model: model.get('tree'),
width: modalWidth,
maxRowCount: 20,
height: tableHeight,
actionMeta: {
controls: []
}
})));
}
var modalContent = null;
modalContent = _react["default"].createElement(_baseui.Modal, {
key: key,
maskClosable: false,
width: modalWidth,
getContainer: function getContainer() {
return _this.getFilterContainer();
},
title: title,
visible: visible,
onOk: function onOk(e) {
return _this4.handleOk();
},
onCancel: function onCancel(e) {
return _this4.handleCancel();
},
okText: "\u786E\u5B9A",
cancelText: "\u53D6\u6D88",
className: className,
afterClose: this.afterClose
}, _react["default"].createElement(_basic.Row, {
colCount: 24,
id: key
}, treeContent, cardContent));
return modalContent;
}
}]);
return ReferModal;
}(_react["default"].Component);
exports["default"] = ReferModal;
//# sourceMappingURL=ReferModal.js.map