From 372f52e6554db6e20aadc78c6082e2fb7901bbb1 Mon Sep 17 00:00:00 2001 From: aixianling Date: Fri, 12 Apr 2024 18:19:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E5=8A=A8=E5=9C=B0=E5=9B=BE=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/components/componentConfig.vue | 33 ++++---- .../designer/components/datasourcePicker.vue | 2 +- packages/bigscreen/designer/config.js | 4 +- packages/bigscreen/designer/viewport.vue | 1 - ui/dv/AiDvRender.vue | 6 +- ui/dv/AiLinkageMap.vue | 78 +++++++++++++++++++ ui/dv/index.js | 22 +++--- ui/dv/layout/AiDvPlot/AiDvPlot.vue | 2 +- 8 files changed, 115 insertions(+), 33 deletions(-) create mode 100644 ui/dv/AiLinkageMap.vue diff --git a/packages/bigscreen/designer/components/componentConfig.vue b/packages/bigscreen/designer/components/componentConfig.vue index f81f5302..2cc8e4f1 100644 --- a/packages/bigscreen/designer/components/componentConfig.vue +++ b/packages/bigscreen/designer/components/componentConfig.vue @@ -39,11 +39,17 @@ - @@ -81,6 +82,7 @@ import AiDvSummary from "./layout/AiDvSummary/AiDvSummary"; import AiDvPlot from "./layout/AiDvPlot/AiDvPlot.vue"; import AiAssist from "./AiAssist.vue"; import AiMonitorCarousel from "./AiMonitorCarousel.vue"; +import AiLinkageMap from "./AiLinkageMap.vue"; Vue.use(scrollBoard) @@ -88,6 +90,7 @@ export default { name: 'AiDvRender', props: ['data', 'index', 'theme', 'instance'], components: { + AiLinkageMap, AiMonitorCarousel, AiAssist, AiDvPlot, @@ -106,7 +109,8 @@ export default { lib: null, timer: null, dvTableConfig: [], - mapDialog: false + mapDialog: false, + areaId: "" } }, computed: { diff --git a/ui/dv/AiLinkageMap.vue b/ui/dv/AiLinkageMap.vue new file mode 100644 index 00000000..69a766b1 --- /dev/null +++ b/ui/dv/AiLinkageMap.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/ui/dv/index.js b/ui/dv/index.js index 7ff9f3bf..f76f466e 100644 --- a/ui/dv/index.js +++ b/ui/dv/index.js @@ -38,22 +38,22 @@ export class DvCompData { staticData: "静态数据", dynamicData: "动态数据", apiData: "接口数据", htmlData: "HTML数据" } - constructor(type, dataConfig = {}, instance) { + constructor(dataConfig = {dataType: ""}, instance) { this.instance = instance - this.type = type + this.type = dataConfig.dataType this.params = dataConfig } - getData() { + getData(params) { return this.type == 'staticData' ? this.getStaticData() : this.type == 'htmlData' ? this.getStaticData() : - this.type == 'dynamicData' ? this.getDynamicData() : - this.type == 'apiData' ? this.getApiData() : [] + this.type == 'dynamicData' ? this.getDynamicData(params) : + this.type == 'apiData' ? this.getApiData(params) : Promise.resolve([]) } - getDynamicData() { + getDynamicData(params) { const {sourceDataId: id} = this.params - return id ? this.getAsyncData(`/app/appdiylargescreen/statisticsByLsid?id=${id}`) : Promise.reject("未获取到数据源id") + return id ? this.getAsyncData(`/app/appdiylargescreen/statisticsByLsid?id=${id}`, params) : Promise.reject("未获取到数据源id") } getStaticData() { @@ -63,13 +63,13 @@ export class DvCompData { }) } - getApiData() { + getApiData(params) { const {api} = this.params - return api ? this.getAsyncData(api) : Promise.reject("未获取到api") + return api ? this.getAsyncData(api, params) : Promise.reject("未获取到api") } - getAsyncData(api) { - return this.instance.post(api).then(res => { + getAsyncData(api, params) { + return this.instance.post(api, null, {params}).then(res => { if (res?.data) { const list = res.data, firstRecord = list?.[0] || {}, diff --git a/ui/dv/layout/AiDvPlot/AiDvPlot.vue b/ui/dv/layout/AiDvPlot/AiDvPlot.vue index 07ed9518..36d892db 100644 --- a/ui/dv/layout/AiDvPlot/AiDvPlot.vue +++ b/ui/dv/layout/AiDvPlot/AiDvPlot.vue @@ -72,7 +72,7 @@ export default { this.getChartData() }, getChartData() { - return new DvCompData(this.plot.dataType, this.plot, this.instance).getData().then(source => { + return new DvCompData(this.plot, this.instance).getData().then(source => { if (this.tpl.series?.type == 'pie') { let data if (source?.length == 1) {