UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

1,031 lines (879 loc) 40.9 kB
"use strict"; 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