From 2a564258c2a522c9da570edfb380244382d601b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E7=AC=99=E6=AD=8C?= <2277317060@qq.com> Date: Mon, 14 Jul 2025 18:09:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/boardGenerate/api/db.js | 71 ++ src/views/boardGenerate/dataSourceList.vue | 130 +++- src/views/boardGenerate/images/annularImg.png | Bin 0 -> 11051 bytes .../boardGenerate/images/backgroundBarImg.png | Bin 0 -> 7202 bytes src/views/boardGenerate/images/barImg.png | Bin 0 -> 6376 bytes .../boardGenerate/images/carouselImg.png | Bin 0 -> 14116 bytes src/views/boardGenerate/images/curveImg.png | Bin 0 -> 5081 bytes .../boardGenerate/images/dashboardImg.png | Bin 0 -> 8194 bytes src/views/boardGenerate/images/lineImg.png | Bin 0 -> 4386 bytes .../boardGenerate/images/multiBarsImg.png | Bin 0 -> 8611 bytes .../boardGenerate/images/multiCurvesImg.png | Bin 0 -> 9176 bytes .../boardGenerate/images/multiLinesImg.png | Bin 0 -> 8398 bytes .../images/nightingaleRoseDiagramImg.png | Bin 0 -> 9609 bytes src/views/boardGenerate/images/pieImg.png | Bin 0 -> 8244 bytes src/views/boardGenerate/images/radarImg.png | Bin 0 -> 7056 bytes src/views/boardGenerate/images/散点图.png | Bin 0 -> 7530 bytes src/views/boardGenerate/images/表格.png | Bin 0 -> 12768 bytes src/views/boardGenerate/index1.vue | 690 ++++++++++-------- .../boardGenerate/nodes/board/annularNode.vue | 164 +++++ .../boardGenerate/nodes/board/curveNode.vue | 2 +- .../nodes/board/dashboardNode.vue | 152 ++++ .../boardGenerate/nodes/board/lineBarNode.vue | 296 ++++++++ .../boardGenerate/nodes/board/lineNode.vue | 1 - .../boardGenerate/nodes/board/radarNode.vue | 268 +++++++ .../nodes/form/backgroundNode.vue | 64 ++ .../boardGenerate/nodes/form/mapNode.vue | 14 +- src/views/boardGenerate/tool.js | 27 +- src/views/boardGenerate/view.vue | 29 + 28 files changed, 1592 insertions(+), 316 deletions(-) create mode 100644 src/views/boardGenerate/api/db.js create mode 100644 src/views/boardGenerate/images/annularImg.png create mode 100644 src/views/boardGenerate/images/backgroundBarImg.png create mode 100644 src/views/boardGenerate/images/barImg.png create mode 100644 src/views/boardGenerate/images/carouselImg.png create mode 100644 src/views/boardGenerate/images/curveImg.png create mode 100644 src/views/boardGenerate/images/dashboardImg.png create mode 100644 src/views/boardGenerate/images/lineImg.png create mode 100644 src/views/boardGenerate/images/multiBarsImg.png create mode 100644 src/views/boardGenerate/images/multiCurvesImg.png create mode 100644 src/views/boardGenerate/images/multiLinesImg.png create mode 100644 src/views/boardGenerate/images/nightingaleRoseDiagramImg.png create mode 100644 src/views/boardGenerate/images/pieImg.png create mode 100644 src/views/boardGenerate/images/radarImg.png create mode 100644 src/views/boardGenerate/images/散点图.png create mode 100644 src/views/boardGenerate/images/表格.png create mode 100644 src/views/boardGenerate/nodes/board/annularNode.vue create mode 100644 src/views/boardGenerate/nodes/board/dashboardNode.vue create mode 100644 src/views/boardGenerate/nodes/board/lineBarNode.vue create mode 100644 src/views/boardGenerate/nodes/board/radarNode.vue create mode 100644 src/views/boardGenerate/nodes/form/backgroundNode.vue diff --git a/src/views/boardGenerate/api/db.js b/src/views/boardGenerate/api/db.js new file mode 100644 index 0000000..84261c0 --- /dev/null +++ b/src/views/boardGenerate/api/db.js @@ -0,0 +1,71 @@ +import request from '@/utils/request'; + +/** + * 查询数据库连接信息列表 + * @param query + * @returns {*} + */ + +export const listDatabaseLink = (query) => { + return request({ + url: '/system/databaseLink/list', method: 'get', params: query + }); +}; + +/** + * 查询数据库连接信息详细 + * @param linkId + */ +export const getDatabaseLink = (linkId) => { + return request({ + url: '/system/databaseLink/tables/' + linkId, method: 'get' + }); +}; + +export const getFieldList = (linkId, tableName) => { + return request({ + url: '/system/databaseLink/columns/' + linkId + '/' + tableName, method: 'get' + }); +}; + +/** + * 新增数据库连接信息 + * @param data + */ +export const addDatabaseLink = (data) => { + return request({ + url: '/system/databaseLink', method: 'post', data: data + }); +}; + +/** + * 修改数据库连接信息 + * @param data + */ +export const updateDatabaseLink = (data) => { + return request({ + url: '/system/databaseLink', method: 'put', data: data + }); +}; + +/** + * 删除数据库连接信息 + * @param linkId + */ +export const delDatabaseLink = (linkId) => { + return request({ + url: '/system/databaseLink/' + linkId, method: 'delete' + }); +}; + + +/** + * 下拉框查询数据库连接信息列表 + * @param query + * @returns {*} + */ +export function getSysDatabaseLinkList(query) { + return request({ + url: '/system/databaseLink/getSysDatabaseLinkList', method: 'get', params: query + }); +}; diff --git a/src/views/boardGenerate/dataSourceList.vue b/src/views/boardGenerate/dataSourceList.vue index 625ee45..36325fe 100644 --- a/src/views/boardGenerate/dataSourceList.vue +++ b/src/views/boardGenerate/dataSourceList.vue @@ -14,7 +14,8 @@ - 新增 + 新增接口 + 新增SQL @@ -149,6 +150,66 @@ + + + + {{ constructionDataForm.dataSourceId ? '修改' : '构造' }}数据源 + + + + + + + + + + + + + {{ i }} + + + + + + + + + + {{ addSQLForm.table }} + + {{ i.columnName + }} + + + + + + + + diff --git a/src/views/boardGenerate/nodes/board/curveNode.vue b/src/views/boardGenerate/nodes/board/curveNode.vue index f875681..7445458 100644 --- a/src/views/boardGenerate/nodes/board/curveNode.vue +++ b/src/views/boardGenerate/nodes/board/curveNode.vue @@ -227,7 +227,7 @@ const getOption = () => { item.push(e[i]); }); yData.forEach(e => { - item.push(e[i]); + item.push(parseFloat(e[i])); }); source.push(item); }); diff --git a/src/views/boardGenerate/nodes/board/dashboardNode.vue b/src/views/boardGenerate/nodes/board/dashboardNode.vue new file mode 100644 index 0000000..681ec11 --- /dev/null +++ b/src/views/boardGenerate/nodes/board/dashboardNode.vue @@ -0,0 +1,152 @@ + + + + + + + + + + + + diff --git a/src/views/boardGenerate/nodes/board/lineBarNode.vue b/src/views/boardGenerate/nodes/board/lineBarNode.vue new file mode 100644 index 0000000..348f87f --- /dev/null +++ b/src/views/boardGenerate/nodes/board/lineBarNode.vue @@ -0,0 +1,296 @@ + + + + + + + + + + + + diff --git a/src/views/boardGenerate/nodes/board/lineNode.vue b/src/views/boardGenerate/nodes/board/lineNode.vue index 5075d44..1840b2b 100644 --- a/src/views/boardGenerate/nodes/board/lineNode.vue +++ b/src/views/boardGenerate/nodes/board/lineNode.vue @@ -243,7 +243,6 @@ onMounted(() => { }); watch(() => [JSON.parse(JSON.stringify(props.inputData)), JSON.parse(JSON.stringify(props.data.options))], (obj1, obj2) => { if (JSON.stringify(obj1) !== JSON.stringify(obj2)) { - console.log(1123); chart && chart.setOption(getOption(), false); } }, { deep: true, immediate: true }); diff --git a/src/views/boardGenerate/nodes/board/radarNode.vue b/src/views/boardGenerate/nodes/board/radarNode.vue new file mode 100644 index 0000000..e5ba19b --- /dev/null +++ b/src/views/boardGenerate/nodes/board/radarNode.vue @@ -0,0 +1,268 @@ + + + + + + + + + + + + diff --git a/src/views/boardGenerate/nodes/form/backgroundNode.vue b/src/views/boardGenerate/nodes/form/backgroundNode.vue new file mode 100644 index 0000000..0da3291 --- /dev/null +++ b/src/views/boardGenerate/nodes/form/backgroundNode.vue @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + diff --git a/src/views/boardGenerate/nodes/form/mapNode.vue b/src/views/boardGenerate/nodes/form/mapNode.vue index 176d0f1..6c9a291 100644 --- a/src/views/boardGenerate/nodes/form/mapNode.vue +++ b/src/views/boardGenerate/nodes/form/mapNode.vue @@ -53,16 +53,20 @@ const props = defineProps({ const convertData = () => { const rule = {}; props.data.options.dataMap.forEach(item => { - rule[item.source] = item.target; + rule[item.target] = item.source; }); + console.log('props.inputData', props.inputData); + console.log('rule', rule); let res = {}; - Object.keys(props.inputData).forEach(item => { - if (Object.keys(rule).includes(item)) { - res[rule[item]] = props.inputData[item]; + Object.keys(rule).forEach(item => { + if (Object.keys(props.inputData).includes(rule[item])) { + // res[rule[item]] = props.inputData[item]; + res[item] = props.inputData[rule[item]]; } else { - res[item] = props.inputData[item]; + // res[item] = props.inputData[item]; } }); + console.log('res', res); props.data.outputData = res; }; watch(() => JSON.parse(JSON.stringify(props.inputData)), (obj1, obj2) => { diff --git a/src/views/boardGenerate/tool.js b/src/views/boardGenerate/tool.js index 8e42012..52fbbcc 100644 --- a/src/views/boardGenerate/tool.js +++ b/src/views/boardGenerate/tool.js @@ -17,8 +17,27 @@ const getOption = (e) => { return { title: '', yNames: [], gridTop: 30, gridLeft: 5, gridBottom: 10, gridRight: 10, xName: '', yName: '', tooltip:true, legend:true,backgroundColor:'rgba(180, 180, 180, 0.2)' }; } else if (e === 'curve' || e === 'multiCurves') { return { title: '', yNames: [], gridTop: 30, gridLeft: 5, gridBottom: 10, gridRight: 10, xName: '', yName: '', tooltip:true, legend:true }; - } else if (e === 'pie' || e === 'nightingaleRoseDiagram') { - return { title: '', yNames: [], tooltip:true, legend:true,label:true }; + } else if (e === 'lineBar') { + return { + title: '', + yNames: [], + gridTop: 30, + gridLeft: 5, + gridBottom: 10, + gridRight: 10, + xName: '', + yName: '', + tooltip: true, + legend: true + }; + } else if (e === 'radar') { + return { + title: '', yNames: [], gridTop: 30, gridLeft: 5, gridBottom: 10, gridRight: 10, tooltip: true, legend: true + }; + } else if (e === 'pie' || e === 'nightingaleRoseDiagram' || e === 'annular') { + return { title: '', yNames: [], tooltip: true, legend: true, label: true }; + } else if (e === 'dashboard') { + return { title: '', yNames: [], tooltip: true, legend: true, label: true }; } else if (e === 'customBoard') { return { title: '', yNames: [] }; } else if (e === 'data') { @@ -56,6 +75,8 @@ const getOption = (e) => { } } else if (e === 'carousel') { return { swiperOptions: {}, imageFit: 'contain', carouselImages: [] }; + } else if (e === 'background') { + return { backgroundColor: '#fff', isBorder: true, borderColor: '#fff' }; } else if (e === 'digitalFlop') { return { field: '', number: 1111, backgroundColor: 'rgba(180, 180, 180, 0.2)', isBorder: true, borderColor: '#fff' @@ -65,7 +86,7 @@ const getOption = (e) => { } }; const getNodeSize = (e) => { - if (e === 'line' || e === 'multiLines' || e === 'bar' || e === 'multiBars' || e === 'curve' || e === 'multiCurves' || e === 'customBoard' || e === 'pie') { + if (e === 'line' || e === 'multiLines' || e === 'bar' || e === 'multiBars' || e === 'curve' || e === 'multiCurves' || e === 'customBoard' || e === 'pie' || e === 'annular' || e === 'dashboard' || e === 'radar') { return { width: 300, height: 150 }; } else if (e === 'data' || e === 'customData') { return { width: 150, height: 50 }; diff --git a/src/views/boardGenerate/view.vue b/src/views/boardGenerate/view.vue index 4738ab9..4b8d76d 100644 --- a/src/views/boardGenerate/view.vue +++ b/src/views/boardGenerate/view.vue @@ -77,12 +77,41 @@ + + + + + + + + + + + + + + + + + + +