stories/chart.sankey.stories.js (547 lines of code) (raw):

import React, { useState, useEffect } from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { Wsankey, Wcontainer } from '@alicloud/cloud-charts'; const stories = storiesOf('Wsankey', module); stories.add('基础桑基图', () => ( <Wcontainer className="demos"> <Wsankey height="500" config={{ primaryKey: 'name', edgeStyle: { color: 'source' // source | gradient }, legend: { showData: true } }} data={{ nodes: [ { name: 'a', id: 'a' }, { name: 'b' }, { name: 'a1' }, { name: 'a2' }, { name: 'b1' }, { name: 'c' } ], links: [ { source: 'a', target: 'a1', value: 5 }, { source: 'a', target: 'a2', value: 3 }, { source: 'b', target: 'b1', value: 8 }, { source: 'a', target: 'b1', value: 3 }, { source: 'b1', target: 'a1', value: 1 }, { source: 'b1', target: 'c', value: 2 } ], }} /> </Wcontainer> )); stories.add('动态数据', () => { const oldData = { nodes: [ { name: 'Brazil' }, { name: 'Portugal' }, { name: 'France' }, { name: 'Spain' }, { name: 'England' }, { name: 'Canada' }, { name: 'Mexico' }, { name: 'USA' }, { name: 'Angola' }, { name: 'Senegal' }, { name: 'Morocco' }, { name: 'South Africa' }, { name: 'Mali' }, { name: 'China' }, { name: 'India' }, { name: 'Japan' }, ], links: [ { source: 0, target: 1, value: 5 }, { source: 0, target: 2, value: 1 }, { source: 0, target: 3, value: 1, }, { source: 0, target: 4, value: 1 }, { source: 5, target: 1, value: 1 }, { source: 5, target: 2, value: 5, }, { source: 5, target: 4, value: 1 }, { source: 6, target: 1, value: 1 }, { source: 6, target: 2, value: 1, }, { source: 6, target: 3, value: 5 }, { source: 6, target: 4, value: 1 }, { source: 7, target: 1, value: 1, }, { source: 7, target: 2, value: 1 }, { source: 7, target: 3, value: 1 }, { source: 7, target: 4, value: 5, }, { source: 1, target: 8, value: 2 }, { source: 1, target: 9, value: 1 }, { source: 1, target: 10, value: 1, }, { source: 1, target: 11, value: 3 }, { source: 2, target: 8, value: 1 }, { source: 2, target: 9, value: 3, }, { source: 2, target: 12, value: 3 }, { source: 2, target: 10, value: 3 }, { source: 2, target: 11, value: 1, }, { source: 3, target: 9, value: 1 }, { source: 3, target: 10, value: 3 }, { source: 3, target: 11, value: 1, }, { source: 4, target: 8, value: 1 }, { source: 4, target: 9, value: 1 }, { source: 4, target: 10, value: 2, }, { source: 4, target: 11, value: 7 }, { source: 11, target: 13, value: 5 }, { source: 11, target: 14, value: 1, }, { source: 11, target: 15, value: 3 }, { source: 8, target: 13, value: 5 }, { source: 8, target: 14, value: 1, }, { source: 8, target: 15, value: 3 }, { source: 9, target: 13, value: 5 }, { source: 9, target: 14, value: 1, }, { source: 9, target: 15, value: 3 }, { source: 12, target: 13, value: 5 }, { source: 12, target: 14, value: 1, }, { source: 12, target: 15, value: 3 }, { source: 10, target: 13, value: 5 }, { source: 10, target: 14, value: 1, }, { source: 10, target: 15, value: 3 }, ], }; const [d, setD] = useState(() => oldData); useEffect(() => { const timer = setTimeout(() => { const newData = { nodes: [ { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'tianji.CapabilityService#' }, { name: 'tianji.CapabilityService#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'portal' }, { name: 'app' }, { name: 'app' }, { name: 'tianji_config' }, { name: 'portal' }, { name: 'portal' }, { name: 'portal' }, { name: 'tianji_config' }, { name: 'tianji_config' }, { name: 'app' }, { name: 'portal' }, { name: 'portal' }, { name: 'tianji_config' }, { name: 'portal' }, { name: 'portal' }, { name: 'portal' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '1000' }, { name: '1000' }, { name: '10006' }, { name: '10006' }, { name: '10006' }, { name: '1000' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '1000' }, { name: '789' }, { name: '484' }, { name: '155' }, { name: '206' }, { name: '781' }, { name: '208' }, { name: '149' }, { name: '412' }, { name: '112' }, { name: '712' }, { name: '62' }, { name: '688' }, { name: '433' }, { name: '900' }, { name: '392' }, { name: '99' }, { name: '978' }, { name: '134' }, { name: '250' }, { name: '312' }, { name: '889' }, { name: '835' }, ], links: [ { source: 1, target: 22, value: 1 }, { source: 1, target: 23, value: 1 }, { source: 1, target: 24, value: 1 }, { source: 1, target: 25, value: 1 }, { source: 1, target: 26, value: 1 }, { source: 1, target: 27, value: 1 }, { source: 1, target: 28, value: 1 }, { source: 1, target: 29, value: 1 }, { source: 1, target: 30, value: 1 }, { source: 1, target: 31, value: 1 }, { source: 1, target: 32, value: 1 }, { source: 1, target: 33, value: 1 }, { source: 1, target: 34, value: 1 }, { source: 1, target: 35, value: 1 }, { source: 1, target: 36, value: 1 }, { source: 1, target: 37, value: 1 }, { source: 1, target: 38, value: 1 }, { source: 1, target: 39, value: 1 }, { source: 1, target: 40, value: 1 }, { source: 1, target: 41, value: 1 }, { source: 1, target: 42, value: 1 }, { source: 1, target: 43, value: 1 }, { source: 22, target: 44, value: 1 }, { source: 23, target: 45, value: 1 }, { source: 24, target: 46, value: 1 }, { source: 25, target: 47, value: 1 }, { source: 26, target: 48, value: 1 }, { source: 27, target: 49, value: 1 }, { source: 28, target: 50, value: 1 }, { source: 29, target: 51, value: 1 }, { source: 30, target: 52, value: 1 }, { source: 31, target: 53, value: 1 }, { source: 32, target: 54, value: 1 }, { source: 33, target: 55, value: 1 }, { source: 34, target: 56, value: 1 }, { source: 35, target: 57, value: 1 }, { source: 36, target: 58, value: 1 }, { source: 37, target: 59, value: 1 }, { source: 38, target: 60, value: 1 }, { source: 39, target: 61, value: 1 }, { source: 40, target: 62, value: 1 }, { source: 41, target: 63, value: 1 }, { source: 42, target: 64, value: 1 }, { source: 43, target: 65, value: 1 }, { source: 44, target: 66, value: 1 }, { source: 45, target: 67, value: 1 }, { source: 46, target: 68, value: 1 }, { source: 47, target: 69, value: 1 }, { source: 48, target: 70, value: 1 }, { source: 49, target: 71, value: 1 }, { source: 50, target: 72, value: 1 }, { source: 51, target: 73, value: 1 }, { source: 52, target: 74, value: 1 }, { source: 53, target: 75, value: 1 }, { source: 54, target: 76, value: 1 }, { source: 55, target: 77, value: 1 }, { source: 56, target: 78, value: 1 }, { source: 57, target: 79, value: 1 }, { source: 58, target: 80, value: 1 }, { source: 59, target: 81, value: 1 }, { source: 60, target: 82, value: 1 }, { source: 61, target: 83, value: 1 }, { source: 62, target: 84, value: 1 }, { source: 63, target: 85, value: 1 }, { source: 64, target: 86, value: 1 }, { source: 65, target: 87, value: 1 }, ], }; setD(newData); action('更新数据')(newData); }, 2000); return () => clearTimeout(timer); }, []); return ( <Wcontainer className="demos"> <Wsankey height="500" config={{}} data={d} /> </Wcontainer> ); }); stories.add('桑基图数据测试', () => ( <Wcontainer className="demos"> <Wsankey height="500" config={{}} data={{ nodes: [ { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'tianji.CapabilityService#' }, { name: 'tianji.CapabilityService#' }, { name: 'tianji.ArmoryStateWriteback#' }, { name: 'pangu.PanguSupervisor#' }, { name: 'portal' }, { name: 'app' }, { name: 'app' }, { name: 'tianji_config' }, { name: 'portal' }, { name: 'portal' }, { name: 'portal' }, { name: 'tianji_config' }, { name: 'tianji_config' }, { name: 'app' }, { name: 'portal' }, { name: 'portal' }, { name: 'tianji_config' }, { name: 'portal' }, { name: 'portal' }, { name: 'portal' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: 'app' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '1000' }, { name: '1000' }, { name: '10006' }, { name: '10006' }, { name: '10006' }, { name: '1000' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '10006' }, { name: '1000' }, { name: '10006' }, { name: '1000' }, { name: '1000' }, { name: '789' }, { name: '484' }, { name: '155' }, { name: '206' }, { name: '781' }, { name: '208' }, { name: '149' }, { name: '412' }, { name: '112' }, { name: '712' }, { name: '62' }, { name: '688' }, { name: '433' }, { name: '900' }, { name: '392' }, { name: '99' }, { name: '978' }, { name: '134' }, { name: '250' }, { name: '312' }, { name: '889' }, { name: '835' }, ], links: [ { source: 1, target: 22, value: 1 }, { source: 1, target: 23, value: 1 }, { source: 1, target: 24, value: 1 }, { source: 1, target: 25, value: 1 }, { source: 1, target: 26, value: 1 }, { source: 1, target: 27, value: 1 }, { source: 1, target: 28, value: 1 }, { source: 1, target: 29, value: 1 }, { source: 1, target: 30, value: 1 }, { source: 1, target: 31, value: 1 }, { source: 1, target: 32, value: 1 }, { source: 1, target: 33, value: 1 }, { source: 1, target: 34, value: 1 }, { source: 1, target: 35, value: 1 }, { source: 1, target: 36, value: 1 }, { source: 1, target: 37, value: 1 }, { source: 1, target: 38, value: 1 }, { source: 1, target: 39, value: 1 }, { source: 1, target: 40, value: 1 }, { source: 1, target: 41, value: 1 }, { source: 1, target: 42, value: 1 }, { source: 1, target: 43, value: 1 }, { source: 22, target: 44, value: 1 }, { source: 23, target: 45, value: 1 }, { source: 24, target: 46, value: 1 }, { source: 25, target: 47, value: 1 }, { source: 26, target: 48, value: 1 }, { source: 27, target: 49, value: 1 }, { source: 28, target: 50, value: 1 }, { source: 29, target: 51, value: 1 }, { source: 30, target: 52, value: 1 }, { source: 31, target: 53, value: 1 }, { source: 32, target: 54, value: 1 }, { source: 33, target: 55, value: 1 }, { source: 34, target: 56, value: 1 }, { source: 35, target: 57, value: 1 }, { source: 36, target: 58, value: 1 }, { source: 37, target: 59, value: 1 }, { source: 38, target: 60, value: 1 }, { source: 39, target: 61, value: 1 }, { source: 40, target: 62, value: 1 }, { source: 41, target: 63, value: 1 }, { source: 42, target: 64, value: 1 }, { source: 43, target: 65, value: 1 }, { source: 44, target: 66, value: 1 }, { source: 45, target: 67, value: 1 }, { source: 46, target: 68, value: 1 }, { source: 47, target: 69, value: 1 }, { source: 48, target: 70, value: 1 }, { source: 49, target: 71, value: 1 }, { source: 50, target: 72, value: 1 }, { source: 51, target: 73, value: 1 }, { source: 52, target: 74, value: 1 }, { source: 53, target: 75, value: 1 }, { source: 54, target: 76, value: 1 }, { source: 55, target: 77, value: 1 }, { source: 56, target: 78, value: 1 }, { source: 57, target: 79, value: 1 }, { source: 58, target: 80, value: 1 }, { source: 59, target: 81, value: 1 }, { source: 60, target: 82, value: 1 }, { source: 61, target: 83, value: 1 }, { source: 62, target: 84, value: 1 }, { source: 63, target: 85, value: 1 }, { source: 64, target: 86, value: 1 }, { source: 65, target: 87, value: 1 }, ], }} /> </Wcontainer> ));