choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
170 lines (131 loc) • 5.46 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.LookupCodeStore = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _tslib = require("tslib");
var _mobx = require("mobx");
var _isString = _interopRequireDefault(require("lodash/isString"));
var _configure = require("../../../lib/configure");
var _axios = _interopRequireDefault(require("../axios"));
var _LovCodeStore = _interopRequireDefault(require("./LovCodeStore"));
var _enum = require("../data-set/enum");
var _utils = require("../data-set/utils");
var _utils2 = require("./utils");
var _cacheAdapterEnhancer = _interopRequireDefault(require("../axios/cacheAdapterEnhancer"));
var _throttleAdapterEnhancer = _interopRequireDefault(require("../axios/throttleAdapterEnhancer"));
var _PromiseMerger = _interopRequireDefault(require("../_util/PromiseMerger"));
var adapter = (0, _throttleAdapterEnhancer["default"])((0, _cacheAdapterEnhancer["default"])(_axios["default"].defaults.adapter));
var noCacheAdapter = (0, _throttleAdapterEnhancer["default"])(_axios["default"].defaults.adapter);
var LookupCodeStore =
/*#__PURE__*/
function () {
function LookupCodeStore() {
var _this = this;
(0, _classCallCheck2["default"])(this, LookupCodeStore);
this.batchCallback = function (codes, args) {
if (args) {
var _args = (0, _slicedToArray2["default"])(args, 1),
lookupBatchAxiosConfig = _args[0];
if (lookupBatchAxiosConfig) {
return _this.axios(lookupBatchAxiosConfig(codes));
}
}
return Promise.resolve({});
};
this.merger = new _PromiseMerger["default"](this.batchCallback, (0, _configure.getConfig)('lookupCache'));
}
(0, _createClass2["default"])(LookupCodeStore, [{
key: "fetchLookupData",
value: function fetchLookupData(key) {
var axiosConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var config = {};
if ((0, _isString["default"])(key)) {
config = (0, _objectSpread2["default"])({}, axiosConfig, {
url: key,
method: axiosConfig.method || (0, _configure.getConfig)('lookupAxiosMethod') || 'post'
});
} else {
config = key;
}
if (config.url) {
// SSR do not fetch the lookup
if (typeof window !== 'undefined') {
return this.axios(config).then(function (result) {
if (result) {
return (0, _utils.generateResponseData)(result, (0, _configure.getConfig)('dataKey'));
}
});
}
}
return Promise.resolve(undefined);
}
}, {
key: "fetchLookupDataInBatch",
value: function fetchLookupDataInBatch(code, lookupBatchAxiosConfig) {
var getBatchKey = function getBatchKey(defaultKey) {
var _lookupBatchAxiosConf = lookupBatchAxiosConfig([code]),
url = _lookupBatchAxiosConf.url;
return url ? url.split('?')[0] : defaultKey;
};
return this.merger.add(code, getBatchKey, [lookupBatchAxiosConfig]);
}
}, {
key: "getAxiosConfig",
value: function getAxiosConfig(field, noCache) {
var lookupAxiosConfig = field.get('lookupAxiosConfig') || (0, _configure.getConfig)('lookupAxiosConfig');
var record = field.record;
var params = (0, _utils2.getLovPara)(field, record);
var config = (0, _utils2.processAxiosConfig)(lookupAxiosConfig, {
dataSet: field.dataSet,
record: record,
params: params,
lookupCode: field.get('lookupCode')
});
return (0, _objectSpread2["default"])({}, config, {
adapter: config.adapter || (noCache ? noCacheAdapter : adapter),
url: config.url || this.getUrl(field),
method: config.method || (0, _configure.getConfig)('lookupAxiosMethod') || 'post',
params: config.params || params
});
}
}, {
key: "getUrl",
value: function getUrl(field) {
var type = field.get('type');
var lovCode = field.get('lovCode');
var lookupUrl = field.get('lookupUrl');
var lookupCode = field.get('lookupCode');
if (typeof lookupUrl === 'function' && lookupCode) {
return lookupUrl(lookupCode);
}
if ((0, _isString["default"])(lookupUrl)) {
return lookupUrl;
}
if (lovCode && type !== _enum.FieldType.object) {
return _LovCodeStore["default"].getQueryAxiosConfig(lovCode, field)({
dataSet: field.dataSet
}).url;
}
} // @deprecate
}, {
key: "clearCache",
value: function clearCache() {}
}, {
key: "axios",
get: function get() {
return (0, _configure.getConfig)('axios') || _axios["default"];
}
}]);
return LookupCodeStore;
}();
exports.LookupCodeStore = LookupCodeStore;
(0, _tslib.__decorate)([_mobx.action], LookupCodeStore.prototype, "clearCache", null);
var _default = new LookupCodeStore();
exports["default"] = _default;
//# sourceMappingURL=LookupCodeStore.js.map