UNPKG

ming-demo3

Version:
1,271 lines (1,136 loc) 45 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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); 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 _baseui = require("@mdf/baseui"); var _react = _interopRequireWildcard(require("react")); var BasicComponents = _interopRequireWildcard(require("../basic")); var eChartProxy = _interopRequireWildcard(require("../echart/eChartProxy")); var Tag2 = BasicComponents.Tag2; var BasicComponentsMap = {}; for (var attr in BasicComponents) { BasicComponentsMap[attr.toLocaleLowerCase()] = BasicComponents[attr]; } var batchModify = function (_Component) { (0, _inherits2["default"])(batchModify, _Component); function batchModify(props) { var _this; (0, _classCallCheck2["default"])(this, batchModify); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(batchModify).call(this, props)); _this.model = props.model; _this.billType = props.billType; if (_this.isTest()) { _this.billType = "voucher"; } _this.billNo = props.billNo; _this.params = props.params; _this.gridModel = _this.getGridModel(); _this.state = _this.getInitState(props); return _this; } (0, _createClass2["default"])(batchModify, [{ key: "getInitState", value: function getInitState(props) { var tmp = {}; tmp.UEType = 0; tmp.fieldInfoArr = []; tmp.modifyFieldName = ""; tmp.modifyOperator = "="; tmp.filterRange = 0; if (this.billType == "voucher") tmp.filterRange = 1; tmp.filterObjs = []; tmp.filterOperatorsArr = [{ code: "dengyu", name: "等于", valueCount: 1 }, { code: "budengyu", name: "不等于", valueCount: 1 }, { code: "xiaoyu", name: "小于", valueCount: 1 }, { code: "xiaoyudengyu", name: "小于等于", valueCount: 1 }, { code: "dayu", name: "大于", valueCount: 1 }, { code: "dayudengyu", name: "大于等于", valueCount: 1 }, { code: "qujian", name: "区间", valueCount: 2, middleText: "至" }, { code: "baohan", name: "包含", valueCount: 1 }, { code: "bubaohan", name: "不包含", valueCount: 1 }, { code: "baohanyu", name: "包含于", valueCount: 1 }, { code: "bubaohanyu", name: "不包含于", valueCount: 1 }]; tmp.gridDataRows = []; return tmp; } }, { key: "isTest", value: function isTest() { return false; } }, { key: "getModifiedArr", value: function getModifiedArr() { var obj = this.containerModel && this.containerModel.getDirtyData(false); this.consoleLog("修改后ContainerModel中的脏数据字段 : " + JSON.stringify(obj)); this.clearNullObj(obj); return obj; } }, { key: "validateInput", value: function validateInput(obj) { var self = this; var UEType = this.state.UEType; var modifyFieldName = this.state.modifyFieldName; var modifyFieldValue = obj && obj[modifyFieldName]; var modifyOperator = this.state.modifyOperator; var filterRange = this.state.filterRange; var filterObjs = this.state.filterObjs; var billType = this.billType; var gridModel = this.gridModel; var errMsg = ""; if (self.isEmptyValue(obj)) { errMsg = "请输入修改数据信息。"; } if (self.isEmptyValue(modifyFieldName)) { errMsg = "请选择更改字段"; } if (filterRange == 1 && gridModel.getRows().length < 1) { errMsg = "没有可以更改的记录"; } if (billType == "list" && filterRange == 0 && gridModel.getSelectedRows().length < 1) { errMsg = "请选择记录"; } if (billType == "voucher" && filterRange == 0) { if (filterObjs.length == 0) { errMsg = "请增加过滤条件。"; } else if (_.filter(filterObjs, function (o) { return self.isEmptyValue(o.fieldName) || self.isEmptyValue(o.operator); }).length > 0) { errMsg = "存在过滤字段或者操作符为空的过滤行,请检查"; } } if (UEType == 1) { if (self.isEmptyValue(modifyOperator)) { errMsg = "操作符不可为空,请检查"; } else if (modifyOperator == "+" || modifyOperator == "-" || modifyOperator == "*" || modifyOperator == "/") { if (self.isEmptyValue(modifyFieldValue)) { errMsg = "数值不可为空,请检查"; } else if (isNaN(modifyFieldValue)) { errMsg = "请录入正确的数值"; } } } if (_.isEmpty(this.clearNullObj(obj))) { errMsg = "请修改字段信息。"; } if (errMsg == "") { return true; } else { cb.utils.alert(errMsg, 'warning'); return false; } } }, { key: "getGridModel", value: function getGridModel() { var self = this; var tmp; var model = this.model; if (this.isList() == true) { tmp = model && model.getGridModel(); } if (this.isVoucher() == true) { if (this.params && this.params['childrenField']) { tmp = model.get(this.params['childrenField']); } else if (this.billNo == "pc_product" && model.get("productParams")) { tmp = model.get("productParams"); } else if (this.billNo == "aa_vendor" && model.get("vendorbanks")) { tmp = model.get("vendorbanks"); } else { tmp = model.getGridModel(); } } if (!tmp) { this.consoleLog("批改错误:初始化 batchModify 没有找到GridModel!", true); } return tmp; } }, { key: "componentDidMount", value: function componentDidMount() { this.initDataByGrid(); } }, { key: "getFilterShowContent", value: function getFilterShowContent() { var _this2 = this; var self = this; var filterObjs = this.state.filterObjs; if (filterObjs.length < 1) { filterObjs.push(this.getNullFilterObj()); } var filterFieldsOption = []; this.state.fieldInfoArr.forEach(function (ele, index) { if (ele.bCanFilter == true) { filterFieldsOption.push(_react["default"].createElement(_baseui.Select.Option, { key: ele.fieldName, text: ele.fieldCaption }, ele.fieldCaption)); } }); var filterOperatorsOption = []; this.state.filterOperatorsArr.forEach(function (ele, index) { filterOperatorsOption.push(_react["default"].createElement(_baseui.Select.Option, { key: ele.code, text: ele.name, valueCount: ele.valueCount }, ele.name)); }); var contentArr = []; filterObjs.forEach(function (ele, index) { var rowContent = []; rowContent.push(_react["default"].createElement("span", { className: "BatchModify-FieldName" }, _react["default"].createElement(_baseui.Select, { value: ele.fieldName, onChange: function onChange(value) { return _this2.editFilterShowField("fieldName", index, value); } }, filterFieldsOption))); rowContent.push(_react["default"].createElement("span", { className: "BatchModify-Operator" }, _react["default"].createElement(_baseui.Select, { value: ele.operator, onChange: function onChange(value) { return _this2.editFilterShowField("operator", index, value); } }, filterOperatorsOption))); var operatorEle = ele.operator && _.find(self.state.filterOperatorsArr, function (o) { return o.code == ele.operator; }); var inputClassName = "BatchModify-InputNum-" + (operatorEle ? operatorEle.valueCount : "1"); if (ele.operator == "baohan") { rowContent.push(_react["default"].createElement("span", { className: inputClassName }, _react["default"].createElement(_baseui.Input, { placeholder: "\u8BF7\u8F93\u5165", value: ele.value1, onChange: function onChange(e) { return _this2.editFilterShowField("value1", index, e.target.value); } }))); } else if (ele.operator == "baohanyu" || ele.operator == "bubaohanyu") { rowContent.push(_react["default"].createElement("span", { className: inputClassName }, _react["default"].createElement(_baseui.Select, { value: ele.value1 || undefined, onChange: function onChange(value) { return _this2.editFilterShowField("value1", index, value); }, allowClear: true, placeholder: "\u8BF7\u8F93\u5165", mode: "multiple" }, _this2.getValueOption(ele.fieldName)))); } else { rowContent.push(_react["default"].createElement("span", { className: inputClassName }, _react["default"].createElement(_baseui.Select, { value: ele.value1, onChange: function onChange(value) { return _this2.editFilterShowField("value1", index, value); }, allowClear: true, placeholder: "\u8BF7\u8F93\u5165" }, _this2.getValueOption(ele.fieldName)))); } if (operatorEle && operatorEle.valueCount == 2) { rowContent.push(_react["default"].createElement("span", { className: "BatchModify-MiddleText" }, operatorEle.middleText)); rowContent.push(_react["default"].createElement("span", { className: inputClassName }, _react["default"].createElement(_baseui.Select, { value: ele.value2, onChange: function onChange(value) { return _this2.editFilterShowField("value2", index, value); }, allowClear: true, placeholder: "\u8BF7\u8F93\u5165" }, _this2.getValueOption(ele.fieldName)))); } rowContent.push(_react["default"].createElement("span", null, _react["default"].createElement("div", { className: "BatchModify-JiaJian" }, _react["default"].createElement(_baseui.Button, { onClick: function onClick() { return self.editFilterShowField("+", index); }, size: 'small' }, _react["default"].createElement(_baseui.Icon, { type: "tianjiashuliang" })), _react["default"].createElement(_baseui.Button, { onClick: function onClick() { return self.editFilterShowField("-", index); }, size: 'small' }, _react["default"].createElement(_baseui.Icon, { type: "jianshaoshuliang" }))))); contentArr.push(_react["default"].createElement("div", { className: "BatchModify-FilterRow", style: { display: 'flex' } }, rowContent)); }); return _react["default"].createElement("div", { className: "BatchModify-Filters", style: { display: 'flex' } }, contentArr); } }, { key: "editFilterShowField", value: function editFilterShowField(field, index, value) { var filterObjs = this.state.filterObjs; var ele = filterObjs[index]; if (field == "fieldName") { ele[field] = value; ele.value1 = ""; ele.value2 = ""; } else if (field == "operator") { ele[field] = value; ele.value1 = ""; ele.value2 = ""; } else if (field == "value1" || field == "value2") { ele[field] = value; } else if (field == "+") { var obj = this.getNullFilterObj(); filterObjs.splice(index + 1, 0, obj); } else if (field == "-") { filterObjs.splice(index, 1); } this.setState({ filterObjs: filterObjs }); } }, { key: "getNullFilterObj", value: function getNullFilterObj() { return { fieldName: "", operator: "", value1: "", value2: "" }; } }, { key: "checkFilterRule", value: function checkFilterRule(row, filter) { var fieldName = filter.fieldName; var ele = _.find(this.state.fieldInfoArr, function (o) { return o.fieldName == fieldName; }); var fieldValue = this.getFieldValue(row[fieldName]); var value1 = filter.value1; var value2 = filter.value2; if (fieldName == "" || filter.operator == "") { return true; } else if (filter.operator == "baohan") { return this.checkRule_baohan(fieldValue, value1, ele); } else if (filter.operator == "bubaohan") { return this.checkRule_bubaohan(fieldValue, value1, ele); } else if (filter.operator == "baohanyu") { return this.checkRule_baohanyu(fieldValue, value1, ele); } else if (filter.operator == "bubaohanyu") { return this.checkRule_bubaohanyu(fieldValue, value1, ele); } else if (filter.operator == "qujian") { return this.checkRule_qujian(fieldValue, value1, value2, ele); } else if (filter.operator == "dengyu") { return this.checkRule_dengyu(fieldValue, value1, ele); } else if (filter.operator == "budengyu") { return this.checkRule_budengyu(fieldValue, value1, ele); } else if (filter.operator == "xiaoyu") { return this.checkRule_xiaoyu(fieldValue, value1, ele); } else if (filter.operator == "xiaoyudengyu") { return this.checkRule_xiaoyudengyu(fieldValue, value1, ele); } else if (filter.operator == "dayu") { return this.checkRule_dayu(fieldValue, value1, ele); } else if (filter.operator == "dayudengyu") { return this.checkRule_dayudengyu(fieldValue, value1, ele); } else { this.consoleLog("batchModify 尚不支持当前操作符。filter = " + JSON.stringify(filter), true); return true; } return true; } }, { key: "checkRule_bubaohan", value: function checkRule_bubaohan(fieldValue, value1, ele) { return !this.checkRule_baohan(fieldValue, value1, ele); } }, { key: "checkRule_baohan", value: function checkRule_baohan(fieldValue, value1, ele) { if (this.isEmptyValue(fieldValue)) fieldValue = ""; if (this.isEmptyValue(value1)) value1 = ""; return fieldValue.toString().indexOf(value1.toString()) > -1; } }, { key: "checkRule_bubaohanyu", value: function checkRule_bubaohanyu(fieldValue, value1, ele) { return !this.checkRule_baohanyu(fieldValue, value1, ele); } }, { key: "checkRule_baohanyu", value: function checkRule_baohanyu(fieldValue, value1, ele) { if (this.isEmptyValue(fieldValue)) { fieldValue = ""; } if (this.isEmptyValue(value1)) { value1 = ""; } if (Array.isArray(value1)) { return value1.indexOf(fieldValue) >= 0; } else { return value1.toString().indexOf(fieldValue.toString()) > -1; } } }, { key: "checkRule_qujian", value: function checkRule_qujian(fieldValue, value1, value2, ele) { return this.checkRule_dengyu(fieldValue, value1, ele) || this.checkRule_dengyu(fieldValue, value2, ele) || this.checkRule_dayu(fieldValue, value1, ele) && this.checkRule_xiaoyu(fieldValue, value2, ele); } }, { key: "checkRule_budengyu", value: function checkRule_budengyu(fieldValue, value1, ele) { return !this.checkRule_dengyu(fieldValue, value1, ele); } }, { key: "checkRule_dengyu", value: function checkRule_dengyu(fieldValue, value1, ele) { if (ele.dataType == "number") { if (this.isEmptyValue(fieldValue)) { fieldValue = 0; } if (this.isEmptyValue(value1) || isNaN(value1)) { value1 = 0; } return this.parseToFloat(fieldValue) == this.parseToFloat(value1); } else { return fieldValue.toString() == value1.toString(); } return true; } }, { key: "checkRule_xiaoyudengyu", value: function checkRule_xiaoyudengyu(fieldValue, value1, ele) { return checkRule_xiaoyu(fieldValue, value1, ele) || checkRule_dengyu(fieldValue, value1, ele); } }, { key: "checkRule_xiaoyu", value: function checkRule_xiaoyu(fieldValue, value1, ele) { if (ele.dataType == "number") { if (this.isEmptyValue(fieldValue)) { fieldValue = 0; } if (this.isEmptyValue(value1) || isNaN(value1)) { value1 = 0; } return this.parseToFloat(fieldValue) < this.parseToFloat(value1); } else { return fieldValue.toString() < value1.toString(); } } }, { key: "checkRule_dayu", value: function checkRule_dayu(fieldValue, value1, ele) { if (ele.dataType == "number") { if (this.isEmptyValue(fieldValue)) { fieldValue = 0; } if (this.isEmptyValue(value1) || isNaN(value1)) { value1 = 0; } return this.parseToFloat(fieldValue) > this.parseToFloat(value1); } else { return fieldValue.toString() > value1.toString(); } } }, { key: "checkRule_dayudengyu", value: function checkRule_dayudengyu(fieldValue, value1, ele) { return checkRule_dayu(fieldValue, value1, ele) || checkRule_dengyu(fieldValue, value1, ele); } }, { key: "isEmptyValue", value: function isEmptyValue(fieldValue) { if (fieldValue == undefined || fieldValue == null || fieldValue == "" || fieldValue.trim && fieldValue.trim() == "" || fieldValue.length == "") return true;else return false; } }, { key: "getUserFilteredRows", value: function getUserFilteredRows() { var _this3 = this; var filterObjs = this.state.filterObjs; var gridDataRows = this.state.gridDataRows; this.consoleLog("当前录入的过滤的字段信息 filterObjs:" + JSON.stringify(filterObjs)); gridDataRows.forEach(function (row) { row.bCanBatchModify = true; }); if (this.state.filterRange == 0) { gridDataRows.forEach(function (row) { if (row.bCanBatchModify == true) { for (var k = 0; k < filterObjs.length; k++) { var filter = filterObjs[k]; var bOK = _this3.checkFilterRule(row, filter); if (bOK == false) { row.bCanBatchModify = false; k = filterObjs.length; } } } }); } var arr = []; gridDataRows.forEach(function (row, index) { if (row.bCanBatchModify == true) arr.push(index); }); return arr; } }, { key: "initDataByGrid", value: function initDataByGrid() { var _this4 = this; var gridColumns = _.cloneDeep(this.gridModel && this.gridModel.getColumns()); _.sortBy(gridColumns, function (o) { return o.iOrder; }); var fieldInfoArr = []; var fieldModels = {}; if (gridColumns) { Object.keys(gridColumns).forEach(function (key) { var ele = gridColumns[key]; ele.multiple = false; var fieldModel = _this4.getFieldModel(ele, ele.fieldName); var fieldInfo = {}; fieldInfo.fieldName = ele.fieldName; fieldInfo.fieldCaption = ele.cShowCaption || ele.cCaption || ""; fieldInfo.bCanModify = false; fieldInfo.bCanFilter = false; fieldInfo.UEType = 0; fieldInfo.ColumnEle = ele; fieldInfo.valueArr = []; fieldInfo.model = fieldModel; fieldInfo.dataType = ""; if (ele && ele.bCanModify && !ele.bHidden) { _this4.setUETypeAndDataType(fieldInfo); if (isNaN(fieldInfo.UEType) == false && fieldInfo.UEType > 0) { fieldInfo.bCanModify = true; } } if (ele && !ele.bHidden) { fieldInfo.bCanFilter = true; } fieldModels[ele.fieldName] = fieldModel; fieldInfoArr.push(fieldInfo); }); } else { this.consoleLog("批改错误:this.gridModel.getColumns()为空!", true); } var containerModel = new cb.models.ContainerModel(); containerModel.setParent(this.gridModel); containerModel.setData(fieldModels); this.model && this.model.execute('batchModifyReferProcess', containerModel); this.containerModel = containerModel; var gridDataRows = _.cloneDeep(this.gridModel.getShowRows()); gridDataRows && gridDataRows.forEach(function (row, rowIndex) { Object.keys(row).forEach(function (field, fieldIndex) { var fieldEle = _.find(fieldInfoArr, function (o) { return o.fieldName == field; }); if (fieldEle && (fieldEle.bCanFilter || fieldEle.bCanModify)) { var fieldValue = _this4.getFieldValue(row[field]); if (_this4.isEmptyValue(fieldValue) == false) { if (!fieldEle.dataType) { fieldEle.dataType = _this4.getTypeOf(fieldValue); } if (_.filter(fieldEle.valueArr, function (o) { return o == fieldValue.toString(); }).length == 0) { fieldEle.valueArr.push(fieldValue.toString()); } } } }); }); fieldInfoArr && fieldInfoArr.forEach(function (ele, index) { if (ele.valueArr.length == 0 || _this4.isEmptyValue(ele.fieldCaption)) { ele.bCanFilter = false; } else { ele.valueArr = _.orderBy(ele.valueArr); } }); this.model && this.model.execute('batchModifySetFields', fieldInfoArr); this.setState({ fieldInfoArr: fieldInfoArr, gridDataRows: gridDataRows }); } }, { key: "getFieldValue", value: function getFieldValue(value) { if (this.isEmptyValue(value)) return value;else if ((0, _typeof2["default"])(value) == "object") return value.text;else return value; } }, { key: "getTypeOf", value: function getTypeOf(fieldValue) { return (0, _typeof2["default"])(fieldValue); } }, { key: "setUETypeAndDataType", value: function setUETypeAndDataType(fieldInfo) { var ele = fieldInfo.ColumnEle; var cControlType = ele.cControlType.toLowerCase(); var arr1 = ["inputnumber", "inputfloat", "money", "price", "money", "number", "float"]; var arr2 = ["input"]; var arr21 = ["compositeXX"]; var arr4 = ["refer", "treerefer", "listrefer", "datepicker"]; var arr41 = ["checkboxenum"]; if (arr1.indexOf(cControlType) >= 0) { fieldInfo.UEType = 1; fieldInfo.dataType = "number"; } else if (arr2.indexOf(cControlType) >= 0) { fieldInfo.UEType = 2; } else if (arr21.indexOf(cControlType) >= 0) { fieldInfo.UEType = 2; } else if (arr4.indexOf(cControlType) >= 0) { fieldInfo.UEType = 4; if (cControlType == "datepicker") { fieldInfo.dataType = "datetime"; } } else if (arr41.indexOf(cControlType) >= 0) { fieldInfo.UEType = 4; } else if (ele.bEnum) { fieldInfo.UEType = 3; } else { fieldInfo.UEType = "没有获取正确的UEType"; this.consoleLog("batchModify setUETypeAndDataType Err.批改没有获取正确的字段类型 --》cControlType = " + cControlType + " ele = " + JSON.stringify(ele), true); } } }, { key: "consoleLog", value: function consoleLog(str, bError) { if (bError) console.log(str); } }, { key: "getValueOption", value: function getValueOption(fieldName) { var tmpArr = []; if (!!fieldName) { var ele = this.getFieldEle(fieldName); ele.valueArr && ele.valueArr.forEach(function (caption) { tmpArr.push(_react["default"].createElement(_baseui.Select.Option, { value: caption }, caption)); }); } return tmpArr; } }, { key: "setStateNumberValue", value: function setStateNumberValue(name, value, bCheckNumber) { var bOK = true; value = value.trim(); if (bCheckNumber == true && value != "") { if (isNaN(value) == true) { bOK = false; } } if (bOK) { this.state[name] = value; this.setState(); } } }, { key: "setStateValue", value: function setStateValue(tmpState) { this.setState(tmpState); } }, { key: "getRenderContent", value: function getRenderContent() { var _this5 = this; var arr = []; if (this.isList()) { arr.push(_react["default"].createElement("div", { className: "BatchModify-Range" }, _react["default"].createElement("span", null, _react["default"].createElement(_baseui.Icon, { type: "star" }), "\u6279\u6539\u8303\u56F4"), _react["default"].createElement(_baseui.Radio.Group, { value: this.state.filterRange, onChange: function onChange(e) { return _this5.setStateValue({ "filterRange": e.target.value }); } }, _react["default"].createElement(_baseui.Radio, { value: 0 }, "\u4EC5\u9009\u4E2D\u8BB0\u5F55"), _react["default"].createElement(_baseui.Radio, { value: 1 }, "\u6240\u6709\u67E5\u8BE2\u8BB0\u5F55")))); } if (this.isVoucher() || this.isTest()) { arr.push(_react["default"].createElement("div", { className: "BatchModify-Range" }, _react["default"].createElement("span", null, _react["default"].createElement(_baseui.Icon, { type: "star" }), "\u6279\u6539\u8303\u56F4"), _react["default"].createElement(_baseui.Radio.Group, { value: this.state.filterRange, onChange: function onChange(e) { return _this5.setStateValue({ "filterRange": e.target.value }); } }, _react["default"].createElement(_baseui.Radio, { value: 1 }, "\u5168\u90E8"), _react["default"].createElement(_baseui.Radio, { value: 0 }, "\u6309\u6761\u4EF6")))); if (this.state.filterRange == 0) { arr.push(this.getFilterShowContent()); } } var modifyRender = []; this.state.fieldInfoArr.forEach(function (ele, index) { if (ele.bCanModify) { modifyRender.push(_react["default"].createElement(_baseui.Select.Option, { value: ele.fieldName }, ele.fieldCaption)); } }); arr.push(_react["default"].createElement("div", { className: "BatchModify-ModifyField" }, _react["default"].createElement("span", null, "\u4FEE\u6539\u9879"), _react["default"].createElement("span", null, _react["default"].createElement(_baseui.Select, { showSearch: true, value: this.state.modifyFieldName, onChange: function onChange(fieldName) { return _this5.fieldChanged(fieldName); }, optionFilterProp: "children" }, modifyRender)))); var control = _react["default"].createElement("div", { key: "BatchModifyId_" + this.state.modifyFieldName }, this.getReferControl()); if (this.state.UEType == 1) { arr.push(_react["default"].createElement("div", { className: "BatchModify-Operator" }, _react["default"].createElement("span", null, "\u8FD0\u7B97\u7B26"), _react["default"].createElement("span", null, _react["default"].createElement(_baseui.Select, { value: this.state.modifyOperator, onChange: function onChange(value) { return _this5.setStateValue({ "modifyOperator": value }); } }, _react["default"].createElement(_baseui.Select.Option, { value: "=" }, "="), _react["default"].createElement(_baseui.Select.Option, { value: "+" }, "+"), _react["default"].createElement(_baseui.Select.Option, { value: "-" }, "-"), _react["default"].createElement(_baseui.Select.Option, { value: "*" }, "*"), _react["default"].createElement(_baseui.Select.Option, { value: "/" }, "/"))))); arr.push(_react["default"].createElement("div", { className: "BatchModify-ModifyValue" }, _react["default"].createElement("span", null, "\u6570\u503C"), _react["default"].createElement("span", null, control))); } else if (this.state.UEType == 2) { arr.push(_react["default"].createElement("div", { className: "BatchModify-ModifyTo" }, _react["default"].createElement("span", null, "\u4FEE\u6539\u4E3A"), _react["default"].createElement("span", null, control))); } else if (this.state.UEType == 3) { var control2 = _react["default"].createElement("div", { key: "BatchModifyId_" + this.state.modifyFieldName }, this.getEnumControl()); arr.push(_react["default"].createElement("div", { className: "BatchModify-ModifyTo" }, _react["default"].createElement("span", null, "\u4FEE\u6539\u4E3A"), _react["default"].createElement("span", null, control2))); } else if (this.state.UEType == 4) { arr.push(_react["default"].createElement("div", { className: "BatchModify-ModifyTo" }, _react["default"].createElement("span", null, "\u4FEE\u6539\u4E3A"), _react["default"].createElement("span", null, control))); } return arr; } }, { key: "getFieldEle", value: function getFieldEle(fieldName) { fieldName = fieldName || this.state.modifyFieldName; return _.find(this.state.fieldInfoArr, function (o) { return o.fieldName == fieldName; }); } }, { key: "fieldChanged", value: function fieldChanged(fieldName) { var ele = this.getFieldEle(fieldName); this.containerModel.clear(false); this.containerModel.setDirty(false); if (ele) { this.setStateValue({ "modifyFieldName": ele.fieldName, "UEType": ele.UEType }); } this.consoleLog("当前批量修改的字段ele:" + JSON.stringify(ele)); } }, { key: "clearNullObj", value: function clearNullObj(obj) { obj && Object.keys(obj).forEach(function (key) { if (obj[key] === null || obj[key] === undefined) delete obj[key]; }); return obj; } }, { key: "isVoucher", value: function isVoucher() { return this.billType == "voucher"; } }, { key: "isList", value: function isList() { return this.billType == "list"; } }, { key: "getNecessaryDataForRows", value: function getNecessaryDataForRows(modifyFieldName) { var selRows = this.gridModel.getSelectedRows(); var tmpData = this.gridModel.getNecessaryDataForRows(selRows); selRows.forEach(function (row, index) { if (row.id) { tmpData[index].id = row.id; tmpData[index][modifyFieldName] = row[modifyFieldName]; } }, this); return tmpData; } }, { key: "isNumber", value: function isNumber(value) { return !(this.isEmptyValue(value) || this.isEmptyValue(value.toString()) || isNaN(value.toString())); } }, { key: "calcuteValue", value: function calcuteValue(ele, value1, value2, operator) { var iNumPoint = ele.hasOwnProperty(iNumPoint) ? ele.iNumPoint : -1; var resultValue = undefined; if (operator == "+") { if (this.isNumber(value1) == false) resultValue = value2;else if (this.isNumber(value2) == false) resultValue = value1;else resultValue = this.parseToFloat(value1) + this.parseToFloat(value2); } else if (operator == "-") { if (this.isNumber(value1) == false) resultValue = 0 - this.parseToFloat(value2);else if (this.isNumber(value2) == false) resultValue = value1;else resultValue = this.parseToFloat(value1) - this.parseToFloat(value2); } else if (operator == "*") { if (this.isNumber(value1) == false) resultValue = value1;else if (this.isNumber(value2) == false) resultValue = value1;else resultValue = this.parseToFloat(value1) * this.parseToFloat(value2); } else if (operator == "/") { if (this.isNumber(value1) == false) resultValue = value1;else if (this.isNumber(value2) == false) resultValue = value1;else resultValue = this.parseToFloat(value1) / this.parseToFloat(value2); } else if (operator == "=") { resultValue = value2; } if (iNumPoint >= 0) { resultValue = this.parseToFloat(resultValue.toFixed(iNumPoint)); } return resultValue; } }, { key: "handleOk", value: function handleOk(e) { var _this6 = this; var self = this; var obj = this.getModifiedArr(); if (this.validateInput(obj) == true) { var modifyFieldName = self.state.modifyFieldName; var modifyFieldValue = ""; if (modifyFieldName != "") { var ele = this.getFieldEle(modifyFieldName); modifyFieldValue = obj[modifyFieldName]; if (this.isList() == true) { var params = { billnum: this.billNo }; if (this.state.filterRange == 0) { var necessaryRows = this.getNecessaryDataForRows(modifyFieldName); necessaryRows.forEach(function (row) { if (_this6.state.UEType == 1) { row[modifyFieldName] = _this6.calcuteValue(ele, row[modifyFieldName], modifyFieldValue, _this6.state.modifyOperator); } else { Object.assign(row, obj); } }); params.data = JSON.stringify(necessaryRows); } else { if (this.state.UEType == 1) { if (this.state.modifyOperator == "+") { modifyFieldValue = ele.ColumnEle.cFieldName + "+" + modifyFieldValue; } else if (this.state.modifyOperator == "-") { modifyFieldValue = ele.ColumnEle.cFieldName + "-" + modifyFieldValue; } else if (this.state.modifyOperator == "*") { modifyFieldValue = ele.ColumnEle.cFieldName + "*" + modifyFieldValue; } else if (this.state.modifyOperator == "/") { modifyFieldValue = ele.ColumnEle.cFieldName + "/" + modifyFieldValue; } params.externalData = {}; params.externalData[modifyFieldName] = modifyFieldValue; } else { for (var i in obj) { obj[i] = "'" + obj[i] + "'"; } params.externalData = obj; } var condition = this.model.getCache('lastSearchCondition'); params.condition = condition && condition.condition; } if (params.condition || params.data) { var callback = function callback(json) { _this6.model.execute('refresh'); if (json.code === 200) { if (json.data && json.data.failCount == 0) { self.handleCancel(); } _this6.model.communication({ type: 'modal', payload: { key: 'BatchMsg', data: { type: 2, res: json.data } } }); } else { cb.utils.alert("更新失败!返回信息:" + (json.message ? json.message : JSON.stringify(json)), 'warning'); } }; this.consoleLog("列表批改 调用批改列表服务 参数 /bill/batchModify ----->" + JSON.stringify(params)); try { var cParameterStr = self.props.params && self.props.params.cParameter; if (cParameterStr) { var cParameter = JSON.parse(cParameterStr); if (cParameter && cParameter.extendParams) { params = Object.assign({}, params, cParameter.extendParams); } } } catch (e) {} eChartProxy.doProxy("/bill/batchModify", 'POST', params, callback); } else { cb.utils.alert('获取过滤条件错误。', 'warning'); } } else if (this.isVoucher() == true) { var modifyRowIndex = self.getUserFilteredRows(); this.consoleLog("单据批改 符合条件行信息 ----->" + JSON.stringify(modifyRowIndex)); var controlType = ele.ColumnEle.cControlType.toLowerCase(); if (modifyRowIndex.length > 0) { modifyRowIndex.forEach(function (i) { if (controlType === 'refer' || controlType === 'treerefer' || controlType === 'listrefer') { var curModel = ele.model; var args = { value: curModel.getSelectedNodes() }; var bill2ReferKeyFieldMap = curModel._get_data('bill2ReferKeyFieldMap'); var checkValid = curModel._get_data('checkValid'); var returnText = curModel._get_data('returnText'); _this6.consoleLog("单据批改 row=" + i + " modifyFieldName = " + modifyFieldName + " args = " + JSON.stringify(args) + " bill2ReferKeyFieldMap = " + JSON.stringify(bill2ReferKeyFieldMap) + " checkValid = " + JSON.stringify(checkValid) + " returnText = " + JSON.stringify(returnText)); self.gridModel.referValueChange2(i, modifyFieldName, args, bill2ReferKeyFieldMap, checkValid, returnText); } else { var modifyFieldValue2 = modifyFieldValue; if (_this6.state.UEType == 1) { var oldValue = _this6.parseToFloat(self.gridModel.getCellValue(i, modifyFieldName)); modifyFieldValue2 = _this6.parseToFloat(modifyFieldValue2); if (_this6.state.modifyOperator == "=") { modifyFieldValue2 = modifyFieldValue2; } else if (_this6.state.modifyOperator == "+") { modifyFieldValue2 = oldValue + modifyFieldValue2; } else if (_this6.state.modifyOperator == "-") { modifyFieldValue2 = oldValue - modifyFieldValue2; } else if (_this6.state.modifyOperator == "*") { modifyFieldValue2 = oldValue * modifyFieldValue2; } else if (_this6.state.modifyOperator == "/") { modifyFieldValue2 = oldValue / modifyFieldValue2; } } _this6.consoleLog("单据批改 row=" + i + " modifyFieldName = " + modifyFieldName + " modifyFieldValue = " + modifyFieldValue2); self.gridModel.setCellValue(i, modifyFieldName, modifyFieldValue2, true, true); } }); self.handleCancel(); } else { cb.utils.alert('没有符合条件的行记录', 'warning'); } } } else { cb.utils.alert("请选择字段" + json.message, 'warning'); } } } }, { key: "parseToFloat", value: function parseToFloat(value) { if (this.isEmptyValue(value)) return 0;else return parseFloat(value); } }, { key: "beforeAct", value: function beforeAct(params, callBack) { callBack(); } }, { key: "afterAct", value: function afterAct(params, callBack) { callBack(); } }, { key: "handleCancel", value: function handleCancel(e) { if (this.props.close) this.props.close(); } }, { key: "render", value: function render() { var _this7 = this; var arr = this.getRenderContent(); ; var billType = this.billType; return _react["default"].createElement(_baseui.Modal, { title: "\u6279\u6539", width: 800, height: 500, visible: true, onOk: function onOk(e) { return _this7.handleOk(e); }, onCancel: function onCancel(e) { return _this7.handleCancel(e); }, className: 'BatchModify-Modal-' + billType }, _react["default"].createElement("div", { className: 'BatchModify-Content' + billType }, arr)); } }, { key: "getEnumControl", value: function getEnumControl() { var ele = this.getFieldEle(); ele.ColumnEle.cControlType = "radio"; return this.getReferControl(ele); } }, { key: "getReferControl", value: function getReferControl(ele) { ele = ele || this.getFieldEle(); var columnEle = ele && ele.ColumnEle; if (columnEle) { var ctrlType; if (columnEle.cControlType) ctrlType = columnEle.cControlType.trim().toLocaleLowerCase();else ctrlType = "input"; var ComName = BasicComponentsMap[ctrlType]; var config = null; try { config = JSON.parse(columnEle.extendField); } catch (e) { config = {}; } if (ele.UEType == 4) { this.model && this.model.execute('batchModifyReferSet', ele.model, ele.ColumnEle); } return ComName ? _react["default"].createElement(ComName, (0, _extends2["default"])({ model: ele.model, title: ele.fieldCaption }, config)) : _react["default"].createElement("h1", null, ctrlType); } } }, { key: "getFieldModel", value: function getFieldModel(column, attr) { var controlType = column.cControlType && column.cControlType.trim().toLocaleLowerCase(), model; if (controlType === 'refer' || controlType === 'treerefer' || controlType === 'listrefer') { model = new cb.models.ReferModel(cb.utils.extend(true, {}, { multiple: column.bMustSelect ? true : false }, column)); } else if (controlType === 'tag' || controlType === 'attachment' || controlType === 'checkboxgroup') { model = new cb.models.TagModel(cb.utils.extend(true, { needCollect: false }, column)); } else if (controlType === 'select' || controlType === 'radio' || controlType === 'checkboxenum') { model = new cb.models.ListModel(cb.utils.extend(true, {}, column)); } else if (controlType === 'table') { model = new cb.models.GridModel(cb.utils.extend(true, { needCollect: false }, column)); } else if (controlType === 'cascader') { var bill2ReferKeyFieldMap = cb.utils.getBill2ReferKeyFieldMap(column.cRefRetId); var config = null; try { config = JSON.parse(column.cStyle); } catch (e) { config = {}; } model = new cb.models.TreeModel({ cControlType: controlType, keyField: config.keyField || 'id', titleField: config.titleField || 'name', childrenField: config.childrenField, parentField: config.parentField, mergeField: config.mergeField, dataSourceMode: 'remote' }); model.setDataSource(config.proxy || { url: '/region/getAllregion', method: 'POST' }); } else { model = new cb.models.SimpleModel(cb.utils.extend(true, {}, { invalidReset: false }, column)); } return model; } }]); return batchModify; }(_react.Component); exports["default"] = batchModify; //# sourceMappingURL=batchModify.js.map