ming-demo3
Version:
mdf metaui web
389 lines (336 loc) • 13.3 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 _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