UNPKG

@cainiaofe/cn-ui-charts

Version:
153 lines 5.85 kB
import { calculateTextExprValue, getRealRequestUrl, getRealResponse, handleResultProcessFunc2, handleSuccessMessage, transRequestConfigToRemote } from "./util"; import { request as requestInstance } from 'cn-request'; import isPlainObject from 'lodash/isPlainObject'; import { AfterRequestSuccess } from "./const"; import { CnMessage, CnDialog } from '@alife/cn-ui'; export function makeRequest(config) { var _config$needSuccessTo = config.needSuccessToast, needSuccessToast = _config$needSuccessTo === void 0 ? true : _config$needSuccessTo; var handleParams = config.handleParams, buttonConfig = config.buttonConfig, record = config.record, state = config.state, recordDataSource = config.recordDataSource, urlParamsDataSource = config.urlParamsDataSource, _onCancel = config.onCancel, extraParamList = config.extraParamList, isDesign = config.isDesign, _config$position = config.position, position = _config$position === void 0 ? '' : _config$position, noNeedHandleResult = config.noNeedHandleResult, _context = config._context, getExtraParam = config.getExtraParam, handleParamsBeforeSend = config.handleParamsBeforeSend; return new Promise(function (resolve, reject) { if (buttonConfig) { var _buttonConfig$options = buttonConfig.options, options = _buttonConfig$options === void 0 ? {} : _buttonConfig$options; var requestConfig = options.requestConfig, needConfirm = options.needConfirm, _options$confirmInfo = options.confirmInfo, confirmInfo = _options$confirmInfo === void 0 ? {} : _options$confirmInfo, afterRequest = options.afterRequest; var sendRequest = function sendRequest() { var realUrl = getRealRequestUrl({ requestConfig: requestConfig, state: state, extraParam: getExtraParam === null || getExtraParam === void 0 ? void 0 : getExtraParam() }); if (realUrl) { requestInstance(transRequestConfigToRemote({ requestConfig: requestConfig, handleParams: handleParams, state: state, urlParamsDataSource: urlParamsDataSource, recordDataSource: recordDataSource, isDesign: isDesign, extraParamList: extraParamList, getExtraParam: getExtraParam, handleParamsBeforeSend: handleParamsBeforeSend })).then(function (res) { var result = getRealResponse(res); if (!noNeedHandleResult) { result = handleResultProcessFunc2(res, requestConfig, { state: state }); } var _result = result, success = _result.success, errorCode = _result.errorCode, errorMsg = _result.errorMsg; if (success) { if (afterRequest !== null && afterRequest !== void 0 && afterRequest.optType) { var pos = position + AfterRequestSuccess; } resolve(result); if (needSuccessToast) { handleSuccessMessage(result); } } else { reject(result); CnMessage.error(errorMsg || errorCode || (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.url) + " \u8BF7\u6C42\u5F02\u5E38"); } })["catch"](function (err) { reject(err); // const {errorCode, errorMsg } = err || {} // CnMessage.error(errorMsg || errorCode || `${requestConfig?.url} 请求异常`); }); } else { reject(); } }; if (needConfirm) { var title = calculateTextExprValue(confirmInfo.title, { urlParamsDataSource: urlParamsDataSource, recordDataSource: recordDataSource, state: state, extraParamList: extraParamList }); var content = calculateTextExprValue(confirmInfo.content, { urlParamsDataSource: urlParamsDataSource, recordDataSource: recordDataSource, state: state, extraParamList: extraParamList }); CnDialog.confirm({ title: title || '通知', content: content || '', messageProps: { className: 'l2-dialog-message-content' }, onOk: function onOk() { sendRequest(); }, onCancel: function onCancel() { _onCancel && _onCancel(); }, onClose: function onClose() { _onCancel && _onCancel(); } // cancelProps: { // // children: '关闭弹窗', // }, }); } else { sendRequest(); } } }); } export function handleResultProcessFunc(requestConfig) { if (requestConfig) { var resultProcessFunc = requestConfig.resultProcessFunc, serviceType = requestConfig.serviceType, mockData = requestConfig.mockData; if (typeof resultProcessFunc === 'function') { return function (res, state) { var newRes = getRealResponse(res); try { var temp = resultProcessFunc(newRes, state); if (temp && temp.data && temp.success !== undefined) { newRes = temp.data; } else { newRes = temp; } } catch (e) { console.error('请求结果回调执行失败', e); } return newRes; }; } else if (serviceType === 'mock' && isPlainObject(mockData)) { return function () { return mockData === null || mockData === void 0 ? void 0 : mockData.data; }; } else { return function (res) { if (res !== null && res !== void 0 && res.data) { return res.data; } return res; }; } } }