stories/feat.emptydata.stories.js (232 lines of code) (raw):
import React, { useState, useEffect } from 'react';
import { storiesOf } from '@storybook/react';
import {
Wcontainer,
Wline,
Wbar,
Wbox,
Wcandlestick,
Whistogram,
Wlinebar,
Wlinescatter,
Wpie,
Wscatter,
Wradar,
WmultiPie,
Wnightingale,
Wfunnel,
Wheatmap,
Whierarchy,
Wrectangle,
Wsankey,
Wtreemap,
Wplaceholder
} from '@alicloud/cloud-charts';
const stories = storiesOf('emptyData', module);
stories.add('业务图表空数据', () => (
<Wplaceholder empty height={300} />
));
stories.add('线图', () => (
<Wcontainer className="demos">
<Wline height="300" data={[]} />
</Wcontainer>
));
stories.add('柱图', () => (
<Wcontainer className="demos">
<Wbar height="300" data={[]} />
</Wcontainer>
));
stories.add('箱型图', () => (
<Wcontainer className="demos">
<Wbox height="300" data={[]} />
</Wcontainer>
));
stories.add('烛形图', () => (
<Wcontainer className="demos">
<Wcandlestick height="300" data={[]} />
</Wcontainer>
));
stories.add('直方图', () => (
<Wcontainer className="demos">
<Whistogram height="300" data={[]} />
</Wcontainer>
));
stories.add('线柱图', () => (
<Wcontainer className="demos">
<Wlinebar height="300" data={[]} />
</Wcontainer>
));
stories.add('线点图', () => (
<Wcontainer className="demos">
<Wlinescatter height="300" data={[]} />
</Wcontainer>
));
stories.add('散点图', () => (
<Wcontainer className="demos">
<Wscatter height="300" data={[]} />
</Wcontainer>
));
stories.add('雷达图', () => (
<Wcontainer className="demos">
<Wradar height="300" data={[]} />
</Wcontainer>
));
stories.add('饼图', () => (
<Wcontainer className="demos">
<Wpie height="300" data={[]} />
</Wcontainer>
));
stories.add('环图', () => (
<Wcontainer className="demos">
<Wpie height="300" data={[]} config={{ cycle: true }} />
</Wcontainer>
));
stories.add('多重饼图', () => (
<Wcontainer className="demos">
<WmultiPie height="300" data={{}} />
</Wcontainer>
));
stories.add('多重环图', () => (
<Wcontainer className="demos">
<WmultiPie height="300" data={{ name: 'test', children: [] }} config={{ cycle: true }} />
</Wcontainer>
));
stories.add('玫瑰图', () => (
<Wcontainer className="demos">
<Wnightingale height="300" data={[]} />
</Wcontainer>
));
stories.add('玫瑰环图', () => (
<Wcontainer className="demos">
<Wnightingale height="300" data={[]} config={{ cycle: true }} />
</Wcontainer>
));
stories.add('漏斗图', () => (
<Wcontainer className="demos">
<Wfunnel height="300" data={[]} />
</Wcontainer>
));
stories.add('热力图', () => (
<Wcontainer className="demos">
<Wheatmap height="300" data={[]} />
</Wcontainer>
));
stories.add('层次图', () => (
<Wcontainer className="demos">
<Whierarchy height="300" data={{ children: [] }} />
</Wcontainer>
));
stories.add('分箱图', () => (
<Wcontainer className="demos">
<Wrectangle height="300" data={[]} />
</Wcontainer>
));
stories.add('桑基图', () => (
<Wcontainer className="demos">
<Wsankey height="300" data={{ nodes: [] }} />
</Wcontainer>
));
stories.add('树图', () => (
<Wcontainer className="demos">
<Wtreemap height="300" data={{}} />
</Wcontainer>
));
const barData = [
{
name: '柱1',
data: [
['一', 59],
['二', 23],
['三', 19],
['四', 27],
['五', 77],
['六', 100],
['七', 70],
['八', 61],
['九', 15],
],
},
{
name: '柱2',
data: [
['一', 92],
['二', 15],
['三', 4],
['四', 49],
['五', 64],
['六', 76],
['七', 21],
['八', 100],
['九', 71],
],
},
];
stories.add('有数据到无数据(暂不处理)', () => {
const [d, setD] = useState(barData);
useEffect(() => {
const timer = setTimeout(() => {
setD([]);
}, 2000);
return () => clearTimeout(timer);
}, []);
return (
<Wcontainer className="demos">
<Wbar height="300" data={d} />
</Wcontainer>
);
});
stories.add('无数据到有数据(柱图)', () => {
const [d, setD] = useState([]);
useEffect(() => {
const timer = setTimeout(() => {
setD(barData);
}, 2000);
return () => clearTimeout(timer);
}, []);
return (
<Wcontainer className="demos">
<Wbar height="300" data={d} />
</Wcontainer>
);
});
stories.add('数据与尺寸同时变', () => {
const [test, setTest] = useState({ data: [], height: 300 });
useEffect(() => {
const timer = setTimeout(() => {
setTest({
data: barData,
height: 500,
});
}, 2000);
return () => clearTimeout(timer);
}, []);
return (
<Wcontainer className="demos">
<Wbar height={test.height} data={test.data} />
</Wcontainer>
);
});
const funnelData = [
{
name: '流量转化',
data: [
['浏览网站', 50000],
['放入购物车', 35000],
['生成订单', 25000],
['支付订单', 15000],
['完成交易', 8000],
],
},
];
stories.add('无数据到有数据(漏斗图)', () => {
const [d, setD] = useState([]);
useEffect(() => {
const timer = setTimeout(() => {
setD(funnelData);
}, 2000);
return () => clearTimeout(timer);
}, []);
return (
<Wcontainer className="demos">
<Wfunnel height="300" data={d} />
</Wcontainer>
);
});