From aa1c9cd78f134900f3cebee7c80fae4c13b59120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E7=AC=99=E6=AD=8C?= <2277317060@qq.com> Date: Wed, 21 May 2025 17:48:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9C=8B=E7=89=88=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.ts | 3 +- src/router/index.ts | 12 +- src/utils/scrin.js | 17 +- src/views/boardGenerate/api/boardSource.js | 29 ++ src/views/boardGenerate/api/dataSource.js | 29 ++ src/views/boardGenerate/boardList.vue | 327 ++++++++++++++++++ src/views/boardGenerate/boardSourceList.vue | 322 +++++++++++++++++ src/views/boardGenerate/construction.vue | 13 +- src/views/boardGenerate/dataSourceList.vue | 327 ++++++++++++++++++ src/views/boardGenerate/fieldMap.vue | 327 ++++++++++++++++++ src/views/boardGenerate/index.vue | 17 +- .../boardGenerate/nodes/board/lineNode.vue | 1 + .../nodes/data/staticDataNode.vue | 94 +++++ src/views/boardGenerate/tool.js | 18 +- src/views/boardGenerate/view.vue | 4 + 15 files changed, 1516 insertions(+), 24 deletions(-) create mode 100644 src/views/boardGenerate/api/boardSource.js create mode 100644 src/views/boardGenerate/api/dataSource.js create mode 100644 src/views/boardGenerate/boardList.vue create mode 100644 src/views/boardGenerate/boardSourceList.vue create mode 100644 src/views/boardGenerate/dataSourceList.vue create mode 100644 src/views/boardGenerate/fieldMap.vue create mode 100644 src/views/boardGenerate/nodes/data/staticDataNode.vue diff --git a/src/main.ts b/src/main.ts index 7891e84..b06736b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -23,7 +23,7 @@ import { clearNull, parseTime, getFinalData, - testColor + testColor, isJSON } from '@/utils/scrin'; import request from '@/utils/request'; @@ -81,6 +81,7 @@ app.provide('$request', request); app.provide('$detectingNullValues', detectingNullValues); app.provide('$getFinalData', getFinalData); app.provide('$testColor', testColor); +app.provide('$isJSON', isJSON); app.use(vue3SeamlessScroll); app.use(HighLight); diff --git a/src/router/index.ts b/src/router/index.ts index 261892c..ea7db40 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -297,12 +297,12 @@ export const dynamicRoutes: RouteRecordRaw[] = [ hidden: true, permissions: ['mes:orderInfo:edit'], children: [ - { - path: 'index/:productOrderId(\\d+)', - component: () => import('@/views/mes/orderInfo/editProductOrder.vue'), - name: 'productOrderEdit', - meta: { title: '生产任务', activeMenu: '/mes/productplan', noCache: true } - } + // { + // path: 'index/:productOrderId(\\d+)', + // component: () => import('@/views/mes/orderInfo/editProductOrder.vue'), + // name: 'productOrderEdit', + // meta: { title: '生产任务', activeMenu: '/mes/productplan', noCache: true } + // } ] }, { diff --git a/src/utils/scrin.js b/src/utils/scrin.js index 4286fa1..f663da4 100644 --- a/src/utils/scrin.js +++ b/src/utils/scrin.js @@ -241,6 +241,19 @@ const testColor = (color) => { return regexHex.test(color) || regexRgb.test(color) || regexRgba.test(color); }; -export { - limitSolve, parseData, clearObjNull, clearArrNull, clearNull, detectingNullValues, getFinalData, parseTime, testColor + +// 判断是否是json +const isJSON = (str) => { + if (typeof str === 'string') { + try { + JSON.parse(str); + return true; + } catch (e) { + return false; + } + } + return false; +}; +export { + limitSolve, parseData, clearObjNull, clearArrNull, clearNull, detectingNullValues, getFinalData, parseTime, testColor,isJSON }; diff --git a/src/views/boardGenerate/api/boardSource.js b/src/views/boardGenerate/api/boardSource.js new file mode 100644 index 0000000..bc68a60 --- /dev/null +++ b/src/views/boardGenerate/api/boardSource.js @@ -0,0 +1,29 @@ +import request from '@/utils/request'; + +// 获取数据源列表 +export const getDataSourceList = (data) => { + return request({ + url: '/system/designDataSource/list', method: 'get', params: data + }); +}; + +// 删除数据源 +export const delDataSourceApi = (id) => { + return request({ + url: '/system/designDataSource/' + id, method: 'DELETE' + }); +}; + +// 新增数据源 +export const addDataSourceApi = (data) => { + return request({ + url: '/system/designDataSource', method: 'POST', data + }); +}; + +// 编辑数据源 +export const editDataSourceApi = (data) => { + return request({ + url: '/system/designDataSource', method: 'PUT', data + }); +}; diff --git a/src/views/boardGenerate/api/dataSource.js b/src/views/boardGenerate/api/dataSource.js new file mode 100644 index 0000000..bc68a60 --- /dev/null +++ b/src/views/boardGenerate/api/dataSource.js @@ -0,0 +1,29 @@ +import request from '@/utils/request'; + +// 获取数据源列表 +export const getDataSourceList = (data) => { + return request({ + url: '/system/designDataSource/list', method: 'get', params: data + }); +}; + +// 删除数据源 +export const delDataSourceApi = (id) => { + return request({ + url: '/system/designDataSource/' + id, method: 'DELETE' + }); +}; + +// 新增数据源 +export const addDataSourceApi = (data) => { + return request({ + url: '/system/designDataSource', method: 'POST', data + }); +}; + +// 编辑数据源 +export const editDataSourceApi = (data) => { + return request({ + url: '/system/designDataSource', method: 'PUT', data + }); +}; diff --git a/src/views/boardGenerate/boardList.vue b/src/views/boardGenerate/boardList.vue new file mode 100644 index 0000000..b1a4e47 --- /dev/null +++ b/src/views/boardGenerate/boardList.vue @@ -0,0 +1,327 @@ + + + diff --git a/src/views/boardGenerate/boardSourceList.vue b/src/views/boardGenerate/boardSourceList.vue new file mode 100644 index 0000000..6fb1841 --- /dev/null +++ b/src/views/boardGenerate/boardSourceList.vue @@ -0,0 +1,322 @@ + + + diff --git a/src/views/boardGenerate/construction.vue b/src/views/boardGenerate/construction.vue index feee800..b35d388 100644 --- a/src/views/boardGenerate/construction.vue +++ b/src/views/boardGenerate/construction.vue @@ -138,18 +138,7 @@ const comparisonTable = { value: '值' }; -// 判断是否是json -function isJSON(str) { - if (typeof str === 'string') { - try { - JSON.parse(str); - return true; - } catch (e) { - return false; - } - } - return false; -} +const { isJSON } = options; const isEasy = ref(false); const constructBoardForm = ref({}); diff --git a/src/views/boardGenerate/dataSourceList.vue b/src/views/boardGenerate/dataSourceList.vue new file mode 100644 index 0000000..b1a4e47 --- /dev/null +++ b/src/views/boardGenerate/dataSourceList.vue @@ -0,0 +1,327 @@ + + + diff --git a/src/views/boardGenerate/fieldMap.vue b/src/views/boardGenerate/fieldMap.vue new file mode 100644 index 0000000..b1a4e47 --- /dev/null +++ b/src/views/boardGenerate/fieldMap.vue @@ -0,0 +1,327 @@ + + + diff --git a/src/views/boardGenerate/index.vue b/src/views/boardGenerate/index.vue index 85674d6..5fc5980 100644 --- a/src/views/boardGenerate/index.vue +++ b/src/views/boardGenerate/index.vue @@ -81,6 +81,14 @@
映射
+ + +
静态数据
+
@@ -221,6 +229,10 @@ + @@ -248,6 +260,9 @@ + + + @@ -413,6 +428,7 @@ import CurveNode from './nodes/board/curveNode.vue'; import MultiCurvesNode from './nodes/board/multiCurvesNode.vue'; import BarNode from './nodes/board/barNode.vue'; import MultiBarsNode from './nodes/board/multiBarsNode.vue'; +import StaticDataNode from './nodes/data/staticDataNode.vue'; import CustomBoardNode from './nodes/board/customBoardNode.vue'; import PieNode from './nodes/board/pieNode.vue'; import DataNode from './nodes/data/dataNode.vue'; @@ -434,7 +450,6 @@ const { addEdges, updateNode } = useVueFlow(); -console.log(updateNode); const pageSettingVisible = ref(false); const pageSettingForm = ref({}); diff --git a/src/views/boardGenerate/nodes/board/lineNode.vue b/src/views/boardGenerate/nodes/board/lineNode.vue index ca4f323..2360c2b 100644 --- a/src/views/boardGenerate/nodes/board/lineNode.vue +++ b/src/views/boardGenerate/nodes/board/lineNode.vue @@ -213,6 +213,7 @@ onMounted(() => { }); watch(() => [JSON.parse(JSON.stringify(props.inputData)), JSON.parse(JSON.stringify(props.data.options))], (obj1, obj2) => { if (JSON.stringify(obj1) !== JSON.stringify(obj2)) { + chart && chart.setOption(getOption(), true); } }, { deep: true, immediate: true }); diff --git a/src/views/boardGenerate/nodes/data/staticDataNode.vue b/src/views/boardGenerate/nodes/data/staticDataNode.vue new file mode 100644 index 0000000..618e53d --- /dev/null +++ b/src/views/boardGenerate/nodes/data/staticDataNode.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/views/boardGenerate/tool.js b/src/views/boardGenerate/tool.js index 9074022..6d40343 100644 --- a/src/views/boardGenerate/tool.js +++ b/src/views/boardGenerate/tool.js @@ -21,12 +21,14 @@ const getOption = (e) => { return { title: '', yNames: [] }; } else if (e === 'data') { return { timeout: 5000 }; + } else if (e === 'staticData') { + return { defaultInputArea: '', field: 'input' }; } else if (e === 'customData') { return { timeout: 5000 }; } else if (e === 'map') { return { dataMap: [] }; } else if (e === 'inputNode') { - return { field: '', defaultInput: '' }; + return { field: 'input', defaultInput: '' }; } else if (e === 'time') { return { startTimeId: 'startTime', endTimeId: 'endTime', defaultTime: [], format: '' }; } else if (e === 'text') { @@ -44,6 +46,8 @@ const getNodeSize = (e) => { return { width: 150, height: 50 }; } else if (e === 'inputNode') { return { width: 100, height: 30 }; + } else if (e === 'staticData') { + return { width: 100, height: 60 }; } else if (e === 'text') { return { width: 100, height: 30 }; } else if (e === 'time') { @@ -120,5 +124,15 @@ const tool = () => { }; export default tool; export const options = { - isD: false + isD: false, isJSON: (str) => { + if (typeof str === 'string') { + try { + JSON.parse(str); + return true; + } catch (e) { + return false; + } + } + return false; + } }; diff --git a/src/views/boardGenerate/view.vue b/src/views/boardGenerate/view.vue index c6a9ae1..d294c41 100644 --- a/src/views/boardGenerate/view.vue +++ b/src/views/boardGenerate/view.vue @@ -8,6 +8,9 @@ + @@ -68,6 +71,7 @@ import CustomDataNode from './nodes/data/customDataNode.vue'; import TextNode from './nodes/form/textNode.vue'; import ImgNode from './nodes/form/imgNode.vue'; import PieNode from '@/views/boardGenerate/nodes/board/pieNode.vue'; +import StaticDataNode from './nodes/data/staticDataNode.vue'; const nodes = ref([]); const edges = ref([]);