From e1295754790d83011b6a73365b792cd232f15e98 Mon Sep 17 00:00:00 2001 From: aixianling Date: Mon, 9 Oct 2023 19:11:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E7=BB=B4=E8=A1=A8=E8=BD=AC=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E8=A1=A8=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/AiDvRender.vue | 26 ++++++++++++++++--- .../designer/components/DataConfig.vue | 13 ++++++++-- .../designer/components/datasourcePicker.vue | 1 - 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/components/AiDvRender.vue b/components/AiDvRender.vue index c717d55c..cdb345b1 100644 --- a/components/AiDvRender.vue +++ b/components/AiDvRender.vue @@ -126,12 +126,33 @@ export default { }, methods: { formatTable(data, isShowIndex, rowNum) { + const tableStyle = { + headerBGC: 'transparent', + evenRowBGC: 'transparent', + oddRowBGC: 'rgba(0, 133, 255, 0.2)', + headerHeight: 42, + align: 'center' + } if (!data.length) { return { header: [], data: [] } } + if (this.data.tableConfig) { + const {x, y} = this.data.tableConfig, dataMap = {} + const header = [...new Set(Object.entries(data.find(e => e.row == x) || null)?.filter(e => e[0] != 'row').map(e => e[1]) || [])], + rows = [...new Set(Object.entries(data.find(e => e.row == y) || null)?.filter(e => e[0] != 'row').map(e => e[1]) || [])] + data.map(e => Object.keys(e).map(k => k != 'row' && (dataMap[k] = (dataMap[k] || "") + "#" + e[k]))) + const tableData = Object.values(dataMap).map(e => e.split("#")) + return { + ...tableStyle, + header: ["", ...header], + data: rows.map(y => [y, ...header.map(x => { + return tableData.find(m => m.includes(x) && m.includes(y)).at(-1) + })]) + } + } let rows = [] const header = data.map(v => { return v[Object.keys(v)[0]] @@ -148,10 +169,7 @@ export default { return v[item] }) }), - headerBGC: 'transparent', - evenRowBGC: 'transparent', - oddRowBGC: 'rgba(0, 133, 255, 0.2)', - headerHeight: 42, + ...tableStyle, rowNum: rowNum || 7, index: isShowIndex === '1', waitTime: 8000, diff --git a/packages/bigscreen/designer/components/DataConfig.vue b/packages/bigscreen/designer/components/DataConfig.vue index 658a3660..6da43b4f 100644 --- a/packages/bigscreen/designer/components/DataConfig.vue +++ b/packages/bigscreen/designer/components/DataConfig.vue @@ -54,7 +54,13 @@

基础设置

- + +
+
+

表格设置

+
@@ -154,11 +160,12 @@ export default { list: [], showMapEditor: false, form: {}, - datasource:{} + datasource: {} } }, computed: { markers: v => v.options.staticData?.markers || [], + isTable: v => v.options.type == 'table' }, components: { DatasourcePicker, @@ -173,6 +180,8 @@ export default { const values = this.$copy(this.options) values.staticData = {markers: this.$copy(this.options.staticData)} this.$emit("change", values) + } else if (this.isTable) { + this.json = JSON.stringify(this.options.tableConfig) } }, mounted() { diff --git a/packages/bigscreen/designer/components/datasourcePicker.vue b/packages/bigscreen/designer/components/datasourcePicker.vue index d41f9b45..5f1e1768 100644 --- a/packages/bigscreen/designer/components/datasourcePicker.vue +++ b/packages/bigscreen/designer/components/datasourcePicker.vue @@ -53,7 +53,6 @@ export default { dataLang: v => v.options.dataType == 'htmlData' ? 'html' : 'json', source: { set(v) { - console.log(v) this.$emit("input", v) }, get() {