feat:对接监控-交通ai分析数据

This commit is contained in:
张先生
2025-03-17 13:24:02 +08:00
parent 641753aee8
commit 1b74cdf403
5 changed files with 36 additions and 95 deletions

View File

@@ -1,58 +0,0 @@
let __unconfig_data;
let __unconfig_stub = function (data = {}) { __unconfig_data = data };
__unconfig_stub.default = (data = {}) => { __unconfig_data = data };
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// import vueDevTools from 'vite-plugin-vue-devtools'
// https://vite.dev/config/
const __unconfig_default = defineConfig({
plugins: [
vue(),
vueJsx(),
AutoImport({
imports: ['vue'],
dts: 'src/auto-import.d.ts',
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver()]
})
// vueDevTools(),
],
base: '/largeScreen/',
server: {
hmr: true,
host: '0.0.0.0'
// proxy: {
// '/': {
// // 目标服务器的地址
// target: 'http://36.138.38.16:8001',
// changeOrigin: true
// }
// }
},
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
},
extensions: ['.js', '.vue']
},
css: {
preprocessorOptions: {
scss: {
additionalData: '@use "@/styles/screen.scss" as *;',
javascriptEnabled: true
}
}
}
})
if (typeof __unconfig_default === "function") __unconfig_default(...[{"command":"serve","mode":"development"}]);export default __unconfig_data;

View File

@@ -266,13 +266,13 @@
isSkip.value = false isSkip.value = false
current.vlaue = '' current.vlaue = ''
isBack.value = true isBack.value = true
let res1 = await getSpotListApi() let spotRes = await getSpotListApi()
navLeft.value = [ navLeft.value = [
{ {
name: '奉节县', name: '奉节县',
scenicSpotId: '' scenicSpotId: ''
}, },
...res1.data ...spotRes.data
] ]
break break
case '/sceneTesting': case '/sceneTesting':

View File

@@ -22,7 +22,7 @@
<div class="right"> <div class="right">
<div class="item" v-for="(item, index) in homeStore.visitorInfoList" :key="index"> <div class="item" v-for="(item, index) in homeStore.visitorInfoList" :key="index">
<div class="label">{{ item.name }}</div> <div class="label">{{ item.name }}</div>
<div :class="[item.type == 4 ? 'value--error' : 'value--primary']">{{ <div :class="[[3,4].includes(item.type)? 'value--error' : 'value--primary']">{{
item.value item.value
}}</div> }}</div>
</div> </div>

View File

@@ -60,13 +60,24 @@
</div> </div>
<Title1 title="交通智能AI分析" /> <Title1 title="交通智能AI分析" />
<div class="scenic"> <div class="scenic">
<div <div class="scenic-item">
class="scenic-item" <span class="scenic-item__label">核心路段分析点位</span>
v-for="(item, index) in trafficAbnormalityData.headList" <countup
:key="index" class="scenic-item__value"
> :end-val="trafficAiAnalyzeData.coreMonitoringPoints"
<span class="scenic-item__label">{{ item.name }}</span> />
<countup class="scenic-item__value" :end-val="item.value" /> </div>
<div class="scenic-item">
<span class="scenic-item__label">拥堵点位</span>
<countup class="scenic-item__value" :end-val="trafficAiAnalyzeData.abnormalPoints" />
</div>
<div class="scenic-item">
<span class="scenic-item__label">拥堵告警</span>
<countup class="scenic-item__value" :end-val="trafficAiAnalyzeData.abnormalWarnings" />
</div>
<div class="scenic-item">
<span class="scenic-item__label">已处理</span>
<countup class="scenic-item__value" :end-val="trafficAiAnalyzeData.handled" />
</div> </div>
</div> </div>
<div class="flex pt-20"> <div class="flex pt-20">
@@ -205,10 +216,12 @@
abnormalAlarmPercent: [] abnormalAlarmPercent: []
}) })
// 交通告警信息 // 交通告警信息
let trafficAbnormalityData = ref({ let trafficAiAnalyzeData = ref({
dataList: [], abnormalWarnings: 0,
dataLists: [], abnormalPoints: 0,
headList: [] coreMonitoringPoints: 0,
handled: 0,
abnormalAlarm: []
}) })
// 监控点位异常告警统计 // 监控点位异常告警统计
let pointAlarmData = ref({ let pointAlarmData = ref({
@@ -230,10 +243,10 @@
// 拥堵告警 // 拥堵告警
let jamlData = computed(() => { let jamlData = computed(() => {
return [{ data: trafficAbnormalityData.value.dataList.map((item) => item.value) }] return [{ data: trafficAiAnalyzeData.value.abnormalAlarm.map((item) => item.value) }]
}) })
let jamXAxisData = computed(() => { let jamXAxisData = computed(() => {
return trafficAbnormalityData.value.dataList.map((item) => item.name) return trafficAiAnalyzeData.value.abnormalAlarm.map((item) => item.name)
}) })
watch( watch(
@@ -268,9 +281,8 @@
case '监控点位统计和异常告警统计': case '监控点位统计和异常告警统计':
pointAlarmData.value = val.data pointAlarmData.value = val.data
break break
case 'trafficAbnormalityData': case '交通智能AI分析':
trafficAbnormalityData.value = val trafficAiAnalyzeData.value = val.data
break
} }
} }
} }

View File

@@ -375,24 +375,11 @@
} }
} }
const getVideoRegions = async () => { const getVideoRegions = async () => {
if (params.businessScenicArea == '三峡之巅') { let res = await getVideoRegionsApi({
regionList.value = [ cameraName: cameraName.value,
{ businessScenicArea: params.businessScenicArea
regions: '调试中', })
videoResources: [] regionList.value = res.data
},
{
regions: '调试中',
videoResources: []
}
]
} else {
let res = await getVideoRegionsApi({
cameraName: cameraName.value,
businessScenicArea: params.businessScenicArea
})
regionList.value = res.data
}
} }
const onMonitorChange = () => { const onMonitorChange = () => {
monitorChange = pubSub.subscribe('monitorChange', (res, data) => { monitorChange = pubSub.subscribe('monitorChange', (res, data) => {