flx:修改web插件显示问题
This commit is contained in:
parent
e3be0dbc36
commit
ee529d5e6c
@ -481,7 +481,7 @@ const play = (row, index) => {
|
||||
reloadBtn.textContent = "重新加载";
|
||||
reloadBtn.addEventListener("click", (e) => {
|
||||
e.stopPropagation();
|
||||
onReload(row.id);
|
||||
onReload(row.itemId);
|
||||
});
|
||||
|
||||
// 将图片添加到按钮
|
||||
@ -515,9 +515,9 @@ const play = (row, index) => {
|
||||
const onReload = (id) => {
|
||||
console.log("重新加载", id);
|
||||
// 这里添加重新加载的逻辑
|
||||
const findItem = videoInfo.devH5List.find(item => item.id === id);
|
||||
const findItem = videoInfo.devH5List.find(item => item.itemId === id);
|
||||
if (findItem) {
|
||||
play(findItem, videoInfo.iWndIndex);
|
||||
play(findItem, findItem.eIndex);
|
||||
}
|
||||
};
|
||||
const onTwoSubmit = num => {
|
||||
|
||||
@ -108,13 +108,13 @@ onBeforeUnmount(() => {
|
||||
})
|
||||
|
||||
// 监听器
|
||||
watch(() => props.devList, (newVal) => {
|
||||
if (newVal.length > 0) {
|
||||
newVal.forEach(element => {
|
||||
play(element)
|
||||
})
|
||||
}
|
||||
})
|
||||
// watch(() => props.devList, (newVal) => {
|
||||
// if (newVal.length > 0) {
|
||||
// newVal.forEach(element => {
|
||||
// play(element)
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
|
||||
watch(() => props.equipmentDialog, (newVal) => {
|
||||
if (videoPlugin.value) {
|
||||
|
||||
@ -31,10 +31,13 @@
|
||||
checkStrictly: true,
|
||||
emitPath: false,
|
||||
value: 'id',
|
||||
label: 'typeName'
|
||||
label: 'typeName',
|
||||
}"
|
||||
></el-cascader>
|
||||
<el-input v-model="workTicketInfo.numberOrContent" placeholder="施工区域或工作票编号"></el-input>
|
||||
<el-input
|
||||
v-model="workTicketInfo.numberOrContent"
|
||||
placeholder="施工区域或工作票编号"
|
||||
></el-input>
|
||||
<el-date-picker
|
||||
v-model="workTicketInfo.constructionTime"
|
||||
type="daterange"
|
||||
@ -47,7 +50,12 @@
|
||||
<div @click="onWorkTicketRefresh" class="refresh">刷新</div>
|
||||
</div>
|
||||
<el-scrollbar class="box-main">
|
||||
<div style="height: 100%" infinite-scroll-distance="1" :infinite-scroll-immediate="false" v-infinite-scroll="load">
|
||||
<div
|
||||
style="height: 100%"
|
||||
infinite-scroll-distance="1"
|
||||
:infinite-scroll-immediate="false"
|
||||
v-infinite-scroll="load"
|
||||
>
|
||||
<div class="box-main_box" v-for="item in workTicketList" :key="item.id">
|
||||
<div>
|
||||
<div>
|
||||
@ -75,7 +83,7 @@
|
||||
wks_active: item.status == 1,
|
||||
sgz_active: item.status == 2,
|
||||
ztz_active: item.status == 3,
|
||||
ywg_acitve: item.status == 4
|
||||
ywg_acitve: item.status == 4,
|
||||
}"
|
||||
>
|
||||
{{ updateStatus(item.status) }}
|
||||
@ -106,7 +114,12 @@
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option v-for="(item, index) in deviceStateList" :key="index" :label="item.title" :value="item.id">
|
||||
<el-option
|
||||
v-for="(item, index) in deviceStateList"
|
||||
:key="index"
|
||||
:label="item.title"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@ -115,8 +128,16 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-main">
|
||||
<div v-if="!viewAllShow" class="content-left" :class="{ 'content-left_active': isShowDetail }">
|
||||
<div @click="isShowDetail = true" class="content-left_box" v-if="!isShowDetail">
|
||||
<div
|
||||
v-if="!viewAllShow"
|
||||
class="content-left"
|
||||
:class="{ 'content-left_active': isShowDetail }"
|
||||
>
|
||||
<div
|
||||
@click="isShowDetail = true"
|
||||
class="content-left_box"
|
||||
v-if="!isShowDetail"
|
||||
>
|
||||
<div>工作票详情</div>
|
||||
<div></div>
|
||||
</div>
|
||||
@ -168,7 +189,10 @@
|
||||
</div>
|
||||
<div class="box1">
|
||||
<div>施工时间</div>
|
||||
<div>{{ workTicketDetail.constructionTimeBegin }} - {{ workTicketDetail.constructionTimeEnd }}</div>
|
||||
<div>
|
||||
{{ workTicketDetail.constructionTimeBegin }} -
|
||||
{{ workTicketDetail.constructionTimeEnd }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="box1">
|
||||
<div>申请时间</div>
|
||||
@ -188,7 +212,12 @@
|
||||
<div class="box1">
|
||||
<div>工作票附件</div>
|
||||
<div class="content-img">
|
||||
<template v-if="workTicketDetail.workTicketAttachment && workTicketDetail.workTicketAttachment.length > 0">
|
||||
<template
|
||||
v-if="
|
||||
workTicketDetail.workTicketAttachment &&
|
||||
workTicketDetail.workTicketAttachment.length > 0
|
||||
"
|
||||
>
|
||||
<el-image
|
||||
v-for="item in workTicketDetail.workTicketAttachment"
|
||||
:key="item.url"
|
||||
@ -207,7 +236,11 @@
|
||||
<div></div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
<div @click="downloadFileBtn(BASEURL + '/image/' + item.url, item.name)">
|
||||
<div
|
||||
@click="
|
||||
downloadFileBtn(BASEURL + '/image/' + item.url, item.name)
|
||||
"
|
||||
>
|
||||
<div></div>
|
||||
<div>下载</div>
|
||||
</div>
|
||||
@ -218,7 +251,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right" :class="{ 'content-right_active': isShowDetail }">
|
||||
<el-scrollbar :class="viewAllShow ? 'content-right_box-main1' : 'content-right_box-main'">
|
||||
<el-scrollbar
|
||||
:class="viewAllShow ? 'content-right_box-main1' : 'content-right_box-main'"
|
||||
>
|
||||
<!-- v-infinite-scroll="initPoliceCameraItemList" -->
|
||||
<div
|
||||
style="height: 100%"
|
||||
@ -227,10 +262,14 @@
|
||||
:class="{
|
||||
'content-right-top2': viewAllShow,
|
||||
'content-right-top1': isShowDetail && !viewAllShow,
|
||||
'content-right-top': !isShowDetail && !viewAllShow
|
||||
'content-right-top': !isShowDetail && !viewAllShow,
|
||||
}"
|
||||
>
|
||||
<div v-for="item in policeCameraItemList" :key="item.itemId" :data-key="item.key">
|
||||
<div
|
||||
v-for="item in policeCameraItemList"
|
||||
:key="item.itemId"
|
||||
:data-key="item.key"
|
||||
>
|
||||
<div class="hls-video">
|
||||
<!-- <HlsPlayer :src="'https://gcalic.v.myalicdn.com/gc/wgw05_1/index.m3u8'" :autoplay="true" :controls="true" /> -->
|
||||
<!-- <HlsPlayer
|
||||
@ -243,8 +282,8 @@
|
||||
:devList="[
|
||||
{
|
||||
...item,
|
||||
status: workTicketDetail.status
|
||||
}
|
||||
status: workTicketDetail.status,
|
||||
},
|
||||
]"
|
||||
:key="'player-' + item.itemId"
|
||||
:playerId="'player-' + item.itemId"
|
||||
@ -307,7 +346,12 @@
|
||||
<span v-else> 第{{ row.no }}次作业 </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :width="300" align="center" prop="startTime" label="总时间段">
|
||||
<el-table-column
|
||||
:width="300"
|
||||
align="center"
|
||||
prop="startTime"
|
||||
label="总时间段"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.fileType">
|
||||
{{ row.startTime ? row.startTime : "暂无" }} -
|
||||
@ -321,13 +365,23 @@
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="begin" label="总时长">
|
||||
<template #default="{ row }">
|
||||
<span class="time-diff" v-if="row.fileType">{{ itemDiffUp(row.startTime, row.endTime) }}</span>
|
||||
<span class="time-diff" v-else>{{ itemDiffUp(row.begin, row.end) }}</span>
|
||||
<span class="time-diff" v-if="row.fileType">{{
|
||||
itemDiffUp(row.startTime, row.endTime)
|
||||
}}</span>
|
||||
<span class="time-diff" v-else>{{
|
||||
itemDiffUp(row.begin, row.end)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="fileType" label="操作">
|
||||
<template #default="{ row }">
|
||||
<div @click="onViewrePlayClick(row)" v-if="row.fileType" class="viewreplay">查看回放</div>
|
||||
<div
|
||||
@click="onViewrePlayClick(row)"
|
||||
v-if="row.fileType"
|
||||
class="viewreplay"
|
||||
>
|
||||
查看回放
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -357,7 +411,12 @@
|
||||
<div>时长:{{ viewreplayInfo.duration }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<audio ref="audioRefs" :src="BASEURL + '/image/' + viewreplayInfo.fileUrl" controls loop></audio>
|
||||
<audio
|
||||
ref="audioRefs"
|
||||
:src="BASEURL + '/image/' + viewreplayInfo.fileUrl"
|
||||
controls
|
||||
loop
|
||||
></audio>
|
||||
<div
|
||||
class="bodyworn_pause"
|
||||
:class="{ bodyworn_play: viewreplayInfo.is_play }"
|
||||
@ -367,8 +426,14 @@
|
||||
<div class="video-content" v-else>
|
||||
<div class="card-img">
|
||||
<video controls v-if="viewreplayInfo.fileType == 3">
|
||||
<source :src="BASEURL + '/image/' + viewreplayInfo.fileUrl" type="video/mp4" />
|
||||
<source :src="BASEURL + '/image/' + viewreplayInfo.fileUrl" type="video/webm" />
|
||||
<source
|
||||
:src="BASEURL + '/image/' + viewreplayInfo.fileUrl"
|
||||
type="video/mp4"
|
||||
/>
|
||||
<source
|
||||
:src="BASEURL + '/image/' + viewreplayInfo.fileUrl"
|
||||
type="video/webm"
|
||||
/>
|
||||
您的浏览器不支持 HTML5 video 标签。
|
||||
</video>
|
||||
<el-image
|
||||
@ -381,7 +446,9 @@
|
||||
<template v-if="viewreplayInfo.fileType == 3">
|
||||
<div class="card-flex">
|
||||
<div class="card-num webkit-clamp_1">{{ viewreplayInfo.fileName }}</div>
|
||||
<div class="card-num">{{ (viewreplayInfo.fileLen / (1024 * 1024)).toFixed(2) }}MB</div>
|
||||
<div class="card-num">
|
||||
{{ (viewreplayInfo.fileLen / (1024 * 1024)).toFixed(2) }}MB
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-flex">
|
||||
<div>{{ viewreplayInfo.startTime }}</div>
|
||||
@ -423,7 +490,10 @@
|
||||
</div>
|
||||
<div>
|
||||
<div>设备状态</div>
|
||||
<div class="state-box" :class="{ 'state-box_offline': equipmentDetail.deviceState != 1 }">
|
||||
<div
|
||||
class="state-box"
|
||||
:class="{ 'state-box_offline': equipmentDetail.deviceState != 1 }"
|
||||
>
|
||||
{{ equipmentDetail.deviceState == 1 ? "在线" : "离线" }}
|
||||
</div>
|
||||
</div>
|
||||
@ -447,19 +517,29 @@
|
||||
<div>
|
||||
<div>工作票编号</div>
|
||||
<div>
|
||||
{{ workTicketDetail.workTicketNumber ? workTicketDetail.workTicketNumber : "--" }}
|
||||
{{
|
||||
workTicketDetail.workTicketNumber
|
||||
? workTicketDetail.workTicketNumber
|
||||
: "--"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>施工区域</div>
|
||||
<div>
|
||||
{{ workTicketDetail.constructionAreaNames ? workTicketDetail.constructionAreaNames : "--" }}
|
||||
{{
|
||||
workTicketDetail.constructionAreaNames
|
||||
? workTicketDetail.constructionAreaNames
|
||||
: "--"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>申请单位</div>
|
||||
<div>
|
||||
{{ workTicketDetail.applicantNames ? workTicketDetail.applicantNames : "--" }}
|
||||
{{
|
||||
workTicketDetail.applicantNames ? workTicketDetail.applicantNames : "--"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@ -478,7 +558,9 @@
|
||||
<div>
|
||||
<div>申请时间</div>
|
||||
<div>
|
||||
{{ workTicketDetail.applicationTime ? workTicketDetail.applicationTime : "--" }}
|
||||
{{
|
||||
workTicketDetail.applicationTime ? workTicketDetail.applicationTime : "--"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@ -499,7 +581,12 @@
|
||||
<div class="box1">
|
||||
<div>工作票附件</div>
|
||||
<div class="content-img">
|
||||
<template v-if="workTicketDetail.workTicketAttachment && workTicketDetail.workTicketAttachment.length > 0">
|
||||
<template
|
||||
v-if="
|
||||
workTicketDetail.workTicketAttachment &&
|
||||
workTicketDetail.workTicketAttachment.length > 0
|
||||
"
|
||||
>
|
||||
<el-image
|
||||
v-for="item in workTicketDetail.workTicketAttachment"
|
||||
:key="item.url"
|
||||
@ -547,7 +634,7 @@ import {
|
||||
getWorkTicketHistoryListApi,
|
||||
getVideoItemInfoPoliceCameraItemApi,
|
||||
getPoliceCameraItemPageApi,
|
||||
selectAllProjectInfoList
|
||||
selectAllProjectInfoList,
|
||||
} from "@/api/modules/workTicket";
|
||||
import { getUseProjectVideoConfigApi } from "@/api/modules/tower";
|
||||
import dayjs from "dayjs";
|
||||
@ -559,64 +646,65 @@ const workTicketCountList = ref([
|
||||
{
|
||||
label: "施工中",
|
||||
value: 0,
|
||||
stateType: 2
|
||||
stateType: 2,
|
||||
},
|
||||
{
|
||||
label: "全部",
|
||||
value: 0,
|
||||
stateType: ""
|
||||
stateType: "",
|
||||
},
|
||||
{
|
||||
label: "未开始",
|
||||
value: 0,
|
||||
stateType: 1
|
||||
stateType: 1,
|
||||
},
|
||||
{
|
||||
label: "暂停中",
|
||||
value: 0,
|
||||
stateType: 3
|
||||
stateType: 3,
|
||||
},
|
||||
{
|
||||
label: "已完工",
|
||||
value: 0,
|
||||
stateType: 4
|
||||
}
|
||||
stateType: 4,
|
||||
},
|
||||
]);
|
||||
const getWorkTicketCountWorkTicket = showLoading => {
|
||||
const getWorkTicketCountWorkTicket = (showLoading) => {
|
||||
getWorkTicketCountWorkTicketApi(
|
||||
{
|
||||
projectSn: store.sn
|
||||
projectSn: store.sn,
|
||||
},
|
||||
showLoading
|
||||
).then(res => {
|
||||
).then((res) => {
|
||||
if (res.code == 200) {
|
||||
// workTicketCountList.value = res.result;
|
||||
workTicketCountList.value = [
|
||||
{
|
||||
label: "施工中",
|
||||
value: res.result.ing,
|
||||
stateType: 2
|
||||
stateType: 2,
|
||||
},
|
||||
{
|
||||
label: "全部",
|
||||
stateType: "",
|
||||
value: res.result.ing + res.result.done + res.result.pause + res.result.notStarted
|
||||
value:
|
||||
res.result.ing + res.result.done + res.result.pause + res.result.notStarted,
|
||||
},
|
||||
{
|
||||
label: "未开始",
|
||||
value: res.result.notStarted,
|
||||
stateType: 1
|
||||
stateType: 1,
|
||||
},
|
||||
{
|
||||
label: "暂停中",
|
||||
value: res.result.pause,
|
||||
stateType: 3
|
||||
stateType: 3,
|
||||
},
|
||||
{
|
||||
label: "已完工",
|
||||
value: res.result.done,
|
||||
stateType: 4
|
||||
}
|
||||
stateType: 4,
|
||||
},
|
||||
];
|
||||
}
|
||||
});
|
||||
@ -628,10 +716,10 @@ const workTicketInfo = reactive({
|
||||
constructionTime: [],
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
total: 0
|
||||
total: 0,
|
||||
});
|
||||
const workTicketList = ref([]);
|
||||
const onWorkTicketStateClick = row => {
|
||||
const onWorkTicketStateClick = (row) => {
|
||||
workTicketInfo.status = row.stateType;
|
||||
onWorkTicketQuery();
|
||||
};
|
||||
@ -650,14 +738,20 @@ const onWorkTicketRefresh = () => {
|
||||
const getWorkTicketPage = () => {
|
||||
const params = {
|
||||
...workTicketInfo,
|
||||
applicationTime_begin: workTicketInfo.constructionTime.length > 0 ? workTicketInfo.constructionTime[0] : "",
|
||||
applicationTime_end: workTicketInfo.constructionTime.length > 0 ? workTicketInfo.constructionTime[1] : ""
|
||||
applicationTime_begin:
|
||||
workTicketInfo.constructionTime.length > 0
|
||||
? workTicketInfo.constructionTime[0]
|
||||
: "",
|
||||
applicationTime_end:
|
||||
workTicketInfo.constructionTime.length > 0
|
||||
? workTicketInfo.constructionTime[1]
|
||||
: "",
|
||||
};
|
||||
delete params.constructionTime;
|
||||
getWorkTicketPageApi({
|
||||
...params,
|
||||
projectSn: store.sn
|
||||
}).then(res => {
|
||||
projectSn: store.sn,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
workTicketList.value = workTicketList.value.concat(res.result.records);
|
||||
if (workTicketInfo.pageNo == 1) {
|
||||
@ -671,9 +765,15 @@ const getWorkTicketPage = () => {
|
||||
});
|
||||
};
|
||||
const load = () => {
|
||||
console.log("load", workTicketInfo.pageNo, workTicketInfo.pageSize, workTicketInfo.total);
|
||||
console.log(
|
||||
"load",
|
||||
workTicketInfo.pageNo,
|
||||
workTicketInfo.pageSize,
|
||||
workTicketInfo.total
|
||||
);
|
||||
if (workTicketInfo.pageNo > 0 && workTicketInfo.total == 0) return;
|
||||
if (workTicketInfo.pageNo * workTicketInfo.pageSize > workTicketInfo.total) return ElMessage.warning("没有更多数据了!");
|
||||
if (workTicketInfo.pageNo * workTicketInfo.pageSize > workTicketInfo.total)
|
||||
return ElMessage.warning("没有更多数据了!");
|
||||
workTicketInfo.pageNo += 1;
|
||||
getWorkTicketPage();
|
||||
};
|
||||
@ -705,7 +805,7 @@ const onViewAllClick = () => {
|
||||
const equipmentDialog = ref(false);
|
||||
const equipmentDetail = ref({});
|
||||
// 查看设备详情
|
||||
const onEquipmentClick = row => {
|
||||
const onEquipmentClick = (row) => {
|
||||
equipmentDetail.value = row;
|
||||
getWorkTicketQueryById(equipmentDetail.value.workTicketId);
|
||||
equipmentDialog.value = true;
|
||||
@ -715,11 +815,11 @@ const viewreplayInfo = ref({});
|
||||
const viewreplayDialog = ref(false);
|
||||
const audioRefs = ref(null);
|
||||
// 查看回放
|
||||
const onViewrePlayClick = row => {
|
||||
const onViewrePlayClick = (row) => {
|
||||
console.log(111);
|
||||
viewreplayInfo.value = {
|
||||
...row,
|
||||
is_play: false
|
||||
is_play: false,
|
||||
};
|
||||
viewreplayDialog.value = true;
|
||||
};
|
||||
@ -735,10 +835,10 @@ const onAudioClick = () => {
|
||||
};
|
||||
const isShowDetail = ref(true);
|
||||
const workTicketDetail = ref({
|
||||
workTicketAttachment: []
|
||||
workTicketAttachment: [],
|
||||
});
|
||||
// 用来判断数据是否为json格式
|
||||
const isJSON = str => {
|
||||
const isJSON = (str) => {
|
||||
try {
|
||||
JSON.parse(str);
|
||||
} catch (e) {
|
||||
@ -765,30 +865,33 @@ const onViewDetail = (row, flag) => {
|
||||
const getWorkTicketQueryById = (id) => {
|
||||
getWorkTicketQueryByIdApi({
|
||||
id: id,
|
||||
projectSn: store.sn
|
||||
}).then(res => {
|
||||
projectSn: store.sn,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
workTicketDetail.value = {
|
||||
...res.result,
|
||||
workTicketAttachment:
|
||||
isJSON(res.result.workTicketAttachment) && JSON.parse(res.result.workTicketAttachment) instanceof Array
|
||||
isJSON(res.result.workTicketAttachment) &&
|
||||
JSON.parse(res.result.workTicketAttachment) instanceof Array
|
||||
? JSON.parse(res.result.workTicketAttachment)
|
||||
: [],
|
||||
safetyRiskAnalysis:
|
||||
isJSON(res.result.safetyRiskAnalysis) && JSON.parse(res.result.safetyRiskAnalysis) instanceof Array
|
||||
isJSON(res.result.safetyRiskAnalysis) &&
|
||||
JSON.parse(res.result.safetyRiskAnalysis) instanceof Array
|
||||
? JSON.parse(res.result.safetyRiskAnalysis)
|
||||
: [],
|
||||
otherAttachment:
|
||||
isJSON(res.result.otherAttachment) && JSON.parse(res.result.otherAttachment) instanceof Array
|
||||
isJSON(res.result.otherAttachment) &&
|
||||
JSON.parse(res.result.otherAttachment) instanceof Array
|
||||
? JSON.parse(res.result.otherAttachment)
|
||||
: []
|
||||
: [],
|
||||
};
|
||||
}
|
||||
});
|
||||
};
|
||||
const historySearchInfo = reactive({
|
||||
beginTime: [],
|
||||
value: ""
|
||||
value: "",
|
||||
});
|
||||
const workTicketHistoryList = ref([]);
|
||||
const onWorkTicketHistoryRefresh = () => {
|
||||
@ -800,20 +903,22 @@ const onWorkTicketHistoryRefresh = () => {
|
||||
const getWorkTicketHistoryList = () => {
|
||||
const params = {
|
||||
...historySearchInfo,
|
||||
begin_end: historySearchInfo.beginTime.length > 0 ? historySearchInfo.beginTime[0] : "",
|
||||
end_start: historySearchInfo.beginTime.length > 0 ? historySearchInfo.beginTime[1] : ""
|
||||
begin_end:
|
||||
historySearchInfo.beginTime.length > 0 ? historySearchInfo.beginTime[0] : "",
|
||||
end_start:
|
||||
historySearchInfo.beginTime.length > 0 ? historySearchInfo.beginTime[1] : "",
|
||||
};
|
||||
delete params.beginTime;
|
||||
getWorkTicketHistoryListApi({
|
||||
...params,
|
||||
workTicketId: workTicketDetail.value.id,
|
||||
projectSn: store.sn
|
||||
}).then(res => {
|
||||
projectSn: store.sn,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
const resultList = res.result.sort((a, b) => a.no - b.no);
|
||||
workTicketHistoryList.value = resultList.map(item => {
|
||||
workTicketHistoryList.value = resultList.map((item) => {
|
||||
return {
|
||||
...item
|
||||
...item,
|
||||
};
|
||||
});
|
||||
}
|
||||
@ -824,21 +929,21 @@ const policeCameraItemInfo = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 6,
|
||||
total: 0,
|
||||
deviceState: ""
|
||||
deviceState: "",
|
||||
});
|
||||
const deviceStateList = [
|
||||
{
|
||||
id: "",
|
||||
title: "全部设备"
|
||||
title: "全部设备",
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
title: "施工中在线"
|
||||
title: "施工中在线",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "施工中离线"
|
||||
}
|
||||
title: "施工中离线",
|
||||
},
|
||||
];
|
||||
const policeCameraItemList = ref([]);
|
||||
const initPoliceCameraItemList = () => {
|
||||
@ -847,7 +952,7 @@ const initPoliceCameraItemList = () => {
|
||||
getPoliceCameraItemPage();
|
||||
};
|
||||
|
||||
const onCurrentChange = val => {
|
||||
const onCurrentChange = (val) => {
|
||||
policeCameraItemInfo.pageNo = val;
|
||||
policeCameraItemList.value = [];
|
||||
getPoliceCameraItemPage();
|
||||
@ -855,15 +960,15 @@ const onCurrentChange = val => {
|
||||
// 分页列表查询执法记录仪设备列表信息
|
||||
const getPoliceCameraItemPage = () => {
|
||||
const params = {
|
||||
...policeCameraItemInfo
|
||||
...policeCameraItemInfo,
|
||||
};
|
||||
getPoliceCameraItemPageApi({
|
||||
...params,
|
||||
ticketId: viewAllShow.value ? "" : workTicketDetail.value.id,
|
||||
// deviceState: viewAllShow.value ? 1 : "",
|
||||
bindTicket: viewAllShow.value ? 1 : "",
|
||||
projectSn: store.sn
|
||||
}).then(async res => {
|
||||
projectSn: store.sn,
|
||||
}).then(async (res) => {
|
||||
if (res.code == 200) {
|
||||
const records = res.result.records;
|
||||
// await Promise.all(
|
||||
@ -881,30 +986,38 @@ const getPoliceCameraItemPage = () => {
|
||||
});
|
||||
};
|
||||
const policeCameraItemLoad = () => {
|
||||
console.log("load", policeCameraItemInfo.pageNo, policeCameraItemInfo.pageSize, policeCameraItemInfo.total);
|
||||
console.log(
|
||||
"load",
|
||||
policeCameraItemInfo.pageNo,
|
||||
policeCameraItemInfo.pageSize,
|
||||
policeCameraItemInfo.total
|
||||
);
|
||||
if (policeCameraItemInfo.pageNo > 0 && policeCameraItemInfo.total == 0) return;
|
||||
if (policeCameraItemInfo.pageNo * policeCameraItemInfo.pageSize > policeCameraItemInfo.total)
|
||||
if (
|
||||
policeCameraItemInfo.pageNo * policeCameraItemInfo.pageSize >
|
||||
policeCameraItemInfo.total
|
||||
)
|
||||
return ElMessage.warning("没有更多数据了!");
|
||||
policeCameraItemInfo.pageNo += 1;
|
||||
getPoliceCameraItemPage();
|
||||
};
|
||||
|
||||
const getVideoItemInfoPoliceCameraItem = async row => {
|
||||
const getVideoItemInfoPoliceCameraItem = async (row) => {
|
||||
const res = await getVideoItemInfoPoliceCameraItemApi({
|
||||
itemId: row.itemId,
|
||||
projectSn: store.sn
|
||||
projectSn: store.sn,
|
||||
});
|
||||
if (res.code != 200) return null;
|
||||
return res.result.videoInfo;
|
||||
};
|
||||
const videoConfig = ref({
|
||||
enableNotPlugin: 1
|
||||
enableNotPlugin: 1,
|
||||
});
|
||||
//查询项目各类型的视频配置信息
|
||||
const getProjectVideoConfigList = () => {
|
||||
getUseProjectVideoConfigApi({
|
||||
projectSn: store.sn
|
||||
}).then(res => {
|
||||
projectSn: store.sn,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if (res.result) {
|
||||
videoConfig.value = res.result;
|
||||
@ -926,29 +1039,31 @@ const onRefresh = () => {
|
||||
const statusList = [
|
||||
{
|
||||
value: 1,
|
||||
label: "未开始"
|
||||
label: "未开始",
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: "施工中"
|
||||
label: "施工中",
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: "暂停中"
|
||||
label: "暂停中",
|
||||
},
|
||||
{
|
||||
value: 4,
|
||||
label: "已完工"
|
||||
}
|
||||
label: "已完工",
|
||||
},
|
||||
];
|
||||
const updateStatus = computed(() => {
|
||||
return id => {
|
||||
const find = statusList.find(item => item.value == id);
|
||||
return (id) => {
|
||||
const find = statusList.find((item) => item.value == id);
|
||||
return find ? find.label : "--";
|
||||
};
|
||||
});
|
||||
const itemListDevNameUp = computed(() => {
|
||||
return workTicketDetail.value.itemList ? workTicketDetail.value.itemList.map(item => item.devName).join("、") : "";
|
||||
return workTicketDetail.value.itemList
|
||||
? workTicketDetail.value.itemList.map((item) => item.devName).join("、")
|
||||
: "";
|
||||
});
|
||||
const workTicketTypeTreeList = ref([]);
|
||||
// 获取工作票类型
|
||||
@ -956,9 +1071,9 @@ const getWorkTicketTypeTreePage = () => {
|
||||
let data = {
|
||||
projectSn: store.sn,
|
||||
pageNo: 1,
|
||||
pageSize: -1
|
||||
pageSize: -1,
|
||||
};
|
||||
getWorkTicketTypeTreePageApi(data).then(res => {
|
||||
getWorkTicketTypeTreePageApi(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
workTicketTypeTreeList.value = res.result.records;
|
||||
}
|
||||
@ -982,14 +1097,14 @@ const itemDiffUp = computed(() => {
|
||||
// 下载附件
|
||||
const downloadFileBtn = (url, name) => {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
.then((response) => {
|
||||
// 处理响应
|
||||
if (!response.ok) {
|
||||
throw new Error("下载失败");
|
||||
}
|
||||
return response.blob();
|
||||
})
|
||||
.then(blob => {
|
||||
.then((blob) => {
|
||||
// 创建一个下载链接
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
// 创建一个<a>元素
|
||||
@ -1005,7 +1120,7 @@ const downloadFileBtn = (url, name) => {
|
||||
// 处理导出的文件
|
||||
// 这里可以使用blob对象来获取导出的文件内容或者将其保存到本地
|
||||
})
|
||||
.catch(error => {
|
||||
.catch((error) => {
|
||||
// 处理错误
|
||||
console.error(error);
|
||||
});
|
||||
@ -1013,21 +1128,23 @@ const downloadFileBtn = (url, name) => {
|
||||
const projectList = ref([]);
|
||||
const getSelectAllProjectInfoList = () => {
|
||||
selectAllProjectInfoList({
|
||||
sn: store.sn
|
||||
}).then(res => {
|
||||
sn: store.sn,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
projectList.value = [
|
||||
{
|
||||
projectName: "全部项目",
|
||||
projectSn: store.sn
|
||||
projectSn: store.sn,
|
||||
},
|
||||
...res.result
|
||||
...res.result,
|
||||
];
|
||||
}
|
||||
});
|
||||
};
|
||||
const projectSnName = computed(() => {
|
||||
const find = projectList.value.find(item => item.projectSn == workTicketDetail.value.projectSn);
|
||||
const find = projectList.value.find(
|
||||
(item) => item.projectSn == workTicketDetail.value.projectSn
|
||||
);
|
||||
return find ? find.projectName : "";
|
||||
});
|
||||
</script>
|
||||
@ -1159,7 +1276,12 @@ const projectSnName = computed(() => {
|
||||
.el-input,
|
||||
.el-cascader {
|
||||
width: 147px;
|
||||
border-image: linear-gradient(180deg, rgba(148, 160, 180, 1), rgba(92, 111, 141, 1)) 1 1;
|
||||
border-image: linear-gradient(
|
||||
180deg,
|
||||
rgba(148, 160, 180, 1),
|
||||
rgba(92, 111, 141, 1)
|
||||
)
|
||||
1 1;
|
||||
}
|
||||
|
||||
:deep(.el-date-editor) {
|
||||
@ -1273,7 +1395,11 @@ const projectSnName = computed(() => {
|
||||
justify-content: space-between;
|
||||
padding: 9px 10px 9px 16px;
|
||||
border: 1px solid transparent;
|
||||
background: linear-gradient(180deg, rgba(0, 170, 255, 0.3) 0%, rgba(0, 170, 255, 0) 100%);
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(0, 170, 255, 0.3) 0%,
|
||||
rgba(0, 170, 255, 0) 100%
|
||||
);
|
||||
|
||||
> div:first-child {
|
||||
display: flex;
|
||||
@ -1434,7 +1560,8 @@ const projectSnName = computed(() => {
|
||||
> div:first-child {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url("@/assets/images/workTicket/index-icon9.png") no-repeat;
|
||||
background: url("@/assets/images/workTicket/index-icon9.png")
|
||||
no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
@ -1445,7 +1572,8 @@ const projectSnName = computed(() => {
|
||||
> div:first-child {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url("@/assets/images/workTicket/index-icon10.png") no-repeat;
|
||||
background: url("@/assets/images/workTicket/index-icon10.png")
|
||||
no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
@ -1796,6 +1924,8 @@ const projectSnName = computed(() => {
|
||||
padding: 0 20px 5px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
overflow-y: auto;
|
||||
max-height: 85vh;
|
||||
// flex-wrap: wrap;
|
||||
.content-right {
|
||||
width: 48%;
|
||||
@ -1843,7 +1973,8 @@ const projectSnName = computed(() => {
|
||||
> div:first-child {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url("~@/assets/images/companyBigScreen/terminalOperation/index-icon9.png") no-repeat;
|
||||
background: url("~@/assets/images/companyBigScreen/terminalOperation/index-icon9.png")
|
||||
no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
@ -1854,7 +1985,8 @@ const projectSnName = computed(() => {
|
||||
> div:first-child {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url("~@/assets/images/companyBigScreen/terminalOperation/index-icon10.png") no-repeat;
|
||||
background: url("~@/assets/images/companyBigScreen/terminalOperation/index-icon10.png")
|
||||
no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@ -544,7 +544,7 @@ const play = (row, index) => {
|
||||
reloadBtn.textContent = "重新加载";
|
||||
reloadBtn.addEventListener("click", (e) => {
|
||||
e.stopPropagation();
|
||||
onReload(row.id);
|
||||
onReload(row.itemId);
|
||||
});
|
||||
|
||||
// 将图片添加到按钮
|
||||
@ -588,9 +588,9 @@ const play = (row, index) => {
|
||||
const onReload = (id) => {
|
||||
console.log("重新加载", id);
|
||||
// 这里添加重新加载的逻辑
|
||||
const findItem = videoInfo.devH5List.find(item => item.id === id);
|
||||
const findItem = videoInfo.devH5List.find(item => item.itemId === id);
|
||||
if (findItem) {
|
||||
play(findItem, videoInfo.iWndIndex);
|
||||
play(findItem, findItem.eIndex);
|
||||
}
|
||||
};
|
||||
const onTwoSubmit = num => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user