feat:区域回放摄像头
This commit is contained in:
1 parent
80d697a260
commit
aa9dc26998
6 files changed
+66
-35
No files matched your search
+13
-13
@@ -26,22 +26,22 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
* @param {Object} data - 登录数据
|
||||
* @returns {Promise<Object>}
|
||||
*/
|
||||
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);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
+3
-2
@@ -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);
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<el-table-column prop="handleDate" label="处理时间" />
|
||||
<el-table-column prop="alarmPicture" label="抓拍图片">
|
||||
<template #default="{ row }">
|
||||
<preview-image width="50px" height="50px" v-if="row.alarmPicture" :src="row.alarmPicture" />
|
||||
<preview-image width="50px" height="50px" v-if="row.parseAlarmPicture" :src="row.parseAlarmPicture" />
|
||||
<div v-else style="width: 50px; height: 50px;" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -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);
|
||||
|
||||
@@ -53,10 +53,16 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="memo" label="空间备注" show-overflow-tooltip />
|
||||
<el-table-column prop="sortOrder" label="排序" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="200">
|
||||
<el-table-column label="操作" width="350">
|
||||
<template #default="{ row }">
|
||||
<el-button icon="OfficeBuilding" text type="primary" v-auth="'admin_areaManage_edit'"
|
||||
@click="areaHouseTableDialogRef.openDialog(row.id)">房间</el-button>
|
||||
@click="areaHouseTableDialogRef.openDialog(row.id)">
|
||||
报警回放摄像头
|
||||
</el-button>
|
||||
<el-button icon="OfficeBuilding" text type="primary" v-auth="'admin_areaManage_edit'"
|
||||
@click="areaHouseTableDialogRef.openDialog(row.id)">
|
||||
房间
|
||||
</el-button>
|
||||
<el-button icon="edit-pen" text type="primary" v-auth="'admin_areaManage_edit'"
|
||||
@click="formDialogRef.openDialog(row.id)">编辑</el-button>
|
||||
<el-button icon="delete" text type="primary" v-auth="'admin_areaManage_del'"
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
<div v-if="!autoTenantEnable">
|
||||
<el-dropdown trigger="click" placement="bottom" @command="handleCommand">
|
||||
<div
|
||||
class="flex items-center justify-center w-48 px-3 py-2 mx-auto space-x-2 text-sm text-gray-600 transition-colors duration-200 rounded-lg cursor-pointer dark:text-slate-300 hover:bg-gray-100 dark:hover:bg-slate-700"
|
||||
>
|
||||
class="flex items-center justify-center w-48 px-3 py-2 mx-auto space-x-2 text-sm text-gray-600 transition-colors duration-200 rounded-lg cursor-pointer dark:text-slate-300 hover:bg-gray-100 dark:hover:bg-slate-700">
|
||||
<el-icon>
|
||||
<ele-OfficeBuilding class="text-gray-400 dark:text-slate-400" />
|
||||
</el-icon>
|
||||
@@ -14,12 +13,8 @@
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu class="!p-2 !min-w-[12rem] dark:!bg-slate-800 dark:!border-slate-700">
|
||||
<el-dropdown-item
|
||||
v-for="item in tenantList"
|
||||
:key="item.id"
|
||||
:command="item"
|
||||
class="!flex !items-center !space-x-2 !rounded !px-3 !text-gray-700 dark:!text-slate-300 hover:!bg-gray-100 dark:hover:!bg-slate-700"
|
||||
>
|
||||
<el-dropdown-item v-for="item in tenantList" :key="item.id" :command="item"
|
||||
class="!flex !items-center !space-x-2 !rounded !px-3 !text-gray-700 dark:!text-slate-300 hover:!bg-gray-100 dark:hover:!bg-slate-700">
|
||||
<el-icon>
|
||||
<ele-OfficeBuilding class="text-gray-400 dark:text-slate-400" />
|
||||
</el-icon>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
getThemeConfig.globalTitle }}</h1>
|
||||
<!-- 租户选择 -->
|
||||
<div class="mt-6">
|
||||
<tenant class="shadow-sm" />
|
||||
<tenant v-show="false" class="shadow-sm" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -67,6 +67,7 @@ import { useMessage } from '/@/hooks/message';
|
||||
import { Session, Local } from '/@/utils/storage';
|
||||
import { initBackEndControlRoutes } from '/@/router/backEnd';
|
||||
import { LoginTypeEnum } from '/@/api/login';
|
||||
import { openPlanUrl } from "/@/utils/plan"
|
||||
|
||||
// 引入组件
|
||||
const Password = defineAsyncComponent(() => import('./component/password.vue'));
|
||||
@@ -104,6 +105,12 @@ const getThemeConfig = computed(() => {
|
||||
return themeConfig.value;
|
||||
});
|
||||
|
||||
const jumpAdminPanel = () => {
|
||||
const isDev = import.meta.env.MODE == "development"
|
||||
const baseAdminUrl = isDev ? 'http://localhost:5173/device' : 'http://192.168.50.10:7001/device';
|
||||
openPlanUrl(baseAdminUrl, true)
|
||||
}
|
||||
|
||||
// 登录成功后的跳转处理事件
|
||||
const signInSuccess = async () => {
|
||||
const isNoPower = await initBackEndControlRoutes();
|
||||
@@ -113,14 +120,15 @@ const signInSuccess = async () => {
|
||||
} else {
|
||||
// 初始化登录成功时间问候语
|
||||
let currentTimeInfo = formatAxis(new Date());
|
||||
if (route.query?.redirect) {
|
||||
router.push({
|
||||
path: <string>route.query?.redirect,
|
||||
query: Object.keys(<string>route.query?.params).length > 0 ? JSON.parse(<string>route.query?.params) : '',
|
||||
});
|
||||
} else {
|
||||
router.push('/');
|
||||
}
|
||||
// if (route.query?.redirect) {
|
||||
// router.push({
|
||||
// path: <string>route.query?.redirect,
|
||||
// query: Object.keys(<string>route.query?.params).length > 0 ? JSON.parse(<string>route.query?.params) : '',
|
||||
// });
|
||||
// } else {
|
||||
// router.push('/');
|
||||
// }
|
||||
jumpAdminPanel()
|
||||
// 登录成功提示
|
||||
const signInText = t('signInText');
|
||||
useMessage().success(`${currentTimeInfo},${signInText}`);
|
||||
|
||||
Reference in new issue
Block a user