diff --git a/src/packages/components/Charts/COMBINATIONS/BarLine/config.ts b/src/packages/components/Charts/COMBINATIONS/BarLine/config.ts
new file mode 100644
index 00000000..b62c4bab
--- /dev/null
+++ b/src/packages/components/Charts/COMBINATIONS/BarLine/config.ts
@@ -0,0 +1,76 @@
+import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public'
+import { BarLineConfig } from './index'
+import { CreateComponentType } from '@/packages/index.d'
+import cloneDeep from 'lodash/cloneDeep'
+import dataJson from './data.json'
+
+
+export const includes = ['legend', 'xAxis', 'yAxis', 'grid']
+// 柱状折线组合图 分别定义series
+// 写死name可以定义legend显示的名称
+export const barSeriesItem = {
+    type: 'bar',
+    barWidth: 15,
+    label: {
+        show: true,
+        position: 'top',
+        color: '#fff',
+        fontSize: 12
+    },
+    itemStyle: {
+        color: null,
+        borderRadius: 2
+    }
+}
+
+export const lineSeriesItem = {
+    type: 'line',
+    symbol: "circle",
+    label: {
+        show: true,
+        position: 'top',
+        color: '#fff',
+        fontSize: 12
+    },
+    symbolSize: 5, //设定实心点的大小
+    itemStyle: {
+        color: '#FFE47A',
+        borderWidth: 1
+    },
+    lineStyle: {
+        type: 'solid',
+        width: 3,
+        color: null
+    }
+}
+
+export const option = {
+    tooltip: {
+        show: true,
+        trigger: 'axis',
+        axisPointer: {
+            show: true,
+            type: 'shadow'
+        }
+    },
+    legend: {
+        data:null
+    },
+    xAxis: {
+        show: true,
+        type: 'category'
+    },
+    yAxis: {
+        show: true,
+        type: 'value'
+    },
+    dataset: { ...dataJson },
+    series: [barSeriesItem, lineSeriesItem]
+}
+
+export default class Config extends PublicConfigClass implements CreateComponentType {
+    public key = BarLineConfig.key
+    public chartConfig = cloneDeep(BarLineConfig)
+    // 图表配置项
+    public option = echartOptionProfixHandle(option, includes)
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/COMBINATIONS/BarLine/config.vue b/src/packages/components/Charts/COMBINATIONS/BarLine/config.vue
new file mode 100644
index 00000000..b2f7c476
--- /dev/null
+++ b/src/packages/components/Charts/COMBINATIONS/BarLine/config.vue
@@ -0,0 +1,89 @@
+<template>
+  <!-- Echarts 全局设置 -->
+  <global-setting :optionData="optionData"></global-setting>
+  <CollapseItem v-for="(item, index) in seriesList" :key="index" :name="`${item.type=='bar' ? '柱状图' : '折线图'}`" :expanded="true">
+    <SettingItemBox name="图形" v-if="item.type=='bar'">
+      <SettingItem name="宽度">
+        <n-input-number
+            v-model:value="item.barWidth"
+            :min="1"
+            :max="100"
+            size="small"
+            placeholder="自动计算"
+        ></n-input-number>
+      </SettingItem>
+      <SettingItem name="圆角">
+        <n-input-number v-model:value="item.itemStyle.borderRadius" :min="0" size="small"></n-input-number>
+      </SettingItem>
+    </SettingItemBox>
+    <SettingItemBox name="线条" v-if="item.type=='line'">
+      <SettingItem name="宽度">
+        <n-input-number
+            v-model:value="item.lineStyle.width"
+            :min="1"
+            :max="100"
+            size="small"
+            placeholder="自动计算"
+        ></n-input-number>
+      </SettingItem>
+      <SettingItem name="类型">
+        <n-select v-model:value="item.lineStyle.type" size="small" :options="lineConf.lineStyle.type"></n-select>
+      </SettingItem>
+    </SettingItemBox>
+    <SettingItemBox name="实心点" v-if="item.type=='line'">
+      <SettingItem name="大小">
+        <n-input-number
+            v-model:value="item.symbolSize"
+            :min="1"
+            :max="100"
+            size="small"
+            placeholder="自动计算"
+        ></n-input-number>
+      </SettingItem>
+    </SettingItemBox>
+    <setting-item-box name="标签">
+      <setting-item>
+        <n-space>
+          <n-switch v-model:value="item.label.show" size="small" />
+          <n-text>展示标签</n-text>
+        </n-space>
+      </setting-item>
+      <setting-item name="大小">
+        <n-input-number v-model:value="item.label.fontSize" size="small" :min="1"></n-input-number>
+      </setting-item>
+      <setting-item name="tip颜色">
+        <n-color-picker size="small" :modes="['hex']" v-model:value="item.label.color"></n-color-picker>
+      </setting-item>
+      <setting-item name="位置">
+        <n-select
+            v-model:value="item.label.position"
+            :options="[
+            { label: 'top', value: 'top' },
+            { label: 'left', value: 'left' },
+            { label: 'right', value: 'right' },
+            { label: 'bottom', value: 'bottom' }
+          ]"
+        />
+      </setting-item>
+    </setting-item-box>
+  </CollapseItem>
+</template>
+
+<script setup lang="ts">
+import { PropType, computed } from 'vue'
+import { GlobalSetting, CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
+import { lineConf } from '@/packages/chartConfiguration/echarts'
+import { GlobalThemeJsonType } from '@/settings/chartThemes'
+
+const props = defineProps({
+  optionData: {
+    type: Object as PropType<GlobalThemeJsonType>,
+    required: true
+  }
+})
+
+const seriesList = computed(() => {
+  console.log(props.optionData);
+  return props.optionData.series
+})
+</script>
\ No newline at end of file
diff --git a/src/packages/components/Charts/COMBINATIONS/BarLine/data.json b/src/packages/components/Charts/COMBINATIONS/BarLine/data.json
new file mode 100644
index 00000000..0bd2f36e
--- /dev/null
+++ b/src/packages/components/Charts/COMBINATIONS/BarLine/data.json
@@ -0,0 +1,40 @@
+{
+  "dimensions": ["product", "data1", "data2"],
+  "source": [
+    {
+      "product": "1月",
+      "data1": 104,
+      "data2": 30
+    },
+    {
+      "product": "2月",
+      "data1": 56,
+      "data2": 56
+    },
+    {
+      "product": "3月",
+      "data1": 136,
+      "data2": 36
+    },
+    {
+      "product": "4月",
+      "data1": 86,
+      "data2": 6
+    },
+    {
+      "product": "5月",
+      "data1": 98,
+      "data2": 10
+    },
+    {
+      "product": "6月",
+      "data1": 86,
+      "data2": 70
+    },
+    {
+      "product": "7月",
+      "data1": 77,
+      "data2": 57
+    }
+  ]
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/COMBINATIONS/BarLine/index.ts b/src/packages/components/Charts/COMBINATIONS/BarLine/index.ts
new file mode 100644
index 00000000..1c236ed2
--- /dev/null
+++ b/src/packages/components/Charts/COMBINATIONS/BarLine/index.ts
@@ -0,0 +1,16 @@
+// 公共类型声明
+import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
+// 当前[信息模块]分类声明
+import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
+
+export const BarLineConfig: ConfigType = {
+    key: 'BarLine',
+    chartKey: 'VBarLine',
+    conKey: 'VCBarLine',
+    title: '柱状加折线图',
+    category: ChatCategoryEnum.COMBINATIONS,
+    categoryName: ChatCategoryEnumName.COMBINATION,
+    package: PackagesCategoryEnum.CHARTS,
+    chartFrame: ChartFrameEnum.ECHARTS,
+    image: 'bar_x.png'
+}
\ No newline at end of file
diff --git a/src/packages/components/Charts/COMBINATIONS/BarLine/index.vue b/src/packages/components/Charts/COMBINATIONS/BarLine/index.vue
new file mode 100644
index 00000000..fb239a97
--- /dev/null
+++ b/src/packages/components/Charts/COMBINATIONS/BarLine/index.vue
@@ -0,0 +1,68 @@
+<template>
+  <v-chart ref="vChartRef" :init-options="initOptions" :theme="themeColor" :option="option" :manual-update="isPreview()"
+           autoresize></v-chart>
+</template>
+
+<script setup lang="ts">
+import {ref, computed, watch, PropType, nextTick} from 'vue'
+import VChart from 'vue-echarts'
+import { useCanvasInitOptions } from '@/hooks/useCanvasInitOptions.hook'
+import { use } from 'echarts/core'
+import { CanvasRenderer } from 'echarts/renderers'
+//引入柱状图 折线图
+import { BarChart, LineChart } from 'echarts/charts'
+import config, { includes, barSeriesItem, lineSeriesItem } from './config'
+import { mergeTheme } from '@/packages/public/chart'
+import { useChartDataFetch } from '@/hooks'
+import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
+import { isPreview } from '@/utils'
+import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components'
+
+const props = defineProps({
+  themeSetting: {
+    type: Object,
+    required: true
+  },
+  themeColor: {
+    type: Object,
+    required: true
+  },
+  chartConfig: {
+    type: Object as PropType<config>,
+    required: true
+  }
+})
+
+const initOptions = useCanvasInitOptions(props.chartConfig.option, props.themeSetting)
+
+use([DatasetComponent, CanvasRenderer, BarChart, LineChart, GridComponent, TooltipComponent, LegendComponent])
+
+const replaceMergeArr = ref<string[]>()
+
+const option = computed(() => {
+  return mergeTheme(props.chartConfig.option, props.themeSetting, includes)
+})
+
+watch(
+    () => props.chartConfig.option.dataset,
+    (newData, oldData) => {
+      if (newData.dimensions.length !== oldData.dimensions.length) {
+        const seriesArr = []
+        for (let i = 0; i < newData.dimensions.length - 1; i++) {
+          seriesArr.push(barSeriesItem, lineSeriesItem)
+        }
+        replaceMergeArr.value = ['series']
+        props.chartConfig.option.series = seriesArr
+        nextTick(() => {
+          replaceMergeArr.value = []
+        })
+      }
+    },
+    {
+      deep: false
+    }
+)
+
+
+const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore)
+</script>
\ No newline at end of file
diff --git a/src/packages/components/Charts/COMBINATIONS/index.ts b/src/packages/components/Charts/COMBINATIONS/index.ts
new file mode 100644
index 00000000..3a131a97
--- /dev/null
+++ b/src/packages/components/Charts/COMBINATIONS/index.ts
@@ -0,0 +1,3 @@
+import { BarLineConfig } from './BarLine/index'
+
+export default [BarLineConfig]
\ No newline at end of file
diff --git a/src/packages/components/Charts/index.d.ts b/src/packages/components/Charts/index.d.ts
index c033c296..2f88e1df 100644
--- a/src/packages/components/Charts/index.d.ts
+++ b/src/packages/components/Charts/index.d.ts
@@ -5,6 +5,7 @@ export enum ChatCategoryEnum {
   LINE = 'Lines',
   SCATTER = 'Scatters',
   MAP = 'Maps',
+  COMBINATIONS = 'COMBINATIONS',
   MORE = 'Mores'
 }
 
@@ -14,5 +15,6 @@ export enum ChatCategoryEnumName {
   LINE = '折线图',
   SCATTER = '散点图',
   MAP = '地图',
+  COMBINATION = '组合图',
   MORE = '更多'
 }
diff --git a/src/packages/components/Charts/index.ts b/src/packages/components/Charts/index.ts
index 20ffcc66..63e5d657 100644
--- a/src/packages/components/Charts/index.ts
+++ b/src/packages/components/Charts/index.ts
@@ -3,6 +3,7 @@ import Pies from './Pies'
 import Lines from './Lines'
 import Scatters from './Scatters'
 import Mores from './Mores'
+import COMBINATIONS from "./COMBINATIONS";
 import Maps from './Maps'
 
-export const ChartList = [...Bars, ...Lines, ...Pies, ...Scatters, ...Maps, ...Mores]
+export const ChartList = [...Bars, ...Lines, ...Pies, ...Scatters, ...Maps,...COMBINATIONS, ...Mores]