Browse Source

echarts组件-配置深拷贝

zhongxiaoyu 1 year ago
parent
commit
7afd88aac0

+ 4 - 2
src/layout/components/Echarts/commonChartsBar.vue

@@ -53,7 +53,8 @@ export default {
     option: {
       handler (obj) {
         // 初始数据和额外的配置数据耦合
-        const objData = _.merge(this.options, obj)
+        const objData = _.cloneDeep(this.options)
+        _.merge(objData, obj)
         // 生成柱状图
         this.myChart.setOption(objData)
       },
@@ -78,7 +79,8 @@ export default {
      */
     initEcharts () {
       // 初始数据和额外的配置数据耦合
-      const objData = _.merge(this.options, this.option)
+      const objData = _.cloneDeep(this.options)
+      _.merge(objData, this.option)
       // dom
       const chartDom = document.getElementById(this.id)
       // 初始化

+ 4 - 2
src/layout/components/Echarts/commonChartsChinaMap.vue

@@ -39,7 +39,8 @@ export default {
     option: {
       handler (obj) {
         // 初始数据和额外的配置数据耦合
-        const objData = _.merge(this.options, obj)
+        const objData = _.cloneDeep(this.options)
+        _.merge(objData, obj)
         // 生成柱状图
         this.myChart.setOption(objData)
       },
@@ -48,7 +49,8 @@ export default {
   },
   mounted () {
     // 初始数据和额外的配置数据耦合
-    const objData = _.merge(this.options, this.option)
+    const objData = _.cloneDeep(this.options)
+    _.merge(objData, this.option)
     // 饼图dom
     const chartDom = document.getElementById(this.id)
     // 饼图初始化

+ 4 - 2
src/layout/components/Echarts/commonChartsLine.vue

@@ -53,7 +53,8 @@ export default {
     option: {
       handler (obj) {
         // 初始数据和额外的配置数据耦合
-        const objData = _.merge(this.options, obj)
+        const objData = _.cloneDeep(this.options)
+        _.merge(objData, obj)
         // 生成柱状图
         this.myChart.setOption(objData)
       },
@@ -78,7 +79,8 @@ export default {
      */
     initEcharts () {
       // 初始数据和额外的配置数据耦合
-      const objData = _.merge(this.options, this.option)
+      const objData = _.cloneDeep(this.options)
+      _.merge(objData, this.option)
       // dom
       const chartDom = document.getElementById(this.id)
       // 初始化

+ 4 - 2
src/layout/components/Echarts/commonChartsPie.vue

@@ -53,7 +53,8 @@ export default {
     option: {
       handler (obj) {
         // 初始数据和额外的配置数据耦合
-        const objData = _.merge(this.options, obj)
+        const objData = _.cloneDeep(this.options)
+        _.merge(objData, obj)
         // 生成柱状图
         this.myChart.setOption(objData)
       },
@@ -78,7 +79,8 @@ export default {
      */
     initEcharts () {
       // 初始数据和额外的配置数据耦合
-      const objData = _.merge(this.options, this.option)
+      const objData = _.cloneDeep(this.options)
+      _.merge(objData, this.option)
       // dom
       const chartDom = document.getElementById(this.id)
       // 初始化

+ 4 - 2
src/layout/components/Echarts/commonChartsPro.vue

@@ -79,7 +79,8 @@ export default {
     option: {
       handler (obj) {
         // 初始数据和额外的配置数据耦合
-        const objData = _.merge(this.options, obj)
+        const objData = _.cloneDeep(this.options)
+        _.merge(objData, obj)
         // 生成柱状图
         this.myChart.setOption(objData)
       },
@@ -104,7 +105,8 @@ export default {
      */
     initEcharts () {
       // 初始数据和额外的配置数据耦合
-      const objData = _.merge(this.options, this.option)
+      const objData = _.cloneDeep(this.options)
+        _.merge(objData, this.option)
       // dom
       const chartDom = document.getElementById(this.id)
       // 初始化

+ 4 - 2
src/layout/components/Echarts/commonProgress.vue

@@ -53,7 +53,8 @@ export default {
     option: {
       handler (obj) {
         // 初始数据和额外的配置数据耦合
-        const objData = _.merge(this.options, obj)
+        const objData = _.cloneDeep(this.options)
+        _.merge(objData, obj)
         // 生成柱状图
         this.myChart.setOption(objData)
       },
@@ -78,7 +79,8 @@ export default {
      */
     initEcharts () {
       // 初始数据和额外的配置数据耦合
-      const objData = _.merge(this.options, this.option)
+      const objData = _.cloneDeep(this.options)
+      _.merge(objData, this.option)
       // dom
       const chartDom = document.getElementById(this.id)
       // 初始化