dareway-rui
Version:
463 lines (384 loc) • 19.9 kB
JavaScript
'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