ming-demo3
Version:
mdf metaui web
540 lines (487 loc) • 18.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 _baseui = require("@mdf/baseui");
var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon"));
var eChartCommon = _interopRequireWildcard(require("../echart/eChartCommon"));
var eChartProxy = _interopRequireWildcard(require("../echart/eChartProxy"));
var RadioGroup = _baseui.Radio.Group;
var SumAreaSetting = function (_React$Component) {
(0, _inherits2["default"])(SumAreaSetting, _React$Component);
function SumAreaSetting(props) {
var _this;
(0, _classCallCheck2["default"])(this, SumAreaSetting);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(SumAreaSetting).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "ShowList", function () {
var self = (0, _assertThisInitialized2["default"])(_this);
var bShowList = !self.state.bShowList;
if (bShowList == true) {
self.setState({
bShowList: bShowList,
sumConfig: {},
showCardFieldName: "",
bOnlyShowSelected: true
});
self.getConfig();
} else {}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getEleText", function (ele) {
var value = ele.value;
var str = "无对应值";
var arr = ele.enumArray && JSON.parse(ele.enumArray);
var tmp = _.find(arr, function (o) {
return o.key == ele.value;
});
if (tmp) str = tmp.value;
return str;
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOk", function () {
var self = (0, _assertThisInitialized2["default"])(_this);
var sumConfig = self.state.sumConfig;
var params = {};
params.billnum = self.state.billnum;
params.id = sumConfig.id;
params.name = sumConfig.name;
params.items = _.filter(sumConfig.items, function (o) {
return o.selected == 1;
});
params.isOnlyTotal = true;
var callback = function callback(json) {
if (json.code === 200) {
self.setState({
bShowList: false,
showCardFieldName: "",
bOnlyShowSelected: true
});
self.props.viewModel.execute('saveSumArea');
}
if (json.code !== 200) {
console.log("保存汇总区设置失败。信息 : " + (json.message ? json.message : JSON.stringify(json)).toString());
}
};
eChartProxy.doProxy(eChartProxy.url.saveTotalSchema, 'POST', params, callback);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleCancel", function () {
_this.setState({
bShowList: false,
showCardFieldName: "",
bOnlyShowSelected: true
});
});
var viewModel = props.viewModel;
var _viewModel$getParams = viewModel.getParams(),
billNo = _viewModel$getParams.billNo;
_this.state = {
billnum: billNo,
bShowList: false,
showCardFieldName: "",
showCardEle: {},
bOnlyShowSelected: true,
inMouseField: "",
sumConfig: {}
};
return _this;
}
(0, _createClass2["default"])(SumAreaSetting, [{
key: "componentDidMount",
value: function componentDidMount() {}
}, {
key: "render",
value: function render() {
var self = this;
var type = self.state.bShowList ? "up" : "down";
var listContent2 = this.getListContent();
var className = this.props.className;
var conditionPop = _react["default"].createElement("div", {
style: {
"float": 'left'
},
className: className
}, _react["default"].createElement(_baseui.Popover, {
placement: "bottom",
overlayClassName: "sumareasetting_list",
content: listContent2,
trigger: "click",
visible: self.state.bShowList && _.isEmpty(listContent2) == false,
onVisibleChange: function onVisibleChange(visible) {
return self.onVisibleChange(visible, self);
}
}, _react["default"].createElement(_baseui.Button, {
onClick: function onClick() {
return self.ShowList();
},
type: type
}, _react["default"].createElement(_SvgIcon["default"], {
type: "huizongshezhi",
className: "icon-huizongshezhi"
}), _react["default"].createElement("span", null, self.props.name ? self.props.name : "汇总设置"))));
return conditionPop;
}
}, {
key: "onVisibleChange",
value: function onVisibleChange(visible, self) {
if (visible == false && self.state.showCardFieldName == "") {
self.setState({
bShowList: false,
showCardFieldName: "",
bOnlyShowSelected: true
});
}
}
}, {
key: "sortClick",
value: function sortClick(type, fieldname) {
var sumConfig = this.state.sumConfig;
var curIndex = _.findIndex(sumConfig.items, function (o) {
return o.fieldname == fieldname;
});
var index2 = -1;
if (type == "up") {
index2 = _.findLastIndex(sumConfig.items, function (o, index) {
return o.selected == 1 && index < curIndex;
});
} else {
index2 = _.findIndex(sumConfig.items, function (o, index) {
return o.selected == 1 && index > curIndex;
});
}
if (index2 >= 0 && index2 < sumConfig.items.length) {
var tmp = sumConfig.items[curIndex];
sumConfig.items[curIndex] = sumConfig.items[index2];
sumConfig.items[index2] = tmp;
}
this.setState({
sumConfig: sumConfig
});
}
}, {
key: "ShowCard",
value: function ShowCard(ele) {
var showCardEle = _.cloneDeep(ele);
this.setState({
showCardEle: showCardEle,
showCardFieldName: ele.fieldname
});
}
}, {
key: "onMouseEnter",
value: function onMouseEnter(bFlag, fieldname, index) {
if (bFlag) {
this.setState({
inMouseField: fieldname
});
} else {
this.setState({
inMouseField: ""
});
}
}
}, {
key: "onChecked",
value: function onChecked(e, element, index) {
var checked = e.target.checked;
var sumConfig = this.state.sumConfig;
if (checked && _.filter(sumConfig.items, function (o) {
return o.selected == 1;
}).length >= 8) {
cb.utils.alert("最多选择8个汇总项。");
this.setState({});
} else {
sumConfig.items[index].selected = checked ? 1 : 0;
this.setState({
sumConfig: sumConfig
});
}
}
}, {
key: "setShowCaption",
value: function setShowCaption(value) {
var self = this;
var showCardEle = self.state.showCardEle;
showCardEle.showCaption = value;
this.setState({
showCardEle: showCardEle
});
}
}, {
key: "handleRadioChange",
value: function handleRadioChange(value) {
var self = this;
var showCardEle = self.state.showCardEle;
showCardEle.value = value;
this.setState({
showCardEle: showCardEle
});
}
}, {
key: "handleCardOk",
value: function handleCardOk() {
var self = this;
var showCardEle = self.state.showCardEle;
var sumConfig = this.state.sumConfig;
var tmp = _.find(sumConfig.items, function (o) {
return o.fieldname == self.state.showCardFieldName;
});
tmp.value = showCardEle.value;
tmp.showCaption = showCardEle.showCaption;
this.setState({
sumConfig: sumConfig,
showCardFieldName: ""
});
}
}, {
key: "handleCardCancel",
value: function handleCardCancel() {
this.setState({
showCardFieldName: ""
});
}
}, {
key: "getCardContent",
value: function getCardContent() {
var _this2 = this;
var self = this;
var cardContent;
var ele = self.state.showCardEle;
if (ele) {
var arr = [];
if (ele.enumArray) {
arr = JSON.parse(ele.enumArray);
} else {
arr = [{
"nameType": "text",
"value": "汇总",
"key": "sum"
}, {
"nameType": "text",
"value": "计数",
"key": "count"
}, {
"nameType": "text",
"value": "平均",
"key": "avg"
}, {
"nameType": "text",
"value": "最小",
"key": "min"
}, {
"nameType": "text",
"value": "最大",
"key": "max"
}, {
"nameType": "text",
"value": "去重计数",
"key": "count_distinct"
}];
}
var contentArr = [];
arr.forEach(function (ele) {
contentArr.push(_react["default"].createElement(_baseui.Radio, {
value: ele.key
}, ele.value));
});
cardContent = _react["default"].createElement("div", null, _react["default"].createElement("div", {
className: "sumareasetting_disname"
}, _react["default"].createElement("span", null, "\u663E\u793A\u540D\u79F0:"), _react["default"].createElement(_baseui.Input, {
placeholder: "\u663E\u793A\u540D\u79F0",
value: ele.showCaption ? ele.showCaption : "",
onChange: function onChange(e) {
return self.setShowCaption(e.target.value);
}
})), _react["default"].createElement("div", null, _react["default"].createElement(RadioGroup, {
onChange: function onChange(e) {
return self.handleRadioChange(e.target.value);
},
value: ele.value
}, contentArr)), _react["default"].createElement("div", {
className: "footer-btn"
}, _react["default"].createElement(_baseui.Button, {
type: "primary",
onClick: function onClick() {
return _this2.handleCardOk();
}
}, "\u786E\u5B9A"), _react["default"].createElement(_baseui.Button, {
type: "default",
onClick: function onClick() {
return _this2.handleCardCancel();
}
}, "\u53D6\u6D88")));
}
return cardContent;
}
}, {
key: "onCardVisibleChange",
value: function onCardVisibleChange(visible, self) {
if (visible == false) {
self.setState({
showCardFieldName: ""
});
}
}
}, {
key: "getListContent",
value: function getListContent() {
var _this3 = this;
var self = this;
if (_.isEmpty(self.state.sumConfig)) {
return null;
} else {
var listContent = [];
var listContentInner = [];
var bOnlyShowSelected = self.state.bOnlyShowSelected ? true : false;
listContent.push(_react["default"].createElement("div", {
className: "sumarea_list_caption"
}, _react["default"].createElement("span", {
className: "sumareaset-left"
}, "\u6C47\u603B\u8BBE\u7F6E"), _react["default"].createElement(_baseui.Checkbox, {
title: "只显示已选",
checked: bOnlyShowSelected,
onChange: function onChange(e) {
self.setState({
bOnlyShowSelected: !bOnlyShowSelected
});
}
}, "只显示已选")));
var cardContent;
var items = self.state.sumConfig.items;
items.forEach(function (ele, index) {
var item;
var selected = ele.selected == 1 ? 1 : 0;
cardContent = null;
if (self.state.showCardEle.fieldname == ele.fieldname) {
cardContent = self.getCardContent();
}
var showCurrent = self.state.showCardFieldName == ele.fieldname ? true : false;
if (selected || bOnlyShowSelected == false) {
var bShowUpDown = selected && ele.fieldname == self.state.inMouseField ? true : false;
var updown = bShowUpDown ? _react["default"].createElement("span", {
className: "sumarea_list_updown"
}, _react["default"].createElement(_baseui.Button, {
style: {
borderWidth: 0
},
icon: "arrow-up",
onClick: function onClick() {
return self.sortClick('up', ele.fieldname);
}
}), _react["default"].createElement(_baseui.Button, {
style: {
borderWidth: 0
},
icon: "arrow-down",
onClick: function onClick() {
return self.sortClick('down', ele.fieldname);
}
})) : _react["default"].createElement("span", null);
item = _react["default"].createElement("div", {
className: "sumarea_list_item",
onMouseEnter: function onMouseEnter(e) {
return self.onMouseEnter(true, ele.fieldname, index);
},
onMouseLeave: function onMouseLeave(e) {
return self.onMouseEnter(false, ele.fieldname, index);
}
}, _react["default"].createElement("div", {
className: "sumarea_list_item_1"
}, _react["default"].createElement(_baseui.Checkbox, {
title: ele.caption,
checked: selected == 1 ? true : false,
onChange: function onChange(e) {
return self.onChecked(e, ele, index);
}
}, ele.caption), _react["default"].createElement("div", {
className: "sumarea_showcaption_all"
}, ele.showCaption ? _react["default"].createElement("div", null, _react["default"].createElement("span", {
className: "sumarea_showcaption_1"
}, "("), " ", _react["default"].createElement("span", {
className: "sumarea_showcaption_2"
}, " ", ele.showCaption), _react["default"].createElement("span", {
className: "sumarea_showcaption_3"
}, ")"), " ") : "")), _react["default"].createElement(_baseui.Popover, {
placement: "bottom",
overlayClassName: "sumareasetting_card",
content: cardContent,
trigger: "click",
visible: showCurrent,
onVisibleChange: function onVisibleChange(visible) {
return self.onCardVisibleChange(visible, self);
}
}, _react["default"].createElement("div", {
className: "summary_select_all"
}, _react["default"].createElement(_baseui.Button, {
className: "sumarea_list_itemarrow_" + (showCurrent ? "1" : "0"),
disabled: !selected,
onClick: function onClick() {
return self.ShowCard(ele);
}
}, self.getEleText(ele)), _react["default"].createElement(_baseui.Icon, {
type: showCurrent ? "up" : "down"
}))), updown);
listContentInner.push(item);
}
}, this);
listContent.push(_react["default"].createElement("div", {
className: "sumarea_list_items"
}, listContentInner));
return _react["default"].createElement("div", null, _react["default"].createElement("div", null, listContent), _react["default"].createElement("div", {
className: "footer-btn"
}, _react["default"].createElement(_baseui.Button, {
type: "primary",
onClick: function onClick() {
return _this3.handleOk();
}
}, "\u786E\u5B9A"), _react["default"].createElement(_baseui.Button, {
type: "default",
onClick: function onClick() {
return _this3.handleCancel();
}
}, "\u53D6\u6D88"), _react["default"].createElement("div", {
className: "sumarea_list_8"
}, _react["default"].createElement("span", {
className: "sumarea_list_8_1"
}, "\u6700\u591A\u9009\u62E9"), _react["default"].createElement("span", {
className: "sumarea_list_8_2"
}, "8"), _react["default"].createElement("span", {
className: "sumarea_list_8_3"
}, "\u4E2A\u6C47\u603B\u9879"))));
}
}
}, {
key: "getConfig",
value: function getConfig() {
var self = this;
var param = {
billnum: self.state.billnum,
isOnlyTotal: true
};
var callback = function callback(json) {
if (json.code === 200) {
if (json.data) {
eChartCommon.LogChartInfo("设置汇总区 eChartConfig", json.data.chartConfig, 7);
self.setState({
sumConfig: json.data
});
return;
}
}
eChartCommon.LogChartInfo("设置汇总区_配置信息读取失败或者交叉表不支持 查询参数 =" + JSON.stringify(param) + " json.message", json.message, 999);
};
eChartProxy.doProxy(eChartProxy.url.getTotalSetting, 'GET', param, callback);
}
}]);
return SumAreaSetting;
}(_react["default"].Component);
exports["default"] = SumAreaSetting;
//# sourceMappingURL=sumareasetting.js.map