ming-demo3
Version:
mdf metaui web
1,271 lines (1,136 loc) • 45 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 _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