From 9b7b1283a818f847f64611971dc5a01399144094 Mon Sep 17 00:00:00 2001 From: aixianling Date: Tue, 16 Jul 2024 14:46:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E6=AD=A5=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=B8=B2=E6=9F=93=E8=BF=87=E6=97=A9=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/dv/AiDvViewer.vue | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ui/dv/AiDvViewer.vue b/ui/dv/AiDvViewer.vue index d60bbb8f..52bff170 100644 --- a/ui/dv/AiDvViewer.vue +++ b/ui/dv/AiDvViewer.vue @@ -86,27 +86,28 @@ export default { this.component = config.custom this.meta = config?.meta || {} } else { - this.componentList = JSON.parse(res.data.config).config + const layers = JSON.parse(res.data.config).config this.dashboard = JSON.parse(res.data.config).dashboard - - this.componentList.forEach((item, index) => { + Promise.all(layers.map(item => Promise.resolve().then(() => { if (item.dataType !== 'staticData' && ((item.type.indexOf('Chart') > -1) || ['display', 'table', 'map', 'summary', 'AiRanking', 'AiDvTable'].includes(item.type))) { - this.getSourceData(item, index) + return this.getSourceData(item, index) } if (item.type === 'monitor' && item.monitorType === 'cmcc') { - item.moniterId && this.instance.post(`${this.urlPrefix}/appzyvideoequipment/getWebSdkUrl?deviceId=${item.moniterId}`).then(res => { + return item.moniterId && this.instance.post(`${this.urlPrefix}/appzyvideoequipment/getWebSdkUrl?deviceId=${item.moniterId}`).then(res => { if (res.code == 0) { - this.$set(this.componentList[index], 'src', JSON.parse(res.data).url) + return item.src = JSON.parse(res.data).url } }) } if (item.type === 'monitor' && item.monitorType === 'slw') { - item.moniterId && this.instance.post(`${this.urlPrefix}/appzyvideoequipment/getWebSdkUrl?deviceId=${item.moniterId}`).then(res => { + return item.moniterId && this.instance.post(`${this.urlPrefix}/appzyvideoequipment/getWebSdkUrl?deviceId=${item.moniterId}`).then(res => { if (res.code == 0) { - this.$set(this.componentList[index], 'src', res.data) + return item.src = res.data } }) } + }))).then(() => { + this.componentList = layers }) } } @@ -114,7 +115,7 @@ export default { }, getSourceData(item, index) { const api = item.dataType === 'apiData' ? item.api : `${this.urlPrefix}/appdiylargescreen/statisticsByLsid?id=${item.sourceDataId}` - this.instance.post(api).then(res => { + return this.instance.post(api).then(res => { if (res?.data) { if (res.data.length) { const keys = Object.keys(res.data[0])