智慧园区前端大屏
linwe
2024-11-13 9ee3f349fbbcaeed2694a46744fe14862ed09d7c
src/pages/layout/components/scomponents/layersControl.vue
@@ -558,141 +558,11 @@
  handleCheckChange(data.filter(i => indexPoint.value.includes(i.id)))
})
const sharedData = computed(() => pointStore.sharedData);
//
watch(sharedData, (newValue) => {
  let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
// const sharedData = computed(() => pointStore.sharedData);
// watch(sharedData, (newValue) => {
// });
  if (newValue === '1') {
    // 处理切换了应急空间页面,把图标隐藏
    if (indexPoint.value.includes('3')) {
      let allList = data.filter(i => indexPoint.value.includes(i.id))
      let temp = indexPoint.value.filter(ie => ie != '3')
      // console.log(temp, '***************************************')
      let checkList = data.filter(i => temp.includes(i.id))
      treeRef.value?.setCheckedNodes(checkList)
      handleCheckChangeTwo(allList, companyInfo.id)
    }
    return
  }
  // 处理切换到应急空间页面,把图标显示
  console.log('sharedData changed to:', newValue);
  // 获取缓存里面的企业id
  indexPoint.value.includes(newValue) ? '' : indexPoint.value.push(newValue)
  let checkList = data.filter(i => indexPoint.value.includes(i.id))
  treeRef.value?.setCheckedNodes(checkList)
  handleCheckChangeTwo(checkList, companyInfo.id)
});
const handleCheckChangeTwo = (data, firmId) => {
  let options = treeRef.value?.getCheckedNodes()
  // console.log(options, "*************222222***********")
  collectedNodes.value = []
  collectNodesWithFlag(data)
  collectedNodes.value.forEach(item => {
    let layerName = item.layerName + '_' + firmId
    console.log(layerName, "**************************************")
    if (options.some(i => i.id == item.id)) {
      if (item.subType == 'labelPoint') {
        if (!addTileLayers[layerName]) {
          addTileLayers[layerName] = new DC.HtmlLayer(addTileLayers[layerName])
          window.$viewer.addLayer(addTileLayers[layerName])
          let params = { ...item.params }
          params.firmId = firmId
          item.method(params).then(res => {
            let data = res.data.data.records
            data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
              let iconEl = ''
              if ('showPanel' in item && item.showPanel == false) {
                if (item.backgroundIcon) {
                  iconEl = `
                  <div class="map-name">${i[item.showParams] || i.name}</div>
                  <div class="map-icon">
                    <img src="${item.backgroundIcon}">
                  </div>
                  `
                }
              } else {
                iconEl = `<div class="marsBlueGradientPnl">
                  <div>${i[item.showParams] || i.name}</div>
                </div>`
              }
              let divIcon = new DC.DivIcon(
                new DC.Position(i.lng, i.lat, 0),
                `<div class="public-map-popup">
                    ${iconEl}
                  </div>`
              )
              addTileLayers[layerName].addOverlay(divIcon)
            })
          })
        } else {
          addTileLayers[layerName].show = true
        }
      }
    } else {
      if (addTileLayers[layerName]) {
        if (item.subType == 'labelPoint') {
          addTileLayers[layerName].show = false
        }
      }
    }
  })
}
// const handleCheckChangeTwo = (data, firmId) => {
//   let options = treeRef.value?.getCheckedNodes()
//   console.log(options, "*************222222***********")
//   collectedNodes.value = []
//   collectNodesWithFlag(data)
//   collectedNodes.value.forEach(item => {
//     if (options.some(i => i.id == item.id)) {
//       if (item.subType == 'labelPoint') {
//         if (!addTileLayers[item.layerName]) {
//           addTileLayers[item.layerName] = new DC.HtmlLayer(addTileLayers[item.layerName])
//           window.$viewer.addLayer(addTileLayers[item.layerName])
//           let params = { ...item.params }
//           params.firmId = firmId
//           item.method(params).then(res => {
//             let data = res.data.data.records
//             data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
//               let iconEl = ''
//               if ('showPanel' in item && item.showPanel == false) {
//                 if (item.backgroundIcon) {
//                   iconEl = `
//                   <div class="map-name">${i[item.showParams] || i.name}</div>
//                   <div class="map-icon">
//                     <img src="${item.backgroundIcon}">
//                   </div>
//                   `
//                 }
//               } else {
//                 iconEl = `<div class="marsBlueGradientPnl">
//                   <div>${i[item.showParams] || i.name}</div>
//                 </div>`
//               }
//               let divIcon = new DC.DivIcon(
//                 new DC.Position(i.lng, i.lat, 0),
//                 `<div class="public-map-popup">
//                     ${iconEl}
//                   </div>`
//               )
//               addTileLayers[item.layerName].addOverlay(divIcon)
//             })
//           })
//         } else {
//           addTileLayers[item.layerName].show = true
//         }
//       }
//     } else {
//       if (addTileLayers[item.layerName]) {
//         if (item.subType == 'labelPoint') {
//           addTileLayers[item.layerName].show = false
//         }
//       }
//     }
//   })
// }
onUnmounted(() => {
  tileLayers && window.$viewer.removeLayer(tileLayers)