智慧园区前端大屏
linwe
2024-11-14 4b7d2c5f13c7c816746ecd7c64fc4d8bb7580e70
首页接口
5 files modified
98 ■■■■■ changed files
src/pages/layout/components/mainSearch.vue 87 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/dataContent.vue 4 ●●●● patch | view | raw | blame | history
src/views/pac/components/box/dataContent.vue 4 ●●●● patch | view | raw | blame | history
src/views/pac/components/leftContainer.vue 1 ●●●● patch | view | raw | blame | history
src/views/pac/index.vue 2 ●●● patch | view | raw | blame | history
src/pages/layout/components/mainSearch.vue
@@ -22,17 +22,31 @@
</template>
<script setup>
import { fuzzyQuery } from '../../../api/firmInfo/firmInfo'
// 搜索栏相关
let isShowSearchSKValBox = false
let searchVal = ''
let searchSKValList = []
let searchVal = ref('')
let searchSKValList = ref([])
const onSearch = () => {
  if (searchVal == '') {
  if (searchVal.value == '') {
    isShowSearchSKValBox = false
    // 清空
    clearPoint()
  } else {
    isShowSearchSKValBox = true
    getFuzzyQuery()
  }
}
function getFuzzyQuery() {
  fuzzyQuery({
    name: searchVal.value
  }).then(res => {
    // console.log(res.data.data)
    searchSKValList.value = res.data.data
  })
}
const onFocus = () => {
@@ -41,7 +55,72 @@
const sKValItemClick = (item) => {
  isShowSearchSKValBox = false
  if (item.lat && item.lng) {
    handleCheckChange(item)
  } else {
    console.log('没有经纬度')
}
}
let addTileLayers = {}
const handleCheckChange = (item) => {
  console.log(item)
  // 先清空,在添加
  clearPoint()
  if (!addTileLayers[item.name]) {
    addTileLayers[item.name] = new DC.HtmlLayer(item.name)
    window.$viewer.addLayer(addTileLayers[item.name])
    let iconEl = ''
    if ('showPanel' in item && item.showPanel == false) {
      if (item.backgroundIcon) {
        iconEl = `
                        <div class="map-name">${i[item.showParams] || item.name}</div>
                        <div class="map-icon">
                          <img src="${item.backgroundIcon}">
                        </div>
                        `
      }
    } else {
      iconEl = `<div class="marsBlueGradientPnl">
                               <div>${item.name}</div>  </div>`
    }
    let divIcon = new DC.DivIcon(
      new DC.Position(item.lng, item.lat, 0),
      `<div class="public-map-popup">
                  ${iconEl}
                </div>`
    )
    divIcon.attrParams = item
    let incident = () => { }
    if (item.incident) incident = item.incident
    divIcon.on(DC.MouseEventType.CLICK, incident)
    addTileLayers[item.name].addOverlay(divIcon)
    window.$viewer.flyToPosition(new DC.Position(item.lng, item.lat, 2000, 0, -90, 0))
  } else {
    console.log('已存在*******************************')
    window.$viewer.removeLayer(addTileLayers[item.name])
  }
}
function clearPoint() {
  let arr = Object.keys(addTileLayers)
  arr.forEach(i => {
    addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
  })
}
onUnmounted(() => {
  let arr = Object.keys(addTileLayers)
  arr.forEach(i => {
    addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
  })
})
</script>
<style lang="scss" scoped>
@@ -84,8 +163,10 @@
      color: #ffffff;
      cursor: pointer;
      height: 20px;
      margin: 3px;
      line-height: 20px;
      padding-left: 10px;
      overflow: hidden;
    }
    ul>li:hover {
src/views/companyInfo/components/box/dataContent.vue
@@ -35,7 +35,7 @@
let addTileLayers = {}
const handleCheckChange = (row) => {
    let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
    console.log(row)
    // console.log(row)
    resData.data.forEach(item => {
        if (row.value === item.value) {
            if (!addTileLayers[item.label]) {
@@ -106,7 +106,7 @@
onMounted(() => {
    tabClick(resData.data[0])
}),
})
    onUnmounted(() => {
        let arr = Object.keys(addTileLayers)
src/views/pac/components/box/dataContent.vue
@@ -34,7 +34,7 @@
const curSelect = ref('1')
let addTileLayers = {}
const handleCheckChange = (row) => {
    console.log(row)
    // console.log(row)
    resData.data.forEach(item => {
        if (row.value === item.value) {
            if (!addTileLayers[item.label]) {
@@ -104,7 +104,7 @@
onMounted(() => {
    tabClick(resData.data[0])
}),
})
    onUnmounted(() => {
        let arr = Object.keys(addTileLayers)
src/views/pac/components/leftContainer.vue
@@ -48,6 +48,7 @@
<style lang="scss" scoped>
.left-container {
  background: none;
  width: 90px;
}
.left-container>div .title-box {
src/views/pac/index.vue
@@ -17,7 +17,7 @@
    <div class="container page-container">
        <left-container></left-container>
        <right-container></right-container>
        <!-- <right-container></right-container> -->
    </div>
</template>