{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/stacked-bar-chart/src/index.vue"],"sourcesContent":["<template>\n  <div ref=\"chartContainer\" class=\"echart-container\"></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, PropType } from 'vue'\nimport { merge } from 'lodash-es'\nimport * as echarts from 'echarts/core'\nimport { BarChart } from 'echarts/charts'\nimport {\n  TitleComponent,\n  TooltipComponent,\n  LegendComponent,\n  GridComponent,\n  DataZoomComponent,\n} from 'echarts/components'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { useEChart } from 'hongluan-hooks'\nimport { useRenderChart, useResponsiveChart } from '@fx-front-framework/hooks'\n\nimport type { StackBarLegendItem, StackBarChartDataItem } from './types'\n\necharts.use([\n  BarChart,\n  LegendComponent,\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DataZoomComponent,\n  CanvasRenderer,\n])\n\nexport default defineComponent({\n  name: 'VStackedBarChart',\n  props: {\n    // 指标及配置 如: [{ label: \"重大风险\", key: \"greatRisk\", itemStyle: { color: \"#FD6161\" } }]\n    legend: {\n      required: true,\n      type: Array as PropType<StackBarLegendItem[]>,\n    },\n    // y轴数据 如：[{  xValue: \"一月\", greatRisk: 20, biggerRisk: 40, normalRisk: 30, lowRisk: 11 }]\n    chartData: {\n      required: true,\n      type: Array as PropType<StackBarChartDataItem[]>,\n      deflautl: () => [],\n    },\n    xAxis: {\n      type: Object,\n      default: () => ({}),\n    },\n    yAxis: {\n      type: Object,\n      default: () => ({}),\n    },\n    grid: {\n      type: Object,\n      default: () => ({\n        top: '20',\n        left: '0',\n        right: '0',\n        bottom: '40',\n        containLabel: true,\n      }),\n    },\n    // echarts.tooltip\n    tooltip: {\n      type: Object,\n      default: () => ({}),\n    },\n    // echarts.legend\n    legendReal: {\n      type: Object,\n      default: () => ({}),\n    },\n    // echarts.dataZoom\n    dataZoom: {\n      type: Array,\n      default: () => ([]),\n    },\n  },\n  setup(props) {\n    const { chartContainer, setChartOption } = useEChart()\n    const { updateOptionToResponsive } = useResponsiveChart()\n\n    const seriesItemStyle = {\n      itemStyle: {\n        borderRadius: [2, 2, 0, 0],\n      },\n      barWidth: 22,\n      type: 'bar',\n      stack: 'one',\n      showBackground: true,\n      backgroundStyle: {\n        color: 'rgba(56,75,103, 0.1)',\n      },\n    }\n\n    const getSeriesData = () => props.legend.map(item => ({\n      ...JSON.parse(JSON.stringify(seriesItemStyle)),\n      itemStyle: item?.itemStyle ?? seriesItemStyle.itemStyle,\n      barWidth: item?.barWidth ?? seriesItemStyle.barWidth,\n      name: item.label,\n      data: props.chartData?.map(ele => ele[item.key]),\n    }))\n\n    const renderChart = () => {\n      const option = {\n        grid: props.grid,\n        legend: merge({\n          data: props.legend.map(item => item.label),\n          bottom: '3%',\n          itemWidth: 10,\n          itemHeight: 10,\n          itemGap: 16,\n          textStyle: {\n            fontSize: 12,\n            color: '#A1A5B7',\n          },\n        }, props.legendReal),\n        tooltip: merge({\n          trigger: 'axis',\n          axisPointer: {\n            show: false,\n            lineStyle: {\n              color: 'rgba(255,255,255,0)',\n              type: 'solid',\n            },\n          },\n          extraCssText: 'border-radius: 0',\n          textStyle: {\n            fontSize: 14,\n          },\n        }, props.tooltip),\n        xAxis: merge({\n          axisLabel: {\n            interval: 0,\n            fontSize: 12,\n            color: '#6F8EA8',\n            lineHeight: 20,\n            margin: 5,\n          },\n          axisTick: {\n            alignWithLabel: true,\n          },\n          axisLine: {\n            lineStyle: {\n              color: '#2B394E',\n            },\n          },\n          type: 'category',\n          data: props.chartData?.map(item => item.xValue),\n        }, props.xAxis),\n        yAxis: merge({\n          splitNumber: 3,\n          splitLine: {\n            lineStyle: {\n              type: 'solid',\n              color: '#2B394E',\n            },\n          },\n          axisLabel: {\n            fontSize: 12,\n            color: '#6F8EA8',\n            lineHeight: 20,\n          },\n          type: 'value',\n        }, props.yAxis),\n        dataZoom: props.dataZoom,\n        series: [\n          ...getSeriesData(),\n        ],\n      }\n      updateOptionToResponsive(option)\n      setChartOption(option)\n    }\n\n    useRenderChart(renderChart, props)\n\n    return {\n      chartContainer,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock"],"mappings":"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"}