ming-demo3
Version:
mdf metaui web
1,337 lines (1,151 loc) • 59 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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
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 _react = _interopRequireDefault(require("react"));
var _baseui = require("@mdf/baseui");
var _fixedDataTable = require("fixed-data-table-2");
var _input = _interopRequireDefault(require("../basic/input"));
var _InputMultiLang = _interopRequireDefault(require("../basic/InputMultiLang"));
var _hotkeyinput = _interopRequireDefault(require("../basic/hotkeyinput"));
var _inputnumber = _interopRequireDefault(require("../basic/inputnumber"));
var _datepicker = _interopRequireDefault(require("../basic/datepicker"));
var _timepicker = _interopRequireDefault(require("../basic/timepicker"));
var _select = _interopRequireDefault(require("../basic/select"));
var _refer = _interopRequireDefault(require("../basic/refer"));
var _switch = _interopRequireDefault(require("../basic/switch"));
var _labelswitch = _interopRequireDefault(require("../basic/labelswitch"));
var _button = _interopRequireDefault(require("../basic/button"));
var _checkbox = _interopRequireDefault(require("../basic/checkbox"));
var _tag = _interopRequireDefault(require("../basic/tag"));
var _col = _interopRequireDefault(require("../basic/col"));
var _row = _interopRequireDefault(require("../basic/row"));
var _switchlabel = _interopRequireDefault(require("../basic/switchlabel"));
var _treerefer = _interopRequireDefault(require("../basic/treerefer"));
var _functypes = _interopRequireDefault(require("../basic/functypes"));
var _listrefer = _interopRequireDefault(require("../basic/listrefer"));
var _CompositeModel = _interopRequireDefault(require("./CompositeModel"));
var _checkradio = _interopRequireDefault(require("../basic/checkradio"));
var _cascader = _interopRequireDefault(require("../basic/cascader"));
var format = _interopRequireWildcard(require("@mdf/cube/lib/helpers/formatDate"));
var _util = require("@mdf/cube/lib/helpers/util");
var _UncertainControl = _interopRequireDefault(require("./UncertainControl"));
var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon"));
var _extend = require("@mdf/cube/lib/extend");
var themeType = process.env.__THEMETYPE__;
var ReferComp = _refer["default"];
var CellModel = function (_React$Component) {
(0, _inherits2["default"])(CellModel, _React$Component);
function CellModel(props) {
var _this;
(0, _classCallCheck2["default"])(this, CellModel);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CellModel).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getKeyByIndex", function (index, data) {
var columnKey = null;
for (var key in data) {
if (index == data[key]) {
columnKey = key;
break;
}
}
return columnKey;
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getCount", function (data, index) {
var keyIndex = index - 1,
count = 1;
for (var i = 0; i < 1000000; i++) {
if (data[keyIndex] === 1) {
count = count + 1;
keyIndex = keyIndex - 1;
} else {
break;
}
}
return count;
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onCrChange", function (value, index, columnKey) {
_this.props.model.setFocusedRowIndex(index);
_this.props.model.setCellValue(index, columnKey, value, true);
});
_this.state = {};
return _this;
}
(0, _createClass2["default"])(CellModel, [{
key: "componentDidMount",
value: function componentDidMount() {
if (process.env.__CLIENT__ == true) {
try {
ReferComp = _extend.extendComp.basic.Refer ? _extend.extendComp.basic.Refer : _refer["default"];
} catch (e) {}
}
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {}
}, {
key: "setCellBlur",
value: function setCellBlur(index, columnKey) {
var data = {
rowIndex: index,
cellName: columnKey
};
this.props.setCellBlur(data);
}
}, {
key: "onCellClick",
value: function onCellClick(e, index, columnKey) {
if (!this.props.Column.bCanModify) return;
if (!this.props.cellState[index][columnKey].disabled && !this.props.cellState[index][columnKey].readOnly) this.props.onCellClick(e, index, columnKey);
}
}, {
key: "setCell",
value: function setCell() {
var self = this;
var property = this.props.RowProperty;
var col = this.props.Column;
var controlType = col.cControlType;
var index = property.rowIndex;
var cellState = {
disabled: false,
visible: false,
readOnly: false,
style: {}
};
var isColErro = this.props.isColErro;
if (this.props.cellState[index] && this.props.cellState[index][property.columnKey]) {
cellState.disabled = this.props.cellState[index][property.columnKey].disabled;
cellState.visible = this.props.cellState[index][property.columnKey].visible;
cellState.readOnly = this.props.cellState[index][property.columnKey].readOnly;
cellState.style = cb.utils.extend(true, {}, this.props.cellState[index][property.columnKey].style);
cellState.className = this.props.cellState[index][property.columnKey].className;
}
cellState.style.height = property.height;
if (controlType && controlType.trim().toLocaleLowerCase() != 'avatar') cellState.style.padding = '12px 10px';
cellState.style.lineHeight = '14px';
if (isColErro) {
cellState.style.height = cellState.style.height - 2;
cellState.style.boxSizing = 'border-box';
cellState.style.borderRadius = '5px';
cellState.style.border = '1px solid #ff7733';
}
var data = this.props.dataList;
if (data[index]) {
if (col.cControlType == 'Action') {
var actionList = this.props.action.controls;
var rowHeight = this.props.rowHeight || 40;
var aStyle = rowHeight - 40 == 0 ? {} : {
'padding-top': (rowHeight - 40) / 2
};
var actionControl = [];
if (actionList && actionList.length > 0) {
var className = '';
if (this.props.operationPos == 'right') {
className = 'fix-operation';
actionControl = this.buildRightActionControls(actionList);
} else {
actionControl = this.buildActionControls(actionList, true);
}
if (actionControl.length == 0) aStyle = {};
return _react["default"].createElement("div", {
style: {
"width": property.width,
"height": property.height,
"borderBottom": "1px solid #dbe0e5"
}
}, _react["default"].createElement("div", {
style: aStyle,
className: "acticonCell ".concat(className)
}, _react["default"].createElement(_row["default"], null, actionControl)));
} else {
return _react["default"].createElement("div", {
className: "acticonCell"
}, _react["default"].createElement(_row["default"], null));
}
} else {
var _Cell = this.RemodelingCell(property, col, cellState);
return _Cell;
}
}
}
}, {
key: "buildRightActionControls",
value: function buildRightActionControls(actionList) {
var _this3 = this;
if (!actionList) return;
var data = this.props.dataList,
index = this.props.RowProperty.rowIndex,
actionState = this.props.actionState,
actionControl = [];
var _id = data[index] ? data[index]._id : 0;
var basicAction = [],
moreAction = [],
showcount = 0;
actionList.forEach(function (ac) {
if (actionState[_id] && actionState[_id][ac.cItemName] && actionState[_id][ac.cItemName].visible) {
showcount > 2 ? moreAction.push(ac) : basicAction.push(ac);
showcount++;
}
});
basicAction.map(function (action) {
var _this2 = this;
var icon = action.iStyle === 1 ? null : action.icon;
var text = action.iStyle === 2 ? null : action.cShowCaption;
var cItemName = action.cItemName;
var viewModel = this.props.model.getParent();
while (viewModel.getParent()) {
viewModel = viewModel.getParent();
}
var caption = viewModel.getParams().caption;
var temp_action = themeType == 'ncc' && (cItemName == 'btnDelete' || cItemName == 'btnDeleteRow') ? _react["default"].createElement(_baseui.Popconfirm, {
overlayClassName: 'switch-popconform ncc-popconfirm',
trigger: "click",
placement: "top",
title: "\u786E\u5B9A\u8981\u5220\u9664\u5417?",
okText: "\u786E\u5B9A(Y)",
cancelText: "\u53D6\u6D88(N)",
btnReverse: true,
onConfirm: function onConfirm(e) {
return _this2.props.ActionClick(e, action);
}
}, _react["default"].createElement("span", {
key: action.cItemName
}, _react["default"].createElement("a", {
className: "table-list-btn"
}, text))) : _react["default"].createElement("span", {
key: action.cItemName
}, _react["default"].createElement("a", {
className: "table-list-btn",
onClick: function onClick(e) {
return _this2.props.ActionClick(e, action);
}
}, text));
actionControl.push(temp_action);
}, this);
if (moreAction.length) {
var menuItems = moreAction.map(function (maction) {
var icon = maction.iStyle === 1 ? null : maction.icon;
var text = maction.iStyle === 2 ? null : maction.cShowCaption;
return _react["default"].createElement(_baseui.Menu.Item, {
className: "more-option"
}, _react["default"].createElement("a", {
className: "table-list-btn",
onClick: function onClick(e) {
return _this3.props.ActionClick(e, maction);
},
onMouseLeave: function onMouseLeave(event) {
return _this3.props.onRowMouseLeave(event, index);
},
onMouseEnter: function onMouseEnter(event) {
return _this3.props.onRowMouseEnter(event, index);
}
}, icon, text));
});
var menu = _react["default"].createElement(_baseui.Menu, null, menuItems);
var moreControll = _react["default"].createElement(_baseui.Dropdown, {
overlay: menu,
trigger: "click",
onClick: function onClick(e) {
e.stopPropagation();
}
}, _react["default"].createElement("span", null, _react["default"].createElement("a", {
className: "table-list-btn"
}, "\u66F4\u591A")));
actionControl.push(moreControll);
}
return actionControl;
}
}, {
key: "buildActionControls",
value: function buildActionControls(actionList, judge) {
if (!actionList) return;
var data = this.props.dataList,
index = this.props.RowProperty.rowIndex,
actionState = this.props.actionState,
actionControl = [];
var _id = data[this.props.showActionIndex] ? data[this.props.showActionIndex]._id : 0;
actionList.map(function (action) {
var _this4 = this;
var icon = action.iStyle === 1 ? null : action.icon;
var text = action.iStyle === 2 ? null : action.cShowCaption;
var iconCom = !judge && icon ? _react["default"].createElement(_SvgIcon["default"], {
className: 'icon-' + icon,
type: icon
}) : null;
if (!judge || this.props.showActionIndex == index && actionState[_id] && actionState[_id][action.cItemName].visible) {
if (action.cControlType != 'popbutton') {
var extraProps = {};
if (!action.popoverKey) extraProps.onClick = function (e) {
return _this4.props.ActionClick(e, action);
};
var temp_action = _react["default"].createElement("span", {
key: action.cItemName
}, _react["default"].createElement("a", (0, _extends2["default"])({
className: "table-list-btn"
}, extraProps), iconCom, text));
if (action.popoverKey) {
var ComName = _extend.extendComp.popover[action.popoverKey];
if (ComName) {
temp_action = _react["default"].createElement(ComName, {
model: action.model,
data: data[this.props.showActionIndex]
}, temp_action);
}
}
actionControl.push(temp_action);
} else {
var currentRow = this.dataList[this.props.showActionIndex];
if (!currentRow) return;
}
}
}, this);
return actionControl;
}
}, {
key: "RemodelingCell",
value: function RemodelingCell(rowIndex, col, cellState) {
var _this5 = this;
var cControlType = col.cControlType,
formatter = col.formatter,
bCanModify = col.bCanModify,
bJointQuery = col.bJointQuery;
var index = rowIndex.rowIndex;
var columnKey = rowIndex.columnKey;
var data = this.props.dataList;
var CellStatus = this.state.CellStatus;
var readOnly = this.props.readOnly;
var className = "textCol";
var cellClass = "retail-table-cell";
cControlType = cControlType ? cControlType : 'Input';
if (this.props.CellStatus[index]) {
CellStatus = this.props.CellStatus[index][columnKey];
}
if (cControlType.trim().toLocaleLowerCase() == 'labelswitch') {
CellStatus = false;
}
if (this.props.rowStatus[index] && this.props.rowStatus[index].disabled || !bCanModify || cellState.disabled) className = 'public_fixedDataTableCell_disabled textCol';
if (cControlType === 'refer' || cControlType.trim().toLocaleLowerCase() === 'refer') {
cellState.style.textAlign = 'left';
}
cellState.style.width = rowIndex.width;
if (cellState.className && cellState.className != '') className = className + ' ' + cellState.className;
if (col.className && col.className != '') className = className + ' ' + col.className;
if (formatter && !CellStatus) {
var cellObj = formatter(rowIndex, data[index]);
if (cellObj) {
if (cellObj.formatterKey) {
var ComName = _extend.extendComp.formatter[cellObj.formatterKey];
if (!ComName) return null;
return _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height,
className: cellClass
}, _react["default"].createElement("div", {
style: cellState.style,
className: "textCol"
}, _react["default"].createElement(ComName, (0, _extends2["default"])({
model: this.props.model
}, cellObj.props))));
}
var cellHtml = '',
cellText = '';
var cellProps = {};
if (cellObj.html) {
cellHtml += cellObj.html;
cellText += cellObj.text || cellObj.html;
Object.assign(cellProps, cellObj.props);
}
var cellCom = _react["default"].createElement("span", (0, _extends2["default"])({
title: cellText,
dangerouslySetInnerHTML: {
__html: cellHtml
}
}, cellProps));
cellState.style.padding = '0px 0px';
if (this.props.readOnly) className = "textCol";
return _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height,
className: cellClass
}, _react["default"].createElement("div", {
style: cellState.style,
className: className
}, cellObj && cellObj.override ? null : _react["default"].createElement("span", {
title: data[index][columnKey]
}, data[index][columnKey]), cellCom));
}
}
if (columnKey === 'GridRowNo') {
return _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height
}, _react["default"].createElement("div", {
className: "rowNo",
style: {
"width": rowIndex.width,
"height": rowIndex.height
}
}, index + 1));
}
var needMerge = false;
if (this.props.mergeCells) {
if (this.props.mergeColContrast[columnKey] && col.bMergeCol) needMerge = true;
if (col.bMergeCol && columnKey === 'CheckBox') needMerge = true;
}
if (needMerge) {
var _this$props = this.props,
ColIndexs = _this$props.ColIndexs,
mergeMode = _this$props.mergeMode,
mergeSourceName = _this$props.mergeSourceName;
var mergeColContrast = this.props.mergeColContrast;
var dataLen = data.length;
var nowColIndex = ColIndexs[columnKey];
var hasMoreRow = dataLen > index + 1;
var preRow = data[index - 1];
var nowRow = data[index];
var nextRow = data[index + 1];
mergeColContrast[columnKey][index] = 0;
if (mergeMode == 2 && !cb.utils.isEmpty(mergeSourceName)) {
if (index == 0) {
if (hasMoreRow) {
if (nowRow[columnKey] == nextRow[columnKey] && nowRow[mergeSourceName] == nextRow[mergeSourceName]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
}
} else {
if (mergeColContrast[columnKey][index - 1]) {
if (nowRow[columnKey] == preRow[columnKey] && nowRow[mergeSourceName] == preRow[mergeSourceName]) {
if (hasMoreRow && nowRow[columnKey] == nextRow[columnKey] && nowRow[mergeSourceName] == nextRow[mergeSourceName]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
} else {
var count = this.getCount(mergeColContrast[columnKey], index);
cellState.style.marginTop = "-" + count * this.props.rowHeight / 2;
cellState.style.position = "absolute";
cellState.style.height = (this.props.rowHeight + count * this.props.rowHeight) / 2;
mergeColContrast[columnKey][index] = 2;
}
} else {
if (hasMoreRow && nowRow[columnKey] == nextRow[columnKey] && nowRow[mergeSourceName] == nextRow[mergeSourceName]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
}
} else {
if (hasMoreRow && nowRow[columnKey] == nextRow[columnKey] && nowRow[mergeSourceName] == nextRow[mergeSourceName]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
}
}
} else {
if (index == 0) {
if (hasMoreRow) {
if (nowColIndex == 0) {
if (nowRow[columnKey] == nextRow[columnKey]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
} else {
var preColumnKey = this.getKeyByIndex(nowColIndex - 1, ColIndexs);
if (mergeColContrast[preColumnKey][index] == 1 && nowRow[columnKey] == nextRow[columnKey] && nowRow[preColumnKey] == nextRow[preColumnKey]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
}
}
} else {
if (nowColIndex == 0) {
if (mergeColContrast[columnKey][index - 1] == 1) {
if (nowRow[columnKey] == preRow[columnKey]) {
if (dataLen > index + 1 && nowRow[columnKey] == nextRow[columnKey]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
} else {
var _count = this.getCount(mergeColContrast[columnKey], index);
cellState.style.marginTop = "-" + _count * this.props.rowHeight / 2;
cellState.style.position = "absolute";
cellState.style.height = (this.props.rowHeight + _count * this.props.rowHeight) / 2;
mergeColContrast[columnKey][index] = 2;
}
}
} else {
if (dataLen > index + 1 && nowRow[columnKey] == nextRow[columnKey]) {
mergeColContrast[columnKey][index] = 1;
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
}
} else {
var _preColumnKey = this.getKeyByIndex(nowColIndex - 1, ColIndexs);
var preColMerge = mergeColContrast[_preColumnKey][index];
if (preColMerge == 1) {
if (mergeColContrast[columnKey][index - 1]) {
if (nowRow[columnKey] == preRow[columnKey]) {
if (nowRow[columnKey] == nextRow[columnKey]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
} else {
var _count2 = this.getCount(mergeColContrast[columnKey], index);
cellState.style.marginTop = "-" + _count2 * this.props.rowHeight / 2;
cellState.style.position = "absolute";
cellState.style.height = (this.props.rowHeight + _count2 * this.props.rowHeight) / 2;
mergeColContrast[columnKey][index] = 2;
}
}
} else {
if (nowRow[columnKey] == nextRow[columnKey]) {
mergeColContrast[columnKey][index] = 1;
this.props.setMergeColContrast(mergeColContrast);
return _react["default"].createElement(_fixedDataTable.Cell, null);
}
}
} else if (preColMerge == 2) {
if (mergeColContrast[columnKey][index - 1]) {
if (nowRow[columnKey] == preRow[columnKey]) {
var _count3 = this.getCount(mergeColContrast[columnKey], index);
cellState.style.marginTop = "-" + _count3 * this.props.rowHeight / 2;
cellState.style.position = "absolute";
cellState.style.height = (this.props.rowHeight + _count3 * this.props.rowHeight) / 2;
mergeColContrast[columnKey][index] = 2;
}
}
}
}
}
}
this.props.setMergeColContrast(mergeColContrast);
}
if (columnKey === 'CheckBox') {
delete cellState.style.position;
return _react["default"].createElement(_fixedDataTable.Cell, {
className: "yxy_cell_checkbox first-checkbox",
width: rowIndex.width,
height: rowIndex.height
}, _react["default"].createElement("div", {
style: cellState.style
}, this.RemodelingEditControl(cControlType, index, columnKey, col)));
}
if ((cControlType == 'scheckbox' || cControlType == 'labelswitch' || cControlType == 'tag') && cControlType.trim().toLocaleLowerCase()) {
cellState.style.textAlign = 'center';
if (cControlType == 'labelswitch') cellState.style.pointerEvents = 'initial';
if (this.props.selectIndex == index && cControlType !== 'labelswitch' && cControlType !== 'scheckbox') {
return _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height
}, _react["default"].createElement("div", {
style: cellState.style,
className: className
}, this.RemodelingEditControl(cControlType, index, columnKey, col)));
} else {
return _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height
}, _react["default"].createElement("div", {
style: cellState.style,
className: className
}, this.RemodelingFormatControl(cControlType, data[index][columnKey], bJointQuery, index, columnKey, col)));
}
}
if (cControlType == 'CheckRadio' && !CellStatus && !readOnly) {
cellState.style.padding = '4px 10px';
}
if (readOnly) {
var title = data[index][columnKey];
if (!cb.utils.isEmpty(title) && (0, _typeof2["default"])(title) === 'object') {
title = title.text;
}
var cName = "textCol";
if (cellState.className && cellState.className != '') cName = cName + ' ' + cellState.className;
if (col.className && col.className != '') cName = cName + ' ' + col.className;
return _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height,
className: "retail-table-cell"
}, _react["default"].createElement("div", {
title: title,
className: cName,
style: cellState.style
}, this.RemodelingFormatControl(cControlType, data[index][columnKey], bJointQuery, index, columnKey, col)));
}
if (!cellState) {
className = className + 'formatCol';
}
return CellStatus ? _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height,
className: cellClass
}, _react["default"].createElement("div", {
className: "editCol",
style: cellState.style
}, this.RemodelingEditControl(cControlType, index, columnKey, col))) : _react["default"].createElement(_fixedDataTable.Cell, {
width: rowIndex.width,
height: rowIndex.height,
className: cellClass
}, _react["default"].createElement("div", {
style: cellState.style,
className: className,
onClick: function onClick(e) {
return _this5.onCellClick(e, index, columnKey);
}
}, this.RemodelingFormatControl(cControlType, data[index][columnKey], bJointQuery, index, columnKey, col)));
}
}, {
key: "RemodelingEditControl",
value: function RemodelingEditControl(controlType, index, columnKey, col) {
var _this6 = this;
var model = this.props.model.getEditRowModel().get(columnKey);
var disabled = false;
var NumPoint = 1;
if (col.iNumPoint && col.iNumPoint > 1) {
NumPoint = 0.1;
NumPoint = Math.pow(NumPoint, col.iNumPoint).toFixed(col.iNumPoint);
}
if (this.props.rowStatus[index]) disabled = this.props.rowStatus[index].disabled;
switch (controlType && controlType.trim().toLocaleLowerCase()) {
case 'input':
return _react["default"].createElement(_input["default"], {
focus: true,
model: model
});
case 'hotkeyinput':
return _react["default"].createElement(_hotkeyinput["default"], {
focus: true,
model: model
});
case 'inputnumber':
case 'money':
case 'price':
if (controlType === 'money') NumPoint = cb.rest.AppContext.option.amountofdecimal;else if (controlType === 'price') NumPoint = cb.rest.AppContext.option.monovalentdecimal;
var iNumPoint = col.iNumPoint;
var _format = {};
if (col.cFormatData) {
try {
_format = JSON.parse(col.cFormatData);
} catch (e) {}
}
var relatedName = _format.related;
if (relatedName && !relatedName.startsWith('parentdata.')) {
var relatedValue = (0, _util.getRoundValue)(this.props.dataList[index][relatedName], 0);
iNumPoint = relatedValue > 0 ? relatedValue : 0;
}
model._set_data('iNumPoint', iNumPoint, true);
return _react["default"].createElement(_inputnumber["default"], {
className: 'edit-input-number',
focus: true,
model: model,
iNumPoint: iNumPoint,
cFormatData: col.cFormatData,
cStyle: col.cStyle
});
case 'datepicker':
return _react["default"].createElement(_datepicker["default"], {
model: model,
className: 'edit-input-number',
cFormatData: col.cFormatData
});
case 'timepicker':
return _react["default"].createElement(_timepicker["default"], {
model: model,
className: "edit-input-number"
});
case 'select':
return _react["default"].createElement(_select["default"], {
focus: true,
model: model,
className: 'edit-input-number'
});
case 'refer':
return _react["default"].createElement(ReferComp, {
focus: true,
model: model,
inTable: true,
title: col.cShowCaption,
relatedControl: this.buildActionControls(col.relatedActions)
});
case 'specialcom':
return _react["default"].createElement(_functypes["default"], {
focus: true,
model: model,
value: this.getSpecalValue1(index),
relatedControl: this.buildActionControls(col.relatedActions),
title: this.props.Column.cShowCaption
});
case 'switch':
return _react["default"].createElement(_switch["default"], {
focus: true,
model: model,
className: 'edit-input-number',
style: {
width: '50%'
},
readOnly: false,
checkedChildren: "\u662F",
unCheckedChildren: "\u5426"
});
case 'checkradio':
return _react["default"].createElement(_checkradio["default"], {
focus: true,
model: model,
className: 'edit-input-number',
style: {
width: '50%'
},
readOnly: false
});
case 'selectcheckbox':
if (this.props.GridProps.isRadio) return _react["default"].createElement(_baseui.Radio, {
checked: this.props.dataList[index]._selected,
onChange: function onChange(e) {
return _this6.SelectChange(e, index);
}
});else return _react["default"].createElement(_checkbox["default"], {
value: this.props.dataList[index]._selected,
onChange: function onChange(e, i) {
return _this6.SelectChange(e, index);
}
});
case 'labelswitch':
return _react["default"].createElement(_labelswitch["default"], {
focus: true,
model: model,
style: {
width: '50%'
},
readOnly: false,
checkedChildren: "\u542F",
unCheckedChildren: "\u505C",
cStyle: col.cStyle
});
case 'scheckbox':
return _react["default"].createElement(_checkbox["default"], {
model: model,
disabled: disabled
});
case 'tag':
return disabled ? _react["default"].createElement(_tag["default"], {
model: model,
disabled: true,
color: '',
closable: false,
cRefType: this.props.Column.cRefType,
refReturn: this.props.Column.refReturn,
cRefRetId: this.props.Column.cRefRetId
}) : _react["default"].createElement(_tag["default"], {
model: model,
disabled: false,
color: 'blue',
closable: true,
cRefType: this.props.Column.cRefType,
refReturn: this.props.Column.refReturn,
cRefRetId: this.props.Column.cRefRetId
});
case 'treerefer':
return _react["default"].createElement(_treerefer["default"], {
model: model
});
case 'listrefer':
return _react["default"].createElement(_listrefer["default"], {
model: model
});
case 'cascader':
return _react["default"].createElement(_cascader["default"], {
model: model
});
case 'composite':
var compositeControl = this.props.compositeControl[index][columnKey];
var rowModel = this.props.model.getEditRowModel();
return _react["default"].createElement(_CompositeModel["default"], {
compositeControl: compositeControl,
visible: false,
width: col.iColWidth,
height: this.props.rowHeight,
cellState: this.props.cellState[index][columnKey],
rowModel: rowModel,
setCellBlur: function setCellBlur() {
return _this6.setCellBlur(index, columnKey);
}
});
case 'uncertain':
return _react["default"].createElement(_UncertainControl["default"], (0, _extends2["default"])({
model: model,
cellConfig: this.props.dataList[index].cellConfig || null
}, this.props));
case 'inputmultilang':
return _react["default"].createElement(_InputMultiLang["default"], (0, _extends2["default"])({
focus: true,
model: model
}, col));
}
}
}, {
key: "switchChange",
value: function switchChange(value, index, columnKey) {
this.props.dataList[index][columnKey] = value;
this.props.model.setFocusedRowIndex(index);
this.props.model.setCellValue(index, columnKey, this.props.dataList[index][columnKey], true);
}
}, {
key: "CheckBoxOnChange",
value: function CheckBoxOnChange(value, index, columnKey) {
this.props.dataList[index][columnKey] = value;
this.props.model.setFocusedRowIndex(index);
this.props.model.setCellValue(index, columnKey, value, true);
}
}, {
key: "referClikc",
value: function referClikc(index, columnKey) {
this.props.model.setFocusedRowIndex(index);
var model = this.props.model.getEditRowModel().get(columnKey);
model.browse();
}
}, {
key: "TagOnClose",
value: function TagOnClose(key, index, columnKey) {
this.props.model.setFocusedRowIndex(index);
var model = this.props.model.getEditRowModel().get(columnKey);
model.deleteItem(key);
}
}, {
key: "RemodelingFormatControl",
value: function RemodelingFormatControl(controlType, text, bJointQuery, index, columnKey, col) {
var _this7 = this;
var disabled = false;
if (this.props.rowStatus[index]) disabled = this.props.rowStatus[index].disabled;
switch (controlType && controlType.trim().toLocaleLowerCase()) {
case 'refer':
case 'treerefer':
case 'listrefer':
{
var formatText = text != null && (0, _typeof2["default"])(text) === 'object' ? text.name : text;
return bJointQuery ? _react["default"].createElement("a", {
onClick: function onClick(e) {
return _this7.handleJointQuery(e, index, columnKey);
}
}, formatText) : formatText;
}
case 'radio':
case 'checkboxenum':
case 'select':
{
if (cb.utils.isEmpty(text)) return text;
var _formatText = null;
if ((0, _typeof2["default"])(text) !== 'object') _formatText = text;else if (text.nameType === 'icontext') _formatText = _react["default"].createElement("span", null, _react["default"].createElement(_baseui.Icon, {
type: text.icon
}), text.text);else if (text.nameType === 'icon') _formatText = _react["default"].createElement(_baseui.Icon, {
type: text.icon
});else _formatText = text.text;
return bJointQuery ? _react["default"].createElement("a", {
onClick: function onClick(e) {
return _this7.handleJointQuery(e, index, columnKey);
}
}, _formatText) : _formatText;
return (0, _typeof2["default"])(text) === 'object' ? text.text : text;
}
case 'switch':
return _react["default"].createElement(_switch["default"], {
className: 'edit-input-number',
checked: Boolean(text),
readOnly: true,
checkedChildren: "\u662F",
unCheckedChildren: "\u5426"
});
case 'checkradio':
return _react["default"].createElement(_checkradio["default"], {
focus: true,
className: 'edit-input-number',
checked: Boolean(text),
style: {
width: '50%'
},
onChange: function onChange(checked) {
return _this7.onCrChange(checked, index, columnKey);
},
readOnly: this.props.readOnly
});
case 'vouchermoney':
var money = this.buildMoney(text);
return money;
case 'labelswitch':
var viewModel = this.props.model.getParent();
return _react["default"].createElement(_labelswitch["default"], {
disabled: !col.bCanModify,
viewModel: viewModel,
checkedChildren: '√',
unCheckedChildren: 'X',
value: text,
onChange: function onChange(checked) {
return _this7.switchChange(checked, index, columnKey);
},
cStyle: col.cStyle,
index: index
});
case 'switchlabel':
return _react["default"].createElement(_switchlabel["default"], {
value: text
});
case 'scheckbox':
return _react["default"].createElement(_checkbox["default"], {
disabled: !col.bCanModify,
value: text,
onChange: function onChange(value) {
return _this7.CheckBoxOnChange(value, index, columnKey);
}
});
case 'tag':
return _react["default"].createElement(_tag["default"], {
disabled: disabled,
cRefType: this.props.Column.cRefType,
refReturn: this.props.Column.refReturn,
cRefRetId: this.props.Column.cRefRetId,
closable: !disabled,
tagData: text,
color: 'blue',
onClose: function onClose(key) {
return _this7.TagOnClose(key, index, columnKey);
},
referClikc: function referClikc() {
return _this7.referClikc(index, columnKey);
}
});
case 'composite':
var CompositeJson = JSON.parse(this.props.CompositeLayout[index][columnKey]);
var compositeData = this.analysisComposite(CompositeJson, index);
return compositeData;
case 'inputnumber':
case 'money':
case 'price':
if (cb.utils.isEmpty(text)) return '';
if (isNaN(text)) return text;
var cFormatData = this.props.Column.cFormatData;
try {
if (!cFormatData || cFormatData == '') {
cFormatData = {};
} else {
cFormatData = JSON.parse(cFormatData);
}
} catch (e) {
cb.utils.alert('数量/金额/单价,预制错误!', 'error');
}
var iNumPoint = this.props.Column.iNumPoint;
var relatedName = cFormatData.related;
if (relatedName && !relatedName.startsWith('parentdata.')) {
var relatedValue = (0, _util.getRoundValue)(this.props.dataList[index][relatedName], 0);
iNumPoint = relatedValue > 0 ? relatedValue : 0;
}
var decimal = cFormatData.decimal ? (0, _util.getPredicateValue)(cFormatData.decimal) : null;
if (controlType === 'money') {
if (decimal) iNumPoint = decimal;else iNumPoint = cb.rest.AppContext.option.amountofdecimal;
} else if (controlType === 'price') {
if (decimal) iNumPoint = decimal;else iNumPoint = cb.rest.AppContext.option.monovalentdecimal;
} else {
if (decimal) iNumPoint = decimal;else if (cb.utils.isEmpty(iNumPoint)) iNumPoint = null;
}
if (!isNaN(iNumPoint) && iNumPoint != null) {
text = parseFloat(text);
text = (0, _util.getRoundValue)(text, iNumPoint);
}
var formatterForSplitter = function formatterForSplitter(value) {
var _value = value + '';
var _valueArr = _value.split('.');
if (_valueArr.length == 1) {
return "".concat(format.before || '').concat(_value.replace(/\B(?=(\d{3})+(?!\d))/g, ',')).concat(format.after || '');
} else {
_valueArr[0] = _valueArr[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return "".concat(format.before || '').concat(_valueArr.join('.')).concat(format.after || '');
}
};
if (cFormatData.splitter) text = formatterForSplitter(text);
if (cFormatData.before) text = cFormatData.before + text;
if (cFormatData.after) text = text + cFormatData.after;
return text;
case 'datepicker':
if (text) {
var fmt = 'YYYY-MM-dd';
if (this.props.Column.cFormatData && this.props.Column.cFormatData != '') {
fmt = this.props.Column.cFormatData;
}
if (cb.utils.isIE()) {
text = text.replace(/\-/g, "/");
fmt = fmt.replace(/\-/g, "/");
}
text = format.dateFormat(new Date(text), fmt);
}
return text;
case 'avatar':
var displaymode = 'default';
var cStyle = this.props.Column.cStyle;
if (cStyle) {
try {
displaymode = JSON.parse(cStyle).displaymode || displaymode;
} catch (e) {}
}
var className = "cell-avatar-".concat(displaymode);
if (!text || text == '') {
return _react["default"].createElement("div", {
className: "no-avatar-man ".concat(className)
});
} else {
var style = {};
style.height = this.props.rowHeight;
style.width = this.props.rowHeight;
return _react["default"].createElement("img", {
className: className,
src: text + '?imageView2/1/w/80/h/80',
style: style
});
}
case 'uncertain':
text = this.getUncertainFormatValue(text, index, columnKey);
return text;
case 'specialcom':
text = this.getSpecalValue(index);
return text;
case 'inputmultilang':
if (cb.utils.isEmpty(text)) {
return '';
}
return text;
}
if (text === '') return '';
if (text && (0, _typeof2["default"])(text) === 'object') text = '';
return bJointQuery ? _react["default"].createElement("a", {
onClick: function onClick(e) {
return _this7.handleJointQuery(e, index, columnKey);
}
}, text) : text;
}
}, {
key: "getSpecalValue1",
value: function getSpecalValue1(index) {
var column = this.props.Column;
var cStyle = column.cStyle;
try {
cStyle = JSON.parse(cStyle);
} catch (e) {
cb.utils.alert('specialcom cstyle预制错误!');
return;
}
var _cStyle = cStyle,
Separator = _cStyle.Separator,
dataSource = _cStyle.dataSource,
columns = _cStyle.columns;
var row = this.props.dataList[index];
var data = row[dataSource];
var cols = columns.split(',');
var controls = [];
if (!Separator) Separator = '';
data && data.map(function (row) {
var temp = [];
var colLen = cols ? cols.length : 0;
cols && cols.map(function (col, index) {
if (index == colLen - 1) {
temp.push(row[col]);
} else {
temp.push(row[col]);
temp.push(Separator);
}
});
controls.push(temp);
});
return controls;
}
}, {
key: "getSpecalValue",
value: function getSpecalValue(index) {
var column = this.props.Column;
var cStyle = column.cStyle;
try {
cStyle = JSON.parse(cStyle);
} catch (e) {
cb.utils.alert('specialcom cstyle预制错误!');
return;
}
var _cStyle2 = cStyle,
Separator = _cStyle2.Separator,
dataSource = _cStyle2.dataSource,
columns = _cStyle2.columns;
var row = this.props.dataList[index];
var data = row[dataSource];
var cols = columns.split(',');
var controls = [];
if (!Separator) Separator = '';
data && data.map(function (row) {
var temp = [];
var colLen = cols ? cols.length : 0;
cols && cols.map(function (col, index) {
if (index == colLen - 1) {
temp.push(_react["default"].createElement("div", {
className: "special_col"
}, row[col]));
} else {
temp.push(_react["default"].createElement("div", {
className: "special_col"
}, row[col]));
temp.push(_react["default"].createElement("div", {
className: "special_separator"
}, Separator));
}
});
controls.push(_react["default"].createElement("div", {
className: "special-row"
}, temp));
});
return _react["default"].createElement("div", {
className: "special-rows func-share"
}, controls);
}
}, {
key: "getUncertainFormatValue",
value: function getUncertainFormatValue(text, index, columnKey) {
if (this.props.dataList[index][columnKey] == null || this.props.dataList[index][columnKey] == "") return "";
var cellConfig = this.props.dataList[index].cellConfig || null;
if (!cellConfig) return text;
var controlType = cellConfig.cControlType;
switch (controlType && controlType.trim().toLocaleLowerCase()) {
case 'refer':
case 'treerefer':
case 'listrefer':
return text;
case 'select':
case 'radio':
case 'checkboxenum':
var cEnumString = cellConfig.cEnumString;
try {
if (!cEnumString || cEnumString == '') {
cEnumString = {};
} else {
cEnumString = JSON.parse(cEnumString);
}
} catch (e) {
cb.utils.alert('cEnumString,预制错误!', 'error');
}
if ((0, _typeof2["default"])(text) === 'object') {
var temp = '';
text.map(function (t) {
temp = temp == '' ? cEnumString[t] : temp + ',' + cEnumString[t];
});
text = temp;
} else {
if (text && text.split(',') && text.split(',').length > 1) {
var tem_text = text.split(',');
text = '';