flx:提交作业管控模块
@ -4,8 +4,8 @@ NODE_ENV = 'development'
|
|||||||
# 本地环境接口地址(/api/index.ts文件中使用)
|
# 本地环境接口地址(/api/index.ts文件中使用)
|
||||||
# 后端本地
|
# 后端本地
|
||||||
# VITE_API_URL = 'http://192.168.34.155:28890' #彭杰鞍钢本地
|
# VITE_API_URL = 'http://192.168.34.155:28890' #彭杰鞍钢本地
|
||||||
VITE_API_URL = 'http://192.168.34.155:19111'
|
# VITE_API_URL = 'http://192.168.34.155:19111'
|
||||||
# VITE_API_URL = 'http://192.168.34.221:9111' #雄哥本地
|
VITE_API_URL = 'http://192.168.34.221:8111' #雄哥本地
|
||||||
# VITE_API_URL = 'http://192.168.34.221:19112' #雄哥本地
|
# VITE_API_URL = 'http://192.168.34.221:19112' #雄哥本地
|
||||||
# VITE_API_URL = 'http://192.168.34.221:28890' #雄哥本地
|
# VITE_API_URL = 'http://192.168.34.221:28890' #雄哥本地
|
||||||
# VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
# VITE_API_URL = 'http://182.90.224.237:51234' #雄哥远程
|
||||||
|
|||||||
11
package-lock.json
generated
@ -28,6 +28,7 @@
|
|||||||
"element-china-area-data": "^5.0.2",
|
"element-china-area-data": "^5.0.2",
|
||||||
"element-plus": "^2.2.30",
|
"element-plus": "^2.2.30",
|
||||||
"ezuikit-js": "^7.7.8",
|
"ezuikit-js": "^7.7.8",
|
||||||
|
"hls.js": "^1.6.7",
|
||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"jquery-ui": "^1.13.2",
|
"jquery-ui": "^1.13.2",
|
||||||
"jquery-ui-dist": "^1.13.2",
|
"jquery-ui-dist": "^1.13.2",
|
||||||
@ -8912,6 +8913,11 @@
|
|||||||
"xtend": "~4.0.1"
|
"xtend": "~4.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/hls.js": {
|
||||||
|
"version": "1.6.7",
|
||||||
|
"resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.6.7.tgz",
|
||||||
|
"integrity": "sha512-QW2fnwDGKGc9DwQUGLbmMOz8G48UZK7PVNJPcOUql1b8jubKx4/eMHNP5mGqr6tYlJNDG1g10Lx2U/qPzL6zwQ=="
|
||||||
|
},
|
||||||
"node_modules/homedir-polyfill": {
|
"node_modules/homedir-polyfill": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
|
||||||
@ -23322,6 +23328,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hls.js": {
|
||||||
|
"version": "1.6.7",
|
||||||
|
"resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.6.7.tgz",
|
||||||
|
"integrity": "sha512-QW2fnwDGKGc9DwQUGLbmMOz8G48UZK7PVNJPcOUql1b8jubKx4/eMHNP5mGqr6tYlJNDG1g10Lx2U/qPzL6zwQ=="
|
||||||
|
},
|
||||||
"homedir-polyfill": {
|
"homedir-polyfill": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
|
||||||
|
|||||||
@ -40,6 +40,7 @@
|
|||||||
"element-china-area-data": "^5.0.2",
|
"element-china-area-data": "^5.0.2",
|
||||||
"element-plus": "^2.2.30",
|
"element-plus": "^2.2.30",
|
||||||
"ezuikit-js": "^7.7.8",
|
"ezuikit-js": "^7.7.8",
|
||||||
|
"hls.js": "^1.6.7",
|
||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"jquery-ui": "^1.13.2",
|
"jquery-ui": "^1.13.2",
|
||||||
"jquery-ui-dist": "^1.13.2",
|
"jquery-ui-dist": "^1.13.2",
|
||||||
|
|||||||
32
src/api/modules/workTicket.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
import http from "@/api";
|
||||||
|
const BASEURL = import.meta.env.VITE_API_URL;
|
||||||
|
|
||||||
|
// 统计工作票
|
||||||
|
export const getWorkTicketCountWorkTicketApi = (params: {}) => {
|
||||||
|
return http.post(BASEURL + `/xmgl/workTicket/countWorkTicket`, params);
|
||||||
|
};
|
||||||
|
// 分页列表查询工作票信息
|
||||||
|
export const getWorkTicketPageApi = (params: {}) => {
|
||||||
|
return http.get(BASEURL + `/xmgl/workTicket/page`, params);
|
||||||
|
};
|
||||||
|
// 树形分页列表查询工作票类型信息
|
||||||
|
export const getWorkTicketTypeTreePageApi = (params: {}) => {
|
||||||
|
return http.get(BASEURL + `/xmgl/workTicketType/tree/page`, params);
|
||||||
|
};
|
||||||
|
// 通过id查询工作票信息
|
||||||
|
export const getWorkTicketQueryByIdApi = (params: {}) => {
|
||||||
|
return http.get(BASEURL + `/xmgl/workTicket/queryById`, params);
|
||||||
|
};
|
||||||
|
// 列表查询工作票历史记录信息
|
||||||
|
export const getWorkTicketHistoryListApi = (params: {}) => {
|
||||||
|
return http.get(BASEURL + `/xmgl/workTicketHistory/list`, params);
|
||||||
|
};
|
||||||
|
// 根据itemId查询视频播放url
|
||||||
|
export const getVideoItemInfoPoliceCameraItemApi = (params: {}) => {
|
||||||
|
return http.post(BASEURL + `/xmgl/policeCameraItem/getVideoItemInfo`, params);
|
||||||
|
};
|
||||||
|
// 分页列表查询执法记录仪设备列表信息
|
||||||
|
export const getPoliceCameraItemPageApi = (params: {}) => {
|
||||||
|
return http.get(BASEURL + `/xmgl/policeCameraItem/page`, params);
|
||||||
|
};
|
||||||
BIN
src/assets/images/cardImg1.png
Normal file
|
After Width: | Height: | Size: 336 B |
BIN
src/assets/images/workTicket/bodyworn_audio.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/assets/images/workTicket/bodyworn_pause.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/images/workTicket/bodyworn_play.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
src/assets/images/workTicket/index-icon1.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
src/assets/images/workTicket/index-icon10.png
Normal file
|
After Width: | Height: | Size: 678 B |
BIN
src/assets/images/workTicket/index-icon2.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/images/workTicket/index-icon3.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/images/workTicket/index-icon4.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/workTicket/index-icon5.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/images/workTicket/index-icon6.png
Normal file
|
After Width: | Height: | Size: 229 B |
BIN
src/assets/images/workTicket/index-icon7.png
Normal file
|
After Width: | Height: | Size: 343 B |
BIN
src/assets/images/workTicket/index-icon8.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/images/workTicket/index-icon9.png
Normal file
|
After Width: | Height: | Size: 354 B |
@ -112,6 +112,11 @@ export const staticRouter: RouteRecordRaw[] = [
|
|||||||
name: "工程概况-2",
|
name: "工程概况-2",
|
||||||
component: () => import("@/views/sevenLargeScreen/comprehensiveManage/projectOverviewL/index.vue")
|
component: () => import("@/views/sevenLargeScreen/comprehensiveManage/projectOverviewL/index.vue")
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/homeworkControlProcess",
|
||||||
|
name: "作业过程管控",
|
||||||
|
component: () => import("@/views/sevenLargeScreen/homeworkControlProcess/index.vue")
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// path: "/projectOverviewer",
|
// path: "/projectOverviewer",
|
||||||
// name: "工程概况-1",
|
// name: "工程概况-1",
|
||||||
|
|||||||
@ -465,7 +465,7 @@ const getList = async () => {
|
|||||||
const res = await getCurrentDayAirQualityApi({ projectSn: store.sn });
|
const res = await getCurrentDayAirQualityApi({ projectSn: store.sn });
|
||||||
console.log("获取环境监测数据", res);
|
console.log("获取环境监测数据", res);
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
analysisData.value = res.result.analysisData;
|
analysisData.value = res.result.analysisData ? res.result.analysisData : "";
|
||||||
}
|
}
|
||||||
drawChart();
|
drawChart();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -461,7 +461,7 @@ const getList = async () => {
|
|||||||
console.log("获取环境监测数据", res);
|
console.log("获取环境监测数据", res);
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
analysisType.value = res.result.analysisType;
|
analysisType.value = res.result.analysisType;
|
||||||
analysisData.value = res.result.analysisData;
|
analysisData.value = res.result.analysisData ? res.result.analysisData : "";
|
||||||
}
|
}
|
||||||
console.log("analysisType", analysisType.value);
|
console.log("analysisType", analysisType.value);
|
||||||
console.log("analysisData", analysisData.value);
|
console.log("analysisData", analysisData.value);
|
||||||
|
|||||||
@ -0,0 +1,72 @@
|
|||||||
|
<template>
|
||||||
|
<div class="hls-player">
|
||||||
|
<video
|
||||||
|
ref="video"
|
||||||
|
:controls="controls"
|
||||||
|
:autoplay="autoplay"
|
||||||
|
:muted="muted"
|
||||||
|
:poster="poster"
|
||||||
|
style="width: 100%; height: 100%"
|
||||||
|
playsinline
|
||||||
|
webkit-playsinline
|
||||||
|
></video>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Hls from "hls.js";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "HlsPlayer",
|
||||||
|
props: {
|
||||||
|
src: { type: String, required: true },
|
||||||
|
controls: { type: Boolean, default: true },
|
||||||
|
autoplay: { type: Boolean, default: false },
|
||||||
|
muted: { type: Boolean, default: false },
|
||||||
|
poster: { type: String, default: "" },
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
hls: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initPlayer();
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
this.destroyPlayer();
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
src(newVal) {
|
||||||
|
this.initPlayer();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initPlayer() {
|
||||||
|
this.destroyPlayer();
|
||||||
|
const video = this.$refs.video;
|
||||||
|
if (Hls.isSupported()) {
|
||||||
|
this.hls = new Hls();
|
||||||
|
this.hls.loadSource(this.src);
|
||||||
|
this.hls.attachMedia(video);
|
||||||
|
} else if (video.canPlayType("application/vnd.apple.mpegurl")) {
|
||||||
|
video.src = this.src;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
destroyPlayer() {
|
||||||
|
if (this.hls) {
|
||||||
|
this.hls.destroy();
|
||||||
|
this.hls = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.hls-player {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
1644
src/views/sevenLargeScreen/homeworkControlProcess/index.vue
Normal file
@ -461,7 +461,7 @@ const getList = async () => {
|
|||||||
console.log("获取环境监测数据", res);
|
console.log("获取环境监测数据", res);
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
analysisType.value = res.result.analysisType;
|
analysisType.value = res.result.analysisType;
|
||||||
analysisData.value = res.result.analysisData;
|
analysisData.value = res.result.analysisData ? res.result.analysisData : "";
|
||||||
}
|
}
|
||||||
console.log("analysisType", analysisType.value);
|
console.log("analysisType", analysisType.value);
|
||||||
console.log("analysisData", analysisData.value);
|
console.log("analysisData", analysisData.value);
|
||||||
|
|||||||