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 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
{{ constructionDataForm.dataSourceId ? '修改' : '构造' }}数据源
+
+ 简易模式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
{{ constructionDataForm.dataSourceId ? '修改' : '构造' }}数据源
+
+ 简易模式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
{{ constructionDataForm.dataSourceId ? '修改' : '构造' }}数据源
+
+ 简易模式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
{{ constructionDataForm.dataSourceId ? '修改' : '构造' }}数据源
+
+ 简易模式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加字段
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
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([]);