Преглед изворни кода

feat: 优化时间选择器时间戳和自定义时间格式类型互换,导致的组件报错,日期时间选择器类型是范围时,将数据转成字符串

wu.jian2 пре 1 година
родитељ
комит
d1d5b63f8f

+ 5 - 1
data-room-ui/packages/BasicComponents/DateTimePicker/index.vue

@@ -147,7 +147,11 @@ export default {
     },
     // 组件联动
     changeValue (val) {
-      console.log(val)
+      // 判断如果val是数组,需要将它转成字符串
+      if (Array.isArray(val)) {
+        val = val.join(',')
+      }
+      console.log('val', val)
       this.linkage({ [this.config.code]: val })
     },
     focusEvent () {

+ 1 - 21
data-room-ui/packages/BasicComponents/DateTimePicker/setting.vue

@@ -218,27 +218,7 @@ export default {
   },
   watch: {},
   mounted () {},
-  methods: {
-    // selectFormatType (type) {
-    //   if (type === 'timestamp') {
-    //     this.config.customize.value = 0
-    //     this.config.customize.valueFormat = 'timestamp'
-    //   } else if (type === 'custom') {
-    //     this.config.customize.value = ''
-    //     this.config.customize.valueFormat = 'YYYY-MM-DD HH:mm:ss'
-    //   }
-    // },
-    // selectDisplayType (val) {
-    //   if (['year', 'month', 'date', 'week', 'datetime'].includes(val)) {
-    //     this.config.customize.value = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
-    //   } else {
-    //     this.config.customize.value = [
-    //       moment(new Date()).subtract(7, 'days').format('YYYY-MM-DD HH:mm:ss'),
-    //       moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
-    //     ]
-    //   }
-    // }
-  }
+  methods: { }
 }
 </script>
 

+ 21 - 7
data-room-ui/packages/BasicComponents/TimePicker/index.vue

@@ -1,13 +1,13 @@
 <template>
   <el-time-picker
-    v-model="config.customize.value"
+    v-model="value"
     :picker-options="config.customize.pickerOptions"
     placeholder="选择时间"
     clearable
     :class="['basic-component-time-picker', `time-picker-${config.code}`]"
     :popper-class="'basic-component-time-picker time-picker-popper-' + config.code"
     :value-format="config.customize.valueFormat"
-    :default-value="config.customize.value"
+    :default-value="value"
     @focus="focusEvent"
     @change="changeValue"
     @mouseenter.native="mouseenter"
@@ -48,14 +48,29 @@ export default {
       return (this.$route.path === window?.BS_CONFIG?.routers?.previewUrl) || (this.$route.path === '/big-screen/preview')
     }
   },
-  watch: { },
+  watch: {
+
+    'config.customize.formatType': {
+      handler (val) {
+        if (val === 'timestamp') {
+          this.value = 0
+          this.config.customize.valueFormat = 'timestamp'
+        } else if (val === 'custom') {
+          this.config.customize.valueFormat = 'HH:mm:ss'
+          this.value = ''
+        }
+      },
+      immediate: true
+    }
+
+  },
   created () { },
   mounted () {
     if (!this.isPreview) {
       document.querySelector(`.time-picker-${this.config.code}`).style.pointerEvents = 'none'
     }
-    if (this.config.customize.value === '') {
-      this.config.customize.value = moment(new Date()).format(this.config.customize.valueFormat)
+    if (this.value === '') {
+      this.value = moment(new Date()).format(this.config.customize.valueFormat)
     }
     this.changeStyle(this.config)
   },
@@ -115,7 +130,6 @@ export default {
     },
     // 组件联动
     changeValue (val) {
-      console.log('val', val)
       this.linkage({ [this.config.code]: val })
     },
     focusEvent () {
@@ -156,7 +170,7 @@ export default {
       })
     },
     mouseenter () {
-      if (this.config.customize.value) {
+      if (this.value) {
         setTimeout(() => {
           // 清空图标
           const timePickerCloseIcon = document.querySelector(`.time-picker-${this.innerConfig.code} .el-icon-circle-close`)

+ 1 - 13
data-room-ui/packages/BasicComponents/TimePicker/setting.vue

@@ -89,8 +89,6 @@
                 v-model="config.customize.formatType"
                 class="bs-el-select"
                 popper-class="bs-el-select"
-                clearable
-                @change="selectFormatType"
               >
                 <el-option
                   v-for="(type) in formatTypeOptions"
@@ -177,17 +175,7 @@ export default {
   },
   watch: {},
   mounted () {},
-  methods: {
-    selectFormatType (type) {
-      if (type === 'timestamp') {
-        this.config.customize.value = 0
-        this.config.customize.valueFormat = 'timestamp'
-      } else if (type === 'custom') {
-        this.config.customize.valueFormat = 'HH:mm:ss'
-        this.config.customize.value = ''
-      }
-    }
-  }
+  methods: { }
 }
 </script>
 

+ 18 - 18
data-room-ui/packages/BigScreenDesign/index.vue

@@ -205,7 +205,7 @@ export default {
     }
   },
   watch: {
-    chartList(val){
+    chartList (val) {
       // console.log(val,this.activeCode)
       // if(val.findIndex(item=>item.code==this.activeCode)==-1){
       //   this.updateRightVisiable(false)
@@ -263,7 +263,7 @@ export default {
   mounted () {
     EventBus.$on('closeRightPanel', () => {
       this.updateRightVisiable(false)
-      })
+    })
   },
   beforeDestroy () {
     this.clearTimeline()
@@ -309,27 +309,27 @@ export default {
       getScreenInfo(component.code).then(res => {
         res.chartList.forEach((item) => {
           if (!item.border) {
-            item.border={type:'',titleHeight:60,fontSize:16,isTitle:true,padding:[0,0,0,0]}
+            item.border = { type: '', titleHeight: 60, fontSize: 16, isTitle: true, padding: [0, 0, 0, 0] }
           }
-          if(!item.border.padding){
-            item.border.padding=[0,0,0,0]
+          if (!item.border.padding) {
+            item.border.padding = [0, 0, 0, 0]
           }
-          if (item.type == 'customComponent'){
-            plotSettings[Symbol.iterator]=function*(){
-              let keys=Object.keys(plotSettings)
-              for(let k of keys){
-                yield [k,plotSettings[k]]
+          if (item.type == 'customComponent') {
+            plotSettings[Symbol.iterator] = function * () {
+              const keys = Object.keys(plotSettings)
+              for (const k of keys) {
+                yield [k, plotSettings[k]]
               }
             }
-            for(let [key,value] of plotSettings){
-             if (item.name == value.name) {
-                const settings=JSON.parse(JSON.stringify(value.setting))
-                item.setting=settings.map((x)=>{
-                  const index=item.setting.findIndex(y=>y.field==x.field)
+            for (const [key, value] of plotSettings) {
+              if (item.name == value.name) {
+                const settings = JSON.parse(JSON.stringify(value.setting))
+                item.setting = settings.map((x) => {
+                  const index = item.setting.findIndex(y => y.field == x.field)
                   x.field = item.setting[index].field
-                  x.value=item.setting[index].value
+                  x.value = item.setting[index].value
                   return x
-               })
+                })
               }
             }
           }
@@ -441,7 +441,7 @@ export default {
     },
     // 自定义属性更新
     updateSetting (config) {
-      if (config.type === 'map' || config.type==='screenScrollBoard'|| config.type === 'remoteComponent' || config.type === 'video' || config.type === 'flyMap') {
+      if (config.type === 'map' || config.type === 'screenScrollBoard' || config.type === 'remoteComponent' || config.type === 'video' || config.type === 'flyMap') {
         config.key = new Date().getTime()
       }
       this.changeChartConfig(cloneDeep(config))

+ 0 - 1
data-room-ui/packages/EchartsRender/index.vue

@@ -237,7 +237,6 @@ export default {
       return config
     },
     dataFormatting (config, data) {
-      console.log('config', config);
       // config = this.config
       // 数据返回成功则赋值
       if (data.success) {