he wei
2025-04-25 53310b6f8b2274c3d68674648446451761edea21
U onActivated'
14个文件已修改
122 ■■■■■ 已修改文件
src/components/HdwTree/index.vue 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/permission.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/user.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/permission.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/device/keys/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/device/locks/addEdit.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/device/locks/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/device/locks/task.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/device/realtime/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/device/threadManage.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/general/alarm/alarmHis.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/general/alarm/alarmRt.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/general/log/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/logs.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/HdwTree/index.vue
@@ -1,8 +1,12 @@
<script setup>
  import { ref, onMounted, reactive, nextTick, watch } from "vue";
  import { ref, onMounted, reactive, nextTick, watch, onBeforeUnmount } from "vue";
  import { getSiteList } from "@/api/common";
  import { formatAreaTree } from "@/utils/tree";
import { format } from "echarts";
import useWebSocket from "@/hooks/useWebsocket.js";
const { sendData, message: listMessage } = useWebSocket("leftStation");
  import { useRoute, useRouter } from "vue-router";
  const route = useRoute();
  const router = useRouter();
@@ -20,7 +24,7 @@
  const currentId = ref();
  onMounted(() => {
    getTree();
    // getTree();
  });
  watch(
@@ -65,17 +69,14 @@
    return null;
  }
  async function getTree() {
    try {
      const res = await getSiteList();
  watch(
    () => listMessage.value,
    async () => {
      let _data = [];
      if (res.code === 1 && res.data) {
        _data = res.data2;
      if (listMessage.value) {
        _data = JSON.parse(listMessage.value)?.data2;
      }
      console.log('_data', _data, '=============');
      const treeList = formatAreaTree(_data);
      console.log(treeList, "treeList");
      data.value = treeList;
      await nextTick();
      const firstLeafId = currentId.value || findFirstLeafNode(treeList);
@@ -87,13 +88,39 @@
        // treeRef.value.setCurrentNode(node);
        handleNodeClick(node.data, node, treeRef.value);
        // handleNodeClick(node.data);
      }
    } catch (e) {
      console.log(e);
    }
  }
  );
  // async function getTree() {
  //   try {
  //     const res = await getSiteList();
  //     let _data = [];
  //     if (res.code === 1 && res.data) {
  //       _data = res.data2;
  //     }
  //     console.log('_data', _data, '=============');
  //     const treeList = formatAreaTree(_data);
  //     console.log(treeList, "treeList");
  //     data.value = treeList;
  //     await nextTick();
  //     const firstLeafId = currentId.value || findFirstLeafNode(treeList);
  //     if (firstLeafId) {
  //       const node = treeRef.value.getNode(firstLeafId);
  //       expandParentNodes(firstLeafId);
  //       treeRef.value.setCurrentKey(firstLeafId);
  //       // treeRef.value.setCurrentNode(node);
  //       handleNodeClick(node.data, node, treeRef.value);
  //       // handleNodeClick(node.data);
  //     }
  //   } catch (e) {
  //     console.log(e);
  //   }
  // }
  const expandParentNodes = (nodeId) => {
@@ -115,6 +142,7 @@
    }
  }
  defineExpose({ setCurrent });
</script>
src/store/permission.js
@@ -9,8 +9,8 @@
 */
function hasPermission(roles, route) {
  console.trace('hasPermission');
  console.log('hasPermission', roles, route, '=============');
  debugger;
  // console.log('hasPermission', roles, route, '=============');
  // debugger;
  if (route.meta && route.meta.roles) {
    const rolesArr = route.meta.roles;
    return roles.some(role => rolesArr.includes(role));
@@ -51,7 +51,7 @@
  }
  function generateRoutes(roles) {
    let accessedRoutes;
    debugger;
    // debugger;
    if (roles.includes('admin')) {
      console.log('1', '=============');
      
src/store/user.js
@@ -53,7 +53,7 @@
          uname.value = name;
          setUname(name);
          let _token = 'someone';
          debugger;
          // debugger;
          if (response.data2.uid && response.data2.uid <= 10000) {
            _token = 'manager';
            if (response.data2.uid <= 100) {
@@ -124,7 +124,7 @@
  }
  async function changeRoles(role) {
    debugger;
    // debugger;
    const _token = role + '-token';
    token.value = _token;
src/utils/permission.js
@@ -1,7 +1,6 @@
import { storeToRefs } from "pinia";
import pinia from '@/utils/pinia';
import { useUserStore } from "@/store/user";
debugger;
const userStore = useUserStore(pinia);
const { roles } = storeToRefs(userStore);
src/views/device/keys/index.vue
@@ -1,5 +1,5 @@
<script setup name="KeyManage">
import { ref, onMounted, reactive, computed, watchEffect, nextTick } from 'vue';
import { ref, onActivated, reactive, computed, watchEffect, nextTick } from 'vue';
import addEdit from './addEdit.vue';
import { storeToRefs } from "pinia";
import useElement from "@/hooks/useElement.js";
@@ -202,7 +202,7 @@
    sendMessage();
}
onMounted(() => {
onActivated(() => {
    sendMessage();
});
</script>
src/views/device/locks/addEdit.vue
@@ -290,6 +290,7 @@
    stationName2: formLock.stationName2,
    stationName3: formLock.stationName3,
    stationName4: formLock.stationName4,
    lockId: formLock.lockId,
    lockIp: formLock.lockIp,
        longitude: formLock.longitude || 0,
        latitude: formLock.latitude || 0,
src/views/device/locks/index.vue
@@ -1,5 +1,5 @@
<script setup name="LockManage">
    import { ref, onMounted, reactive, computed, watchEffect, nextTick } from "vue";
    import { ref, onActivated, reactive, computed, watchEffect, nextTick } from "vue";
    import useStation from "@/hooks/useStationList.js";
    const { stationName1, stationName2, stationName3, stationName4,
        stationList1, stationList2, stationList3, stationList4,
@@ -57,7 +57,7 @@
  // 是否有控制权限
let isCanControl = isHasPermit("control_permit", permits.value);
    onMounted(() => {
    onActivated(() => {
        // setTimeout(() => {
        //     console.log('onMounted', stationName1, stationName2, stationName3, stationName4, '=============');
src/views/device/locks/task.vue
@@ -1,5 +1,5 @@
<script setup name="LockTask">
import { ref, onMounted, reactive, computed, watchEffect, nextTick } from "vue";
import { ref, onActivated, reactive, computed, watchEffect, nextTick } from "vue";
import addTask from "./addTask.vue";
import {
    getLockBl,
@@ -99,7 +99,7 @@
    getList();
}
onMounted(() => {
onActivated(() => {
    getList();
});
</script>
src/views/device/realtime/index.vue
@@ -263,6 +263,8 @@
        tree.value.setCurrent(baojiId.value + '-' + stationId.value);
    }
  sendMessage();
    // console.log('baojiId, stationId', baojiId.value, stationId.value, '=============real');
})
src/views/device/threadManage.vue
@@ -1,5 +1,5 @@
<script setup name="threadManage">
    import { ref, onMounted, reactive, computed, watchEffect } from "vue";
    import { ref, onActivated, reactive, computed, watchEffect } from "vue";
    import useWebSocket from "@/hooks/useWebsocket.js";
    import formatSeconds from '@/utils/formatSeconds';
@@ -155,7 +155,7 @@
        dialogVisible.value = true;
    }
    onMounted(() => {
    onActivated(() => {
        sendMessage();
    });
src/views/general/alarm/alarmHis.vue
@@ -1,5 +1,5 @@
<script setup name="alarmHis">
    import { ref, reactive, onMounted, watchEffect, nextTick } from "vue";
    import { ref, reactive, onActivated, watchEffect, nextTick } from "vue";
    import useWebSocket from "@/hooks/useWebsocket.js";
    import useElement from "@/hooks/useElement.js";
    import { confirmAlm, cancelAlm, delAlm } from '@/api/alarm.js';
@@ -171,7 +171,7 @@
        });
    }
    onMounted(() => {
    onActivated(() => {
        endTime.value = moment().format('YYYY-MM-DD');
        getList();
    });
@@ -189,7 +189,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">省:</div>
                <div class="filter-content">
                  <el-select v-model="stationName1" clearable  placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName1" clearable  placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList1" :key="'province_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -198,7 +198,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">市:</div>
                <div class="filter-content">
                  <el-select v-model="stationName2" clearable  placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName2" clearable  placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList2" :key="'city_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -207,7 +207,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">区县:</div>
                <div class="filter-content">
                  <el-select v-model="stationName3" clearable placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName3" clearable placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList3" :key="'list2_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -216,7 +216,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">机房:</div>
                <div class="filter-content">
                  <el-select v-model="stationName4" clearable placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName4" clearable placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList4" :key="'list3_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -226,7 +226,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">锁具名称:</div>
                <div class="filter-content">
                  <el-select v-model="lockName" clearable filterable placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="lockName" clearable filterable placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in lockList" :key="'list3_' + idx" :label="item.lockName" :value="item.lockName" />
                  </el-select>
src/views/general/alarm/alarmRt.vue
@@ -1,5 +1,5 @@
<script setup name="alarmRt">
import { ref, reactive, onMounted, watchEffect, nextTick } from "vue";
import { ref, reactive, onActivated, watchEffect, nextTick } from "vue";
import useWebSocket from "@/hooks/useWebsocket.js";
import useElement from "@/hooks/useElement.js";
import { confirmAlm, cancelAlm, delAlm } from '@/api/alarm.js';
@@ -184,7 +184,7 @@
    });
}
onMounted(() => {
onActivated(() => {
    sendMessage();
});
</script>
src/views/general/log/index.vue
@@ -1,5 +1,5 @@
<script setup name="LogManage">
    import { ref, onMounted } from 'vue';
    import { ref, onActivated } from 'vue';
    import { getLockLog } from "@/api/loginfo";
    import { getLinfById } from '@/api/lockManager.js';
    import { getUinfById } from '@/api/user';
@@ -93,7 +93,7 @@
        getList();
    }
    onMounted(() => {
    onActivated(() => {
    getList();
    });
@@ -143,7 +143,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">省:</div>
                <div class="filter-content">
                  <el-select v-model="stationName1" clearable  placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName1" clearable  placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList1" :key="'province_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -152,7 +152,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">市:</div>
                <div class="filter-content">
                  <el-select v-model="stationName2" clearable  placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName2" clearable  placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList2" :key="'city_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -161,7 +161,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">区县:</div>
                <div class="filter-content">
                  <el-select v-model="stationName3" clearable placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName3" clearable placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList3" :key="'list2_' + idx" :label="item" :value="item" />
                  </el-select>
@@ -170,7 +170,7 @@
              <div class="tools-filter-item">
                <div class="filter-label">机房:</div>
                <div class="filter-content">
                  <el-select v-model="stationName4" clearable placeholder="请选择" @change="() => nextTick(() => sendMessage())" size="small"
                  <el-select v-model="stationName4" clearable placeholder="请选择" @change="() => nextTick(() => getList())" size="small"
                    style="width: 180px">
                    <el-option v-for="(item, idx) in stationList4" :key="'list3_' + idx" :label="item" :value="item" />
                  </el-select>
src/views/system/logs.vue
@@ -1,5 +1,5 @@
<script setup>
    import { ref, onMounted } from "vue";
    import { ref, onActivated } from "vue";
    import { getBaojiUserByUid } from "@/api/user";
    import { getAreaUserLock } from '@/api/lockManager.js';
@@ -71,7 +71,7 @@
        userList.value = _list;
    }
    onMounted(() => {
    onActivated(() => {
        getUsers();
        getTypeList();
        getList();