diff --git a/.env.production b/.env.production
index 87264d1..00d2461 100644
--- a/.env.production
+++ b/.env.production
@@ -1,6 +1,6 @@
VITE_BASE=/dist
#VITE_BASE_URL=http://10.199.64.27:8520/integrated_yjb/
-VITE_BASE_URL=http://172.16.112.251:80/api/
+VITE_BASE_URL=http://172.16.112.251:8081/sx_yjb/
#VITE_BASE_URL=https://qaaqwh.qhdsafety.com/integrated_whb/
#websocket t掉线
diff --git a/package.json b/package.json
index dc0ab70..4110181 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"dayjs": "^1.11.10",
"echarts": "^5.4.3",
"element-plus": "^2.6.1",
+ "hls.js": "^1.6.13",
"html2canvas": "^1.4.1",
"jspdf": "^2.5.1",
"lodash-es": "^4.17.21",
diff --git a/src/assets/images/loginbg.png b/src/assets/images/loginbg.png
index 7a59e10..a9993b1 100644
Binary files a/src/assets/images/loginbg.png and b/src/assets/images/loginbg.png differ
diff --git a/src/components/monitoring_data/index.vue b/src/components/monitoring_data/index.vue
index e49504e..0bf171d 100644
--- a/src/components/monitoring_data/index.vue
+++ b/src/components/monitoring_data/index.vue
@@ -7,20 +7,62 @@
width="70%"
>
实时监测
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+ 重置
+
+
+
+
+
+
-
+
-
+
{{ row.CURRENT_VALUE }}
-
+
@@ -31,9 +73,9 @@
-
-
diff --git a/src/layout/header/index.vue b/src/layout/header/index.vue
index 2e52372..122580a 100644
--- a/src/layout/header/index.vue
+++ b/src/layout/header/index.vue
@@ -69,7 +69,7 @@ import { useMenuStore } from "@/pinia/menu";
import { useUserStore } from "@/pinia/user";
import { MENU } from "@/assets/js/constant";
import { getInfo, getUserInfo, logout } from "@/request/api";
-import { getSpecialOperationsWarnAmount } from "@/request/special_operations";
+// import { getSpecialOperationsWarnAmount } from "@/request/special_operations";
import UpdateInfo from "./components/update_info.vue";
import UpdateAvatar from "./components/update_avatar.vue";
import { checkImgExists, addingPrefixToFile } from "@/assets/js/utils.js";
@@ -174,19 +174,19 @@ const fnSignOut = async () => {
userStore.$reset();
await router.replace("/login");
};
-const fnSpecialOperationsWarnAmount = async () => {
- const resData = await getSpecialOperationsWarnAmount({ loading: false });
- if (resData.message) {
- notify = ElNotification({
- title: "温馨提示",
- dangerouslyUseHTMLString: true,
- message: resData.message,
- duration: 0,
- type: "warning",
- });
- }
-};
-fnSpecialOperationsWarnAmount();
+// const fnSpecialOperationsWarnAmount = async () => {
+// const resData = await getSpecialOperationsWarnAmount({ loading: false });
+// if (resData.message) {
+// notify = ElNotification({
+// title: "温馨提示",
+// dangerouslyUseHTMLString: true,
+// message: resData.message,
+// duration: 0,
+// type: "warning",
+// });
+// }
+// };
+// fnSpecialOperationsWarnAmount();
const fnNavigationBI = async () => {
notify && notify.close();
const res = await getRydyWebsiteStatus();
diff --git a/src/request/special_operations.js b/src/request/special_operations.js
index d48dbec..c0b6a4b 100644
--- a/src/request/special_operations.js
+++ b/src/request/special_operations.js
@@ -31,5 +31,4 @@ export const setLicensedManagementView = (params) =>
post("/licensedPersonnel/goEdit", params); // 单个持证人员
export const setSpecialOperationsImport = (params) =>
upload("/specialoperations/readExcel", params);
-export const getForeNsicStatisticsList = () =>
- post("/specialoperations/stats"); // 特种作业人员管理列表
+export const getForeNsicStatisticsList = () => post("/specialoperations/stats"); // 特种作业人员管理列表
diff --git a/src/request/tb_iron.js b/src/request/tb_iron.js
index 208c5b3..dd715fe 100644
--- a/src/request/tb_iron.js
+++ b/src/request/tb_iron.js
@@ -78,3 +78,6 @@ export const setIronWarnInfoFeedbackEdit = (params) =>
export const setIronEarlyWarning = (params) =>
post("/tbIronWarnInfo/earlyWarningEdit", params);
+
+export const getRealTimeMonitoringData = (params) =>
+ post("/deviceMonitoring/getRealTimeMonitoringData", params);
diff --git a/src/request/video_info.js b/src/request/video_info.js
index 4708afa..c0276b9 100644
--- a/src/request/video_info.js
+++ b/src/request/video_info.js
@@ -8,3 +8,9 @@ export const getvideoInfoView = (params) => post("/videoInfo/goEdit", params); /
export const setvideoInfoDelete = (params) => post("/videoInfo/delete", params); // 删除
export const setUpToBi = (params) => post("/videoInfo/editZhiding", params); // 删除
export const setvideoInfoEdit = (params) => post("/videoInfo/edit", params);
+export const startTransCode = (params) =>
+ post("/playVideo/startTranscode", params);
+export const stopTransCode = (params) =>
+ post("/playVideo/stopTranscode", params);
+export const getTranscodeStatus = (params) =>
+ post("/playVideo/getTranscodeStatus", params);
diff --git a/src/views/index/components/calendar.vue b/src/views/index/components/calendar.vue
index 04afa3c..8681c2d 100644
--- a/src/views/index/components/calendar.vue
+++ b/src/views/index/components/calendar.vue
@@ -40,7 +40,7 @@
+
+
diff --git a/src/views/video_manager/video_manager/index.vue b/src/views/video_manager/video_manager/index.vue
index ce7c64e..3af07be 100644
--- a/src/views/video_manager/video_manager/index.vue
+++ b/src/views/video_manager/video_manager/index.vue
@@ -2,9 +2,9 @@
@@ -15,20 +15,25 @@
搜索
-
- 重置
-
+ 重置
+ 播放后台转码视频
+
+
{{ serialNumber(pagination, $index) }}
@@ -40,9 +45,9 @@
是
@@ -51,55 +56,62 @@
-
置顶
+
+
+
+ 播放视频
- 置顶
-
-
- {{ row.PLS_ID ? "修改定位" : "添加定位" }}
-
-
- 播放
-
移除定位
- 移除定位
-
+
+
+
+
+
@@ -108,7 +120,6 @@
import { serialNumber } from "@/assets/js/utils.js";
import useListData from "@/assets/js/useListData.js";
import {
- getHkVideoHlsPath,
getHkVideoManagerList,
setUpToBi,
setVideoManagerDelete,
@@ -119,6 +130,8 @@ import { ElMessage, ElMessageBox } from "element-plus";
import SelectingPoints from "./components/selecting_points.vue";
import LayoutVideo from "@/components/video/index.vue";
import { setVideoManagerList } from "@/request/eightwork_videomanager.js";
+import PlayVideo from "@/views/video_manager/video_manager/components/playVideo.vue"; // 引入新播放器组件
+import { startTransCode, stopTransCode } from "@/request/video_info.js"; // 转码接口
const data = reactive({
addDialog: {
@@ -142,39 +155,60 @@ const data = reactive({
videomanagerId: "",
visible: false,
},
+ transcodeVideoDialog: {
+ visible: false,
+ src: "http://localhost:8100/api/hls/stream.m3u8", // 后端转码后HLS流的访问路径
+ id: "",
+ },
});
-const { list, pagination, searchForm, fnGetData, fnResetPagination } =
- useListData(getHkVideoManagerList);
-
-const fnSetPositioning = async (row) => {
- data.selectingPointsDialog.id = row.PLS_ID ? row.PLS_ID : "";
- data.selectingPointsDialog.indexCode = row.indexCode;
- data.selectingPointsDialog.regionPathName = row.regionPathName;
- data.selectingPointsDialog.camName = row.name;
- data.selectingPointsDialog.videomanagerId = row.videomanagerId;
- data.selectingPointsDialog.visible = true;
+// 启动转码并显示播放器
+const handleStartTranscode = async () => {
+ try {
+ await startTransCode(); // 调用后端“启动转码”接口
+ data.transcodeVideoDialog.visible = true; // 显示播放器弹窗
+ } catch (error) {
+ ElMessage.error("启动转码失败: " + (error.message || "未知错误"));
+ }
};
+// 转码停止后的回调
+const onTranscodeStopped = async () => {
+ await stopTransCode(); // 调用后端“停止转码”接口
+};
+
+// 列表数据逻辑(保持不变)
+const { list, pagination, searchForm, fnGetData, fnResetPagination } =
+ useListData(getHkVideoManagerList);
+
+// 其他方法(保持不变)
+// const fnSetPositioning = async (row) => {
+// data.selectingPointsDialog.id = row.PLS_ID ? row.PLS_ID : "";
+// data.selectingPointsDialog.indexCode = row.indexCode;
+// data.selectingPointsDialog.regionPathName = row.regionPathName;
+// data.selectingPointsDialog.camName = row.name;
+// data.selectingPointsDialog.videomanagerId = row.videomanagerId;
+// data.selectingPointsDialog.visible = true;
+// };
+
const fnUpToBi = async (videomanagerId) => {
await ElMessageBox.confirm("确定要置顶吗?置顶后将会默认展示在Bi页", {
type: "warning",
});
- await setUpToBi({
- videomanagerId,
- });
- ElMessage({
- message: "操作成功",
- type: "success",
- });
- fnResetPagination();
+ await setUpToBi({ videomanagerId });
+ ElMessage({ message: "操作成功", type: "success" });
};
const fnPreviewVideo = async (row) => {
- data.videoDialog.visible = true;
- data.videoDialog.src = "";
- const resData = await getHkVideoHlsPath(row);
- data.videoDialog.src = resData.data.url;
+ try {
+ const resData = await startTransCode({ url: row.url, id: row.PLS_ID }); // 调用后端“启动转码”接口
+ data.transcodeVideoDialog.visible = true; // 显示播放器弹窗
+ data.transcodeVideoDialog.id = row.PLS_ID; // 显示播放器弹窗
+ data.transcodeVideoDialog.src =
+ "http://localhost:8100/api/" + resData.videoUrl + "stream.m3u8";
+ } catch (error) {
+ ElMessage.error("启动转码失败: " + (error.message || "未知错误"));
+ }
};
const fnDeleteVideo = async (row) => {
@@ -187,17 +221,14 @@ const fnDeleteVideo = async (row) => {
return;
}
await ElMessageBox.confirm(
- "移除定位将会结束视频推送,并删除推送信息。确定要移除定位吗?",
- {
- type: "warning",
- }
+ "移除定位将会结束视频推送,并删除推送信息。确定要移除定位吗?",
+ { type: "warning" }
);
await setVideoManagerDelete({
VIDEOMANAGER_ID: row.videomanagerId,
PLS_ID: row.PLS_ID,
});
await ElMessage.success("操作成功");
- fnResetPagination();
}
};