From 53310b6f8b2274c3d68674648446451761edea21 Mon Sep 17 00:00:00 2001 From: he wei <858544502@qq.com> Date: 星期五, 25 四月 2025 10:07:35 +0800 Subject: [PATCH] U onActivated' --- src/components/HdwTree/index.vue | 58 ++++++++++++++----- src/views/device/threadManage.vue | 4 src/views/general/log/index.vue | 12 ++-- src/views/device/locks/addEdit.vue | 1 src/views/general/alarm/alarmRt.vue | 4 src/views/device/keys/index.vue | 4 src/views/device/locks/index.vue | 4 src/views/device/realtime/index.vue | 2 src/views/system/logs.vue | 4 src/store/user.js | 4 src/store/permission.js | 6 +- src/utils/permission.js | 1 src/views/general/alarm/alarmHis.vue | 14 ++-- src/views/device/locks/task.vue | 4 14 files changed, 76 insertions(+), 46 deletions(-) diff --git a/src/components/HdwTree/index.vue b/src/components/HdwTree/index.vue index 694f6f3..8be5da3 100644 --- a/src/components/HdwTree/index.vue +++ b/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> diff --git a/src/store/permission.js b/src/store/permission.js index 9c11d0d..22f2b55 100644 --- a/src/store/permission.js +++ b/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', '============='); diff --git a/src/store/user.js b/src/store/user.js index aca73d1..fc9e5d2 100644 --- a/src/store/user.js +++ b/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; diff --git a/src/utils/permission.js b/src/utils/permission.js index 8fe76af..edc48f6 100644 --- a/src/utils/permission.js +++ b/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); diff --git a/src/views/device/keys/index.vue b/src/views/device/keys/index.vue index c5a7303..9e48bc9 100644 --- a/src/views/device/keys/index.vue +++ b/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> diff --git a/src/views/device/locks/addEdit.vue b/src/views/device/locks/addEdit.vue index b3af0bf..f64e340 100644 --- a/src/views/device/locks/addEdit.vue +++ b/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, diff --git a/src/views/device/locks/index.vue b/src/views/device/locks/index.vue index 77047e5..2c7d810 100644 --- a/src/views/device/locks/index.vue +++ b/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, '============='); diff --git a/src/views/device/locks/task.vue b/src/views/device/locks/task.vue index 67b20d7..a063dc5 100644 --- a/src/views/device/locks/task.vue +++ b/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> diff --git a/src/views/device/realtime/index.vue b/src/views/device/realtime/index.vue index c58228e..09fa315 100644 --- a/src/views/device/realtime/index.vue +++ b/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'); }) diff --git a/src/views/device/threadManage.vue b/src/views/device/threadManage.vue index 71cab85..7e20b3d 100644 --- a/src/views/device/threadManage.vue +++ b/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(); }); diff --git a/src/views/general/alarm/alarmHis.vue b/src/views/general/alarm/alarmHis.vue index a5b267e..726024f 100644 --- a/src/views/general/alarm/alarmHis.vue +++ b/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> diff --git a/src/views/general/alarm/alarmRt.vue b/src/views/general/alarm/alarmRt.vue index 65ca9b4..f7f20f9 100644 --- a/src/views/general/alarm/alarmRt.vue +++ b/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> diff --git a/src/views/general/log/index.vue b/src/views/general/log/index.vue index cfbae7d..632b694 100644 --- a/src/views/general/log/index.vue +++ b/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> diff --git a/src/views/system/logs.vue b/src/views/system/logs.vue index b34f93e..93f6c60 100644 --- a/src/views/system/logs.vue +++ b/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(); -- Gitblit v1.9.1