Prechádzať zdrojové kódy

fix:修复控制台报错

liu.shiyi 1 rok pred
rodič
commit
c89e0adaf3

+ 6 - 3
data-room-ui/packages/BasicComponents/Numbers/index.vue

@@ -40,13 +40,16 @@ export default {
     // 通过表达式计算得来的值
     getDataByExpression (config) {
       // 如果表达式是由其他组件的值构成的
-      if (this.config.expressionCodes && this.config.expressionCodes.length) {
-      // eslint-disable-next-line no-new-func
+      const len = this.config.expressionCodes ? this.config.expressionCodes.length : 0
+      const len1 = this.currentComputedDatas ? Object.keys(this.currentComputedDatas).length : 0
+      const len2 = this.currentDataset ? Object.keys(this.currentDataset).length : 0
+      if (len && len === len1 + len2) {
+        // eslint-disable-next-line no-new-func
         const result = new Function('dataset', 'computedDatas', this.config.expression)
         config.customize.title = result(this.dataset, this.computedDatas)
         // 同时将计算得来的值保存到公共的数据存储的地方
         this.updateComputedDatas({ code: config.code, name: config.name, data: config.customize.title })
-      // this.changeChartConfig(config)
+        // this.changeChartConfig(config)
       }
     },
     dataFormatting (config, data) {

+ 5 - 2
data-room-ui/packages/BasicComponents/Texts/index.vue

@@ -40,7 +40,10 @@ export default {
     // 通过表达式计算得来的值
     getDataByExpression (config) {
       // 如果表达式是由其他组件的值构成的
-      if (this.config.expressionCodes && this.config.expressionCodes.length) {
+      const len = this.config.expressionCodes ? this.config.expressionCodes.length : 0
+      const len1 = this.currentComputedDatas ? Object.keys(this.currentComputedDatas).length : 0
+      const len2 = this.currentDataset ? Object.keys(this.currentDataset).length : 0
+      if (len && len === len1 + len2) {
       // eslint-disable-next-line no-new-func
         const result = new Function('dataset', 'computedDatas', this.config.expression)
         config.customize.title = result(this.dataset, this.computedDatas)
@@ -53,7 +56,7 @@ export default {
       // 文本数据配置原则:选择数据集则以后端返回的数据为主,否则以设置面板中标题设置为准
       if (config.dataSource.businessKey) {
         config.customize.title = data && data.data && data.data.length ? data.data[0][config.dataSource.metricField] : '暂无数据'
-        config.option.data =  data && data.data && data.data.length ? data.data :[]
+        config.option.data = data && data.data && data.data.length ? data.data : []
       }
       return config
     }