choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
254 lines (206 loc) • 8.48 kB
JavaScript
;
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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _tslib = require("tslib");
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _mobx = require("mobx");
var _KeyCode = _interopRequireDefault(require("../../../lib/_util/KeyCode"));
var _configure = require("../../../lib/configure");
var _pick = _interopRequireDefault(require("lodash/pick"));
var _Table = _interopRequireDefault(require("../table/Table"));
var _TableProfessionalBar = _interopRequireDefault(require("../table/query-bar/TableProfessionalBar"));
var _enum = require("../table/enum");
var _enum2 = require("../data-set/enum");
function _createSuper(Derived) {
function isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
return true;
} catch (e) {
return false;
}
}
return function () {
var Super = (0, _getPrototypeOf2["default"])(Derived),
result;
if (isNativeReflectConstruct()) {
var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return (0, _possibleConstructorReturn2["default"])(this, result);
};
}
var LovView =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(LovView, _Component);
var _super = _createSuper(LovView);
function LovView() {
var _this;
(0, _classCallCheck2["default"])(this, LovView);
_this = _super.apply(this, arguments);
/* istanbul ignore next */
_this.handleKeyDown = function (e) {
if (e.keyCode === _KeyCode["default"].ENTER) {
var onEnterDown = _this.props.onEnterDown;
onEnterDown();
}
};
/**
* 单选 onRow 处理
* @param props
*/
_this.handleRow = function (props) {
var _this$props = _this.props,
onDoubleClick = _this$props.onDoubleClick,
tableProps = _this$props.tableProps;
var tablePropsOnRow;
if (tableProps === null || tableProps === void 0 ? void 0 : tableProps.onRow) tablePropsOnRow = tableProps.onRow(props);
return (0, _objectSpread2["default"])({
onDoubleClick: onDoubleClick
}, tablePropsOnRow);
};
return _this;
}
(0, _createClass2["default"])(LovView, [{
key: "componentWillMount",
value: function componentWillMount() {
var _this$props2 = this.props,
dataSet = _this$props2.dataSet,
selection = _this$props2.dataSet.selection,
multiple = _this$props2.multiple;
this.selection = selection;
dataSet.selection = multiple ? _enum2.DataSetSelection.multiple : _enum2.DataSetSelection.single;
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
var dataSet = this.props.dataSet;
dataSet.selection = this.selection;
}
/* istanbul ignore next */
}, {
key: "getColumns",
value: function getColumns() {
var _this$props3 = this.props,
lovItems = _this$props3.config.lovItems,
tableProps = _this$props3.tableProps;
return lovItems ? lovItems.filter(function (_ref) {
var gridField = _ref.gridField;
return gridField === 'Y';
}).sort(function (_ref2, _ref3) {
var seq1 = _ref2.gridFieldSequence;
var seq2 = _ref3.gridFieldSequence;
return seq1 - seq2;
}).map(function (_ref4) {
var display = _ref4.display,
gridFieldName = _ref4.gridFieldName,
gridFieldWidth = _ref4.gridFieldWidth,
gridFieldAlign = _ref4.gridFieldAlign;
var column = {};
if (tableProps && tableProps.columns) {
column = tableProps.columns.find(function (c) {
return c.name === gridFieldName;
});
}
return (0, _objectSpread2["default"])({}, column, {
key: gridFieldName,
header: display,
name: gridFieldName,
width: gridFieldWidth,
align: gridFieldAlign,
editor: false
});
}) : undefined;
}
}, {
key: "getQueryBar",
value: function getQueryBar() {
var _this$props4 = this.props,
queryBar = _this$props4.config.queryBar,
tableProps = _this$props4.tableProps;
if (queryBar) {
return queryBar;
}
if (tableProps && tableProps.queryBar) {
return tableProps.queryBar;
}
}
}, {
key: "render",
value: function render() {
var _this$props5 = this.props,
dataSet = _this$props5.dataSet,
_this$props5$config = _this$props5.config,
height = _this$props5$config.height,
treeFlag = _this$props5$config.treeFlag,
queryColumns = _this$props5$config.queryColumns,
configTableProps = _this$props5$config.tableProps,
multiple = _this$props5.multiple,
tableProps = _this$props5.tableProps;
var lovTableProps = (0, _objectSpread2["default"])({
customizable: (0, _configure.getConfig)('lovTableCustomizable'),
autoFocus: true,
mode: treeFlag === 'Y' ? _enum.TableMode.tree : _enum.TableMode.list,
onKeyDown: this.handleKeyDown,
dataSet: dataSet,
columns: this.getColumns(),
queryFieldsLimit: queryColumns,
queryBar: this.getQueryBar()
}, configTableProps, {}, tableProps);
if (multiple) {
lovTableProps.selectionMode = _enum.SelectionMode.rowbox;
} else {
lovTableProps.selectionMode = (tableProps === null || tableProps === void 0 ? void 0 : tableProps.selectionMode) ? tableProps.selectionMode : _enum.SelectionMode.none;
lovTableProps.onRow = this.handleRow;
}
if (height) {
lovTableProps.style = (0, _objectSpread2["default"])({}, lovTableProps.style, {
height: height
});
}
var isProfessionalBar = (0, _configure.getConfig)('queryBar') === _enum.TableQueryBarType.professionalBar;
if (!lovTableProps.queryBar && isProfessionalBar) {
lovTableProps.queryBar = function (props) {
return _react["default"].createElement(_TableProfessionalBar["default"], (0, _extends2["default"])({}, props, {
queryBarProps: {
labelWidth: 80
}
}));
};
} // 优化优先级 让 部分tableProps属性 的优先级大于dataSet的设置
// 目前需要处理 selectionMode
(0, _extends2["default"])(lovTableProps, (0, _pick["default"])((0, _objectSpread2["default"])({}, tableProps), ['selectionMode']));
return _react["default"].createElement(_Table["default"], (0, _extends2["default"])({}, lovTableProps));
}
}]);
return LovView;
}(_react.Component);
exports["default"] = LovView;
LovView.propTypes = {
dataSet: _propTypes["default"].object.isRequired,
config: _propTypes["default"].object.isRequired,
tableProps: _propTypes["default"].object,
onDoubleClick: _propTypes["default"].func.isRequired,
onEnterDown: _propTypes["default"].func.isRequired
};
(0, _tslib.__decorate)([_mobx.action], LovView.prototype, "componentWillMount", null);
(0, _tslib.__decorate)([_mobx.action], LovView.prototype, "componentWillUnmount", null);
//# sourceMappingURL=LovView.js.map