@@ -480,6 +654,18 @@ export default {
info: null,
},
nodeItemList: [
+ {
+ label: "开始",
+ value: {
+ width: 120,
+ height: 48,
+ meta: {
+ label: "开始",
+ name: "开始",
+ type: 1,
+ },
+ },
+ },
{
label: "普通节点",
value: {
@@ -493,14 +679,14 @@ export default {
},
},
{
- label: "开始",
+ label: "条件节点",
value: {
width: 120,
height: 48,
meta: {
- label: "开始",
- name: "开始",
- type: 1,
+ label: "条件节点",
+ name: "条件节点",
+ type: 4,
},
},
},
@@ -530,11 +716,13 @@ export default {
],
],
dialog_general: false,
+ dialog_general_judge: false,
nodeItem: {
id: "",
name: "",
},
node_name: "",
+ node_content: "",
show_options_pop: false,
dialog_interface: false,
optionType: [
@@ -630,6 +818,10 @@ export default {
max_time_check_1: false,
line_hieght: 41,
font_size: 16,
+ other_width: 120,
+ other_height: 48,
+ other_font_size: 116,
+ svg_top:34
};
},
mounted() {
@@ -732,6 +924,14 @@ export default {
id: query.meta.id,
plugins: [],
};
+ } else if (conf.info.meta.type == 4) {
+ obj = {
+ label: "条件节点",
+ name: "条件节点",
+ type: 4,
+ id: query.meta.id,
+ plugins: [],
+ };
}
this.nodeParamsList.push(obj);
}
@@ -765,7 +965,7 @@ export default {
clickItem(index) {
let item = this.nodeParams(index);
this.nodeItem = item;
- // console.log(item);
+ console.log(this.nodeItem);
},
blurItem() {
this.nodeItem = {
@@ -791,9 +991,9 @@ export default {
checkNodeCouldEdit() {
let self = this;
if (self.nodeItem.id && self.nodeItem.id != "") {
- if (self.nodeItem.type == 3) {
+ if (self.nodeItem.type == 3 || self.nodeItem.type == 4) {
return true;
- } else {
+ } else if (self.nodeItem.type == 1 || self.nodeItem.type == 2) {
self.$message({
message: "开始和结束节点不可被编辑",
type: "warning",
@@ -817,6 +1017,15 @@ export default {
self.dialog_general = true;
}
},
+ showJudgeGeneralSettings() {
+ if (this.checkNodeCouldEdit()) {
+ let self = this;
+ self.node_name = self.nodeParamsList.find((item) => {
+ return item.id == self.nodeItem.id;
+ }).name;
+ self.dialog_general_judge = true;
+ }
+ },
showInterfacePlugin() {
let self = this;
if (self.checkNodeCouldEdit()) {
@@ -890,6 +1099,27 @@ export default {
}
self.dialog_general = false;
},
+ generalJudgeCancel() {
+ this.dialog_general_judge = false;
+ },
+ generalJudgeSubmit() {
+ let self = this;
+ if (self.nodeItem.type == 4) {
+ let index = self.nodeParamsList.findIndex((item) => {
+ return item.id == self.nodeItem.id;
+ });
+ if (index != -1) {
+ self.nodeParamsList[index].name = self.node_name;
+ self.nodeParamsList[index].content = self.node_content;
+ } else {
+ self.$message({
+ message: "修改失败",
+ type: "error",
+ });
+ }
+ }
+ self.dialog_general_judge = false;
+ },
clickTab() {},
getUrl(enUrl) {
let url = decodeURI(enUrl);
@@ -1294,6 +1524,10 @@ export default {
});
this.line_hieght = 41 * scale;
this.font_size = 16 * scale;
+ this.other_width = 120 * scale;
+ this.other_height = 48 * scale;
+ this.other_font_size = 116 * scale;
+ this.svg_top = 34 * scale;
this.nodeList = obj.nodeList;
this.linkList = obj.linkList;
},
@@ -1463,22 +1697,43 @@ export default {
background-color: #ffffff;
border-radius: 10px;
line-height: @node-item-height;
- box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
+ // box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
cursor: pointer;
user-select: none;
text-align: center;
z-index: 6;
- &:hover {
- box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.4);
- }
&.node-item-begin {
border: solid 3px #25bdb1;
+ // &:hover {
+ // box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4);
+ // }
}
&.node-item-end {
border: solid 3px #f78181;
+ // &:hover {
+ // box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4);
+ // }
}
&.node-item-default {
border: solid 3px #b4c6f5;
+ // &:hover {
+ // box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4);
+ // }
+ }
+ &.node-item-judge {
+ border: none;
+ box-shadow: none;
+ position: relative;
+ background: transparent;
+ overflow: hidden;
+ line-height: 48px;
+ .judge_svg {
+ font-size: 116px;
+ position: absolute;
+ z-index: -1;
+ top: -34px;
+ left: 0px;
+ }
}
}
.scale_block {
@@ -1514,8 +1769,8 @@ export default {
}
}
.node-container {
- width: 160px;
- height: 300px;
+ width: 180px;
+ height: 360px;
text-align: center;
background-color: #f8f9fd;
border-radius: 8px;
@@ -1741,6 +1996,7 @@ export default {
background-color: #25bdb1;
color: #ffffff;
position: relative;
+ box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
}
.flow-node-end {
width: 100%;
@@ -1751,6 +2007,7 @@ export default {
border: solid 3px #e86262;
color: #ffffff;
position: relative;
+ box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
}
.flow-node-default {
width: 100%;
@@ -1760,6 +2017,7 @@ export default {
background-color: #fff;
border: solid 3px #b4c6f5;
position: relative;
+ box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
}
.flow-node-default-active {
width: 100%;
@@ -1772,6 +2030,25 @@ export default {
color: #fff;
position: relative;
}
+ .flow-node-judge {
+ width: 100%;
+ height: 100%;
+ padding: 2px 6px;
+ border-radius: 8px;
+ background-color: transparent;
+ border: none;
+ position: relative;
+ .svg_in {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ overflow: hidden;
+ .judge_svg {
+ position: relative;
+ }
+ }
+ }
}
}
.super-flow__menu-container .super-flow__menu {
@@ -1872,4 +2149,19 @@ export default {
}
}
}
+.super-flow-demo1 {
+ .super-flow__node {
+ box-shadow: none;
+ }
+}
+.nodes_i {
+ position: relative;
+ display: flex;
+ justify-content: space-around;
+}
+.node_icon {
+ position: relative;
+ top: 30px;
+ right: 4px;
+}
\ No newline at end of file
diff --git a/src/icons/svg/bg_tiaojian_hov.svg b/src/icons/svg/bg_tiaojian_hov.svg
new file mode 100644
index 0000000000000000000000000000000000000000..69cadafd87cfac67eac3816ddcfce603ee74943a
--- /dev/null
+++ b/src/icons/svg/bg_tiaojian_hov.svg
@@ -0,0 +1,25 @@
+
diff --git a/src/icons/svg/bg_tiaojian_nor.svg b/src/icons/svg/bg_tiaojian_nor.svg
new file mode 100644
index 0000000000000000000000000000000000000000..77b03c99153122fb88c36506964458144316afa1
--- /dev/null
+++ b/src/icons/svg/bg_tiaojian_nor.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/pages/workbench/component-center/process-management/process-design/edit.vue b/src/pages/workbench/component-center/process-management/process-design/edit.vue
index a448ca8ae746442399c6931faff68cf5eeac527e..cd022f7ceadbd927542523a2b3b1255e9f7e8f2f 100644
--- a/src/pages/workbench/component-center/process-management/process-design/edit.vue
+++ b/src/pages/workbench/component-center/process-management/process-design/edit.vue
@@ -1,9 +1,15 @@
- {{ $t("lang.online_component_tool") }}
- {{ $t("lang.process_design") }}
- {{ $t("lang.process_management") }}
+ {{
+ $t("lang.online_component_tool")
+ }}
+ {{
+ $t("lang.process_design")
+ }}
+ {{
+ $t("lang.process_management")
+ }}
{{ $t("lang.edit") }}
@@ -15,10 +21,18 @@
class="apaas_step"
>
-
+
流程名称:
-
+
工作区域:
@@ -39,7 +53,7 @@
流程描述:
@@ -85,7 +99,10 @@
-
![]()
+
保存成功
@@ -166,6 +183,8 @@ export default {
let end_after = 0;
let in_edge = 0;
let out_edge = 0;
+ let judge_nodes = [];
+ let in_judge_edges = 0;
let datas = { ...data.obj };
datas.nodeList.forEach((item) => {
let da = data.params.find((nodep) => {
@@ -181,6 +200,9 @@ export default {
end_num++;
end_id = item.id;
}
+ if (item.meta.type == 4) {
+ judge_nodes.push(item.meta.id);
+ }
if (
datas.linkList.findIndex((el) => {
return el.startId == item.id;
@@ -208,6 +230,9 @@ export default {
if (end_id == item.startId) {
end_after++;
}
+ if (judge_nodes.indexOf(item.endId) != -1) {
+ in_judge_edges++;
+ }
});
if (start_num != 1 || end_num != 1) {
this.$message({
@@ -238,6 +263,11 @@ export default {
message: "不能连接本节点之前的节点",
type: "warning",
});
+ } else if (judge_nodes.length != in_judge_edges) {
+ this.$message({
+ message: "条件节点应当有且只有一条入边",
+ type: "warning",
+ });
} else {
return datas;
}
diff --git a/src/pages/workbench/component-center/process-management/process-design/index.vue b/src/pages/workbench/component-center/process-management/process-design/index.vue
index faf25bebb59dce2fb0670b90b72976babafdc4b6..633798a76055bee924a22bd24fa1d433deec2079 100644
--- a/src/pages/workbench/component-center/process-management/process-design/index.vue
+++ b/src/pages/workbench/component-center/process-management/process-design/index.vue
@@ -151,6 +151,8 @@ export default {
let end_after = 0;
let in_edge = 0;
let out_edge = 0;
+ let judge_nodes = [];
+ let in_judge_edges = 0;
let datas = { ...data.obj };
datas.nodeList.forEach((item) => {
let da = data.params.find((nodep) => {
@@ -166,6 +168,9 @@ export default {
end_num++;
end_id = item.id;
}
+ if (item.meta.type == 4) {
+ judge_nodes.push(item.meta.id)
+ }
if (
datas.linkList.findIndex((el) => {
return el.startId == item.id;
@@ -193,6 +198,9 @@ export default {
if (end_id == item.startId) {
end_after++;
}
+ if (judge_nodes.indexOf(item.endId) != -1) {
+ in_judge_edges++;
+ }
});
if (start_num != 1 || end_num != 1) {
this.$message({
@@ -223,6 +231,11 @@ export default {
message: "不能连接本节点之前的节点",
type: "warning",
});
+ } else if (judge_nodes.length != in_judge_edges) {
+ this.$message({
+ message: "条件节点应当有且只有一条入边",
+ type: "warning",
+ });
} else {
return datas;
}