forked from drone/command-center-dashboard

shuishen
2025-04-15 8e4579771b9496e63763a351a0051d9842104a13
feat:首页监听及点击事件调整
1 files modified
65 ■■■■ changed files
src/hooks/useMapAggregation/useMapAggregation.js 65 ●●●● patch | view | raw | blame | history
src/hooks/useMapAggregation/useMapAggregation.js
@@ -54,8 +54,20 @@
  const store = useStore()
  const userAreaCode = computed(() => store.state.user.userInfo.detail.areaCode)
  const selectedAreaCode = computed(() => store.state.user.selectedAreaCode)
  let saveAreaCode = null;
  let saveParams = { area_code: '',date_enum:'CURRENT_WEEK' };
  const eventTimeType = computed(() => store.state.home.eventTimeType)
  const eventTimeRang = computed(() => store.state.home.eventTimeRang)
  let needFly = true
  const combinedValues = computed(() => ({
    selectedAreaCode: selectedAreaCode.value,
    eventTimeType: eventTimeType.value,
    eventTimeRang: eventTimeRang.value,
  }))
  let saveParams = { area_code: '', date_enum: 'CURRENT_WEEK' }
  // 确定缩放比例
@@ -169,8 +181,7 @@
  const initMapData = async areaCode => {
    eventList = []
    if (!areaCode) return
    saveAreaCode = areaCode;
    saveParams.area_code = areaCode;
    saveParams.area_code = areaCode
    console.log(type, '444')
    const list = type === 'device' ? await getDeviceCount(areaCode) : await getMapEventCount(saveParams)
    const splashedList = type === 'device'
@@ -228,38 +239,25 @@
    }
  }
  watch(combinedValues, async (newValue, oldValue) => {
    if (newValue.eventTimeType) {
      saveParams = { area_code: newValue.selectedAreaCode, date_enum: store.state.home.eventTimeParams }
    }
  let needFly = true
    if (newValue.eventTimeRang) {
      saveParams = { area_code: newValue.selectedAreaCode, start_date: newValue.eventTimeRang[0], end_date: newValue.eventTimeRang[1] }
    }
  watch(
    selectedAreaCode,
    async (newValue, oldValue) => {
      needFly = true
      if (!viewer) return
      viewer.scene.postRender.removeEventListener(determineScaling)
      initMapData(newValue).then(() => {
        viewer.scene.postRender.addEventListener(determineScaling)
      })
    },
    needFly = true
    if (!viewer) return
    viewer.scene.postRender.removeEventListener(determineScaling)
    initMapData(newValue.selectedAreaCode).then(() => {
      viewer.scene.postRender.addEventListener(determineScaling)
    })
  },
    { deep: true }
  )
  // 监听 日 周 月 年
  watch(() => store.state.home.eventTimeType, (newVal) => {
    if (!saveAreaCode) return
    if (newVal) {
      saveParams = { area_code:saveAreaCode,date_enum: store.state.home.eventTimeParams }
      initMapData(saveAreaCode);
    }
  });
  // 监听事件右侧日期范围
  watch(() => store.state.home.eventTimeRang, (newVal) => {
    if (!saveAreaCode) return
    if (newVal) {
      saveParams = { area_code:saveAreaCode,start_date: newVal[0], end_date: newVal[1]}
      initMapData(saveAreaCode);
    }
  });
  //散点机巢
  function splashed (row) {
@@ -465,8 +463,9 @@
    let deviceAggregationFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'deviceAggregation')
    let deviceFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'device')
    let eventFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'event')
    let eventFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'eventAggregation')
    currentEntity = deviceAggregationFind || deviceFind || eventFind
    if (!currentEntity) return
    if (!currentEntity?.position?._value) return
    // 一定要移除