forked from drone/command-center-dashboard

罗广辉
2025-04-09 f0b3ef4bb208a93b8ef56176730823feb8b9f53b
feat: 用户行政区划中心点
3 files modified
28 ■■■■■ changed files
src/store/modules/home.js 13 ●●●●● patch | view | raw | blame | history
src/store/modules/user.js 2 ●●●●● patch | view | raw | blame | history
src/views/Home/useMapAggregation/useMapAggregation.js 13 ●●●●● patch | view | raw | blame | history
src/store/modules/home.js
@@ -1,9 +1,14 @@
import { set } from 'lodash'
import { EDeviceTypeName } from '@/utils/staticData/enums'
import { getStore, setStore } from '@/utils/store'
const home = {
  state: {
    machineNestDetail: false, // 机巢详情
        // 用户行政区划中心点
        userAreaPosition: getStore({ name: 'userAreaPosition' }) || {},
        // 用户切换后行政区划中心点
        currentAreaPosition:getStore({ name: 'currentAreaPosition' }) || {},
    singleUavHome: {},
        footActiveIndex: 0,
        isEventOverviewDetail: false,//是事件概述详情
@@ -38,6 +43,14 @@
  },
  actions: {},
  mutations: {
        setUserAreaPosition: (state, data) => {
            setStore({ name: 'userAreaPosition', content: data })
            state.userAreaPosition = data;
        },
        setCurrentAreaPosition: (state, data) => {
            setStore({ name: 'currentAreaPosition', content: data })
            state.currentAreaPosition = data;
        },
        setFootActiveIndex: (state, index) => {
            state.footActiveIndex = index;
        },
src/store/modules/user.js
@@ -235,6 +235,8 @@
                        commit('SET_ROLES', [])
                        commit('DEL_ALL_TAG', [])
                        commit('CLEAR_LOCK')
                        commit('setUserAreaPosition',{})
                        commit('setCurrentAreaPosition',{})
                        removeToken()
                        removeRefreshToken()
                        removeToken()
src/views/Home/useMapAggregation/useMapAggregation.js
@@ -208,9 +208,22 @@
    const outlineGJson = await getOutLine(jsonPathPre, hierarchy)
    scalingJudgment.forEach(item => item.show && (item.outline = outlineGJson))
    const [longitude, latitude] = outlineGJson.features[0].properties.centroid
    setCenterPosition({longitude, latitude})
    flyTo({ longitude, latitude }, 0, scalingJudgment[(hierarchy.length - 3) * (-1)].height)
  }
  const userAreaPosition = computed(() => store.state.home.userAreaPosition);
  const currentAreaPosition = computed(() => store.state.home.currentAreaPosition);
  const setCenterPosition = (position) => {
    store.commit('setCurrentAreaPosition', position)
        if (!userAreaPosition.value.longitude){
            store.commit('setUserAreaPosition', position)
        }
  }
  watch(
    selectedAreaCode,
    async (newValue, oldValue) => {