diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue new file mode 100644 index 0000000..18ed3ed --- /dev/null +++ b/src/components/Echart/LineChart.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue new file mode 100644 index 0000000..18ed3ed --- /dev/null +++ b/src/components/Echart/LineChart.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/components/Echart/echart-interface.ts b/src/components/Echart/echart-interface.ts new file mode 100644 index 0000000..3b8fa41 --- /dev/null +++ b/src/components/Echart/echart-interface.ts @@ -0,0 +1,169 @@ +import type { LinearGradientObject } from 'echarts' +export interface lineDataI { + name: string // 轴线名称 + data: string[] | number[] // 数值 + color?: string // 颜色 +} +// 标题配置 +export interface titleOption { + title?: { + show?: boolean // 是否显示标题 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + text: string // 标题 + } +} + +// 网格配置 +export interface gridOption { + grid?: { + show?: boolean // 是否显示直角坐标系网格 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + containLabel?: boolean // grid区域是否包含坐标轴的刻度标签 + } +} +// 图例 +export interface legendOption { + legend?: { + show?: boolean + orient?: string // 图例方向 + align?: string // 图例标记和文本的对齐,默认自动 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + padding?: number | [number, number] | [number, number, number, number] // 内边距 + data?: string[] + } +} +// 提示框 +export interface tooltipOption { + tooltip: { + show?: boolean + trigger: 'axis' | 'item' | 'none' // 触发类型 + textStyle: { // 浮层的文本样式 + color?: string // 文字颜色,默认白色 + fontSize?: number // 文字大小, 默认14 + } + axisPointer: { // 坐标轴指示器 + type: 'cross' | 'line' | 'shadow' | 'none' + label: { + show?: boolean // axisPointer为cross时默认显示,其他默认不显示 + fontSize?: number // 文字大小,默认14 + } + } + valueFormatter: (value: number | string) => string // 数值显示部分格式化回调函数 + } +} + +// x轴 +export interface xAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle?: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +// Y轴 +export interface yAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show?: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +export interface lineSeriesOption { + name?: string // 系列名称 + type: 'line' + symbol?: string | Function // 标记的图形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' + smooth?: boolean // 曲线平滑设置, 默认false + itemStyle?: { // 折线拐点样式 + color?: string // 图形的颜色 + borderColor?: string // 图形的描边颜色 + borderWidth?: number // 描边线宽。默认0,无描边。 + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + lineStyle?: { // 线条样式 + width: number // 线条宽度,默认2 + color?: string // 线条颜色, 默认#000 + type?: 'solid' | 'dashed' | 'dotted' // 默认solid + } + areaStyle?: { // 区域填充样式 + color?: string | LinearGradientObject // 填充颜色 + } + data: number[] | string[] +} + +// 折线图配置项 +export interface lineOption extends titleOption, gridOption, legendOption, tooltipOption { + xAxis: xAxisOption | xAxisOption[] + yAxis: yAxisOption | yAxisOption[] + series: lineSeriesOption[] +} + diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue new file mode 100644 index 0000000..18ed3ed --- /dev/null +++ b/src/components/Echart/LineChart.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/components/Echart/echart-interface.ts b/src/components/Echart/echart-interface.ts new file mode 100644 index 0000000..3b8fa41 --- /dev/null +++ b/src/components/Echart/echart-interface.ts @@ -0,0 +1,169 @@ +import type { LinearGradientObject } from 'echarts' +export interface lineDataI { + name: string // 轴线名称 + data: string[] | number[] // 数值 + color?: string // 颜色 +} +// 标题配置 +export interface titleOption { + title?: { + show?: boolean // 是否显示标题 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + text: string // 标题 + } +} + +// 网格配置 +export interface gridOption { + grid?: { + show?: boolean // 是否显示直角坐标系网格 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + containLabel?: boolean // grid区域是否包含坐标轴的刻度标签 + } +} +// 图例 +export interface legendOption { + legend?: { + show?: boolean + orient?: string // 图例方向 + align?: string // 图例标记和文本的对齐,默认自动 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + padding?: number | [number, number] | [number, number, number, number] // 内边距 + data?: string[] + } +} +// 提示框 +export interface tooltipOption { + tooltip: { + show?: boolean + trigger: 'axis' | 'item' | 'none' // 触发类型 + textStyle: { // 浮层的文本样式 + color?: string // 文字颜色,默认白色 + fontSize?: number // 文字大小, 默认14 + } + axisPointer: { // 坐标轴指示器 + type: 'cross' | 'line' | 'shadow' | 'none' + label: { + show?: boolean // axisPointer为cross时默认显示,其他默认不显示 + fontSize?: number // 文字大小,默认14 + } + } + valueFormatter: (value: number | string) => string // 数值显示部分格式化回调函数 + } +} + +// x轴 +export interface xAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle?: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +// Y轴 +export interface yAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show?: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +export interface lineSeriesOption { + name?: string // 系列名称 + type: 'line' + symbol?: string | Function // 标记的图形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' + smooth?: boolean // 曲线平滑设置, 默认false + itemStyle?: { // 折线拐点样式 + color?: string // 图形的颜色 + borderColor?: string // 图形的描边颜色 + borderWidth?: number // 描边线宽。默认0,无描边。 + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + lineStyle?: { // 线条样式 + width: number // 线条宽度,默认2 + color?: string // 线条颜色, 默认#000 + type?: 'solid' | 'dashed' | 'dotted' // 默认solid + } + areaStyle?: { // 区域填充样式 + color?: string | LinearGradientObject // 填充颜色 + } + data: number[] | string[] +} + +// 折线图配置项 +export interface lineOption extends titleOption, gridOption, legendOption, tooltipOption { + xAxis: xAxisOption | xAxisOption[] + yAxis: yAxisOption | yAxisOption[] + series: lineSeriesOption[] +} + diff --git a/src/components/Echart/index.vue b/src/components/Echart/index.vue deleted file mode 100644 index 9efe188..0000000 --- a/src/components/Echart/index.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue new file mode 100644 index 0000000..18ed3ed --- /dev/null +++ b/src/components/Echart/LineChart.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/components/Echart/echart-interface.ts b/src/components/Echart/echart-interface.ts new file mode 100644 index 0000000..3b8fa41 --- /dev/null +++ b/src/components/Echart/echart-interface.ts @@ -0,0 +1,169 @@ +import type { LinearGradientObject } from 'echarts' +export interface lineDataI { + name: string // 轴线名称 + data: string[] | number[] // 数值 + color?: string // 颜色 +} +// 标题配置 +export interface titleOption { + title?: { + show?: boolean // 是否显示标题 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + text: string // 标题 + } +} + +// 网格配置 +export interface gridOption { + grid?: { + show?: boolean // 是否显示直角坐标系网格 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + containLabel?: boolean // grid区域是否包含坐标轴的刻度标签 + } +} +// 图例 +export interface legendOption { + legend?: { + show?: boolean + orient?: string // 图例方向 + align?: string // 图例标记和文本的对齐,默认自动 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + padding?: number | [number, number] | [number, number, number, number] // 内边距 + data?: string[] + } +} +// 提示框 +export interface tooltipOption { + tooltip: { + show?: boolean + trigger: 'axis' | 'item' | 'none' // 触发类型 + textStyle: { // 浮层的文本样式 + color?: string // 文字颜色,默认白色 + fontSize?: number // 文字大小, 默认14 + } + axisPointer: { // 坐标轴指示器 + type: 'cross' | 'line' | 'shadow' | 'none' + label: { + show?: boolean // axisPointer为cross时默认显示,其他默认不显示 + fontSize?: number // 文字大小,默认14 + } + } + valueFormatter: (value: number | string) => string // 数值显示部分格式化回调函数 + } +} + +// x轴 +export interface xAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle?: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +// Y轴 +export interface yAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show?: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +export interface lineSeriesOption { + name?: string // 系列名称 + type: 'line' + symbol?: string | Function // 标记的图形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' + smooth?: boolean // 曲线平滑设置, 默认false + itemStyle?: { // 折线拐点样式 + color?: string // 图形的颜色 + borderColor?: string // 图形的描边颜色 + borderWidth?: number // 描边线宽。默认0,无描边。 + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + lineStyle?: { // 线条样式 + width: number // 线条宽度,默认2 + color?: string // 线条颜色, 默认#000 + type?: 'solid' | 'dashed' | 'dotted' // 默认solid + } + areaStyle?: { // 区域填充样式 + color?: string | LinearGradientObject // 填充颜色 + } + data: number[] | string[] +} + +// 折线图配置项 +export interface lineOption extends titleOption, gridOption, legendOption, tooltipOption { + xAxis: xAxisOption | xAxisOption[] + yAxis: yAxisOption | yAxisOption[] + series: lineSeriesOption[] +} + diff --git a/src/components/Echart/index.vue b/src/components/Echart/index.vue deleted file mode 100644 index 9efe188..0000000 --- a/src/components/Echart/index.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/components/Echart/theme.json b/src/components/Echart/theme.json index 58a1f46..9488751 100644 --- a/src/components/Echart/theme.json +++ b/src/components/Echart/theme.json @@ -255,7 +255,7 @@ "axisLabel": { "show": true, "textStyle": { - "color": "#fff" + "color": "#222" } }, "splitLine": { @@ -292,7 +292,7 @@ "axisLabel": { "show": true, "textStyle": { - "color": "#fff" + "color": "#333" } }, "splitLine": { diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue new file mode 100644 index 0000000..18ed3ed --- /dev/null +++ b/src/components/Echart/LineChart.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/src/components/Echart/echart-interface.ts b/src/components/Echart/echart-interface.ts new file mode 100644 index 0000000..3b8fa41 --- /dev/null +++ b/src/components/Echart/echart-interface.ts @@ -0,0 +1,169 @@ +import type { LinearGradientObject } from 'echarts' +export interface lineDataI { + name: string // 轴线名称 + data: string[] | number[] // 数值 + color?: string // 颜色 +} +// 标题配置 +export interface titleOption { + title?: { + show?: boolean // 是否显示标题 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + text: string // 标题 + } +} + +// 网格配置 +export interface gridOption { + grid?: { + show?: boolean // 是否显示直角坐标系网格 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + containLabel?: boolean // grid区域是否包含坐标轴的刻度标签 + } +} +// 图例 +export interface legendOption { + legend?: { + show?: boolean + orient?: string // 图例方向 + align?: string // 图例标记和文本的对齐,默认自动 + left?: number | string // 上边距 + right?: number | string // 右边距 + bottom?: number | string // 下边距 + top?: number | string // 顶部边距 + padding?: number | [number, number] | [number, number, number, number] // 内边距 + data?: string[] + } +} +// 提示框 +export interface tooltipOption { + tooltip: { + show?: boolean + trigger: 'axis' | 'item' | 'none' // 触发类型 + textStyle: { // 浮层的文本样式 + color?: string // 文字颜色,默认白色 + fontSize?: number // 文字大小, 默认14 + } + axisPointer: { // 坐标轴指示器 + type: 'cross' | 'line' | 'shadow' | 'none' + label: { + show?: boolean // axisPointer为cross时默认显示,其他默认不显示 + fontSize?: number // 文字大小,默认14 + } + } + valueFormatter: (value: number | string) => string // 数值显示部分格式化回调函数 + } +} + +// x轴 +export interface xAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle?: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +// Y轴 +export interface yAxisOption { + type: string // 'category' | 'value' | 'time' | 'log' + name?: string + boundaryGap?: boolean | string[] + data?: Array // 类目数据,在类目轴(type=category)中有效 + axisLine?: { // 坐标轴线 + show?: boolean + lineStyle?: { + color?: string // 轴线的颜色 + width?: number // 轴线宽度,默认1 + } + } + nameTextStyle?: { // 坐标轴名称的文字样式。 + color?: string + fontSize?: number // 默认12 + verticalAlign: 'auto' | 'top' | 'middle' | 'bottom' // 文字垂直对齐方式 + } + axisLabel?: { // 坐标轴刻度标签 + color?: string // X轴名称颜色 + fontSize?: number // + } + splitLine: { // 坐标轴在 grid 区域中的分隔线 + show?: boolean + interval?: string | number | ((index: number, value: string) => boolean) // 坐标轴分隔线的显示间隔 + lineStyle: { + color?: string | Array + type?: string // 'dashed' | 'solid' | 'dotted' + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + opacity?: number // 透明度,默认1 + } +} + +export interface lineSeriesOption { + name?: string // 系列名称 + type: 'line' + symbol?: string | Function // 标记的图形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' + smooth?: boolean // 曲线平滑设置, 默认false + itemStyle?: { // 折线拐点样式 + color?: string // 图形的颜色 + borderColor?: string // 图形的描边颜色 + borderWidth?: number // 描边线宽。默认0,无描边。 + shadowBlur?: number // 图形阴影的模糊大小 + shadowColor?: string // 阴影颜色 + shadowOffsetX?: number // 阴影水平方向的偏移距离 + shadowOffsetY?: number // 阴影垂直方向的偏移距离 + } + lineStyle?: { // 线条样式 + width: number // 线条宽度,默认2 + color?: string // 线条颜色, 默认#000 + type?: 'solid' | 'dashed' | 'dotted' // 默认solid + } + areaStyle?: { // 区域填充样式 + color?: string | LinearGradientObject // 填充颜色 + } + data: number[] | string[] +} + +// 折线图配置项 +export interface lineOption extends titleOption, gridOption, legendOption, tooltipOption { + xAxis: xAxisOption | xAxisOption[] + yAxis: yAxisOption | yAxisOption[] + series: lineSeriesOption[] +} + diff --git a/src/components/Echart/index.vue b/src/components/Echart/index.vue deleted file mode 100644 index 9efe188..0000000 --- a/src/components/Echart/index.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/components/Echart/theme.json b/src/components/Echart/theme.json index 58a1f46..9488751 100644 --- a/src/components/Echart/theme.json +++ b/src/components/Echart/theme.json @@ -255,7 +255,7 @@ "axisLabel": { "show": true, "textStyle": { - "color": "#fff" + "color": "#222" } }, "splitLine": { @@ -292,7 +292,7 @@ "axisLabel": { "show": true, "textStyle": { - "color": "#fff" + "color": "#333" } }, "splitLine": { diff --git a/src/components/Echart/utils.ts b/src/components/Echart/utils.ts new file mode 100644 index 0000000..0acd088 --- /dev/null +++ b/src/components/Echart/utils.ts @@ -0,0 +1,38 @@ +/** + * 格式化颜色 + * @param value 颜色值 #aaa格式或rgb格式 + * @returns 颜色值 + */ +export function formatColor(value: string): string { + const rgbReg = /((2[0-4]\\d|25[0-5]|[01]?[0-9]?[0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[0-1]?[0-9]?[0-9])$/ + if (value.startsWith('#')) { // #号开头的颜色值 + return value + } + else if (rgbReg.test(value)) { // 数字开头的颜色值 + return `rgb(${value})` + } + else { + return '' + } +} + +/** + * 获取某颜色的透明度颜色 + * @param color 颜色 + * @param alpha 透明度 + * @returns 透明度颜色 + */ +export function getAlphaColor(color: string, alpha: number): string { + const rgbReg = /((2[0-4]\\d|25[0-5]|[01]?[0-9]?[0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[0-1]?[0-9]?[0-9])$/ + if (color.startsWith('#')) { // #号开头的颜色值 + let alpha2 = Math.floor(alpha * 255) + alpha2 = alpha > 255 ? 255 : alpha2 + return color + alpha2.toString(16) // 转换为16进制 + } + else if (rgbReg.test(color)) { // 数字开头的颜色值 + return `rgba(${color}, ${alpha})` + } + else { + return '' + } +}