{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/line-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 * as echarts from 'echarts/core'\nimport { LineChart, 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 { merge } from 'lodash-es'\nimport { useEChart } from 'hongluan-hooks'\nimport { useRenderChart, useResponsiveChart } from '@fx-front-framework/hooks'\n\nimport type { LineSeriesDataItem, LineChartDataItem } from './types'\n\necharts.use([\n  LineChart,\n  BarChart,\n  LegendComponent,\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DataZoomComponent,\n  CanvasRenderer,\n])\n\nexport default defineComponent({\n  name: 'VLineChart',\n  props: {\n    // 指标及配置 如: [{ label: \"重大风险\", key: \"level1\", itemStyle: { color: \"#FD6161\" } }]\n    seriesData: {\n      required: true,\n      type: Array as PropType<LineSeriesDataItem[]>,\n    },\n    // y轴数据 如：[{  xValue: \"一月\", level1: 20, level2: 40, level3: 30, level4: 11 }]\n    chartData: {\n      required: true,\n      type: Array as PropType<LineChartDataItem[]>,\n      default: () => [],\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.legend\n    legend: {\n      type: Object,\n      default: () => ({}),\n    },\n    // echarts.tooltip\n    tooltip: {\n      type: Object,\n      default: () => ({}),\n    },\n    showArea: {\n      type: Boolean,\n      default: false,\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        color: '#F1E723',\n      },\n      showSymbol: false,\n      symbolSize: 4,\n      lineStyle: {\n        width: 2,\n      },\n      type: 'line',\n    }\n\n    const getSeriesData = () =>\n      props.seriesData.map(item => ({\n        ...JSON.parse(JSON.stringify(seriesItemStyle)),\n        itemStyle: item?.itemStyle ?? seriesItemStyle.itemStyle,\n        name: item.label,\n        data: props.chartData?.map(ele => ele[item.key]),\n        areaStyle: item.areaStyleColor ? {\n          opacity: 0.8,\n          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n            {\n              offset: 0,\n              color: item.areaStyleColor[0],\n            },\n            {\n              offset: 1,\n              color: item.areaStyleColor[1],\n            },\n          ]),\n        } : undefined,\n      }))\n\n    const renderChart = () => {\n      const option = {\n        grid: props.grid,\n        legend: merge({\n          data: props.seriesData.map(item => item.label),\n          icon: 'rect',\n          itemWidth: 10,\n          itemHeight: 10,\n          itemGap: 20,\n          textStyle: {\n            fontSize: 12,\n            color: '#A1A5B7',\n          },\n        }, props.legend),\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          textStyle: {\n            fontSize: 14,\n          },\n          extraCssText: 'border-radius: 0',\n        }, props.tooltip),\n        xAxis: merge({\n          axisLabel: {\n            fontSize: 12,\n            color: '#6F8EA8',\n            lineHeight: 24,\n            margin: 5,\n          },\n          axisTick: {\n            alignWithLabel: true,\n          },\n          axisLine: {\n            lineStyle: {\n              color: '#34435A',\n            },\n          },\n          type: 'category',\n          data: props.chartData?.map(item => item.xValue),\n        }, props.xAxis),\n        yAxis: merge({\n          splitLine: {\n            lineStyle: {\n              type: 'line',\n              color: '#253346',\n            },\n          },\n          axisLabel: {\n            fontSize: 12,\n            color: '#6F8EA8',\n            lineHeight: 24,\n          },\n          type: 'value',\n          nameTextStyle: {\n            color: '#6F8EA8',\n            align: 'left',\n            padding: [0, 0, 0, -22],\n          },\n        }, props.yAxis),\n        dataZoom: props.dataZoom,\n        series: [\n          ...getSeriesData(),\n          {\n            showBackground: true,\n            backgroundStyle: {\n              color: 'rgba(56,75,103,0.16)',\n            },\n            itemStyle: {\n              color: 'rgba(180, 180, 180, 0)',\n            },\n            barMaxWidth: 24,\n            name: '',\n            data: Array(props.chartData?.length).fill(0),\n            selectedMode: false,\n            type: 'bar',\n            tooltip: {\n              show: false,\n            },\n          },\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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"}