flx:提交工作票模块

This commit is contained in:
Rain_ 2025-07-09 15:06:55 +08:00
parent 8cfe2e8def
commit 4d8bd47afd
12 changed files with 1810 additions and 214 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

View File

@ -19,6 +19,8 @@ export const editPoliceCameraItemApi = data => post('xmgl/policeCameraItem/edit'
export const deletePoliceCameraItemApi = data => post('xmgl/policeCameraItem/delete', data);
// 分页执法记录仪配置信息
export const getPoliceCameraItemPageApi = data => get('xmgl/policeCameraItem/page', data);
// 列表查询执法记录仪配置信息
export const getPoliceCameraItemListApi = data => get('xmgl/policeCameraItem/list', data);
// 查询项目视频列表
export const getPoliceCameraItemSelectProjectVideoListApi = data => post('xmgl/policeCameraItem/selectProjectVideoList', data);
// 查询启用的执法记录仪配置

View File

@ -98,4 +98,10 @@ export const deleteWorkTicketApi = data => post('xmgl/workTicket/delete', data);
// 批量删除工作票信息
export const deleteBatchWorkTicketApi = data => post('xmgl/workTicket/deleteBatch', data);
// 统计工作票
export const getWorkTicketCountWorkTicketApi = data => post('xmgl/workTicket/countWorkTicket', data);
export const getWorkTicketCountWorkTicketApi = data => post('xmgl/workTicket/countWorkTicket', data);
// 开始、暂停、继续、结束工作票
export const setWorkTicketOperateWorkTicketApi = data => post('xmgl/workTicket/operateWorkTicket', data);
// 通过id查询工作票信息
export const getWorkTicketQueryByIdApi = data => get('xmgl/workTicket/queryById', data);
// 列表查询工作票历史记录信息
export const getWorkTicketHistoryListApi = data => get('xmgl/workTicketHistory/list', data);

View File

@ -79,13 +79,13 @@ export default new Vuex.Store({
// WORKFLOWURL: "http://101.43.164.214:11129/#/workspace/forms", // 百色
// UPLOADURL:'http://182.90.224.237:51234/upload/image/',
// FILEURL:'http://182.90.224.237:51234/image/',
UPLOADURL: "http://192.168.34.155:19111/upload/image/", // 洁本地
FILEURL: "http://192.168.34.155:19111/image/", //洁本地
// UPLOADURL: "http://192.168.34.155:19111/upload/image/", // 洁本地
// FILEURL: "http://192.168.34.155:19111/image/", //洁本地
// UPLOADURL: 'http://192.168.34.221:9111/upload/image/', // 郭圣雄本地
// FILEURL: 'http://192.168.34.221:9111/image/', //郭圣雄本地
// UPLOADURL: 'http://192.168.34.221:19112/upload/image/', // 郭圣雄本地
// FILEURL: 'http://192.168.34.221:19112/image/', //郭圣雄本地
WORKFLOWURL: "http://192.168.34.216:88/#/workspace/forms", //jiayu工作流地址(本地)
// WORKFLOWURL: "http://192.168.34.216:88/#/workspace/forms", //jiayu工作流地址(本地)
// WORKFLOWURL: "http://192.168.34.138:88/#/workspace/forms", //坤工作流地址(本地)
// WORKFLOWURL: "http://192.168.34.129:88/#/workspace/forms", //罗峰工作流地址(本地)
CONTRACTORURL: process.env.NODE_ENV == "development" ? "http://192.168.34.129:5174/#/contractorApply" : `${window.location.protocol}//${window.location.host}/contractorApply/index.html#/contractorApply`, //罗峰承包商入场地址(本地)
@ -102,7 +102,7 @@ export default new Vuex.Store({
// // WORKFLOWURL: 'http://47.93.215.234:19098/#/workspace/forms',//鞍钢测试平台工作流地址(弃用)
// WORKFLOWURL: 'http://42.180.188.17:19998/#/workspace/forms', //鞍钢平台工作流地址
// WORKFLOWURL: "http://42.180.188.17:19098/#/workspace/forms", //鞍钢测试平台工作流地址
// UPLOADURL: 'http://192.168.34.221:8111/upload/image', //演示平台 雄本地
// FILEURL: 'http://192.168.34.221:8111/image/', //演示平台 雄本地
@ -399,7 +399,7 @@ export default new Vuex.Store({
// state.initializeAI();
},
initializeAI(state) {
if (state.projectExtendInfo?.modelKey && state.projectExtendInfo?.modelUrl) {
if (state.projectExtendInfo ? .modelKey && state.projectExtendInfo ? .modelUrl) {
console.log('正在初始化AI功能...');
initAI(state.projectExtendInfo.modelKey, state.projectExtendInfo.modelUrl);
} else {

View File

@ -774,6 +774,7 @@ export default {
this.onQuery();
},
getRiskListDetailPage() {
if(!this.riskListDetailInfo.id) return;
if (this.activeName == "first") {
getPoliceCameraItemQueryByIdApi({
projectSn: this.$store.state.projectSn,

View File

@ -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>