UNPKG

@cainiaofe/cn-ui-charts

Version:
102 lines 3.75 kB
import _extends from "@babel/runtime/helpers/extends"; import React, { useState } from 'react'; import { CnChart as UICnChart } from "../../components/cn-chart"; import { makeRequest } from "../../common/util/request"; import { calculateAdvancedConfig, calculateFeature, getChartCommonStyle, getRealData, isDesignMode, judgeDataEmpty, makeChartRequestConfig } from "../../common/util/util"; import { RequestError } from "../cn-column-chart/components/request-error"; import { EmptyData } from "../cn-column-chart/components/empty-data"; import { Loading } from "../cn-column-chart/components/loading"; import useFilterSearchListener from "../cn-column-chart/hooks/useFilterSearchListener"; import { getColumnCharOptions } from "../../common/manager/setter-snippet"; import { FeaturePosition } from "../../types/feature-position"; var CnChart = function CnChart(props) { var _ref = props || {}, dataFrom = _ref.dataFrom, _context = _ref._context, filterConfig = _ref.filterConfig; var _ref2 = dataFrom || {}, requestConfig = _ref2.requestConfig; var _ref3 = requestConfig || {}, serviceType = _ref3.serviceType, guid = _ref3.guid; var _useState = useState([]), listData = _useState[0], setListData = _useState[1]; var _useState2 = useState(), loading = _useState2[0], setLoading = _useState2[1]; var _useState3 = useState(), error = _useState3[0], setError = _useState3[1]; var isDesign = isDesignMode(props); var _ref4 = filterConfig || {}, _bindFilter = _ref4._bindFilter; var sendRequest = function sendRequest() { if (requestConfig && requestConfig.serviceType) { var realRequestConfig = makeChartRequestConfig({ requestConfig: requestConfig, _context: _context, filterConfig: filterConfig, isDesign: isDesign }); setLoading(true); makeRequest === null || makeRequest === void 0 ? void 0 : makeRequest(realRequestConfig).then(function (res) { var data = getRealData(realRequestConfig, res, _context); var _ref5 = data || {}, _ref5$value = _ref5.value, value = _ref5$value === void 0 ? [] : _ref5$value; setListData(value); setLoading(false); setError(undefined); }, function () { setLoading(false); setError('请求失败'); }); } }; useFilterSearchListener({ _bindFilter: _bindFilter, sendRequest: sendRequest, _context: _context }); var realOptions = _extends({}, getColumnCharOptions(), { data: listData }); var finalOptions = calculateAdvancedConfig({ props: props, options: calculateFeature({ props: props, options: realOptions, position: FeaturePosition.column }), state: _context === null || _context === void 0 ? void 0 : _context.state }); if (isDesign && loading === undefined) { return /*#__PURE__*/React.createElement(UICnChart, _extends({}, getChartCommonStyle(props), finalOptions, { encode: { x: 'year', y: 'amount' }, data: [{ year: '2022', amount: 111 }, { year: '2023', amount: 222 }] })); } if (error) { return /*#__PURE__*/React.createElement(RequestError, { error: error }); } return /*#__PURE__*/React.createElement(Loading, { visible: loading }, judgeDataEmpty(finalOptions) ? /*#__PURE__*/React.createElement(EmptyData, { emptyImg: 'https://img.alicdn.com/imgextra/i1/O1CN01h2uPcg1Untx4htgLQ_!!6000000002563-55-tps-500-260.svg' }) : /*#__PURE__*/React.createElement(UICnChart, _extends({}, getChartCommonStyle(props), finalOptions))); }; CnChart.displayName = 'CnChart'; export default CnChart; export { CnChart };