类型:开发

描述:
This commit is contained in:
2025-05-01 16:00:33 +08:00
parent 5563dc0536
commit a1277eb04d
8 changed files with 72 additions and 50 deletions

View File

@@ -15,15 +15,15 @@
:key="index"
@click="handleItem(item)"
>
<div
v-if="item.isCollect == 1"
class="item-unfollow"
<div
v-if="item.isCollect == 1"
class="item-unfollow"
@click.stop="handleCollect(item.cameraIndexCode, index)">取消关注</div>
<div
v-if="item.isCollect == 0"
class="item-unfollow"
<div
v-if="item.isCollect == 0"
class="item-unfollow"
@click.stop="handleCollect(item.cameraIndexCode, index)">关注</div>
<video class="item-video" :id="'video' + index" muted autoplay :controls="false">
<source type="application/x-mpegURL" />
</video>
@@ -43,8 +43,8 @@
/>
</div>
</div>
</el-dialog>
</div>
<video-dialog v-model="videoShow" :src="src" :isDiy="isDiy" :isCollect="isCollect" :cameraIndexCode="cameraIndexCode" />
@@ -58,7 +58,7 @@
import Hls from 'hls.js'
import pubSub from 'pubsub-js'
let props = defineProps({
events: {
type: Object,
@@ -76,7 +76,7 @@
let isDiy = ref(0)
let params = reactive({
pageNum: 1,
pageSize: 15,
pageSize: 6,
businessScenicArea:'',
})
@@ -137,11 +137,10 @@
let cond = ref(false)
const getVideoList = async () => {
let res = await getSpotVideoEvents(params)
console.log(res,'rrrrrrrrr')
list.value = res.data
total.value = res.total
setTimeout(()=>{cond.value = true},1500)
nextTick(() => {
list.value.forEach(async (item, index) => {
var video = document.getElementById(`video${index}`)

View File

@@ -24,9 +24,9 @@
>
<span class="statistic-title">{{ item.name }}</span>
<span v-if="item.value > 0" class="statistic-value">
<span class="prefix">排队</span>
<countup class="value" :end-val="item.value" />
<span class="suffix"></span>
<span class="prefix" :class="{ active: item.type == 2}">排队</span>
<countup class="value" :class="{ active: item.type == 2}" :end-val="item.value" />
<span class="suffix" :class="{ active: item.type == 2}"></span>
</span>
<span v-else class="statistic-value">暂无</span>
</div>
@@ -129,7 +129,7 @@
<TicketSource :list="homeStore.userPortraitData.channel" :width="230" :height="260" />
</div>
</div>
</div>
<all-list :events="events" v-model="allShow" />
</template>
@@ -150,7 +150,7 @@
ssname: '直通车购票'
}
])
const homeStore = useHomeStore()
const countList = ref([])
const CheckClick = (index)=>{
@@ -257,6 +257,7 @@
&:nth-child(1) {
margin-right: vw(10);
}
.statistic {
display: flex;
margin-top: vh(12);
@@ -287,11 +288,13 @@
.value {
font-weight: bold;
font-size: vw(28);
}
.active{
color: #ff4400;
}
.prefix,
.suffix {
color: #ff4400;
font-size: vw(12);
margin-bottom: vh(4);
}

View File

@@ -370,8 +370,7 @@
color: #ffffff;
}
.error {
color: #F15A25;
color:#DCBB48;
color:#DCBB48;
}
.success {
color: #02F9FA;

View File

@@ -70,7 +70,6 @@
homeStore.setTrafficInfoData(val)
break
case 'carStopInfo':
console.log(val,'carStopInfocarStopInfocarStopInfocarStopInfocarStopInfo')
homeStore.setCarStopInfoData(val)
break
case 'carShipData':
@@ -97,6 +96,13 @@
scenicSpotId: ''
})
)
sendMessage(
JSON.stringify({
action: 'start',
type: 'queuingInScenicSpots',
scenicSpotId: ''
})
)
sendMessage(
JSON.stringify({
action: 'start',

View File

@@ -19,7 +19,7 @@
</div>
<div class="traffic-item">
<span class="traffic-item__title">异常点位 </span>
<countup class="traffic-item__value--error" :end-val="aiAnalyzeData.abnormalPoints" />
<countup :class="aiAnalyzeData.abnormalPoints>0?'traffic-item__value--error':'traffic-item__value--success'" :end-val="aiAnalyzeData.abnormalPoints" />
</div>
</div>
<Title1 title="景区智能AI分析" />
@@ -131,7 +131,7 @@
<div class="monitor-statistics-item">
<span class="monitor-statistics-item__label">异常点位</span>
<countup
class="monitor-statistics-item__value"
:class="pointAlarmData.abnormalPoints>0?'monitor-statistics-item__error':'monitor-statistics-item__value'"
:end-val="pointAlarmData.abnormalPoints"
/>
</div>
@@ -153,23 +153,23 @@
<div class="traffic-alarm-statistics">
<img class="traffic-alarm-statistics-icon" src="@/assets/images/t-ico-2.png" />
<div class="traffic-alarm-statistics-item">
<span class="traffic-alarm-statistics-item__label">当前告警总数</span>
<span class="traffic-alarm-statistics-item__label">当前告警</span>
<countup
class="traffic-alarm-statistics-item__value"
:class="pointAlarmData.abnormalAlarm>0?'traffic-alarm-statistics-item__error':'traffic-alarm-statistics-item__value'"
:end-val="pointAlarmData.abnormalAlarm"
/>
</div>
<div class="traffic-alarm-statistics-item">
<span class="traffic-alarm-statistics-item__label">异常告警总数</span>
<div :class="pointAlarmData.allAbnormalAlarm>0?'traffic-alarm-statistics-item__error':'traffic-alarm-statistics-item__value'">
<span class="traffic-alarm-statistics-item__label">异常告警</span>
<countup
class="traffic-alarm-statistics-item__value"
:end-val="pointAlarmData.allAbnormalAlarm"
/>
</div>
<div class="traffic-alarm-statistics-item">
<span class="traffic-alarm-statistics-item__label">已解除告警总数</span>
<span class="traffic-alarm-statistics-item__label">已解除告警</span>
<countup
class="traffic-alarm-statistics-item__value"
:class="pointAlarmData.handled>0?'traffic-alarm-statistics-item__error':'traffic-alarm-statistics-item__value'"
:end-val="pointAlarmData.handled"
/>
</div>
@@ -394,9 +394,12 @@
color: #ffffff;
}
&:nth-child(4) {
.monitor-statistics-item__value {
.monitor-statistics-item__error {
color: #e21b1b;
}
.monitor-statistics-item__value {
color: #02f9fa;
}
}
}
}
@@ -424,7 +427,14 @@
margin-top: vh(10);
font-weight: bold;
font-size: vw(24);
color: #e21b1b;
color: #02f9fa;
text-align: center;
}
&__error {
margin-top: vh(10);
font-weight: bold;
font-size: vw(24);
color: #ff4400;
text-align: center;
}
&:nth-child(4) {
@@ -644,6 +654,12 @@
font-size: vw(24);
color: #02f9fa;
}
&-error{
margin-top: vh(10);
font-weight: bold;
font-size: vw(24);
color: #ff4400;
}
.count {
font-weight: bold;
font-size: vw(28);

View File

@@ -16,7 +16,7 @@
<div>
<div v-for="(item, index) in scenicStore.scenicSpotData.infoList" :key="index">
<div class="label">{{ item.name }}</div>
<p class="value" :class="{ error: [3, 4].includes(item.type) }">{{ item.value }}</p>
<p class="value" :class="{ error: item.type==2,warning: item.type==1 }">{{ item.value }}</p>
</div>
</div>
</div>
@@ -65,7 +65,7 @@
<div>
<div class="bg">
<span class="label">今日紧急工单数</span>
<span class="value error">
<span class="value" :class="scenicStore.wordkOrderData.warnData.count>1?'error':'success'">
<countup :end-val="scenicStore.wordkOrderData.warnData.count" />
</span>
</div>
@@ -112,7 +112,7 @@
<div class="item" v-for="(item, index) in gridData" :key="index">
<div>{{ item.time }}</div>
<div>{{ item.value }}</div>
</div>
</div>
</div>
@@ -181,9 +181,9 @@ import pubSub from 'pubsub-js'
}
onMounted(() => {
scenicChange = PubSub.subscribe('scenicChange', (msg, data) => {
gridTitle.value = data.name
hrefItem.value = data
// initMap('scenic-map', data.lng, data.lat, 15)
// map.value.setDisplayOptions({
@@ -266,6 +266,9 @@ import pubSub from 'pubsub-js'
text-align: center;
line-height: vh(60);
}
.warning {
color:#DCBB48;;
}
.error {
color: #ff4400;
}
@@ -466,7 +469,7 @@ import pubSub from 'pubsub-js'
// margin-top:vh(10);
min-width:vw(900);
height:vh(800);
}
.header-title{
font-size:vw(32);
@@ -474,7 +477,7 @@ import pubSub from 'pubsub-js'
text-align:center;
font-weight:bold;
margin-bottom:vh(20);
}
.bom-box {
.table2{
@@ -487,7 +490,7 @@ import pubSub from 'pubsub-js'
.header {
height: vh(28);
font-weight: 400;
font-size: vw(12);
font-size: vw(24);
color: #fff;
display: flex;
background: linear-gradient(180deg, rgba(0, 99, 255, 0) 0%, #0063ff 100%);
@@ -517,7 +520,7 @@ import pubSub from 'pubsub-js'
.item {
height: vh(50);
font-weight: 400;
font-size: vw(14);
font-size: vw(24);
color: #f1f7ff;
display: flex;
&:nth-child(2n + 1) {

View File

@@ -17,13 +17,9 @@
<count-item
label="排队人数"
:count="scenicStore.scenicQueueData.header.pdrs"
:color="scenicStore.scenicQueueData.header.pdrs_type == 0 ? '' : '#E21B1B'"
suffix="人"
/>
<!-- <count-item
label="排队持续时间"
:count="scenicStore.scenicQueueData.header.pdcxsj"
suffix="分钟"
/> -->
</div>
<div class="border">
<div class="pt-10">