UNPKG

dareway-rui

Version:

463 lines (384 loc) 19.9 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _objectSpread3 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread')); var _typeof2 = _interopRequireDefault(require('@babel/runtime/helpers/typeof')); var _regenerator = _interopRequireDefault(require('@babel/runtime/regenerator')); var _lodash = _interopRequireDefault(require('lodash')); var _utils = require('../utils'); var _GridConstants = require('../GridConstants'); var _util = require('../../../util'); var _code = require('../../../code'); var _default = { effects: { getCellContent: /*#__PURE__*/ _regenerator.default.mark(function getCellContent(_ref, RUI) { var payload, rowNumber, columnName, _ref2, data, cols, gridNamespace, col, TAG_TYPE, cellValue, codeMap, code, prefix, i, _codeMap$i, value, content, contentResultValueArray, cellValueArray, _loop, _i; return _regenerator.default.wrap(function getCellContent$(_context) { while (1) { switch ((_context.prev = _context.next)) { case 0: payload = _ref.payload; (rowNumber = payload.rowNumber), (columnName = payload.columnName); _context.next = 4; return RUI.getState(); case 4: _ref2 = _context.sent; data = _ref2.data; cols = _ref2.cols; _context.next = 9; return RUI.getNamespace(); case 9: gridNamespace = _context.sent; // 入参合法性校验 (0, _utils.checkRowNumType)(rowNumber, 'Grid.getCellContent(rowNum, columnName)'); (0, _utils.checkRowNumRange)( rowNumber, data, 'Grid.getCellContent(rowNum, columnName)' ); (0, _utils.checkColumnDefined)( cols, columnName, 'Grid.getCellContent(rowNum, columnName)' ); (0, _utils.checkCodeColumn)( cols, columnName, 'Grid.getCellContent(rowNum, columnName)' ); // 取 col col = (0, _utils.getColumn)(cols, columnName); // 判定 col 类型是否为 DropdownColumn 或 MultiSelectColumn TAG_TYPE = col.TAG_TYPE; // 取 cellValue _context.next = 18; return RUI.invoke('getCellValue', { rowNumber: rowNumber, columnName: columnName }); case 18: cellValue = _context.sent; if (cellValue) { _context.next = 21; break; } return _context.abrupt('return', ''); case 21: // 取 codeMap (codeMap = col.codeMap), (code = col.code), (prefix = col.prefix); if (!(codeMap == null && code)) { _context.next = 26; break; } _context.next = 25; return _code.CodeManager.getCode(gridNamespace, code, prefix); case 25: codeMap = _context.sent; case 26: if (!(TAG_TYPE === _GridConstants.TAG_TYPE_DROPDOWN_COLUMN)) { _context.next = 38; break; } i = 0; case 28: if (!(i < codeMap.length)) { _context.next = 35; break; } (_codeMap$i = codeMap[i]), (value = _codeMap$i.value), (content = _codeMap$i.content); if (!(cellValue === value)) { _context.next = 32; break; } return _context.abrupt('return', content); case 32: i++; _context.next = 28; break; case 35: return _context.abrupt('return', cellValue); case 38: if (!(TAG_TYPE === _GridConstants.TAG_TYPE_MULTISELECT_COLUMN)) { _context.next = 44; break; } contentResultValueArray = []; cellValueArray = cellValue.split(','); _loop = function _loop(_i) { var curValue = cellValueArray[_i]; var index = codeMap.findIndex(function(_ref3) { var value = _ref3.value, content = _ref3.content; return curValue === value; }); if (index !== -1) { contentResultValueArray.push(codeMap[index].content); } else { contentResultValueArray.push(curValue); } }; for (_i = 0; _i < cellValueArray.length; _i++) { _loop(_i); } return _context.abrupt('return', contentResultValueArray.join(',')); case 44: case 'end': return _context.stop(); } } }, getCellContent); }), setColumnCodeMap: /*#__PURE__*/ _regenerator.default.mark(function setColumnCodeMap(_ref4, RUI) { var payload, _ref5, cols, data, columnName, codeMap, gridNamespace, col, stateCodeMap, code, prefix, keys, colName, resultDs, i; return _regenerator.default.wrap(function setColumnCodeMap$(_context2) { while (1) { switch ((_context2.prev = _context2.next)) { case 0: payload = _ref4.payload; _context2.next = 3; return RUI.getState(); case 3: _ref5 = _context2.sent; cols = _ref5.cols; data = _ref5.data; (columnName = payload.columnName), (codeMap = payload.codeMap); _context2.next = 9; return RUI.getNamespace(); case 9: gridNamespace = _context2.sent; // 校验 columnName 合法性 (0, _utils.checkColumnDefined)( cols, columnName, 'Grid.setColumnCodeMap(columnName, codeMap)' ); (0, _utils.checkCodeColumn)( cols, columnName, 'Grid.setColumnCodeMap(columnName, codeMap)' ); // 取 col col = (0, _utils.getColumn)(cols, columnName); // 取 codeMap (stateCodeMap = col.codeMap), (code = col.code), (prefix = col.prefix); if (!(stateCodeMap == null && code)) { _context2.next = 17; break; } _context2.next = 17; return _code.CodeManager.wait(gridNamespace); case 17: if (!(!codeMap || !(codeMap instanceof Array))) { _context2.next = 19; break; } throw new Error( 'Grid.setColumnCodeMap(columnName, codeMap) \u5165\u53C2 codeMap \u5FC5\u987B\u4E3A\u975E\u7A7A\u6570\u7EC4\uFF0C\u5F53\u524D\u4F20\u5165\u3010' .concat(codeMap, ':') .concat((0, _typeof2.default)(codeMap), '\u3011\uFF0C\u8BF7\u68C0\u67E5\uFF01') ); case 19: if (!codeMap.length) { _context2.next = 23; break; } keys = Object.keys(codeMap[0]); if (!(keys.indexOf('value') === -1 || keys.indexOf('content') === -1)) { _context2.next = 23; break; } throw new Error( 'Grid.setColumnCodeMap(columnName, codeMap) \u5165\u53C2 codeMap \u5FC5\u987B\u7B26\u5408 [{value:v1,content:c1},{value:v2,content:c2}...\u7ED3\u6784]\uFF0C\u5F53\u524D\u4F20\u5165\u3010'.concat( JSON.stringify(codeMap), '\u3011\u8BF7\u68C0\u67E5\uFF01' ) ); case 23: colName = columnName.toLowerCase(); // 更新 codeMap _context2.next = 26; return RUI.invoke('setColumnCodeMapSuccess', [ { name: colName, codeMap: codeMap } ]); case 26: //重置当前列的值 resultDs = []; for (i = 0; i < data.length; i++) { resultDs[i] = (0, _objectSpread3.default)( {}, data[i], (0, _defineProperty2.default)({}, colName, '') ); } _context2.next = 30; return RUI.invoke('fillDataSuccess', { data: resultDs }); case 30: case 'end': return _context2.stop(); } } }, setColumnCodeMap); }), getColumnCodeMap: /*#__PURE__*/ _regenerator.default.mark(function getColumnCodeMap(_ref6, RUI) { var payload, _ref7, cols, columnName, gridNamespace, col, stateCodeMap, code, prefix, _codeMap, codeMap; return _regenerator.default.wrap(function getColumnCodeMap$(_context3) { while (1) { switch ((_context3.prev = _context3.next)) { case 0: payload = _ref6.payload; _context3.next = 3; return RUI.getState(); case 3: _ref7 = _context3.sent; cols = _ref7.cols; columnName = payload.columnName; _context3.next = 8; return RUI.getNamespace(); case 8: gridNamespace = _context3.sent; // 校验 columnName 合法性 (0, _utils.checkColumnDefined)(cols, columnName, 'Grid.getColumnCodeMap(columnName)'); (0, _utils.checkCodeColumn)(cols, columnName, 'Grid.getColumnCodeMap(columnName)'); // 取 col col = (0, _utils.getColumn)(cols, columnName); // 取 codeMap (stateCodeMap = col.codeMap), (code = col.code), (prefix = col.prefix); if (!(stateCodeMap == null && code)) { _context3.next = 18; break; } _context3.next = 16; return _code.CodeManager.getCode(gridNamespace, code, prefix); case 16: _codeMap = _context3.sent; return _context3.abrupt('return', _codeMap); case 18: // 取 codeMap codeMap = col.codeMap; // deepClone return _context3.abrupt('return', _lodash.default.cloneDeep(codeMap)); case 20: case 'end': return _context3.stop(); } } }, getColumnCodeMap); }), updateColumnsCodeMap: /*#__PURE__*/ _regenerator.default.mark(function updateColumnsCodeMap(_ref8, RUI) { var payload, namespace, promiseKey, codeInfoArray, codeMapResult; return _regenerator.default.wrap(function updateColumnsCodeMap$(_context4) { while (1) { switch ((_context4.prev = _context4.next)) { case 0: payload = _ref8.payload; _context4.next = 3; return RUI.getNamespace(); case 3: namespace = _context4.sent; promiseKey = (0, _util.uuid)(); _code.CodeManager.startOne(namespace, promiseKey); codeInfoArray = payload; _context4.next = 9; return _code.CodeManager.getCodeList(namespace, codeInfoArray); case 9: codeMapResult = _context4.sent; _context4.next = 12; return RUI.invoke('updateColumnsCodeMapSuccess', codeMapResult); case 12: //addOne和completeOne的作用,为了防止codeMap _code.CodeManager.completeOne(namespace, promiseKey); case 13: case 'end': return _context4.stop(); } } }, updateColumnsCodeMap); }) }, reducers: { updateColumnsCodeMapSuccess: function updateColumnsCodeMapSuccess(state, _ref9) { var payload = _ref9.payload; var codeMapResult = payload; return (0, _objectSpread3.default)({}, state, { cols: state.cols.map(function(col) { var code = col.code, prefix = col.prefix, excludeCodes = col.excludeCodes; var newCodeMap = []; if (code && codeMapResult[code.toUpperCase()]) { newCodeMap = _code.CodeUtil.fiterCodeMapByPrefix(codeMapResult[code.toUpperCase()], prefix); newCodeMap = _code.CodeUtil.filterCodeMapByExcludeCodes(newCodeMap, excludeCodes); return (0, _objectSpread3.default)({}, col, { codeMap: newCodeMap }); } else { return col; } }) }); }, setColumnCodeMapSuccess: function setColumnCodeMapSuccess(state, _ref10) { var payload = _ref10.payload; var codeMapArr = payload; return (0, _objectSpread3.default)({}, state, { cols: state.cols.map(function(col) { var newMap = codeMapArr.find(function(_ref11) { var name = _ref11.name; return name == col.name; }); if (newMap) { return (0, _objectSpread3.default)({}, col, { codeMap: newMap.codeMap }); } else { return col; } }) }); } } }; exports.default = _default; //@ sourceMappingURL=CodeAPIFactory.js.map