@cainiaofe/cn-ui-charts
Version:
164 lines (162 loc) • 7.49 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = exports.CnPieChart = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _cnChart = require("../../components/cn-chart");
var _request = require("../../common/util/request");
var _util = require("../../common/util/util");
var _requestError = require("../cn-column-chart/components/request-error");
var _emptyData = require("../cn-column-chart/components/empty-data");
var _useFilterSearchListener = _interopRequireDefault(require("../cn-column-chart/hooks/useFilterSearchListener"));
var _loading = require("../cn-column-chart/components/loading");
var _setterSnippet = require("../../common/manager/setter-snippet");
var _set = _interopRequireDefault(require("lodash/set"));
var _featurePosition = require("../../types/feature-position");
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
var _useStopLoop = _interopRequireDefault(require("../cn-column-chart/hooks/useStopLoop"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var CnPieChart = function CnPieChart(props) {
var _angleField$, _colorField$;
var _ref = props || {},
dataFrom = _ref.dataFrom,
_context = _ref._context,
filterConfig = _ref.filterConfig,
labels = _ref.labels,
chartStyle = _ref.chartStyle;
var _ref2 = dataFrom || {},
requestConfig = _ref2.requestConfig;
var _ref3 = requestConfig || {},
serviceType = _ref3.serviceType,
guid = _ref3.guid,
angleField = _ref3.angleField,
colorField = _ref3.colorField;
var _useState = (0, _react.useState)([]),
listData = _useState[0],
setListData = _useState[1];
var _useState2 = (0, _react.useState)(),
loading = _useState2[0],
setLoading = _useState2[1];
var _useState3 = (0, _react.useState)(),
error = _useState3[0],
setError = _useState3[1];
var realAngleField = angleField === null || angleField === void 0 ? void 0 : (_angleField$ = angleField[0]) === null || _angleField$ === void 0 ? void 0 : _angleField$.fieldName;
var realColorField = colorField === null || colorField === void 0 ? void 0 : (_colorField$ = colorField[0]) === null || _colorField$ === void 0 ? void 0 : _colorField$.fieldName;
var isDesign = (0, _util.isDesignMode)(props);
var _ref4 = filterConfig || {},
_bindFilter = _ref4._bindFilter;
var _ref5 = chartStyle || {},
innerRadius = _ref5.innerRadius,
legend = _ref5.legend;
var sendRequest = function sendRequest(config) {
if (requestConfig && requestConfig.serviceType) {
var realRequestConfig = (0, _util.makeChartRequestConfig)({
requestConfig: requestConfig,
_context: _context,
filterConfig: filterConfig,
isDesign: isDesign
});
var _ref6 = config || {},
needLoading = _ref6.needLoading;
if (needLoading !== false) {
setLoading(true);
}
_request.makeRequest === null || _request.makeRequest === void 0 ? void 0 : (0, _request.makeRequest)(realRequestConfig).then(function (res) {
var data = (0, _util.getRealData)(realRequestConfig, res, _context);
var _ref7 = data || {},
_ref7$value = _ref7.value,
value = _ref7$value === void 0 ? [] : _ref7$value;
setListData(value);
setLoading(false);
setError(undefined);
}, function () {
setLoading(false);
setError('请求失败');
});
}
};
(0, _useFilterSearchListener["default"])({
_bindFilter: _bindFilter,
sendRequest: sendRequest,
_context: _context
});
(0, _useStopLoop["default"])({
_nodeId: props === null || props === void 0 ? void 0 : props._nodeId
});
var realOptions = (0, _extends2["default"])({}, (0, _setterSnippet.getPieCharOptions)(), {
axis: {
color: {
title: "",
labelAutoHide: true
}
},
encode: {
y: realAngleField,
color: realColorField
},
data: listData,
tooltip: {
title: realColorField
}
});
var realLabels = (0, _util.calculateLabels)({
labels: labels,
angleField: realAngleField,
colorField: realColorField
});
if ((0, _util.isArrayNotEmpty)(realLabels)) {
realOptions.labels = realLabels;
}
if (!(0, _util.isEmptyButNotZero)(innerRadius)) {
(0, _set["default"])(realOptions, ['coordinate', 'innerRadius'], innerRadius);
}
if ((0, _isPlainObject["default"])(legend)) {
(0, _set["default"])(realOptions, 'legend.color', legend);
}
(0, _set["default"])(realOptions, 'legend.color.title', false);
var finalOptions = (0, _util.calculateAdvancedConfig)({
props: props,
options: (0, _util.calculateFeature)({
props: props,
options: realOptions,
position: _featurePosition.FeaturePosition.pie,
sendRequest: sendRequest
}),
state: _context === null || _context === void 0 ? void 0 : _context.state
});
if (isDesign && loading === undefined) {
return /*#__PURE__*/_react["default"].createElement(_cnChart.CnChart, (0, _extends2["default"])({}, (0, _util.getChartCommonStyle)(props), finalOptions, {
encode: {
y: 'amount',
color: 'year'
},
data: [{
year: '2022',
amount: 111
}, {
year: '2023',
amount: 222
}]
}));
}
if (error) {
return /*#__PURE__*/_react["default"].createElement(_requestError.RequestError, {
error: error
});
}
console.log(finalOptions, 'finalOptions');
return /*#__PURE__*/_react["default"].createElement(_loading.Loading, {
visible: loading
}, (0, _util.judgeDataEmpty)(finalOptions) ? /*#__PURE__*/_react["default"].createElement(_emptyData.EmptyData, {
emptyImg: "https://img.alicdn.com/imgextra/i2/O1CN01tmqYml1u4itNfAVMw_!!6000000005984-55-tps-500-260.svg"
}) : /*#__PURE__*/_react["default"].createElement(_cnChart.CnChart, (0, _extends2["default"])({}, (0, _util.getChartCommonStyle)(props), finalOptions)));
// return <EmptyData
// emptyImg={"https://img.alicdn.com/imgextra/i2/O1CN01tmqYml1u4itNfAVMw_!!6000000005984-55-tps-500-260.svg"}
// />
};
exports.CnPieChart = CnPieChart;
CnPieChart.displayName = 'CnPieChart';
var _default = CnPieChart;
exports["default"] = _default;