ming-demo3
Version:
mdf metaui web
362 lines (310 loc) • 12.6 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 _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