diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomConfig.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomConfig.java
index 14f90a2e..17436cac 100644
--- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomConfig.java
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomConfig.java
@@ -8,9 +8,7 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
 import org.springframework.context.annotation.Configuration;
 
 /**
- * 基础框架基础配置
- *
- * @Author maoshufeng
+ * @Author qianxing
  * @Date 2020-06-16
  * @Version 1.0.0
  */
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/ObjectMapperConfiguration.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomObjectMapperConfiguration.java
similarity index 83%
rename from DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/ObjectMapperConfiguration.java
rename to DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomObjectMapperConfiguration.java
index e11965c4..38e3d17a 100644
--- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/ObjectMapperConfiguration.java
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/config/DataRoomObjectMapperConfiguration.java
@@ -14,11 +14,17 @@ import org.springframework.context.annotation.Configuration;
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
+/**
+ * Jackson配置类
+ * @Author hongyang
+ * @Date 2022/06/19
+ * @Version 1.0.0
+ */
 @Slf4j
 @Configuration
 @ConditionalOnMissingClass(value = "com.gccloud.dashboard.core.config.ObjectMapperConfiguration")
-//@ConditionalOnProperty(prefix = "gc.starter.dataroom.component", name = "ObjectMapperConfiguration", havingValue = "ObjectMapperConfiguration", matchIfMissing = true)
-public class ObjectMapperConfiguration {
+@ConditionalOnProperty(prefix = "gc.starter.dataroom.component", name = "ObjectMapperConfiguration", havingValue = "ObjectMapperConfiguration", matchIfMissing = true)
+public class DataRoomObjectMapperConfiguration {
 
     @Resource
     private ObjectMapper objectMapper;
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenFlyMapChart.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenFlyMapChart.java
index a19ce4bb..d02c293d 100644
--- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenFlyMapChart.java
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenFlyMapChart.java
@@ -101,6 +101,14 @@ public class ScreenFlyMapChart extends Chart{
         @ApiModelProperty(notes = "名称")
         private String name;
 
+        @ApiModelProperty(notes = "图形")
+        private List<String> graphic;
+
+        @ApiModelProperty(notes = "图形字体颜色")
+        private String fontGraphicColor;
+
+        @ApiModelProperty(notes = "图形字体大小")
+        private String fontSize;
     }
 
 }
diff --git a/DataRoom/dataroom-core/src/main/resources/chart/mock/flyMap.json b/DataRoom/dataroom-core/src/main/resources/chart/mock/flyMap.json
index e24a0274..7af2032c 100644
--- a/DataRoom/dataroom-core/src/main/resources/chart/mock/flyMap.json
+++ b/DataRoom/dataroom-core/src/main/resources/chart/mock/flyMap.json
@@ -20,16 +20,6 @@
             "to": "河北省",
             "type": "move_in",
             "value": 10
-        },
-        {
-            "from": "合肥",
-            "lat1": 32.0581,
-            "lat2": 25.9222,
-            "lng1": 117.29,
-            "lng2": 119.4543,
-            "to": "福州",
-            "type": "move_in",
-            "value": 50
         }
     ],
     "columnData": {
diff --git a/data-room-ui/packages/BigScreenDesign/ComponentDialog/index.vue b/data-room-ui/packages/BigScreenDesign/ComponentDialog/index.vue
index 578855fc..001ca89b 100644
--- a/data-room-ui/packages/BigScreenDesign/ComponentDialog/index.vue
+++ b/data-room-ui/packages/BigScreenDesign/ComponentDialog/index.vue
@@ -345,6 +345,7 @@
   </el-dialog>
 </template>
 <script>
+import { displayOption } from 'data-room-ui/js/config'
 import { pageMixins } from 'data-room-ui/js/mixins/page'
 // import _ from 'lodash'
 import isEmpty from 'lodash/isEmpty'
@@ -425,14 +426,22 @@ export default {
         }
         this.$emit('setRemoteComponent', this.focus)
       } if (['bizComponent'].includes(this.activeName)) {
-        let config = {}
+        let config = {
+          setting: [],
+          option: {}
+        }
         if (isEmpty(this.focus)) {
           return
         }
         config.code = this.focus.code
         config.name = this.focus.name
-        config = getRemoteComponentConfig(this.focus.code, this.focus.name)
+        config = cloneDeep(getRemoteComponentConfig(this.focus.code, this.focus.name))
+        const settingContent = cloneDeep(this.resolveStrSetting(this.focus.settingContent))
+        config.setting = settingContent.setting
+        config.option = settingContent.option
         this.$emit('setRemoteComponent', config)
+        // config = getRemoteComponentConfig(this.focus.code, this.focus.name)
+        // this.$emit('setRemoteComponent', config)
       }
     },
     getDataList () {
@@ -472,6 +481,33 @@ export default {
           })
       }
     },
+    /**
+     * 处理当前组件的字符串配置
+     */
+    resolveStrSetting (settingContent) {
+      // eslint-disable-next-line prefer-const
+      let option = {}
+      // eslint-disable-next-line prefer-const
+      let setting = []
+      // eslint-disable-next-line prefer-const, no-unused-vars
+      let title = []
+      // eslint-disable-next-line prefer-const, no-unused-vars
+      let data = []
+      // eslint-disable-next-line prefer-const
+      settingContent = settingContent.replaceAll('const ', '')
+      // 去掉 export default及后面代码
+      settingContent = settingContent.replace(/export default[\s\S]*/, '')
+      eval(settingContent)
+      option = {
+        data,
+        displayOption,
+        ...option
+      }
+      return {
+        option,
+        setting
+      }
+    },
     // 获取目录的列表
     getCatalogList () {
       const url = this.activeName === 'combination' ? '/bigScreen/type/list/componentCatalog' : '/bigScreen/type/list/bizComponentCatalog'
diff --git a/data-room-ui/packages/BigScreenDesign/OverallSetting/index.vue b/data-room-ui/packages/BigScreenDesign/OverallSetting/index.vue
index 1276af85..f78b28b3 100644
--- a/data-room-ui/packages/BigScreenDesign/OverallSetting/index.vue
+++ b/data-room-ui/packages/BigScreenDesign/OverallSetting/index.vue
@@ -373,7 +373,7 @@ export default {
         this.form.refreshConfig = []
       } else {
         this.pageInfo.chartList.forEach(chart => {
-          if (chart.dataSource.businessKey) {
+          if (chart.dataSource?.businessKey) {
             this.chartOptions.push({
               code: chart.code,
               title: chart.title,
@@ -470,7 +470,7 @@ export default {
       this.$emit('close')
     },
     timerEmptyState () {
-      return this.pageInfo.chartList.every(chart => chart.dataSource.businessKey === '')
+      return this.pageInfo.chartList.every(chart => chart.dataSource?.businessKey === '')
     }
   }
 }
diff --git a/data-room-ui/packages/js/mixins/commonMixins.js b/data-room-ui/packages/js/mixins/commonMixins.js
index 6a2c6bd8..853dd71d 100644
--- a/data-room-ui/packages/js/mixins/commonMixins.js
+++ b/data-room-ui/packages/js/mixins/commonMixins.js
@@ -4,13 +4,13 @@
  * @Author: xing.heng
  */
 // import _ from 'lodash'
-import cloneDeep from 'lodash/cloneDeep'
 import { mapMutations, mapState } from 'vuex'
 import { EventBus } from 'data-room-ui/js/utils/eventBus'
 import { getChatInfo, getUpdateChartInfo } from '../api/bigScreenApi'
 import axiosFormatting from '../../js/utils/httpParamsFormatting'
-import {settingToTheme} from "data-room-ui/js/utils/themeFormatting";
-import _ from "lodash";
+import { settingToTheme } from 'data-room-ui/js/utils/themeFormatting'
+import cloneDeep from 'lodash/cloneDeep'
+
 export default {
   data () {
     return {
@@ -100,14 +100,14 @@ export default {
                 const scriptMethod = new Function(scriptAfterReplacement)
                 _res.data = scriptMethod()
               } catch (error) {
-                console.error('JS数据集脚本执行失败', error)
+                console.info('JS数据集脚本执行失败', error)
               }
             }
           }
           config = this.dataFormatting(config, _res)
           this.changeChartConfig(config)
         }).catch((err) => {
-          console.error(err)
+          console.info(err)
         }).finally(() => {
           resolve(config)
         })
@@ -151,7 +151,7 @@ export default {
                 const scriptMethod = new Function(scriptAfterReplacement)
                 _res.data = scriptMethod()
               } catch (error) {
-                console.error('JS数据集脚本执行失败', error)
+                console.info('JS数据集脚本执行失败', error)
               }
             }
           }
@@ -165,7 +165,7 @@ export default {
             }
           }
         }).catch(err => {
-          console.error(err)
+          console.info(err)
         }).finally(() => {
           resolve(config)
         })
@@ -191,7 +191,7 @@ export default {
     changeStyle (config) {
       config = { ...this.config, ...config }
       // 样式改变时更新主题配置
-      config.theme = settingToTheme(_.cloneDeep(config), this.customTheme)
+      config.theme = settingToTheme(cloneDeep(config), this.customTheme)
       this.changeChartConfig(config)
       if (config.code === this.activeCode) {
         this.changeActiveItemConfig(config)
diff --git a/data-room-ui/packages/js/utils/voiceBroadcast.js b/data-room-ui/packages/js/utils/voiceBroadcast.js
index ec1430e4..67a85ffa 100644
--- a/data-room-ui/packages/js/utils/voiceBroadcast.js
+++ b/data-room-ui/packages/js/utils/voiceBroadcast.js
@@ -32,5 +32,4 @@ export default function speak ({ text, speechRate, lang, volume, pitch }, endEve
     startEvent && startEvent()
   }
   speechSynthesis.speak(speechUtterance)
-  console.log(2)
 }
diff --git a/data-room-ui/vue.config.example.js b/data-room-ui/vue.config.example.js
index e99b730b..28da78cf 100644
--- a/data-room-ui/vue.config.example.js
+++ b/data-room-ui/vue.config.example.js
@@ -45,7 +45,7 @@ module.exports = {
   outputDir: 'dataRoomUi',
   assetsDir: 'static',
   lintOnSave: false,
-  productionSourceMap: false,
+  productionSourceMap: true,
   runtimeCompiler: true,
   devServer: {
     hot: true,