From aa9dc269983ddeb73f65d3d5c0d74418edc90af2 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 24 Sep 2025 16:22:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8C=BA=E5=9F=9F=E5=9B=9E=E6=94=BE?= =?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/userInfo.ts | 26 +++++++++++++------------- src/utils/plan.ts | 5 +++-- src/views/alarm/alarm-record/index.vue | 23 ++++++++++++++++++++++- src/views/area/areaManage/index.vue | 10 ++++++++-- src/views/login/component/tenant.vue | 11 +++-------- src/views/login/index.vue | 26 +++++++++++++++++--------- 6 files changed, 66 insertions(+), 35 deletions(-) diff --git a/src/stores/userInfo.ts b/src/stores/userInfo.ts index 20fd4d5..b5a8c13 100644 --- a/src/stores/userInfo.ts +++ b/src/stores/userInfo.ts @@ -26,22 +26,22 @@ export const useUserInfo = defineStore('userInfo', { * @param {Object} data - 登录数据 * @returns {Promise} */ - async login(data:any) { + async login(data: any) { data.grant_type = 'password'; data.scope = 'server'; - return new Promise((resolve, reject) => { - login(data) - .then((res) => { - // 存储token 信息 - Session.set('token', res.access_token); - Session.set('refresh_token', res.refresh_token); - resolve(res); - }) - .catch((err) => { - useMessage().error(err?.msg || '系统异常请联系管理员'); - reject(err); - }); + return new Promise(async (resolve, reject) => { + try { + const res = await login(data) + console.log("登录成功res:", res) + // 存储token 信息 + Session.set('token', res.access_token); + Session.set('refresh_token', res.refresh_token); + resolve(res); + } catch (err: any) { + useMessage().error(err?.msg || '系统异常请联系管理员'); + reject(err); + } }); }, diff --git a/src/utils/plan.ts b/src/utils/plan.ts index f03a9d1..832cfee 100644 --- a/src/utils/plan.ts +++ b/src/utils/plan.ts @@ -4,7 +4,7 @@ import Cookies from 'js-cookie'; * 打开大屏地址 * @param url 大屏地址 */ -export const openPlanUrl = (url: string): boolean => { +export const openPlanUrl = (url: string, replaceCurrentPage = false): boolean => { try { const token = Cookies.get("token") const refreshToken = Cookies.get("refresh_token") @@ -13,7 +13,8 @@ export const openPlanUrl = (url: string): boolean => { } if (url == null) throw new Error() const fullUrl = `${url}?token=${token}&refresh_token=${refreshToken}` - window.open(fullUrl, '_blank'); + const target = replaceCurrentPage ? '_self' : '_blank'; + window.open(fullUrl, target); return true } catch (error: any) { console.log("打开大屏地址错误:", error); diff --git a/src/views/alarm/alarm-record/index.vue b/src/views/alarm/alarm-record/index.vue index d1959f0..1744620 100644 --- a/src/views/alarm/alarm-record/index.vue +++ b/src/views/alarm/alarm-record/index.vue @@ -58,7 +58,7 @@ @@ -83,6 +83,9 @@ import { BasicTableProps, useTable } from "/@/hooks/table"; import * as alarmRecordApi from "/@/api/alarm/alarmRecord"; import { useMessage, useMessageBox } from "/@/hooks/message"; import { useDict } from '/@/hooks/dict'; +import { usePanel } from "/@/stores/panel" + +const storesPanel = usePanel() // 引入组件 const FormDialog = defineAsyncComponent(() => import('./form.vue')); @@ -121,6 +124,24 @@ const resetQuery = () => { getDataList() } +onBeforeMount(() => { + const query: any = useRoute().query + if (query && query.action == 'panel') { + if (query.params) { + Object.assign(state.queryForm, JSON.parse(query.params)) + getDataList() + } + storesPanel.openFromPanel() + } +}) + +onBeforeUnmount(() => { + const query = useRoute().query + if (query && query.action == 'panel') { + storesPanel.closeFromPanel() + } +}) + // 多选事件 const selectionChangHandle = (objs: { id: string }[]) => { selectObjs.value = objs.map(({ id }) => id); diff --git a/src/views/area/areaManage/index.vue b/src/views/area/areaManage/index.vue index 6395e0b..87de081 100644 --- a/src/views/area/areaManage/index.vue +++ b/src/views/area/areaManage/index.vue @@ -53,10 +53,16 @@ - +