Forráskód Böngészése

fix: 修复设计器添加业务组件时,配置面板数据已修改的情况下,点击对应组件,配置面板数据被重置的情况

wu.jian2 1 éve
szülő
commit
c9383c1393

+ 15 - 17
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,20 +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
-
-        this.$nextTick(() => {
-          config = cloneDeep(getRemoteComponentConfig(this.focus.code, this.focus.name))
-          config.setting = this.resolveStrSetting(this.focus.settingContent).setting
-          this.$emit('setRemoteComponent', config)
-        })
-        // 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 () {
@@ -495,16 +498,11 @@ export default {
       // 去掉 export default及后面代码
       settingContent = settingContent.replace(/export default[\s\S]*/, '')
       eval(settingContent)
-      if (this.config?.option) {
-        this.config.option = {
-          ...this.config.option,
-          ...option
-        }
-      }
-      if (this.config?.setting) {
-        this.config.setting = setting
+      option = {
+        data,
+        displayOption,
+        ...option
       }
-      console.log('resolveStrSetting', option, setting)
       return {
         option,
         setting

+ 4 - 4
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 {
@@ -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)

+ 1 - 1
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,