choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
1,031 lines (879 loc) • 40.9 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.GROUPFIELD = void 0;
exports.normalizeColumns = normalizeColumns;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireWildcard(require("react"));
var _mobx = require("mobx");
var _mobxReactLite = require("mobx-react-lite");
var _classnames2 = _interopRequireDefault(require("classnames"));
var _isString = _interopRequireDefault(require("lodash/isString"));
var _isObject = _interopRequireDefault(require("lodash/isObject"));
var _isNil = _interopRequireDefault(require("lodash/isNil"));
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
var _ConfigContext = _interopRequireDefault(require("../../../lib/config-provider/ConfigContext"));
var _warning = _interopRequireDefault(require("../../../lib/_util/warning"));
var _confirm = _interopRequireDefault(require("../modal/confirm"));
var _enum = require("./enum");
var _dataSet = _interopRequireDefault(require("../data-set"));
var _table = _interopRequireDefault(require("../table"));
var _button = _interopRequireDefault(require("../button"));
var _enum2 = require("../button/enum");
var _icon = _interopRequireDefault(require("../icon"));
var _dropdown = _interopRequireDefault(require("../dropdown"));
var _form = _interopRequireDefault(require("../form"));
var _select = _interopRequireDefault(require("../select"));
var _textField = _interopRequireDefault(require("../text-field"));
var _modalProvider = _interopRequireDefault(require("../modal-provider"));
var _ModalProvider = require("../modal-provider/ModalProvider");
var _Board = require("./Board");
var _KanbanContent = _interopRequireDefault(require("./KanbanContent"));
var _BoardContext = _interopRequireDefault(require("./BoardContext"));
var _utils = require("../table/utils");
var _localeContext = require("../locale-context");
var _enum3 = require("../data-set/enum");
var _CardContent = _interopRequireDefault(require("./CardContent"));
var _interface = require("../table/interface");
var _isFragment = _interopRequireDefault(require("../_util/isFragment"));
var GROUPFIELD = '__GROUPFIELD__';
exports.GROUPFIELD = GROUPFIELD;
function normalizeColumns(elements, tableAggregation, customizedColumns) {
var parent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
var defaultKey = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [0];
var columnSort = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
left: 0,
center: 0,
right: 0
};
var columns = [];
var leftColumns = [];
var rightColumns = [];
var hasAggregationColumn = false;
var isHideDisabled = false;
var normalizeColumn = function normalizeColumn(element) {
if ( /*#__PURE__*/(0, _react.isValidElement)(element)) {
var props = element.props,
key = element.key,
type = element.type;
if ((0, _isFragment["default"])(element)) {
var children = props.children;
if (children) {
_react.Children.forEach(children, normalizeColumn);
}
} else if (type.__PRO_TABLE_COLUMN) {
var column = (0, _objectSpread3["default"])({}, props);
if (key) {
column.key = key;
} else if ((0, _isNil["default"])((0, _utils.getColumnKey)(column))) {
column.key = "anonymous-".concat(defaultKey[0]++);
}
var _children = column.children,
aggregation = column.aggregation;
if (!hasAggregationColumn && aggregation) {
hasAggregationColumn = true;
}
if (tableAggregation || !aggregation) {
if (!isHideDisabled && column.hideable === false) {
isHideDisabled = true;
}
if (parent || !column.lock) {
if (column.sort === undefined) {
column.sort = columnSort.center;
}
columnSort.center++;
columns.push(column);
} else if (column.lock === true || column.lock === _interface.ColumnLock.left) {
if (column.sort === undefined) {
column.sort = columnSort.left;
}
columnSort.left++;
leftColumns.push(column);
} else {
if (column.sort === undefined) {
column.sort = columnSort.right;
}
columnSort.right++;
rightColumns.push(column);
}
} else {
var _normalizeColumns = normalizeColumns(_children, tableAggregation, customizedColumns, parent, defaultKey, parent ? undefined : columnSort),
_normalizeColumns2 = (0, _slicedToArray2["default"])(_normalizeColumns, 4),
leftNodes = _normalizeColumns2[0],
nodes = _normalizeColumns2[1],
rightNodes = _normalizeColumns2[2],
_normalizeColumns2$ = _normalizeColumns2[3],
childrenHasAggregationColumn = _normalizeColumns2$.hasAggregationColumn,
childrenIsHideDisabled = _normalizeColumns2$.isHideDisabled;
if (!hasAggregationColumn && childrenHasAggregationColumn) {
hasAggregationColumn = childrenHasAggregationColumn;
}
if (!isHideDisabled && childrenIsHideDisabled) {
column.hideable = false;
isHideDisabled = true;
}
if (parent) {
parent.children = [].concat((0, _toConsumableArray2["default"])(leftNodes), (0, _toConsumableArray2["default"])(nodes), (0, _toConsumableArray2["default"])(rightNodes));
} else {
leftColumns.push.apply(leftColumns, (0, _toConsumableArray2["default"])(leftNodes));
columns.push.apply(columns, (0, _toConsumableArray2["default"])(nodes));
rightColumns.push.apply(rightColumns, (0, _toConsumableArray2["default"])(rightNodes));
}
}
}
}
};
_react.Children.forEach(elements, normalizeColumn);
if (parent) {
return [[], (0, _sortBy["default"])(columns, function (_ref) {
var sort = _ref.sort;
return sort;
}), [], {
hasAggregationColumn: hasAggregationColumn,
isHideDisabled: isHideDisabled
}];
}
return [(0, _sortBy["default"])(leftColumns, function (_ref2) {
var sort = _ref2.sort;
return sort;
}), (0, _sortBy["default"])(columns, function (_ref3) {
var sort = _ref3.sort;
return sort;
}), (0, _sortBy["default"])(rightColumns, function (_ref4) {
var sort = _ref4.sort;
return sort;
}), {
hasAggregationColumn: hasAggregationColumn,
isHideDisabled: isHideDisabled
}];
}
/**
* 处理分组字段下拉数据,仅单选快码
* @param dataSet
*/
function processGroupData(dataSet) {
var data = [];
dataSet.fields.forEach(function (field) {
var type = field.get('type');
var multiple = field.get('multiple');
if (!multiple && (field.get('lookupCode') || (0, _isString["default"])(field.get('lookupUrl')) || type !== _enum3.FieldType.object && (field.get('lovCode') || field.getLookup() || field.get('options')))) {
data.push({
value: field.get('name'),
meaning: field.get('label')
});
}
});
return data;
}
var ModalContent = function ModalContent(_ref5) {
var modal = _ref5.modal,
prefixCls = _ref5.prefixCls,
groupDataSet = _ref5.groupDataSet;
return /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-board-modal-content")
}, /*#__PURE__*/_react["default"].createElement("div", null, "\u9009\u62E9\u4E00\u4E2A\u5B57\u6BB5\uFF0C\u6570\u636E\u5C06\u6309\u7167\u6B64\u5B57\u6BB5\u4E2D\u7684\u5B57\u6BB5\u503C\u5206\u7EC4\u663E\u793A\u5728\u770B\u677F\u4E2D\uFF0C\u652F\u6301\u5B57\u6BB5\u7C7B\u578B\uFF1A\u5355\u9009\u3001\u4E0B\u62C9\u5355\u9009"), /*#__PURE__*/_react["default"].createElement(_form["default"], {
dataSet: groupDataSet
}, /*#__PURE__*/_react["default"].createElement(_textField["default"], {
label: "\u89C6\u56FE\u540D\u79F0",
name: _enum.ViewField.viewName
}), /*#__PURE__*/_react["default"].createElement(_select["default"], {
name: "groupField",
label: "\u9009\u62E9\u5206\u7EC4\u5B57\u6BB5",
onChange: function onChange(value) {
if (value) {
modal.update({
okProps: {
disabled: false
}
});
}
}
})));
};
var BoardWithContext = function Board(props) {
var _useContext = (0, _react.useContext)(_ConfigContext["default"]),
getConfig = _useContext.getConfig,
getProPrefixCls = _useContext.getProPrefixCls;
var _useState = (0, _react.useState)(true),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
hidden = _useState2[0],
setHidden = _useState2[1];
var defaultViewProps = props.defaultViewProps,
defaultViewMode = props.defaultViewMode,
onChange = props.onChange,
onConfigChange = props.onConfigChange,
renderButtons = props.renderButtons,
viewVisible = props.viewVisible,
autoQuery = props.autoQuery,
kanbanProps = props.kanbanProps,
cardProps = props.cardProps,
renderCommand = props.renderCommand,
commandsLimit = props.commandsLimit,
customizedDS = props.customizedDS,
queryFields = props.queryFields,
dataSet = props.dataSet,
tableProps = props.tableProps,
customizable = props.customizable,
customizedCode = props.customizedCode;
var prefixCls = getProPrefixCls('board');
var saveCustomized = (0, _react.useCallback)( /*#__PURE__*/function () {
var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(newCustomized) {
var customizedSave, res;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!(customizable && customizedCode)) {
_context.next = 6;
break;
}
customizedSave = getConfig('customizedSave');
_context.next = 4;
return customizedSave(customizedCode, newCustomized, 'Board');
case 4:
res = _context.sent;
return _context.abrupt("return", res);
case 6:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function (_x) {
return _ref6.apply(this, arguments);
};
}(), [customizable, customizedCode]);
var customizedLoad = getConfig('customizedLoad');
var viewTypeVisible = (0, _react.useMemo)(function () {
if ((0, _isBoolean["default"])(viewVisible)) {
return {
card: viewVisible,
kanban: viewVisible,
table: viewVisible
};
}
if ((0, _isObject["default"])(viewVisible)) {
return {
card: (0, _isBoolean["default"])(viewVisible.card) ? viewVisible.card : true,
kanban: (0, _isBoolean["default"])(viewVisible.kanban) ? viewVisible.kanban : true,
table: (0, _isBoolean["default"])(viewVisible.table) ? viewVisible.table : true
};
}
return {
card: true,
kanban: true,
table: true
};
}, [viewVisible]);
var viewHeight = (0, _react.useMemo)(function () {
return customizedDS && customizedDS.current ? customizedDS.current.get(_enum.ViewField.viewHeight) : undefined;
}, [customizedDS.current]);
var currentDisplayFields = (0, _react.useMemo)(function () {
return customizedDS && customizedDS.current ? customizedDS.current.get(_enum.ViewField.displayFields) : undefined;
}, [customizedDS.current]);
var _useState3 = (0, _react.useState)(''),
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var modal = (0, _ModalProvider.useModal)();
var TableRef = (0, _react.useRef)(null);
var DropdownRef = (0, _react.useRef)(null);
var SwitchBtnRef = (0, _react.useRef)(null);
var optionDS = (0, _react.useMemo)(function () {
return new _dataSet["default"]({
data: processGroupData(dataSet),
paging: false,
primaryKey: 'value'
});
}, [dataSet]);
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 = normalizeColumns(children, aggregation);
return generatedColumns[0].concat(generatedColumns[1], generatedColumns[2]);
}
return [];
}, [tableProps]);
var command = (0, _react.useMemo)(function () {
if (displayFields && displayFields.length) {
var commandCol = displayFields.find(function (col) {
return col.command;
});
return commandCol ? commandCol.command : undefined;
}
}, [displayFields]);
var groupDataSet = (0, _react.useMemo)(function () {
return new _dataSet["default"]({
paging: false,
primaryKey: 'groupField',
autoCreate: true,
fields: [{
name: _enum.ViewField.groupField,
required: true,
type: _enum3.FieldType.object,
options: optionDS
}, {
name: _enum.ViewField.viewName,
type: _enum3.FieldType.string,
defaultValue: '看板视图'
}]
});
}, [dataSet]);
/**
* 处理面板显隐
*/
var handleClickOut = (0, _react.useCallback)(function (e) {
if (DropdownRef.current && SwitchBtnRef.current // @ts-ignore
&& !(DropdownRef.current.contains(e.target) // @ts-ignore
|| SwitchBtnRef.current.element.contains(e.target))) {
setHidden(true);
}
}, [DropdownRef]);
(0, _react.useEffect)(function () {
document.addEventListener('click', handleClickOut);
return function () {
return document.removeEventListener('click', handleClickOut);
};
}, [DropdownRef]);
/**
* 新建视图 | 加载视图列表数据
*/
var loadListData = (0, _react.useCallback)( /*#__PURE__*/function () {
var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(record) {
var _card, _kanban, detailRes, res, mergeRes, viewProps, defaultView;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
if (!(record.get(_enum.ViewField.id) || record.get('menuId') || record.get(_enum.ViewField.id) === '__DEFAULT__')) {
_context2.next = 5;
break;
}
detailRes = record.toData();
_context2.next = 8;
break;
case 5:
_context2.next = 7;
return saveCustomized(record.toData());
case 7:
detailRes = _context2.sent;
case 8:
_context2.next = 10;
return customizedLoad(customizedCode, 'Board', {
type: 'list'
});
case 10:
res = _context2.sent;
mergeRes = res.map(function (r) {
if (r.id === detailRes[_enum.ViewField.id]) {
return detailRes;
}
return r;
});
viewProps = {
card: (_card = {}, (0, _defineProperty2["default"])(_card, _enum.ViewField.cardWidth, 6), (0, _defineProperty2["default"])(_card, _enum.ViewField.displayFields, displayFields.map(function (field) {
return field.name;
}).filter(Boolean).slice(0, 3)), (0, _defineProperty2["default"])(_card, _enum.ViewField.showLabel, 1), _card),
table: {},
kanban: (_kanban = {}, (0, _defineProperty2["default"])(_kanban, _enum.ViewField.cardWidth, 6), (0, _defineProperty2["default"])(_kanban, _enum.ViewField.displayFields, displayFields.map(function (field) {
return field.name;
}).filter(Boolean).slice(0, 3)), (0, _defineProperty2["default"])(_kanban, _enum.ViewField.showLabel, 1), _kanban)
};
defaultView = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({
code: customizedCode
}, _Board.DEFAULTVIEW[defaultViewMode]), {}, (0, _defineProperty2["default"])({}, _enum.ViewField.viewProps, (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, viewProps[defaultViewMode]), defaultViewProps[defaultViewMode])));
customizedDS.loadData([].concat((0, _toConsumableArray2["default"])(mergeRes), [defaultView]));
_context2.next = 20;
break;
case 17:
_context2.prev = 17;
_context2.t0 = _context2["catch"](0);
(0, _warning["default"])(false, _context2.t0.message);
case 20:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[0, 17]]);
}));
return function (_x2) {
return _ref7.apply(this, arguments);
};
}(), [customizedCode]);
/**
* 渲染查询条字段组件
*/
var getQueryFields = (0, _react.useCallback)(function () {
var queryDataSet = dataSet.queryDataSet;
var result = [];
if (queryDataSet) {
var fields = queryDataSet.fields,
current = queryDataSet.current,
_queryDataSet$props$f = queryDataSet.props.fields,
propFields = _queryDataSet$props$f === void 0 ? [] : _queryDataSet$props$f;
var cloneFields = fields.toJS();
var tlsKey = getConfig('tlsKey');
var processField = function processField(field, name) {
if (!field.get('bind', current) && !name.includes(tlsKey)) {
var element = queryFields[name];
var filterBarProps = {};
var inValidElement = (0, _utils.getEditorByField)(field, current, true);
var placeholder = /*#__PURE__*/(0, _react.isValidElement)(element) && element.props.placeholder ? element.props.placeholder : (0, _utils.getPlaceholderByField)(field, current);
filterBarProps = {
placeholder: placeholder,
border: false,
clearButton: true
};
var elementType = inValidElement.type;
if ((! /*#__PURE__*/(0, _react.isValidElement)(element) || element.props.suffix === undefined) && ['Currency', 'ObserverNumberField', 'EmailField', 'UrlField', 'ObserverTextField'].indexOf(elementType.name) !== -1) {
(0, _extends2["default"])(filterBarProps, {
suffix: /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: "search"
})
});
}
var _props = (0, _objectSpread3["default"])({
key: name,
name: name,
dataSet: queryDataSet,
isFlat: true
}, filterBarProps);
result.push( /*#__PURE__*/(0, _react.isValidElement)(element) ? /*#__PURE__*/(0, _react.cloneElement)(element, _props) : /*#__PURE__*/(0, _react.cloneElement)(inValidElement, (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, _props), (0, _isObject["default"])(element) ? element : {})));
}
};
propFields.forEach(function (_ref8) {
var name = _ref8.name;
if (name) {
var field = cloneFields.get(name);
if (field) {
cloneFields["delete"](name);
processField(field, name);
}
}
});
cloneFields.forEach(function (field, name) {
processField(field, name);
});
}
return result;
}, []);
/**
* 新增看板视图弹窗
*/
var addBoardView = (0, _react.useCallback)(function () {
setHidden(true);
var modalProps = {
title: '看板视图',
autoCenter: true,
style: {
width: 595
},
children: /*#__PURE__*/_react["default"].createElement(ModalContent, {
groupDataSet: groupDataSet,
prefixCls: prefixCls
}),
okProps: {
disabled: true
},
onClose: function onClose() {
groupDataSet.reset();
return true;
},
onOk: function onOk() {
var _ViewField$viewProps, _customizedDS$create;
var groupField = groupDataSet.current.get('groupField').value;
customizedDS.setState('__OLDID__', customizedDS.current.get(_enum.ViewField.id));
customizedDS.create((_customizedDS$create = {}, (0, _defineProperty2["default"])(_customizedDS$create, _enum.ViewField.viewMode, _enum.ViewMode.kanban), (0, _defineProperty2["default"])(_customizedDS$create, _enum.ViewField.viewName, groupDataSet.current.get(_enum.ViewField.viewName)), (0, _defineProperty2["default"])(_customizedDS$create, _enum.ViewField.viewProps, (_ViewField$viewProps = {}, (0, _defineProperty2["default"])(_ViewField$viewProps, _enum.ViewField.groupField, groupField), (0, _defineProperty2["default"])(_ViewField$viewProps, _enum.ViewField.cardWidth, 6), (0, _defineProperty2["default"])(_ViewField$viewProps, _enum.ViewField.displayFields, displayFields.map(function (field) {
return field.name;
}).filter(Boolean).slice(0, 3)), (0, _defineProperty2["default"])(_ViewField$viewProps, _enum.ViewField.showLabel, 1), _ViewField$viewProps)), (0, _defineProperty2["default"])(_customizedDS$create, _enum.ViewField.activeKey, 1), _customizedDS$create), 0);
loadListData(customizedDS.current); // if (isFunction(onChange)) {
// onChange({ record: customizedDS.current, dataSet });
// }
return true;
}
};
modal.open(modalProps);
}, [modal, saveCustomized]);
/**
* 渲染视图切换面板
*/
var renderSwitcherBoard = (0, _react.useCallback)(function () {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-switch-board"),
ref: DropdownRef
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-switch-board-search")
}, /*#__PURE__*/_react["default"].createElement(_textField["default"], {
style: {
width: '100%'
},
value: searchText,
onClick: function onClick(e) {
e.preventDefault();
e.currentTarget.focus();
},
onChange: function onChange(v) {
setSearchText(v);
},
onInput: function onInput(e) {
setSearchText(e.target.value);
},
prefix: /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: "search"
}),
placeholder: (0, _localeContext.$l)('Table', 'enter_text_filter'),
clearButton: true
})), customizedDS && customizedDS.length ? customizedDS.map(function (record) {
var viewMode = record.get(_enum.ViewField.viewMode);
if (viewTypeVisible[viewMode] === false && !(record.get(_enum.ViewField.id) === '__DEFAULT__' || !record.get(_enum.ViewField.id))) {
return null;
}
var itemCls = (0, _classnames2["default"])("".concat(prefixCls, "-view-item"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-view-item-active"), record.isCurrent));
return /*#__PURE__*/_react["default"].createElement("div", {
key: record.id,
hidden: searchText ? !record.get(_enum.ViewField.viewName).includes(searchText) : false,
className: itemCls,
onClick: function () {
var _onClick = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
var res;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
if (!(record.get(_enum.ViewField.activeKey) === 1)) {
_context3.next = 4;
break;
}
setHidden(true);
_context3.next = 23;
break;
case 4:
customizedDS.current.set(_enum.ViewField.activeKey, 0);
customizedDS.setState('__OLDID__', customizedDS.current.get(_enum.ViewField.id));
record.set(_enum.ViewField.activeKey, 1);
customizedDS.current = record; // if (isFunction(onChange)) {
// onChange({ record, dataSet });
// }
setHidden(true);
_context3.prev = 9;
if (!(record.get(_enum.ViewField.id) === '__DEFAULT__' || !record.get(_enum.ViewField.id))) {
_context3.next = 14;
break;
}
// 切换的为前端内置视图,frontFlag 标记前端配置,后端将其他视图 defaultFlag 置为 0
saveCustomized((0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, record.toJSONData()), {}, {
id: undefined,
frontFlag: 1
}));
_context3.next = 18;
break;
case 14:
_context3.next = 16;
return customizedLoad(customizedCode, 'Board', (0, _defineProperty2["default"])({
type: 'detail'
}, _enum.ViewField.id, record.get(_enum.ViewField.id)));
case 16:
res = _context3.sent;
record.commit(res, customizedDS);
case 18:
_context3.next = 23;
break;
case 20:
_context3.prev = 20;
_context3.t0 = _context3["catch"](9);
record.status = _enum3.RecordStatus.sync;
case 23:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[9, 20]]);
}));
function onClick() {
return _onClick.apply(this, arguments);
}
return onClick;
}()
}, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: _enum.ViewModeIcon[record.get(_enum.ViewField.viewMode)]
}), record.get(_enum.ViewField.viewName), record.get(_enum.ViewField.id) !== '__DEFAULT__' ? /*#__PURE__*/_react["default"].createElement(_icon["default"], {
className: "".concat(prefixCls, "-delete"),
type: "delete_black-o",
onClick: function () {
var _onClick2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(e) {
return _regenerator["default"].wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
e.stopPropagation();
setHidden(true);
_context4.next = 4;
return (0, _confirm["default"])('确认删除');
case 4:
_context4.t0 = _context4.sent;
if (!(_context4.t0 !== 'cancel')) {
_context4.next = 7;
break;
}
(0, _mobx.runInAction)(function () {
record.status = _enum3.RecordStatus["delete"];
try {
saveCustomized(record.toJSONData());
if (record.isCurrent) {
customizedDS.current = customizedDS.find(function (record) {
return record.get(_enum.ViewField.id) === '__DEFAULT__';
});
}
} catch (e) {
record.status = _enum3.RecordStatus.sync;
}
});
case 7:
case "end":
return _context4.stop();
}
}
}, _callee4);
}));
function onClick(_x3) {
return _onClick2.apply(this, arguments);
}
return onClick;
}()
}) : null);
}) : null, /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-switch-board-footer")
}, /*#__PURE__*/_react["default"].createElement("div", null, "\u6DFB\u52A0\u89C6\u56FE"), /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-view-add")
}, /*#__PURE__*/_react["default"].createElement("div", {
hidden: !viewTypeVisible.table,
onClick: function onClick() {
var _customizedDS$create2;
customizedDS.setState('__OLDID__', customizedDS.current.get(_enum.ViewField.id));
customizedDS.create((_customizedDS$create2 = {}, (0, _defineProperty2["default"])(_customizedDS$create2, _enum.ViewField.viewMode, _enum.ViewMode.table), (0, _defineProperty2["default"])(_customizedDS$create2, _enum.ViewField.viewName, '列表视图'), (0, _defineProperty2["default"])(_customizedDS$create2, _enum.ViewField.viewProps, {}), (0, _defineProperty2["default"])(_customizedDS$create2, _enum.ViewField.activeKey, 1), _customizedDS$create2), 0);
try {
// saveCustomized(customizedDS.current!.toData());
loadListData(customizedDS.current); // if (isFunction(onChange)) {
// onChange({ record: customizedDS.current, dataSet });
// }
} catch (e) {// record.status = RecordStatus.sync;
}
setHidden(true);
}
}, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: "biaoge-o"
}), "\u5217\u8868"), /*#__PURE__*/_react["default"].createElement("div", {
hidden: !viewTypeVisible.card,
onClick: function onClick() {
var _ViewField$viewProps2, _customizedDS$create3;
customizedDS.setState('__OLDID__', customizedDS.current.get(_enum.ViewField.id));
customizedDS.create((_customizedDS$create3 = {}, (0, _defineProperty2["default"])(_customizedDS$create3, _enum.ViewField.viewMode, _enum.ViewMode.card), (0, _defineProperty2["default"])(_customizedDS$create3, _enum.ViewField.viewName, '卡片视图'), (0, _defineProperty2["default"])(_customizedDS$create3, _enum.ViewField.viewProps, (_ViewField$viewProps2 = {}, (0, _defineProperty2["default"])(_ViewField$viewProps2, _enum.ViewField.cardWidth, 6), (0, _defineProperty2["default"])(_ViewField$viewProps2, _enum.ViewField.displayFields, displayFields.map(function (field) {
return field.name;
}).filter(Boolean).slice(0, 3)), (0, _defineProperty2["default"])(_ViewField$viewProps2, _enum.ViewField.showLabel, 1), _ViewField$viewProps2)), (0, _defineProperty2["default"])(_customizedDS$create3, _enum.ViewField.activeKey, 1), _customizedDS$create3), 0);
try {
// saveCustomized(customizedDS.current!.toData());
loadListData(customizedDS.current); // if (isFunction(onChange)) {
// onChange({ record: customizedDS.current, dataSet, currentViewDS: });
// }
} catch (e) {// record.status = RecordStatus.sync;
}
setHidden(true);
}
}, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: "kapian"
}), "\u5361\u7247"), /*#__PURE__*/_react["default"].createElement("div", {
hidden: !viewTypeVisible.kanban,
onClick: addBoardView
}, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: "kanban"
}), "\u770B\u677F"))));
}, [customizedDS, searchText, viewTypeVisible]);
var renderSwitcherIcon = (0, _react.useCallback)(function () {
var viewType = customizedDS.current && customizedDS.current.get(_enum.ViewField.viewMode);
return /*#__PURE__*/_react["default"].createElement(_dropdown["default"], {
overlay: function overlay() {
return renderSwitcherBoard();
},
hidden: hidden
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
color: _enum2.ButtonColor.primary,
funcType: _enum2.FuncType.flat,
onClick: function () {
var _onClick3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
return _regenerator["default"].wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
// 初次点击查询视图列表,=1 避免每次点击查询,保存具体配置或刷新重新查询 list 接口
if (hidden && customizedDS.length <= 2) {
loadListData(customizedDS.current);
customizedDS.setState('__ISCHANGE__', true);
customizedDS.setState('__OLDID__', customizedDS.current.get(_enum.ViewField.id));
}
setHidden(!hidden);
case 2:
case "end":
return _context5.stop();
}
}
}, _callee5);
}));
function onClick() {
return _onClick3.apply(this, arguments);
}
return onClick;
}(),
ref: SwitchBtnRef
}, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: _enum.ViewModeIcon[viewType] || "biaoge-o"
}), /*#__PURE__*/_react["default"].createElement(_icon["default"], {
type: hidden ? "baseline-arrow_drop_down" : "baseline-arrow_drop_up"
})));
}, [hidden, searchText, viewTypeVisible]);
var tableDataSet = (0, _react.useMemo)(function () {
var isDefault = customizedDS.current ? customizedDS.current.get(_enum.ViewField.id) === '__DEFAULT__' : true;
var defaultSortParams = dataSet.combineSort && customizedDS.current ? customizedDS.current.get(_enum.ViewField.combineSort) || [] : [];
var orgFields = dataSet.props.fields ? dataSet.props.fields : [];
var orderFields = orgFields.map(function (field) {
var orderField = defaultSortParams.find(function (of) {
return of.sortName === field.name;
});
var newField = (0, _objectSpread3["default"])({}, field);
if (orderField) {
newField.order = orderField.order;
}
return newField;
});
return isDefault ? dataSet : new _dataSet["default"]((0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, dataSet.props), {}, {
fields: orderFields,
autoQuery: autoQuery
}));
}, [customizedDS.current && customizedDS.current.get(_enum.ViewField.id)]);
var tableDataSetName = (0, _react.useMemo)(function () {
if (customizedDS.current && customizedDS.current.get(_enum.ViewField.viewMode) === _enum.ViewMode.table) {
var changed = customizedDS.getState('__ISCHANGE__');
if ((0, _isFunction["default"])(onChange) && tableDataSet && changed) {
onChange({
record: customizedDS.current,
dataSet: dataSet,
currentViewDS: tableDataSet
});
}
}
}, [tableDataSet]);
var renderContent = (0, _react.useCallback)(function () {
var viewMode = customizedDS.current ? customizedDS.current.get(_enum.ViewField.viewMode) : _enum.ViewMode.table;
var isDefault = customizedDS.current ? customizedDS.current.get(_enum.ViewField.id) === '__DEFAULT__' : true;
var noSwitcher = !viewVisible || viewTypeVisible.card === false && viewTypeVisible.kanban === false && viewTypeVisible.table === false;
var buttonsLimit = tableProps.buttonsLimit,
buttons = tableProps.buttons,
queryBarProps = tableProps.queryBarProps,
queryFieldsLimit = tableProps.queryFieldsLimit,
searchCode = tableProps.searchCode,
dynamicFilterBar = tableProps.dynamicFilterBar;
var tableQueryBarProps = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, getConfig('queryBarProps')), {}, {
queryFieldsLimit: queryFieldsLimit,
dynamicFilterBar: dynamicFilterBar,
searchCode: searchCode
}, queryBarProps);
var displayedButtonsLimit = buttonsLimit && (noSwitcher ? buttonsLimit : buttonsLimit + 1);
var tableBtns = buttons ? (0, _toConsumableArray2["default"])(buttons) : [];
var btnRenderer = tableBtns;
if (viewMode === _enum.ViewMode.table) {
if ((0, _isFunction["default"])(renderButtons)) {
btnRenderer = renderButtons({
viewMode: viewMode,
dataSet: isDefault ? dataSet : tableDataSet,
buttons: tableBtns
});
}
var btns = noSwitcher ? btnRenderer : [renderSwitcherIcon()].concat((0, _toConsumableArray2["default"])(btnRenderer));
dataSet.setState('__CURRENTVIEWDS__', tableDataSet); // handleChange tableDataSet
if (tableDataSet) {
dataSet.setState('__tempChange__', tableDataSetName);
}
return /*#__PURE__*/_react["default"].createElement(_table["default"], (0, _extends2["default"])({}, tableProps, {
customizable: isDefault ? false : customizable,
customizedCode: customizedCode,
boardCustomized: {
customizedBtn: true,
customizedDS: customizedDS
},
dataSet: isDefault ? dataSet : tableDataSet,
buttons: btns,
buttonsLimit: displayedButtonsLimit,
ref: TableRef
}));
}
if (viewMode === _enum.ViewMode.card) {
return /*#__PURE__*/_react["default"].createElement(_CardContent["default"], {
cardProps: cardProps,
key: "cardContent",
tableBtns: tableBtns,
buttonsLimit: buttonsLimit,
queryBarProps: tableQueryBarProps,
buttons: noSwitcher ? [] : [renderSwitcherIcon()]
});
}
return /*#__PURE__*/_react["default"].createElement(_KanbanContent["default"], {
key: "kanbanContent",
dataSet: dataSet,
queryBarProps: tableQueryBarProps,
tableBtns: tableBtns,
buttonsLimit: buttonsLimit,
buttons: noSwitcher ? [] : [renderSwitcherIcon()],
kanbanProps: kanbanProps
});
}, [tableProps.buttonsLimit, customizedDS.current, viewHeight, currentDisplayFields, hidden, searchText, tableProps, viewTypeVisible]);
var value = {
// defaultActiveKey: propDefaultActiveKey,
// actuallyDefaultActiveKey,
// propActiveKey,
prefixCls: prefixCls,
getConfig: getConfig,
getProPrefixCls: getProPrefixCls,
customizedCode: customizedCode,
// customizable,
// customized,
saveCustomized: saveCustomized,
// activeKey,
// changeActiveKey,
autoQuery: autoQuery,
command: command,
renderCommand: renderCommand,
commandsLimit: commandsLimit,
renderButtons: renderButtons,
customizedDS: customizedDS,
displayFields: displayFields,
optionDS: optionDS,
dataSet: dataSet,
queryFields: getQueryFields(),
viewTypeVisible: viewTypeVisible,
onConfigChange: onConfigChange,
onChange: onChange
};
return /*#__PURE__*/_react["default"].createElement(_BoardContext["default"].Provider, {
value: value
}, customizable ? /*#__PURE__*/_react["default"].createElement(_modalProvider["default"], null, renderContent()) : /*#__PURE__*/_react["default"].createElement(_modalProvider["default"], null, renderContent()));
};
BoardWithContext.displayName = 'BoardWithContext';
var _default = (0, _mobxReactLite.observer)(BoardWithContext);
exports["default"] = _default;
//# sourceMappingURL=BoardWithContext.js.map
;