diff --git a/admin/src/components/flow/flowEdit/Diagram.vue b/admin/src/components/flow/flowEdit/Diagram.vue
index 6a9e528..4650711 100644
--- a/admin/src/components/flow/flowEdit/Diagram.vue
+++ b/admin/src/components/flow/flowEdit/Diagram.vue
@@ -219,6 +219,7 @@ export default {
label: node?.text?.value,
type: node.type,
fieldAuth: node?.properties?.fieldAuth,
+ gateway: node?.properties?.gateway,
userType: node?.properties?.userType || 0,
userId: node?.properties?.userId || 0,
diff --git a/admin/src/components/flow/flowEdit/DiagramSidebar.vue b/admin/src/components/flow/flowEdit/DiagramSidebar.vue
index 618de59..07d7bef 100644
--- a/admin/src/components/flow/flowEdit/DiagramSidebar.vue
+++ b/admin/src/components/flow/flowEdit/DiagramSidebar.vue
@@ -29,10 +29,10 @@
diff --git a/admin/src/components/flow/flowEdit/PropertyPanel.vue b/admin/src/components/flow/flowEdit/PropertyPanel.vue
index 9a8ff3d..df0c41e 100644
--- a/admin/src/components/flow/flowEdit/PropertyPanel.vue
+++ b/admin/src/components/flow/flowEdit/PropertyPanel.vue
@@ -29,43 +29,7 @@
数据入库
-
-
-
-
-
-
-
- 添加条件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
结束
@@ -75,12 +39,15 @@
+
+
diff --git a/admin/src/components/flow/flowEdit/node/index.js b/admin/src/components/flow/flowEdit/node/index.js
index da43deb..f85d118 100644
--- a/admin/src/components/flow/flowEdit/node/index.js
+++ b/admin/src/components/flow/flowEdit/node/index.js
@@ -1,10 +1,10 @@
// 基础图形
-import CircleNode from "./basic/CircleNode";
-import RectNode from "./basic/RectNode";
-import RectRadiusNode from "./basic/RectRadiusNode";
-import EllipseNode from "./basic/EllipseNode";
-import TextNode from "./basic/TextNode";
-import DiamondNode from "./basic/DiamondNode";
+// import CircleNode from './basic/CircleNode'
+// import RectNode from './basic/RectNode'
+// import RectRadiusNode from './basic/RectRadiusNode'
+// import EllipseNode from './basic/EllipseNode'
+// import TextNode from './basic/TextNode'
+// import DiamondNode from './basic/DiamondNode'
// // path绘制的个性化图形
// import CylindeNode from './path/CylindeNode'
// import TriangleNode from './path/TriangleNode'
@@ -31,73 +31,72 @@ import DiamondNode from "./basic/DiamondNode";
// image绘制左上角icon节点
// import IconMessage from './icon/Message'
// 注册边
-import Ployline from "./edge/Polyline";
-import Line from "./edge/Line";
-import Bezier from "./edge/Bezier";
+import Ployline from './edge/Polyline'
+import Line from './edge/Line'
+import Bezier from './edge/Bezier'
export const List = [
- // office_network,
- // firewall,
- // router,
- // coreSwitch,
-];
-console.log(List);
+ // office_network,
+ // firewall,
+ // router,
+ // coreSwitch,
+]
+console.log(List)
export const registerCustomElement = (lf) => {
- // 注册基础图形
- // lf.register(CircleNode);
- // lf.register(RectNode);
- // lf.register(RectRadiusNode);
- // lf.register(EllipseNode);
- // lf.register(DiamondNode);
- // lf.register(TextNode);
-
+ // 注册基础图形
+ // lf.register(CircleNode);
+ // lf.register(RectNode);
+ // lf.register(RectRadiusNode);
+ // lf.register(EllipseNode);
+ // lf.register(DiamondNode);
+ // lf.register(TextNode);
- // lf.register(status_error);
+ // lf.register(status_error);
- List.forEach((item) => {
- lf.register({
- type: item.type,
- view: item.view,
- model: item.model,
- });
- });
+ List.forEach((item) => {
+ lf.register({
+ type: item.type,
+ view: item.view,
+ model: item.model
+ })
+ })
- // // 注册path绘制的个性化图形
- // lf.register(CylindeNode)
- // lf.register(TriangleNode)
- // lf.register(ParallelogramNode)
- // lf.register(ActorNode)
- // lf.register(StarNode)
- // lf.register(PentagonNode)
- // lf.register(HexagonNode)
- // lf.register(SeptagonNode)
- // lf.register(HeptagonNode)
- // lf.register(TrapezoidNode)
- // lf.register(CrossNode)
- // lf.register(MinusNode)
- // lf.register(TimesNode)
- // lf.register(DivideNode)
- // // 注册多边形绘制的箭头
- // lf.register(LeftArrow)
- // lf.register(RightArrow)
- // lf.register(HorizontalArrow)
- // lf.register(UpArrow)
- // lf.register(DownArrow)
- // lf.register(VerticalArrow)
- // // 注册image绘制图片节点
- // lf.register(firewall)
- // lf.register(ImageUser)
- // lf.register(office_network)
+ // // 注册path绘制的个性化图形
+ // lf.register(CylindeNode)
+ // lf.register(TriangleNode)
+ // lf.register(ParallelogramNode)
+ // lf.register(ActorNode)
+ // lf.register(StarNode)
+ // lf.register(PentagonNode)
+ // lf.register(HexagonNode)
+ // lf.register(SeptagonNode)
+ // lf.register(HeptagonNode)
+ // lf.register(TrapezoidNode)
+ // lf.register(CrossNode)
+ // lf.register(MinusNode)
+ // lf.register(TimesNode)
+ // lf.register(DivideNode)
+ // // 注册多边形绘制的箭头
+ // lf.register(LeftArrow)
+ // lf.register(RightArrow)
+ // lf.register(HorizontalArrow)
+ // lf.register(UpArrow)
+ // lf.register(DownArrow)
+ // lf.register(VerticalArrow)
+ // // 注册image绘制图片节点
+ // lf.register(firewall)
+ // lf.register(ImageUser)
+ // lf.register(office_network)
- // lf.register(status_success)
- // lf.register(status_error)
+ // lf.register(status_success)
+ // lf.register(status_error)
- // lf.register(router)
+ // lf.register(router)
- // // 注册image绘制左上角icon节点
- // lf.register(IconMessage)
- // // 注册边
- lf.register(Ployline);
- lf.register(Line);
- lf.register(Bezier);
-};
+ // // 注册image绘制左上角icon节点
+ // lf.register(IconMessage)
+ // // 注册边
+ lf.register(Ployline)
+ lf.register(Line)
+ lf.register(Bezier)
+}
diff --git a/admin/src/views/flow/flow_apply/components/apply_submit.vue b/admin/src/views/flow/flow_apply/components/apply_submit.vue
index e5848e6..94c3b40 100644
--- a/admin/src/views/flow/flow_apply/components/apply_submit.vue
+++ b/admin/src/views/flow/flow_apply/components/apply_submit.vue
@@ -48,7 +48,7 @@
关闭
- 通过
+ 通过
@@ -63,7 +63,6 @@ import {
} from '@/api/flow/flow_history'
const dialogVisible = ref(false)
-
// const props = defineProps({
// save: {
// type: Function,
@@ -102,11 +101,6 @@ function open(applyId) {
}).then((res) => {
console.log('res', res)
next_nodes.value = res
-
- // res.map((item) => {
- // if (item.type == 'bpmn:userTask') {
- // }
- // })
})
flow_history_get_approver({ applyId: applyId }).then((user) => {
console.log('user', user)
@@ -118,8 +112,8 @@ function BeforeClose() {
// formData = {}
}
-function getData() {
- console.log('getData', next_nodes)
+function submit() {
+ console.log('submit', next_nodes)
if (userTask.value && !formData.applyUserId) {
feedback.msgWarning('请选择审批人')
@@ -132,18 +126,8 @@ function getData() {
}).then(() => {
BeforeClose()
})
- // formRef.value.getFormData().then((formData) => {
- // console.log('formData', formData)
- // props
- // .save(formData)
- // .then(() => {
- // BeforeClose()
- // })
- // .catch(() => {})
- // })
}
defineExpose({
- getData,
open
})
diff --git a/server/.vscode/settings.json b/server/.vscode/settings.json
index 4a9da6f..95f3264 100644
--- a/server/.vscode/settings.json
+++ b/server/.vscode/settings.json
@@ -3,8 +3,11 @@
"gocode",
"gonic",
"gorm",
- "x_admin",
+ "Infof",
+ "jinzhu",
"mapstructure",
- "rmvb"
+ "rmvb",
+ "Warnf",
+ "x_admin"
]
}
\ No newline at end of file
diff --git a/server/admin/flow/flow_history/flow_history_schema.go b/server/admin/flow/flow_history/flow_history_schema.go
index 1b04584..2e40180 100644
--- a/server/admin/flow/flow_history/flow_history_schema.go
+++ b/server/admin/flow/flow_history/flow_history_schema.go
@@ -72,6 +72,12 @@ type FlowHistoryResp struct {
CreateTime core.TsTime `json:"createTime" structs:"createTime"` // 创建时间
}
+type gateway struct {
+ // 网关节点
+ Id string `json:"id"`
+ Condition string `json:"condition"`
+ Value string `json:"value"`
+}
type FlowTree struct {
Id string `json:"id"`
Pid string `json:"pid"`
@@ -85,6 +91,8 @@ type FlowTree struct {
FieldAuth map[string]int `json:"fieldAuth"`
+ Gateway *[]gateway
+
Children *[]FlowTree `json:"children"`
}
type NextNodeReq struct {
diff --git a/server/admin/flow/flow_history/flow_history_service.go b/server/admin/flow/flow_history/flow_history_service.go
index fd1a511..82fb45c 100644
--- a/server/admin/flow/flow_history/flow_history_service.go
+++ b/server/admin/flow/flow_history/flow_history_service.go
@@ -3,6 +3,8 @@ package flow_history
import (
"encoding/json"
"errors"
+ "fmt"
+ "strconv"
"x_admin/admin/flow/flow_apply"
"x_admin/admin/system/admin"
"x_admin/admin/system/dept"
@@ -390,12 +392,66 @@ func DeepNextNode(nextNodes []FlowTree, flowTree *[]FlowTree, formValue map[stri
break
} else if v.Type == "bpmn:exclusiveGateway" {
// 网关
+ // v.Gateway
+ var haveFalse = false
+ var gateway = *v.Gateway
+ for i := 0; i < len(gateway); i++ {
+ var id = gateway[i].Id
+ var value = gateway[i].Value
+ var condition = gateway[i].Condition
+ if condition == "==" {
+ if formValue[id].(string) == value { // 等与
- // 判断formValue值,决定是不是递归这个网关
- child := DeepNextNode(nextNodes, v.Children, formValue)
- nextNodes = append(nextNodes, v)
- nextNodes = append(nextNodes, child...)
- break
+ } else {
+ haveFalse = true
+ }
+ } else if condition == "!=" {
+ if formValue[id].(string) != value { // 不等与
+
+ } else {
+ haveFalse = true
+ }
+ } else if condition == ">=" {
+ var val, err = strconv.Atoi(value)
+ if err != nil {
+ fmt.Println(err)
+ continue
+ }
+ var formVal = formValue[id].(int64)
+ if formVal >= int64(val) { // 大于等于
+
+ } else {
+ haveFalse = true
+ }
+ } else if condition == "<=" {
+ var val, err = strconv.Atoi(value)
+ if err != nil {
+ fmt.Println(err)
+ continue
+ }
+ var formVal = formValue[id].(int64)
+
+ if formVal <= int64(val) { // 小于等于
+
+ } else {
+ haveFalse = true
+ }
+ } else {
+ haveFalse = true
+ fmt.Println("未知的条件")
+ }
+
+ }
+ // 不满足条件,继续循环
+ if haveFalse {
+ continue
+ } else {
+ // 判断formValue值,决定是不是递归这个网关
+ child := DeepNextNode(nextNodes, v.Children, formValue)
+ nextNodes = append(nextNodes, v)
+ nextNodes = append(nextNodes, child...)
+ break
+ }
} else if v.Type == "bpmn:serviceTask" {
// 系统服务
child := DeepNextNode(nextNodes, v.Children, formValue)