UNPKG

ming-demo3

Version:
389 lines (336 loc) 13.3 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireWildcard(require("react")); var _redux = require("redux"); var _reactRedux = require("react-redux"); var _basic = require("../basic"); var _rpttable = _interopRequireDefault(require("../rpttable")); var _TotalContainer = _interopRequireDefault(require("./TotalContainer")); var _DimensionNavTree = _interopRequireDefault(require("./DimensionNavTree")); var _eChartDisplay = _interopRequireDefault(require("../echart/echart/eChartDisplay")); var eChartDemoData = _interopRequireWildcard(require("../echart/eChartDemoData")); var _util = require("@mdf/cube/lib/helpers/util"); var eChartCommon = _interopRequireWildcard(require("../echart/eChartCommon")); var groupConditionRedux = _interopRequireWildcard(require("../../redux/groupCondition")); var _baseui = require("@mdf/baseui"); var RptTableContainer = function (_Component) { (0, _inherits2["default"])(RptTableContainer, _Component); function RptTableContainer(props) { var _this; (0, _classCallCheck2["default"])(this, RptTableContainer); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(RptTableContainer).call(this, props)); var viewid = _.get(props.viewModel.getParams(), 'query.viewid'); if (!viewid) viewid = ""; _this.state = { displayType: 1, layOutConfig: {}, eChartConfig: {}, billnum: "", groupSchemaId: "", groupSchemaName: "", condition: {}, firstQueryDone: false, viewid: viewid, isPc: true, isMobile: false, dimensionId: 0 }; _this.setDisplayNavTree(_this.state.dimensionId); return _this; } (0, _createClass2["default"])(RptTableContainer, [{ key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { var _this$props = this.props, groupConditionState = _this$props.groupConditionState, groupConditionRedux = _this$props.groupConditionRedux; var id = _.get(nextProps.groupConditionState[this.state.billnum], "refreshGroupSchemaId"); if (id && id == this.state.groupSchemaId) { this.getConfig(); groupConditionRedux.setValue(this.state.billnum, { refreshGroupSchemaId: "" }); return true; } return true; } }, { key: "componentDidMount", value: function componentDidMount() { var _this2 = this; var self = this; this.props.viewModel.on('refreshEChartConfig', function (params) { _this2.getConfig(params); }); this.props.viewModel.on("filterClick", function (params) { _this2.setState({ condition: params.condition }); }); this.props.viewModel.on('firstQueryDone', function (params) { _this2.state.firstQueryDone = params; }); this.props.viewModel.on('getPublishMenuInfo', function () { var viewModel = self.props.viewModel; var params = {}; params.name = viewModel.getParams().name; params.groupSchemaName = self.state.groupSchemaName; params.billnum = viewModel.getParams().billNo; params.isPc = self.state.isPc; params.isMobile = self.state.isMobile; if (!!self.state.groupSchemaId) params.groupSchemaId = self.state.groupSchemaId; params.condition = self.state.condition; viewModel.execute('setPublishMenuInfo', params); }); this.props.viewModel.on('dimensionChanged', function (params) { _this2.setDisplayNavTree(params.dimensionId); _this2.setState({ dimensionId: params.dimensionId }); }); } }, { key: "setDisplayNavTree", value: function setDisplayNavTree(dimensionId) { if (dimensionId) { this.props.viewModel.setCache('bDisplayNavTree', true); } else { this.props.viewModel.setCache('bDisplayNavTree', false); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() {} }, { key: "actionsProxy", value: function actionsProxy(url, method, params, callback) { var config = { url: url, method: method, params: params }; (0, _util.proxy)(config).then(function (json) { callback(json); }); } }, { key: "getConfig", value: function getConfig(params) { var _this3 = this; var billnum = params ? params.billnum : this.state.billnum; var groupSchemaId = params ? params.groupSchemaId : this.state.groupSchemaId; var groupSchemaName = params ? params.groupSchemaName : this.state.groupSchemaName; var param = { billnum: billnum, groupSchemaId: groupSchemaId }; var callback = function callback(json) { if (json.code === 200 && json.data && json.data.isCrossTable == false && json.data.displayStyle) { var displayType = json.data.displayStyle; var layOutConfig = json.data.pageLayout ? JSON.parse(json.data.pageLayout) : {}; var eChartConfig = json.data.chartConfig ? JSON.parse(json.data.chartConfig) : {}; var isPc = json.data.hasOwnProperty("isPc") ? json.data.isPc : true; var isMobile = json.data.hasOwnProperty("isMobile") ? json.data.isMobile : false; var obj = { displayType: displayType, layOutConfig: layOutConfig, eChartConfig: eChartConfig, isMobile: isMobile, isPc: isPc, billnum: billnum, groupSchemaId: groupSchemaId, groupSchemaName: groupSchemaName }; _this3.setState(obj); } else { eChartCommon.LogChartInfo("图形报表_配置信息读取失败或者交叉表不支持图形显示 param = " + JSON.stringify(param) + " json.data.isCrossTable = " + _.get(json, "data.isCrossTable") + " json.message = " + json.message, "", 999); var _isPc = json.data && json.data.hasOwnProperty("isPc") ? json.data.isPc : true; var _isMobile = json.data && json.data.hasOwnProperty("isMobile") ? json.data.isMobile : false; _this3.setState({ displayType: 1, layOutConfig: {}, eChartConfig: {}, isMobile: _isMobile, isPc: true, billnum: billnum, groupSchemaId: groupSchemaId, groupSchemaName: groupSchemaName }); } }; this.actionsProxy('/report/getGroupSetting', 'GET', param, callback); } }, { key: "render", value: function render() { var _this$props2 = this.props, meta = _this$props2.meta, viewModel = _this$props2.viewModel; var otherCom = null; if (this.state.displayType == 1) { otherCom = this.renderTable(); } else if (this.state.displayType == 2) { otherCom = this.renderChart(); } else if (this.state.displayType == 3) { otherCom = this.renderTableAndChart(); } var bDisplay = this.props.viewModel.getCache('bDisplayNavTree'); return _react["default"].createElement(_basic.Row, { className: bDisplay ? "RptTableContainer_Row1" : "" }, _react["default"].createElement(_TotalContainer["default"], { meta: meta, billnum: this.state.billnum, viewModel: viewModel, viewid: this.state.viewid }), _react["default"].createElement(_basic.Row, { className: bDisplay ? "RptTableContainer_Row2" : "" }, _react["default"].createElement(_basic.Col, { style: { display: bDisplay ? "" : "none" }, className: bDisplay ? "RptTableContainer_Col21" : "" }, _react["default"].createElement(_DimensionNavTree["default"], { billnum: this.state.billnum, viewModel: viewModel })), _react["default"].createElement(_basic.Col, { className: bDisplay ? "RptTableContainer_Col22" : "" }, otherCom))); } }, { key: "renderTable", value: function renderTable() { var _this$props3 = this.props, meta = _this$props3.meta, width = _this$props3.width, viewModel = _this$props3.viewModel; var style = meta.cStyle ? JSON.parse(meta.cStyle) : {}; var tableWidth = style.width || width; var bDisplay = this.props.viewModel.getCache('bDisplayNavTree'); if (bDisplay) tableWidth = tableWidth - 360 - 20; var columns = {}; if (meta.controls) { meta.controls.forEach(function (column) { columns[column.cItemName] = column; }); } var controlModel = viewModel.get(meta.childrenField || meta.cCode); return _react["default"].createElement(_rpttable["default"], { width: tableWidth, code: meta.cGroupCode, columns: columns, style: style, model: controlModel, tableClass: "rptTable", tableTyep: 'rptTable' }); } }, { key: "renderChart", value: function renderChart() { var charts = this.getSubChartContent(this.state.eChartConfig); return _react["default"].createElement("div", null, charts); } }, { key: "renderTableAndChart", value: function renderTableAndChart() { var self = this; var _this$props4 = this.props, meta = _this$props4.meta, width = _this$props4.width, viewModel = _this$props4.viewModel; var style = meta.cStyle ? JSON.parse(meta.cStyle) : {}; var tableWidth = style.width || width; var columns = {}; if (meta.controls) { meta.controls.forEach(function (column) { columns[column.cItemName] = column; }); } var controlModel = viewModel.get(meta.childrenField || meta.cCode); var rpt = _react["default"].createElement(_rpttable["default"], { width: tableWidth, code: meta.cGroupCode, columns: columns, style: style, model: controlModel, tableClass: "rptTable", tableTyep: 'rptTable' }); var content = []; content = self.getRows(this.state.layOutConfig.rows, content, rpt, controlModel); return _react["default"].createElement("div", null, content); } }, { key: "getRows", value: function getRows(config, content, rpt, controlModel) { var self = this; config.forEach(function (rowEle) { var curRow = []; rowEle.forEach(function (colEle) { if (colEle.widgetType == "rpt") { curRow.push(_react["default"].createElement(_basic.Col, { span: colEle.colspan }, " ", rpt)); } else if (colEle.widgetType == "chart") { var charts = self.getSubChartContent(self.state.eChartConfig); curRow.push(_react["default"].createElement(_basic.Col, { span: colEle.colspan }, " ", charts)); } else if (colEle.widgetType == "rows") { var innerContent = []; innerContent = self.getRows(colEle.widgetValue, innerContent, rpt, controlModel); curRow.push(_react["default"].createElement(_basic.Col, { span: colEle.colspan }, " ", innerContent)); } }); content.push(_react["default"].createElement(_basic.Row, { colCount: 12 }, curRow)); }); return content; } }, { key: "getSubChartContent", value: function getSubChartContent(eChartConfig) { var self = this; var queryParams = { billnum: self.state.billnum, groupSchemaId: self.state.groupSchemaId, condition: self.state.condition }; return _react["default"].createElement(_eChartDisplay["default"], { chartDisplayType: "rpt", eChartConfig: eChartConfig, viewModel: self.props.viewModel, queryParams: queryParams, firstQueryDone: this.state.firstQueryDone, viewid: this.state.viewid }); } }]); return RptTableContainer; }(_react.Component); function mapStateToProps(state) { return { groupConditionState: state.groupCondition.toJS() }; } function mapDispatchToProps(dispatch) { return { groupConditionRedux: (0, _redux.bindActionCreators)(groupConditionRedux, dispatch) }; } var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(RptTableContainer); exports["default"] = _default; //# sourceMappingURL=RptTableContainer.js.map