stories/chart.multipie.stories.js (1,012 lines of code) (raw):

import React, { useMemo, useState, useEffect } from 'react'; import { storiesOf } from '@storybook/react'; // import { action } from '@storybook/addon-actions'; // import { linkTo } from '@storybook/addon-links'; // import { withKnobs, number, array } from "@storybook/addon-knobs"; import { WmultiPie, Wnumber, Wcontainer } from '@alicloud/cloud-charts'; const data = { name: 'root', id: 'dashboard-instance-distribution-root', value: 0, children: [ { children: [ { name: 'API 分组', value: 411, id: 'ascm.resourceType.cloudapi_apigroup', }, { name: 'API网关', value: 32, id: 'ascm.resourceType.cloudapi_api', }, { name: 'API应用', value: 9, id: 'ascm.resourceType.cloudapi_app', }, { name: 'API 插件管理', value: 0, id: 'ascm.resourceType.cloudapi_plugin', }, { name: '资源栈', value: 2, id: 'ascm.resourceType.stack', }, { name: '模板管理', value: 0, id: 'ascm.resourceType.template', }, ], name: '开发工具', id: 'DeveloperTools', }, { children: [ { name: '路由表', value: 127, id: 'ascm.resourceType.route_table', }, { name: '专有网络VPC', value: 127, id: 'ascm.resourceType.vpc_instance', }, { name: '交换机', value: 119, id: 'ascm.resourceType.vswitch_instance', }, { name: '自定义DNS主备服务器', value: 0, id: 'ascm.resourceType.vpc_dhcp', }, { name: '网络ACL', value: 0, id: 'ascm.resourceType.network_acl', }, { name: '负载均衡', value: 21, id: 'ascm.resourceType.slb_instance', }, { name: 'SLB访问控制', value: 1, id: 'ascm.resourceType.slb_access_control', }, { name: '服务器证书', value: 1, id: 'ascm.resourceType.server_certificate', }, { name: 'CA证书', value: 0, id: 'ascm.resourceType.ca_certificate', }, { name: '路由器接口', value: 6, id: 'ascm.resourceType.router_interface', }, { name: '边界路由器', value: 3, id: 'ascm.resourceType.virtual_border_router', }, { name: '物理专线', value: 2, id: 'ascm.resourceType.physical_connection', }, { name: 'EIP 实例', value: 3, id: 'ascm.resourceType.eip_instance', }, { name: '租户内网域名', value: 3, id: 'ascm.resourceType.auth_zone', }, { name: '租户默认转发配置', value: 0, id: 'ascm.resourceType.user_default_forward', }, { name: '租户转发域名', value: 0, id: 'ascm.resourceType.forward_zone', }, { name: 'DNS 私有线路', value: 0, id: 'ascm.resourceType.dns_private_line', }, { name: 'NAT网关', value: 0, id: 'ascm.resourceType.nat_gateway', }, { name: 'IPv6网关', value: 0, id: 'ascm.resourceType.ipv6_gateway', }, { name: '高可用虚拟IP', value: 0, id: 'ascm.resourceType.vpc_havip', }, { name: '用户网关', value: 0, id: 'ascm.resourceType.customer_gateway', }, { name: 'SSL 服务端', value: 0, id: 'ascm.resourceType.ssl_vpn_server', }, { name: 'IPsec连接', value: 0, id: 'ascm.resourceType.vpn_connection', }, { name: 'VPN 网关', value: 0, id: 'ascm.resourceType.vpn_gateway', }, { name: 'SSL客户端', value: 0, id: 'ascm.resourceType.ssl_vpn_client_cert', }, ], name: '网络', id: 'Networking', }, { children: [ { name: 'ECS实例', value: 16, id: 'ascm.resourceType.ecs_instance', }, { name: 'ECS 磁盘', value: 16, id: 'ascm.resourceType.disk', }, { name: 'ECS命令执行结果', value: 71, id: 'ascm.resourceType.ecs_order_result', }, { name: 'ECS-安全组', value: 59, id: 'ascm.resourceType.security_group', }, { name: '弹性网卡', value: 16, id: 'ascm.resourceType.network_interface', }, { name: '云盘快照链', value: 2, id: 'ascm.resourceType.snapshot_links', }, { name: 'ECS快照 SNAPSHOT', value: 2, id: 'ascm.resourceType.snapshot', }, { name: '异步任务', value: 2, id: 'ascm.resourceType.ecs_task', }, { name: 'ECS 镜像', value: 2, id: 'ascm.resourceType.image', }, { name: '自动快照策略', value: 0, id: 'ascm.resourceType.auto_snapshot_policy', }, { name: '快照一致性组', value: 0, id: 'ascm.resourceType.ecs_snapshot_group', }, { name: '存储集', value: 0, id: 'ascm.resourceType.storage_set', }, { name: '安全组参数模板', value: 0, id: 'ascm.resourceType.security_group_param_template', }, { name: '部署集', value: 0, id: 'ascm.resourceType.deployment_set', }, { name: 'HPC集群', value: 0, id: 'ascm.resourceType.ecs_hpccluster', }, { name: '文件下发', value: 0, id: 'ascm.resourceType.ecs_file_send', }, { name: 'ECS-密钥对', value: 0, id: 'ascm.resourceType.keypair', }, { name: 'ECS命令', value: 0, id: 'ascm.resourceType.ecs_order', }, { name: 'ECS回收站', value: 0, id: 'ascm.resourceType.ecs_instance_recycle', }, { name: 'ACK集群', value: 2, id: 'ascm.resourceType.cluster', }, { name: 'ESS 定时任务', value: 0, id: 'ascm.resourceType.scheduled_task', }, { name: 'ESS 告警任务', value: 0, id: 'ascm.resourceType.alarm_task', }, { name: 'ESS 伸缩组', value: 0, id: 'ascm.resourceType.scaling_group', }, { name: '专线绑定', value: 0, id: 'ascm.resourceType.dedicated_line_binding', }, { name: '裸机实例', value: 0, id: 'ascm.resourceType.bms_instance', }, { name: '镜像仓库(专有云高级版)', value: 0, id: 'ascm.resourceType.cree_repo', }, { name: '命名空间(专有云高级版)', value: 0, id: 'ascm.resourceType.cree_namespace', }, { name: '专有宿主机 DDH', value: 0, id: 'ascm.resourceType.dedicated_host', }, { name: '专有宿主机集群 DDH', value: 0, id: 'ascm.resourceType.dedicated_host_cluster', }, { name: '镜像仓库', value: 0, id: 'ascm.resourceType.cr_repo', }, { name: '命名空间', value: 0, id: 'ascm.resourceType.cr_namespace', }, ], name: '弹性计算', id: 'ElasticComputing', }, { children: [ { name: '项目', value: 61, id: 'ascm.resourceType.odps_engine', }, { name: '配额组', value: 26, id: 'ascm.resourceType.cu', }, { name: 'DataHub项目', value: 9, id: 'ascm.resourceType.datahub_project', }, { name: 'Hologres实例', value: 7, id: 'ascm.resourceType.hologres_instance', }, { name: 'Elasticsearch on k8s实例', value: 1, id: 'ascm.resourceType.elasticsearchk8s_instance', }, { name: '命名空间', value: 0, id: 'ascm.resourceType.namespace', }, ], name: '大数据', id: 'DTplus', }, { children: [ { name: 'RDS 实例', value: 9, id: 'ascm.resourceType.rds_instance', }, { name: 'RDS回收站', value: 12, id: 'ascm.resourceType.rds_instance_recycle', }, { name: '分析型数据库MySQL集群', value: 1, id: 'ascm.resourceType.adb_cluster', }, { name: '云数据库Redis实例', value: 0, id: 'ascm.resourceType.redis_instance', }, { name: 'PolarDB本地盘实例', value: 0, id: 'ascm.resourceType.polardb_instance', }, { name: 'PolarDB本地盘回收站实例', value: 0, id: 'ascm.resourceType.polardb_instance_recycle', }, { name: 'PolarDB集群', value: 0, id: 'ascm.resourceType.polardb_dbcluster', }, ], name: '数据库', id: 'ApsaraDB', }, { children: [ { name: 'OSS 实例', value: 10, id: 'ascm.resourceType.oss_instance', }, { name: 'Single Tunnel', value: 0, id: 'ascm.resourceType.oss_single_tunnel', }, { name: '日志服务项目', value: 1, id: 'ascm.resourceType.sls_product', }, ], name: '存储', id: 'Storage', }, { children: [ { name: '集群列表', value: 4, id: 'ascm.resourceType.edas_cluster', }, { name: '分布式应用服务 EDAS', value: 3, id: 'ascm.resourceType.edas_application', }, { name: 'Kafka实例', value: 2, id: 'ascm.resourceType.kafka_instance', }, { name: '云原生网关 COP 实例', value: 0, id: 'ascm.resourceType.cop_instance', }, ], name: '中间件', id: 'Middleware', }, { children: [ { name: '密钥', value: 4, id: 'ascm.resourceType.kms_instance', }, ], name: '安全', id: 'Security', }, { children: [ { name: '模型在线服务', value: 1, id: 'ascm.resourceType.service', }, { name: '资源组', value: 0, id: 'ascm.resourceType.pai_resource_group', }, { name: 'AI工作空间', value: 0, id: 'ascm.resourceType.workspace', }, ], name: '人工智能与机器学习', id: 'AIMachineLearning', }, { children: [ { name: '演练计划 / 灾难恢复计划', value: 0, id: 'ascm.resourceType.recoveryPlan', }, { name: '保护组', value: 0, id: 'ascm.resourceType.protectionGroup', }, { name: '演练记录 / 灾难恢复记录', value: 0, id: 'ascm.resourceType.process', }, ], name: '容灾', id: 'DisasterRecovery', }, { children: [ { name: '报警规则', value: 0, id: 'ascm.resourceType.metric_rule', }, { name: 'CMS告警模版', value: 0, id: 'ascm.resourceType.metric_rule_template', }, { name: '应用分组', value: 0, id: 'ascm.resourceType.app_group', }, { name: '迁移源', value: 0, id: 'ascm.resourceType.sourceserver', }, { name: '迁移计划', value: 0, id: 'ascm.resourceType.migration_group', }, { name: '跨平台应用扫描', value: 0, id: 'ascm.resourceType.porting_task', }, { name: 'VMware 数据源', value: 0, id: 'ascm.resourceType.vmware_source', }, { name: '迁云网关', value: 0, id: 'ascm.resourceType.migration_gateway', }, { name: '调研任务', value: 0, id: 'ascm.resourceType.survey_job', }, { name: '调度组', value: 0, id: 'ascm.resourceType.dispatch_group', }, ], name: '迁移与运维管理', id: 'MigrationManagement', }, { children: [ { name: 'IaC任务', value: 0, id: 'ascm.resourceType.iac_task', }, { name: 'IaC模板', value: 0, id: 'ascm.resourceType.iac_module', }, ], name: '应用服务', id: 'ApplicationServices', }, ], }; const stories = storiesOf('WmultiPie', module); stories.add('多重饼图', () => ( <Wcontainer className="demos"> <WmultiPie height="300" config={{ cycle: true, legend: { // "foldable": true, table: { // "statistics": [ // "min" // ] }, unit: '¥', needUnitTransform: true, valueType: 'money', decimal: 3, }, // colors: ["#29236d", "#392b9c", "#5139dd"] }} data={{ name: 'root', id: 'dashboard-instance-distribution-root', value: 0, children: [ { children: [ { name: '网络ACL', value: 7009, id: 'ascm.resourceType.network_acl', }, { name: '专有网络VPC', value: 4086, id: 'ascm.resourceType.vpc_instance', }, { name: '路由表', value: 4085, id: 'ascm.resourceType.route_table', }, { name: '交换机', value: 467, id: 'ascm.resourceType.vswitch_instance', }, { name: '自定义DNS主备服务器', value: 9, id: 'ascm.resourceType.vpc_dhcp', }, { name: '负载均衡', value: 984, id: 'ascm.resourceType.slb_instance', }, { name: 'SLB访问控制', value: 6, id: 'ascm.resourceType.slb_access_control', }, { name: '服务器证书', value: 2, id: 'ascm.resourceType.server_certificate', }, { name: 'CA证书', value: 2, id: 'ascm.resourceType.ca_certificate', }, { name: 'EIP 实例', value: 73, id: 'ascm.resourceType.eip_instance', }, { name: '路由器接口', value: 69, id: 'ascm.resourceType.router_interface', }, { name: '边界路由器', value: 0, id: 'ascm.resourceType.virtual_border_router', }, { name: '物理专线', value: 0, id: 'ascm.resourceType.physical_connection', }, { name: 'IPv6网关', value: 13, id: 'ascm.resourceType.ipv6_gateway', }, { name: '高可用虚拟IP', value: 13, id: 'ascm.resourceType.vpc_havip', }, { name: 'NAT网关', value: 11, id: 'ascm.resourceType.nat_gateway', }, { name: '租户内网域名', value: 6, id: 'ascm.resourceType.auth_zone', }, { name: 'DNS 私有线路', value: 2, id: 'ascm.resourceType.dns_private_line', }, { name: '租户默认转发配置', value: 1, id: 'ascm.resourceType.user_default_forward', }, { name: '租户转发域名', value: 1, id: 'ascm.resourceType.forward_zone', }, { name: '用户网关', value: 4, id: 'ascm.resourceType.customer_gateway', }, { name: 'SSL 服务端', value: 0, id: 'ascm.resourceType.ssl_vpn_server', }, { name: 'IPsec连接', value: 0, id: 'ascm.resourceType.vpn_connection', }, { name: 'VPN 网关', value: 0, id: 'ascm.resourceType.vpn_gateway', }, { name: 'SSL客户端', value: 0, id: 'ascm.resourceType.ssl_vpn_client_cert', }, ], name: '网络', id: 'Networking', }, { children: [ { name: 'ECS实例', value: 413, id: 'ascm.resourceType.ecs_instance', }, { name: 'ECS 磁盘', value: 563, id: 'ascm.resourceType.disk', }, { name: 'ECS快照 SNAPSHOT', value: 501, id: 'ascm.resourceType.snapshot', }, { name: 'ECS命令执行结果', value: 487, id: 'ascm.resourceType.ecs_order_result', }, { name: '云盘快照链', value: 446, id: 'ascm.resourceType.snapshot_links', }, { name: '弹性网卡', value: 423, id: 'ascm.resourceType.network_interface', }, { name: 'ECS-安全组', value: 241, id: 'ascm.resourceType.security_group', }, { name: 'ECS 镜像', value: 116, id: 'ascm.resourceType.image', }, { name: '异步任务', value: 30, id: 'ascm.resourceType.ecs_task', }, { name: '部署集', value: 28, id: 'ascm.resourceType.deployment_set', }, { name: 'ECS-密钥对', value: 11, id: 'ascm.resourceType.keypair', }, { name: '快照一致性组', value: 8, id: 'ascm.resourceType.ecs_snapshot_group', }, { name: 'ECS命令', value: 8, id: 'ascm.resourceType.ecs_order', }, { name: '存储集', value: 5, id: 'ascm.resourceType.storage_set', }, { name: '自动快照策略', value: 1, id: 'ascm.resourceType.auto_snapshot_policy', }, { name: '文件下发', value: 1, id: 'ascm.resourceType.ecs_file_send', }, { name: 'HPC集群', value: 0, id: 'ascm.resourceType.ecs_hpccluster', }, { name: 'ECS回收站', value: 0, id: 'ascm.resourceType.ecs_instance_recycle', }, { name: 'ESS 伸缩组', value: 31, id: 'ascm.resourceType.scaling_group', }, { name: 'ESS 定时任务', value: 2, id: 'ascm.resourceType.scheduled_task', }, { name: 'ESS 告警任务', value: 0, id: 'ascm.resourceType.alarm_task', }, { name: '命名空间(专有云高级版)', value: 2, id: 'ascm.resourceType.cree_namespace', }, { name: '镜像仓库(专有云高级版)', value: 1, id: 'ascm.resourceType.cree_repo', }, { name: '专有宿主机集群 DDH', value: 2, id: 'ascm.resourceType.dedicated_host_cluster', }, { name: '专有宿主机 DDH', value: 1, id: 'ascm.resourceType.dedicated_host', }, { name: '弹性高性能计算 E-HPC 集群', value: 3, id: 'ascm.resourceType.ehpc_cluster', }, { name: '裸金属-智算算力集群', value: 1, id: 'ascm.resourceType.bmscluster', }, { name: 'BMCP-密钥对', value: 1, id: 'ascm.resourceType.bmcp_keypair', }, { name: '性能评测', value: 0, id: 'ascm.resourceType.bmcp_evaluation_task', }, { name: 'BMCP实例', value: 0, id: 'ascm.resourceType.bmcp_instance', }, { name: '容器-智算算力集群', value: 0, id: 'ascm.resourceType.ackcluster', }, { name: '裸金属-超算算力集群', value: 0, id: 'ascm.resourceType.ehpccluster', }, { name: 'BMCP-安全组', value: 0, id: 'ascm.resourceType.bmcp_security_group', }, { name: 'EVPC', value: 0, id: 'ascm.resourceType.evpc_instance', }, { name: 'ACK集群', value: 2, id: 'ascm.resourceType.cluster', }, { name: '专线绑定', value: 0, id: 'ascm.resourceType.dedicated_line_binding', }, { name: '裸机实例', value: 0, id: 'ascm.resourceType.bms_instance', }, { name: '镜像仓库', value: 0, id: 'ascm.resourceType.cr_repo', }, { name: '命名空间', value: 0, id: 'ascm.resourceType.cr_namespace', }, ], name: '弹性计算', id: 'ElasticComputing', }, { children: [ { name: 'IaC模板', value: 423, id: 'ascm.resourceType.iac_module', }, { name: 'IaC任务', value: 330, id: 'ascm.resourceType.iac_task', }, ], name: '应用服务', id: 'ApplicationServices', }, ], }} /> </Wcontainer> )); stories.add('多重环图', () => ( <div style={{ display: 'flex' }}> <div style={{ width: '33.33%' }}> <Wcontainer className="demos"> <WmultiPie height="300" config={{ cycle: true, autoFormat: true, }} data={data} /> </Wcontainer> </div> {/* <div style={{ width: '33.33%' }}> <Wcontainer className="demos"> <WmultiPie height="300" config={{ cycle: true, tooltip: { valueFormatter(n, ...args) { return n; }, }, }} data={multiPieData2} /> </Wcontainer> </div> */} {/* <div style={{ width: '33.33%' }}> <Wcontainer className="demos"> <WmultiPie height="300" config={{ cycle: true }} data={multiPieData3} /> </Wcontainer> </div> */} </div> )); stories.add('多重环图(数据变化)', () => { const [data, setData] = useState(multiPieData); useEffect(() => { setTimeout(() => { setData(multiPieData2); }, 3000); }, []); return ( <div> <WmultiPie height="300" config={{ cycle: true, }} data={data} /> </div> ); });