UNPKG

ming-demo3

Version:
362 lines (310 loc) 12.6 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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); 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 _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep")); var _get2 = _interopRequireDefault(require("lodash/get")); var _react = _interopRequireDefault(require("react")); var _baseui = require("@mdf/baseui"); var BasicComponents = _interopRequireWildcard(require("../basic")); var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon")); var Row = BasicComponents.Row, Col = BasicComponents.Col, Button = BasicComponents.Button, Label = BasicComponents.Label, Tag2 = BasicComponents.Tag2; var BasicComponentsMap = {}; for (var attr in BasicComponents) { BasicComponentsMap[attr.toLocaleLowerCase()] = BasicComponents[attr]; } var FilterEChart = function (_React$Component) { (0, _inherits2["default"])(FilterEChart, _React$Component); function FilterEChart(props) { var _this; (0, _classCallCheck2["default"])(this, FilterEChart); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(FilterEChart).call(this, props)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "Tag2Clicked", function () { _this.SearchEvent(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "showModal", function () { _this.setState({ visible: true }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleCancel", function () { _this.setState({ visible: false }); }); var params = props.model.getParams(); var filterId = props.config && props.config.filterid || props.config.filterId || params.filterId; var cardKey = params.cardKey; _this.state = { filterId: filterId, cardKey: cardKey, current: '', visible: false, screenwidth: process.env.__CLIENT__ ? window.innerWidth : 0, filterModel: [], isInPanel: params.isInPanel || false, isInDesign: params.isInDesign || false }; _this.vm = cb.loader.initMetaCommonViewModel('FilterViewModel', 'filterViewModel', { filterId: filterId, condition: params.condition, cardKey: cardKey, isInPanel: _this.state.isInPanel, isInDesign: _this.state.isInDesign, solutionId: params.solutionId, viewid: (0, _get2["default"])(props.model.getParams(), 'query.viewid'), bHasNullDate: props.model.getParams().bHasNullDate || false }, _this.props.model, ['filterClick']); _this.props.model.on('updateCondition', function (condition) { if (!condition || !condition.commonVOs || !condition.commonVOs.length) return; var flag = true; _this.vm.setCache('condition', condition); condition.commonVOs.forEach(function (a) { var attr = a.itemName; var itemModel = _this.vm.get(attr); if (!itemModel) return; itemModel.getFromModel().setValue(a.value1); var ctrlType = itemModel.getState('ctrlType'); if (ctrlType && ctrlType.trim().toLocaleLowerCase() === 'tagbutton') { flag = false; } }); if (flag) { _this.SearchEvent(); } }); _this.props.model.on('eChartPanel_GetCondition', function () { _this.SearchEvent(); }); return _this; } (0, _createClass2["default"])(FilterEChart, [{ key: "componentDidMount", value: function componentDidMount() { if (this.vm) { this.vm.addListener(this); } } }, { key: "componentDidUpdate", value: function componentDidUpdate() { this.props.model.execute('filterHeightUpdate'); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.vm.removeListener(this); } }, { key: "initFilterFields", value: function initFilterFields(args) { var filterModel = []; var _args$filterDetail = args.filterDetail, CommonModel = _args$filterDetail.CommonModel, AllFilterModel = _args$filterDetail.AllFilterModel; AllFilterModel.forEach(function (eleAll) { CommonModel.forEach(function (eleCommon) { if (eleAll.id && eleCommon.itemId && eleCommon.itemId == eleAll.id) { filterModel.push(Object.assign({}, eleAll, eleCommon)); } }); }); this.vm.fireEvent('initFilterViewModel', { filterModel: filterModel }); filterModel = filterModel.sort(function (a, b) { return a.orderId - b.orderId; }); this.setState({ current: args.current, filterModel: filterModel }); } }, { key: "SearchEvent", value: function SearchEvent() { if (this.vm) { this.vm.fireEvent('searchEvent', { model: this.props.model, solutionid: this.state.current }); this.vm.get('search').fireEvent('click', { model: this.props.model, solutionid: this.state.current }); } this.setState({ visible: false }); } }, { key: "getControls", value: function getControls(ele, isShowCaption) { var control = null; var filterVMField = null; var ctrlType = ele.ctrlType.trim().toLocaleLowerCase(); if (ele.isCommon == 1 || ele.isCommon == true) { var ComName = BasicComponentsMap[ctrlType]; switch (ctrlType) { case "tagbutton": if (ele.autoFlt == true) { filterVMField = this.vm.get(ele.itemName); var fromModel = filterVMField.getFromModel(); control = _react["default"].createElement(Col, { key: ele.itemName, span: 24 }, _react["default"].createElement(Tag2, { TagTitle: !isShowCaption && ele.cShowCaption, TagData: ele.enumString, TagCanMultSel: ele.multSelect != 0, TagClicked: this.Tag2Clicked, model: fromModel }, " ")); } break; case "predicatedatepicker": var model = this.vm.get(ele.itemName).getFromModel(); control = _react["default"].createElement(ComName, { model: model, key: ele.itemName, cShowCaption: !isShowCaption && ele.cShowCaption, isInPanel: this.state.isInPanel }); break; default: var config = null; try { config = JSON.parse(ele.extendField); } catch (e) { config = {}; } filterVMField = this.vm.get(ele.itemName); if (!!filterVMField) { var compareLogic = ele.compareLogic; var _fromModel = filterVMField.getFromDisplayModel() || filterVMField.getFromModel(); var toModel = filterVMField.getToModel(); var _ctrlType = ele.ctrlType ? ele.ctrlType.trim().toLocaleLowerCase() : 'input'; control = compareLogic === 'between' ? _react["default"].createElement("div", { className: "Test-time-two", key: ele.itemName }, _react["default"].createElement(Col, { span: 11 }, this.getComponent(ComName, _fromModel, config, _ctrlType, ele, isShowCaption)), _react["default"].createElement(Col, { span: 2, className: "sp-range-txt" }, _react["default"].createElement("span", null, "\u81F3")), _react["default"].createElement(Col, { span: 11 }, this.getComponent(ComName, toModel, config, _ctrlType, ele, isShowCaption))) : this.getComponent(ComName, _fromModel, config, _ctrlType, ele, isShowCaption); } } } return control; } }, { key: "getComponent", value: function getComponent(ComName, model, config, ctrlType, ele, isShowCaption) { return ComName ? _react["default"].createElement(ComName, (0, _extends2["default"])({ model: model, key: ele.itemName, placeholder: isShowCaption && '请选择' + ele.cShowCaption, cShowCaption: !isShowCaption && ele.cShowCaption }, config)) : _react["default"].createElement("h1", { key: ele.itemName }, ctrlType); } }, { key: "footerContent", value: function footerContent() { var _this2 = this; return _react["default"].createElement("div", { className: "popover-filter-footer" }, _react["default"].createElement(Button, { type: "default", onClick: this.handleCancel }, "\u53D6\u6D88"), !this.props.autoExpand ? _react["default"].createElement(Button, { type: "primary", onClick: function onClick(e) { return _this2.SearchEvent(); } }, "\u641C\u7D22") : null); } }, { key: "getContent", value: function getContent(controls, filterModel) { var modelFooter = this.footerContent(); return _react["default"].createElement("div", { className: "col-float", style: { width: "100%" } }, _react["default"].createElement("div", { className: "popover-filter-list" }, controls.length ? controls.map(function (val, index) { var ctrlType = filterModel[index].ctrlType.trim().toLocaleLowerCase(); return ctrlType == "predicatedatepicker" ? _react["default"].createElement("div", { className: "viewCell width-percent-100" }, val) : _react["default"].createElement("div", { className: "viewCell width-percent-50" }, val); }) : null), modelFooter); } }, { key: "render", value: function render() { var _this3 = this; var _this$state = this.state, filterModel = _this$state.filterModel, visible = _this$state.visible, screenwidth = _this$state.screenwidth; var _this$props = this.props, width = _this$props.width, config = _this$props.config; var controls = filterModel.length ? filterModel.map(function (ele) { return _this3.getControls(ele); }) : []; var _filterModel = (0, _cloneDeep2["default"])(filterModel); _filterModel = screenwidth > 1476 ? _filterModel.slice(0, 2) : _filterModel.slice(0, 1); var showControls = width === '67%' && _filterModel.length ? _filterModel.map(function (ele) { return _this3.getControls(ele, true); }) : null; var content = this.getContent(controls, filterModel); return _react["default"].createElement("div", { className: "filter-inDesktop" }, _react["default"].createElement("span", { className: "filter-inDesktop-left" }, config.billName), _react["default"].createElement("div", { className: "filter-inDesktop-right" }, showControls), _react["default"].createElement(_baseui.Popover, { content: content, trigger: "click", onCancel: this.handleCancel, visible: visible, overlayClassName: 'filter-inDesktop-container' }, _react["default"].createElement("span", { className: "filter-inDesktop-pointer", onClick: this.showModal }, _react["default"].createElement("i", { className: "iconfont icon-shaixuan1" })))); } }]); return FilterEChart; }(_react["default"].Component); exports["default"] = FilterEChart; ; //# sourceMappingURL=filterEChart.js.map