choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
250 lines (213 loc) • 10.2 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.VIEWLISTDS = exports.DEFAULTVIEW = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _noop = _interopRequireDefault(require("lodash/noop"));
var _ConfigContext = _interopRequireDefault(require("../../../lib/config-provider/ConfigContext"));
var _BoardWithContext = _interopRequireWildcard(require("./BoardWithContext"));
var _enum = require("./enum");
var _dataSet = _interopRequireDefault(require("../data-set"));
var _enum2 = require("../data-set/enum");
var _card, _kanban, _table;
var VIEWLISTDS = '__VIEWLISTDS__';
exports.VIEWLISTDS = VIEWLISTDS;
var DEFAULTVIEW = {
card: (_card = {}, (0, _defineProperty2["default"])(_card, _enum.ViewField.viewName, '初始卡片视图'), (0, _defineProperty2["default"])(_card, _enum.ViewField.viewMode, _enum.ViewMode.card), (0, _defineProperty2["default"])(_card, _enum.ViewField.id, '__DEFAULT__'), _card),
kanban: (_kanban = {}, (0, _defineProperty2["default"])(_kanban, _enum.ViewField.viewName, '初始看板视图'), (0, _defineProperty2["default"])(_kanban, _enum.ViewField.viewMode, _enum.ViewMode.kanban), (0, _defineProperty2["default"])(_kanban, _enum.ViewField.id, '__DEFAULT__'), _kanban),
table: (_table = {}, (0, _defineProperty2["default"])(_table, _enum.ViewField.viewName, '初始列表视图'), (0, _defineProperty2["default"])(_table, _enum.ViewField.viewMode, _enum.ViewMode.table), (0, _defineProperty2["default"])(_table, _enum.ViewField.id, '__DEFAULT__'), _table)
};
exports.DEFAULTVIEW = DEFAULTVIEW;
var Board = function Board(props) {
var _useContext = (0, _react.useContext)(_ConfigContext["default"]),
getConfig = _useContext.getConfig,
getCustomizable = _useContext.getCustomizable;
var defaultViewMode = props.defaultViewMode,
defaultViewProps = props.defaultViewProps,
tableProps = props.tableProps,
viewVisible = props.viewVisible,
dataSet = props.dataSet,
customizedCode = props.customizedCode,
_props$customizable = props.customizable,
customizable = _props$customizable === void 0 ? customizedCode ? getCustomizable('Board') : undefined : _props$customizable;
var $customizable = customizedCode ? customizable : false;
var _useState = (0, _react.useState)(!$customizable),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
loaded = _useState2[0],
setLoaded = _useState2[1];
var _useState3 = (0, _react.useState)(),
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
customized = _useState4[0],
setCustomized = _useState4[1];
var customizedDS = (0, _react.useMemo)(function () {
return new _dataSet["default"]({
autoLocateFirst: false,
paging: false,
fields: [{
name: _enum.ViewField.viewProps,
type: _enum2.FieldType.json
}, {
name: _enum.ViewField.viewName,
type: _enum2.FieldType.string
}, {
name: _enum.ViewField.viewMode,
type: _enum2.FieldType.string,
transformResponse: function transformResponse(value) {
return value.split('_VIEW')[0].toLocaleLowerCase();
},
transformRequest: function transformRequest(value) {
return value.concat('_VIEW').toLocaleUpperCase();
}
}, {
name: _enum.ViewField.id
}, {
name: _enum.ViewField.activeKey
}, {
name: _enum.ViewField.groupField,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.groupField)
}, {
name: _enum.ViewField.viewHeight,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.viewHeight)
}, {
name: _enum.ViewField.cardWidth,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.cardWidth)
}, {
name: _enum.ViewField.showLabel,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.showLabel)
}, {
name: _enum.ViewField.displayFields,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.displayFields)
}, {
name: _enum.ViewField.combineSort,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.combineSort)
}, {
name: _enum.ViewField.sort,
bind: "".concat(_enum.ViewField.viewProps, ".").concat(_enum.ViewField.sort)
}],
events: {
load: function load(_ref) {
var dataSet = _ref.dataSet;
var activeRecord = dataSet.find(function (record) {
return record.get(_enum.ViewField.activeKey);
});
if (activeRecord && viewVisible) {
var viewType = activeRecord.get(_enum.ViewField.viewMode);
if (viewVisible[viewType] !== false) {
dataSet.current = dataSet.find(function (record) {
return record.get(_enum.ViewField.activeKey);
});
} else {
dataSet.current = dataSet.find(function (record) {
return record.get(_enum.ViewField.id) === '__DEFAULT__';
});
}
} else {
dataSet.current = dataSet.find(function (record) {
return record.get(_enum.ViewField.id) === '__DEFAULT__';
});
}
}
}
});
}, [customizedCode]);
var displayFields = (0, _react.useMemo)(function () {
if (tableProps && tableProps.columns) {
return tableProps.columns;
}
if (tableProps && tableProps.children) {
var children = tableProps.children,
aggregation = tableProps.aggregation;
var generatedColumns = (0, _BoardWithContext.normalizeColumns)(children, aggregation);
return generatedColumns[0].concat(generatedColumns[1], generatedColumns[2]);
}
return [];
}, [tableProps]);
/**
* 加载当前默认个性化视图数据(单个)
*/
var loadCustomized = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var customizedLoad, _card2, _kanban2, res, remoteCustomized, viewProps, defaultView;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!customizedCode) {
_context.next = 15;
break;
}
setLoaded(false);
customizedLoad = getConfig('customizedLoad');
_context.prev = 3;
_context.next = 6;
return customizedLoad(customizedCode, 'Board', {
type: 'default'
});
case 6:
res = _context.sent;
remoteCustomized = res ? [res] : [];
viewProps = {
card: (_card2 = {}, (0, _defineProperty2["default"])(_card2, _enum.ViewField.cardWidth, 6), (0, _defineProperty2["default"])(_card2, _enum.ViewField.displayFields, displayFields.map(function (field) {
return field.name;
}).filter(Boolean).slice(0, 3)), (0, _defineProperty2["default"])(_card2, _enum.ViewField.showLabel, 1), _card2),
table: {},
kanban: (_kanban2 = {}, (0, _defineProperty2["default"])(_kanban2, _enum.ViewField.cardWidth, 6), (0, _defineProperty2["default"])(_kanban2, _enum.ViewField.displayFields, displayFields.map(function (field) {
return field.name;
}).filter(Boolean).slice(0, 3)), (0, _defineProperty2["default"])(_kanban2, _enum.ViewField.showLabel, 1), _kanban2)
};
defaultView = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({
code: customizedCode
}, DEFAULTVIEW[defaultViewMode]), {}, (0, _defineProperty2["default"])({}, _enum.ViewField.viewProps, (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, viewProps[defaultViewMode]), defaultViewProps[defaultViewMode])));
if (remoteCustomized && remoteCustomized.length) {
remoteCustomized.push(defaultView);
customizedDS.loadData(remoteCustomized);
} else {
customizedDS.loadData([defaultView]);
}
dataSet.setState(VIEWLISTDS, customizedDS);
case 12:
_context.prev = 12;
setLoaded(true);
return _context.finish(12);
case 15:
case "end":
return _context.stop();
}
}
}, _callee, null, [[3,, 12, 15]]);
})), [customizedCode]);
(0, _react.useEffect)(function () {
if ($customizable) {
loadCustomized();
}
}, [$customizable, loadCustomized]);
return loaded ? /*#__PURE__*/_react["default"].createElement(_BoardWithContext["default"], (0, _extends2["default"])({}, props, {
customizedDS: customizedDS,
customized: customized,
customizedCode: customizedCode,
setCustomized: setCustomized,
customizable: $customizable
})) : null;
};
Board.displayName = 'Board';
Board.defaultProps = {
onChange: _noop["default"],
viewMode: _enum.ViewMode.table,
queryFields: {},
autoQuery: false,
viewVisible: true,
commandsLimit: 1,
defaultViewMode: _enum.ViewMode.table,
defaultViewProps: {}
};
var _default = Board;
exports["default"] = _default;
//# sourceMappingURL=Board.js.map
;