From 60102643ae35e2541a2aaef0c172be3d26fd420a Mon Sep 17 00:00:00 2001 From: chentaisen <14615430+chentaisen@user.noreply.gitee.com> Date: Thu, 29 Aug 2024 22:04:15 +0800 Subject: [PATCH 01/13] Changes --- src/views/rule/rule/version.vue | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/views/rule/rule/version.vue b/src/views/rule/rule/version.vue index 2e039ba..0f30d5d 100644 --- a/src/views/rule/rule/version.vue +++ b/src/views/rule/rule/version.vue @@ -32,7 +32,6 @@ - {{ rule.name }} @@ -108,9 +27,18 @@ diff --git a/src/views/quest/node/components/node/type-exportation.vue b/src/views/quest/node/components/node/type-exportation.vue new file mode 100644 index 0000000..1361888 --- /dev/null +++ b/src/views/quest/node/components/node/type-exportation.vue @@ -0,0 +1,59 @@ + + + + diff --git a/src/views/quest/node/components/node/type-table-upd.vue b/src/views/quest/node/components/node/type-table-upd.vue new file mode 100644 index 0000000..daec97a --- /dev/null +++ b/src/views/quest/node/components/node/type-table-upd.vue @@ -0,0 +1,99 @@ + + + + diff --git a/src/views/quest/node/components/node/type-table.vue b/src/views/quest/node/components/node/type-table.vue new file mode 100644 index 0000000..7581e24 --- /dev/null +++ b/src/views/quest/node/components/node/type-table.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/views/quest/node/components/node/type/tableFind.vue b/src/views/quest/node/components/node/type/tableFind.vue new file mode 100644 index 0000000..e66b296 --- /dev/null +++ b/src/views/quest/node/components/node/type/tableFind.vue @@ -0,0 +1,51 @@ + + + + diff --git a/src/views/quest/node/components/node/type/tableUpd.vue b/src/views/quest/node/components/node/type/tableUpd.vue new file mode 100644 index 0000000..5c3b9d5 --- /dev/null +++ b/src/views/quest/node/components/node/type/tableUpd.vue @@ -0,0 +1,148 @@ + + + + diff --git a/src/views/quest/node/config/methods.js b/src/views/quest/node/config/methods.js index 1390fa9..3f6454b 100644 --- a/src/views/quest/node/config/methods.js +++ b/src/views/quest/node/config/methods.js @@ -1,7 +1,6 @@ import panzoom from "panzoom"; -import { GenNonDuplicateID } from "@/common/until"; +import {GenNonDuplicateID} from "@/common/until"; import item from "../components/node-item" -import Home from "../Home.vue" const methods = { init() { @@ -10,8 +9,10 @@ const methods = { this.jsPlumb.importDefaults(this.jsplumbSetting); //完成连线前的校验 this.jsPlumb.bind("beforeDrop", evt => { - let res = () => { } //此处可以添加是否创建连接的校验, 返回 false 则不添加; - return res + //此处可以添加是否创建连接的校验, 返回 false 则不添加; + return () => { + console.log(evt) + } }) //断开连线后,维护本地数据 this.jsPlumb.bind("connectionDetached", evt => { From 1ddc02252b635be059ff5117b69eb790bf0fe801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?= <2847127106@qq.com> Date: Fri, 30 Aug 2024 09:48:52 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/quest/node/components/node-item.vue | 12 ++-- .../node/{type-table.vue => dispFind.vue} | 0 .../node/{type-table-upd.vue => dispUpd.vue} | 0 .../node/components/node/type-exportation.vue | 59 ------------------- 4 files changed, 6 insertions(+), 65 deletions(-) rename src/views/quest/node/components/node/{type-table.vue => dispFind.vue} (100%) rename src/views/quest/node/components/node/{type-table-upd.vue => dispUpd.vue} (100%) delete mode 100644 src/views/quest/node/components/node/type-exportation.vue diff --git a/src/views/quest/node/components/node-item.vue b/src/views/quest/node/components/node-item.vue index 7cc65ea..9bf2b02 100644 --- a/src/views/quest/node/components/node-item.vue +++ b/src/views/quest/node/components/node-item.vue @@ -18,8 +18,8 @@
- - + +
@@ -29,15 +29,15 @@ import ClickOutside from 'vue-click-outside' import Home from '../Home.vue' import {listDbTableAll, selDbNameAll, selectDbTableColumnsByName} from "@/api/tool/gen"; import {listDisposition} from "@/api/quest/disposition"; -import TypeTable from "./node/type-table.vue"; -import TypeTableUpd from "./node/type-table-upd.vue"; +import DispFind from "./node/dispFind.vue"; +import DispUpd from "./node/dispUpd.vue"; export default { name: "nodeItem", components: { - TypeTable, - TypeTableUpd, + DispFind, + DispUpd, }, props: { node: Object diff --git a/src/views/quest/node/components/node/type-table.vue b/src/views/quest/node/components/node/dispFind.vue similarity index 100% rename from src/views/quest/node/components/node/type-table.vue rename to src/views/quest/node/components/node/dispFind.vue diff --git a/src/views/quest/node/components/node/type-table-upd.vue b/src/views/quest/node/components/node/dispUpd.vue similarity index 100% rename from src/views/quest/node/components/node/type-table-upd.vue rename to src/views/quest/node/components/node/dispUpd.vue diff --git a/src/views/quest/node/components/node/type-exportation.vue b/src/views/quest/node/components/node/type-exportation.vue deleted file mode 100644 index 1361888..0000000 --- a/src/views/quest/node/components/node/type-exportation.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - From fcfa05f98a6e64cb6c0eef4c7968efe05c510b11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?= <2847127106@qq.com> Date: Fri, 30 Aug 2024 11:03:18 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/quest/node/Home.vue | 4 +- src/views/quest/node/components/node-item.vue | 75 ++++++++--- .../quest/node/components/node/dispFind.vue | 8 +- .../quest/node/components/node/dispUpd.vue | 8 +- .../node/components/node/type/exporFind.vue | 119 ++++++++++++++++++ .../node/components/node/type/exporUpd.vue | 42 +++++++ .../node/components/node/type/tableUpd.vue | 9 +- 7 files changed, 240 insertions(+), 25 deletions(-) create mode 100644 src/views/quest/node/components/node/type/exporFind.vue create mode 100644 src/views/quest/node/components/node/type/exporUpd.vue diff --git a/src/views/quest/node/Home.vue b/src/views/quest/node/Home.vue index dbd2c04..84b3b5e 100644 --- a/src/views/quest/node/Home.vue +++ b/src/views/quest/node/Home.vue @@ -20,7 +20,7 @@
- +
@@ -85,7 +85,7 @@ export default { this.$nextTick(() => { setTimeout(() => { this.init() - },1000) + },1500) }); }, methods: { diff --git a/src/views/quest/node/components/node-item.vue b/src/views/quest/node/components/node-item.vue index 9bf2b02..f7654b4 100644 --- a/src/views/quest/node/components/node-item.vue +++ b/src/views/quest/node/components/node-item.vue @@ -18,8 +18,8 @@
- - + +
@@ -40,6 +40,7 @@ export default { DispUpd, }, props: { + data: {}, node: Object }, directives: { @@ -228,21 +229,63 @@ export default { }, /** 类型转换 mysql -> vue */ getVueDisp(dispList) { - const db = { - dbName: dispList.find(disp => disp.dispKey === 'db').dispValue, - tableName: dispList.find(disp => disp.dispKey === 'table').dispValue, - tableComment: dispList.find(disp => disp.dispKey === 'table').dispLabel - } + let type = this.node.type + const db = {} const fields = [] - dispList.forEach(disp => { - if (disp.dispKey === 'fields'){ - fields.push({ - fieldName: disp.dispValue, - fieldType: disp.dispType, - fieldComment: disp.dispLabel - }) - } - }) + if (type === 'table'){ + dispList.forEach(disp => { + if (disp.dispKey === 'db'){ + db.dbName = disp.dispValue + } + if (disp.dispKey === 'table'){ + db.tableName = disp.dispValue + db.tableComment = disp.dispLabel + } + if (disp.dispKey === 'fields'){ + fields.push({ + fieldName: disp.dispValue, + fieldType: disp.dispType, + fieldComment: disp.dispLabel + }) + } + }) + } + if (type === 'exportation') { + let i = 0 + let j = 0 + dispList.forEach(disp => { + if (disp.dispKey === 'formDb'){ + db.formDb = disp.dispValue + } + if (disp.dispKey === 'formTable'){ + db.formTable = disp.dispValue + db.formTableComment = disp.dispLabel + } + if (disp.dispKey === 'toDb'){ + db.toDb = disp.dispValue + } + if (disp.dispKey === 'toTable'){ + db.toTable = disp.dispValue + db.toTableComment = disp.dispLabel + } + if (disp.dispKey === 'formFields'){ + fields.push({ + id: i++, + fieldName: disp.dispValue, + fieldType: disp.dispType, + fieldComment: disp.dispLabel + }) + } + if (disp.dispKey === 'toFields'){ + fields.push({ + id: j++, + fieldName: disp.dispValue, + fieldType: disp.dispType, + fieldComment: disp.dispLabel + }) + } + }) + } return {db, fields} } }, diff --git a/src/views/quest/node/components/node/dispFind.vue b/src/views/quest/node/components/node/dispFind.vue index 7581e24..eaab885 100644 --- a/src/views/quest/node/components/node/dispFind.vue +++ b/src/views/quest/node/components/node/dispFind.vue @@ -8,6 +8,9 @@ + + +

@@ -23,14 +26,15 @@ // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等), // 例如:import 《组件名称》 from '《组件路径》, import TableFind from './type/tableFind.vue' -import TableUpd from "./type/tableUpd.vue"; +import ExporFind from "./type/exporFind.vue"; export default { // import引入的组件需要注入到对象中才能使用" name: 'type-table', - components: {TableUpd, TableFind}, + components: {ExporFind, TableFind}, props: { + data: {}, node: {}, disp: { nodeCode: undefined, diff --git a/src/views/quest/node/components/node/dispUpd.vue b/src/views/quest/node/components/node/dispUpd.vue index daec97a..d278a62 100644 --- a/src/views/quest/node/components/node/dispUpd.vue +++ b/src/views/quest/node/components/node/dispUpd.vue @@ -8,6 +8,9 @@ + + +

确 定 @@ -21,14 +24,15 @@ // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等), // 例如:import 《组件名称》 from '《组件路径》, import TableUpd from './type/tableUpd.vue' -import {selectDbTableColumnsByName, listDbTableAll, selDbNameAll} from "@/api/tool/gen"; +import ExporUpd from './type/exporUpd.vue' import {batchAddUpd} from "@/api/quest/disposition"; export default { // import引入的组件需要注入到对象中才能使用" name: 'type-table', - components: {TableUpd}, + components: {TableUpd, ExporUpd}, props: { + data: {}, node: {}, disp: { nodeCode: undefined, diff --git a/src/views/quest/node/components/node/type/exporFind.vue b/src/views/quest/node/components/node/type/exporFind.vue new file mode 100644 index 0000000..4977c10 --- /dev/null +++ b/src/views/quest/node/components/node/type/exporFind.vue @@ -0,0 +1,119 @@ + + + + diff --git a/src/views/quest/node/components/node/type/exporUpd.vue b/src/views/quest/node/components/node/type/exporUpd.vue new file mode 100644 index 0000000..76c0b9b --- /dev/null +++ b/src/views/quest/node/components/node/type/exporUpd.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/quest/node/components/node/type/tableUpd.vue b/src/views/quest/node/components/node/type/tableUpd.vue index 5c3b9d5..0f791ef 100644 --- a/src/views/quest/node/components/node/type/tableUpd.vue +++ b/src/views/quest/node/components/node/type/tableUpd.vue @@ -1,5 +1,5 @@ @@ -57,11 +57,12 @@ export default { computed: {}, // 生命周期 - 创建完成(可以访问当前this实例)", created() { + this.init() }, // 方法集合", methods: { - // 根据节点编码获取节点的所有信息,包括参数配置 - getInfo() { + // 初始化 + info() { console.log(this.data) console.log(this.node) }, diff --git a/src/views/quest/node/components/node/type/exporUpd2.vue b/src/views/quest/node/components/node/type/exporUpd2.vue index 9b80938..2a4a2be 100644 --- a/src/views/quest/node/components/node/type/exporUpd2.vue +++ b/src/views/quest/node/components/node/type/exporUpd2.vue @@ -1,53 +1,26 @@ @@ -55,13 +28,14 @@ diff --git a/src/views/quest/node/components/node/type/tableUpd.vue b/src/views/quest/node/components/node/type/tableUpd.vue index f652df3..4f12c72 100644 --- a/src/views/quest/node/components/node/type/tableUpd.vue +++ b/src/views/quest/node/components/node/type/tableUpd.vue @@ -114,6 +114,7 @@ export default { }, /** 表字段查询*/ selectTable(row) { + this.disp.formData.fields = [] this.disp.formData.db = row selectDbTableColumnsByName(row.dbName, row.tableName).then(res => { this.fieldsOptions = res.data diff --git a/src/views/quest/node/components/node/type/uniteFind.vue b/src/views/quest/node/components/node/type/uniteFind.vue index aa4de1f..db2c1f0 100644 --- a/src/views/quest/node/components/node/type/uniteFind.vue +++ b/src/views/quest/node/components/node/type/uniteFind.vue @@ -15,27 +15,28 @@ - - + +    - - + + 返回 - 下一步 + 下一步
- - + - - - + + + +

@@ -51,6 +52,7 @@ // 例如:import 《组件名称》 from '《组件路径》, import {listDisposition} from "@/api/quest/disposition"; import {selectDbTableColumnsByName} from "@/api/tool/gen"; +import {batchAddUpd} from "@/api/quest/disposition"; export default { // import引入的组件需要注入到对象中才能使用" @@ -82,8 +84,8 @@ export default { fields: [], join: '', joinData: { - form: '', - to: '' + form: {}, + to: {} } }, formData: {}, @@ -135,19 +137,39 @@ export default { this.respDispData.join = data.join }else{ this.reqDispData.db.push(data.db) - this.respDispData.fields.push(data.fields) - selectDbTableColumnsByName(data.db.dbName,data.db.tableName).then(res => { - this.reqDispData.fieldList.push(res.data) - }) + this.reqDispData.fields.push(data.fields) } }) }, + // 下一步按钮 + checkFields() { + this.respDispData.db = this.reqDispData.db + this.reqDispData.fieldList = [] + this.reqDispData.fieldList.push(...this.reqDispData.fields[0]) + this.reqDispData.fieldList.push(...this.reqDispData.fields[1]) + // 查询表字段 + this.reqDispData.fields[0].forEach(field => { + if (this.respDispData.joinData.form.fieldName === field.fieldName){ + this.respDispData.joinData.form = field + } + }) + this.reqDispData.fields[1].forEach(field => { + if (this.respDispData.joinData.to.fieldName === field.fieldName){ + this.respDispData.joinData.to = field + } + }) + this.checkFieldsFlag = true + }, // 保存选择 save() { console.log('reqDispData',this.reqDispData) console.log('respDispData',this.respDispData) - this.checkFieldsFlag = false - this.disp.findFlag = false + const dispList = this.getMysqlDisp(this.respDispData) + batchAddUpd(dispList, this.disp.nodeCode).then(res => { + this.$message.success(res.msg) + this.checkFieldsFlag = false + }) + // this.disp.findFlag = false }, clickRow(row) { this.$refs.table.toggleRowSelection(row); @@ -156,9 +178,11 @@ export default { handleSelectionChange(selection) { this.respDispData.fields = selection.map(item => { return { - fieldName: item.columnName, - fieldType: item.columnType, - fieldComment: item.columnComment + tableName: item.tableName, + fieldName: item.fieldName, + fieldType: item.fieldType, + fieldComment: item.fieldComment, + fieldDesc: item.fieldDesc }; }); }, @@ -166,6 +190,7 @@ export default { getVueDisp(dispList) { const db = {} const fields = [] + let tableName = '' let join = '' let joinData = { form: '', @@ -179,27 +204,105 @@ export default { db.tableName = disp.dispValue db.tableComment = disp.dispLabel } + tableName = db.dbName+'.'+db.tableName + db.dbTable = db.dbName+'.'+db.tableName+'('+db.tableComment +')' if (disp.dispKey === 'fields') { fields.push({ + tableName: tableName, fieldName: disp.dispValue, fieldType: disp.dispType, - fieldComment: disp.dispLabel + fieldComment: disp.dispLabel, + fieldDesc: disp.fieldDesc }) } - db.dbTable = db.dbName+'.'+db.tableName+'('+db.tableComment +')' if (disp.dispKey === 'joinDataForm') { - joinData.form = disp.dispValue + joinData.form.push({ + tableName: tableName, + fieldName: disp.dispValue, + fieldType: disp.dispType, + fieldComment: disp.dispLabel, + fieldDesc: disp.fieldDesc + }) } if (disp.dispKey === 'joinDataTo') { - joinData.to = disp.dispValue + joinData.to.push({ + tableName: tableName, + fieldName: disp.dispValue, + fieldType: disp.dispType, + fieldComment: disp.dispLabel, + fieldDesc: disp.fieldDesc + }) } if (disp.dispKey === 'join') { join = disp.dispValue - return {db, fields, join, joinData} } }) + if (join !== '') { + return {db, fields, join, joinData} + } return {db, fields} }, + /** 节点配置--unite 类型转换 vue -> mysql*/ + getMysqlDisp(resp) { + const db = resp.db + const fields = resp.fields + const join = resp.join + const form = resp.joinData.form + const to = resp.joinData.to + // 处理数据库 + const dispList = [] + // 数据库 + db.forEach(item => { + dispList.push({ + nodeCode: this.node.id, // 节点编码 + dispKey: 'db', // 存储编码 + dispLabel: item.tableComment, // 显示名称 + dispValue: item.dbName, // 存储值 + dispType: 'string', // 存储类型 + dispDesc: item.dbTable // 备注信息 + }) + }) + // 表结构 + fields.forEach(field => { + dispList.push({ + nodeCode: this.node.id, + dispKey: 'fields', + dispLabel: field.fieldComment, + dispValue: field.fieldName, + dispType: field.fieldType, + dispDesc: field.tableName + }) + }) + // 连接方式 + dispList.push({ + nodeCode: this.node.id, + dispKey: 'join', + dispLabel: join, + dispValue: join, + dispType: 'String', + dispDesc: '' + }) + // 连接字段1 + dispList.push({ + nodeCode: this.node.id, + dispKey: 'joinDataForm', + dispLabel: form.fieldComment, + dispValue: form.fieldName, + dispType: form.fieldType, + dispDesc: form.tableName + }) + // 连接字段2 + dispList.push({ + nodeCode: this.node.id, + dispKey: 'joinDataTo', + dispLabel: to.fieldComment, + dispValue: to.fieldName, + dispType: to.fieldType, + dispDesc: to.tableName + }) + + return dispList + } } } From 2755da368fd48e5d9e53d6f71bca5b0ff06687f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?= <2847127106@qq.com> Date: Sun, 1 Sep 2024 15:27:30 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=A1=A8=E7=BB=93=E6=9E=84,=E8=81=94?= =?UTF-8?q?=E5=90=88=E6=9F=A5=E8=AF=A2,=E6=95=B0=E6=8D=AE=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quest/node/components/node/dispUpd.vue | 4 +- .../node/components/node/type/exporFind.vue | 345 +++++++++++++++--- .../node/components/node/type/exporUpd.vue | 298 --------------- .../node/components/node/type/exporUpd2.vue | 85 ----- .../node/components/node/type/uniteFind.vue | 14 +- src/views/quest/task/index.vue | 25 +- 6 files changed, 314 insertions(+), 457 deletions(-) delete mode 100644 src/views/quest/node/components/node/type/exporUpd.vue delete mode 100644 src/views/quest/node/components/node/type/exporUpd2.vue diff --git a/src/views/quest/node/components/node/dispUpd.vue b/src/views/quest/node/components/node/dispUpd.vue index 0a629fc..a5aaf3f 100644 --- a/src/views/quest/node/components/node/dispUpd.vue +++ b/src/views/quest/node/components/node/dispUpd.vue @@ -22,13 +22,11 @@ // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等), // 例如:import 《组件名称》 from '《组件路径》, import TableUpd from './type/tableUpd.vue' -import ExporUpd from './type/exporUpd.vue' -import {batchAddUpd} from "@/api/quest/disposition"; export default { // import引入的组件需要注入到对象中才能使用" name: 'type-table', - components: {TableUpd, ExporUpd}, + components: {TableUpd}, props: { data: {}, node: {}, diff --git a/src/views/quest/node/components/node/type/exporFind.vue b/src/views/quest/node/components/node/type/exporFind.vue index b5084bf..7e68663 100644 --- a/src/views/quest/node/components/node/type/exporFind.vue +++ b/src/views/quest/node/components/node/type/exporFind.vue @@ -1,37 +1,123 @@ - diff --git a/src/views/quest/node/components/node/type/exporUpd2.vue b/src/views/quest/node/components/node/type/exporUpd2.vue deleted file mode 100644 index 2a4a2be..0000000 --- a/src/views/quest/node/components/node/type/exporUpd2.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - diff --git a/src/views/quest/node/components/node/type/uniteFind.vue b/src/views/quest/node/components/node/type/uniteFind.vue index db2c1f0..188ad32 100644 --- a/src/views/quest/node/components/node/type/uniteFind.vue +++ b/src/views/quest/node/components/node/type/uniteFind.vue @@ -245,6 +245,7 @@ export default { /** 节点配置--unite 类型转换 vue -> mysql*/ getMysqlDisp(resp) { const db = resp.db + const table = resp.db const fields = resp.fields const join = resp.join const form = resp.joinData.form @@ -256,12 +257,23 @@ export default { dispList.push({ nodeCode: this.node.id, // 节点编码 dispKey: 'db', // 存储编码 - dispLabel: item.tableComment, // 显示名称 + dispLabel: '数据库', // 显示名称 dispValue: item.dbName, // 存储值 dispType: 'string', // 存储类型 dispDesc: item.dbTable // 备注信息 }) }) + // 数据表 + table.forEach(item => { + dispList.push({ + nodeCode: this.node.id, + dispKey: 'table', + dispLabel: item.tableComment, + dispValue: item.tableName, + dispType: 'string', + dispDesc: item.dbTable + }) + }) // 表结构 fields.forEach(field => { dispList.push({ diff --git a/src/views/quest/task/index.vue b/src/views/quest/task/index.vue index 1057a47..9d27593 100644 --- a/src/views/quest/task/index.vue +++ b/src/views/quest/task/index.vue @@ -75,9 +75,7 @@ - - - +