Commit 3d36203a authored by 刘殿昕's avatar 刘殿昕

流程图一点点功能,数据分析菜单

parent 2e38167d
<template> <template>
<div> <div class="super-flow-demo1">
<div class="super-flow-demo1"> <div class="scale_block">
<div class="scale_block"> <div class="scale_control">
<div class="scale_control"> <div class="less">
<div class="less"> <i class="el-icon-minus"></i>
<i class="el-icon-minus"></i> </div>
</div> <div class="num">{{ scale_num }}%</div>
<div class="num">{{ scale_num }}%</div> <div class="add">
<div class="add"> <i class="el-icon-plus"></i>
<i class="el-icon-plus"></i> </div>
</div> </div>
<div class="node-container">
<p class="label_head">节点类型</p>
<p class="label_explanation">请拖拽添加到流程中</p>
<div
class="node-item"
:class="{'node-item-begin': item.value.meta.type == 0, 'node-item-end': item.value.meta.type == 1, 'node-item-default': item.value.meta.type == 2}"
v-for="(item, index) in nodeItemList"
:key="index"
@mousedown="evt => nodeItemMouseDown(evt, item.value)"
>
<span>{{item.label}}</span>
</div> </div>
<div class="node-container"> </div>
<p class="label_head">节点类型</p> </div>
<p class="label_explanation">请拖拽添加到流程中</p> <div class="flow-container" ref="flowContainer">
<super-flow
ref="superFlow"
:node-list="nodeList"
:link-list="linkList"
:link-menu="linkMenu"
line-color="#c4d8f8"
onLineColor="#94a8c8"
:origin="origin"
>
<template v-slot:node="{meta}">
<div <div
class="node-item" :class="{'flow-node-begin': meta.type == 0, 'flow-node-end': meta.type == 1, 'flow-node-default': meta.type == 2}"
:class="{'node-item-begin': item.value.meta.type == 0, 'node-item-end': item.value.meta.type == 1, 'node-item-default': item.value.meta.type == 2}" :id="meta.id"
v-for="(item, index) in nodeItemList"
:key="index"
@mousedown="evt => nodeItemMouseDown(evt, item.value)"
> >
<span>{{item.label}}</span> <div class="node_span" @click="clickItem(meta)">{{meta.name}}</div>
</div> </div>
</div> </template>
</super-flow>
</div>
<div class="flow_options">
<p class="options_head">操作</p>
<div class="options_item">
<img :src="require('@/assets/imgs/lcsj_ic_set.png')" class="options_img" />
<p class="options_text">常规设置</p>
</div> </div>
<div class="flow-container" ref="flowContainer"> <div class="options_item">
<super-flow <img :src="require('@/assets/imgs/lcsj_ic_chajian.png')" class="options_img" />
ref="superFlow" <p class="options_text">插件设置</p>
:node-list="nodeList"
:link-list="linkList"
:link-menu="linkMenu"
line-color="#c4d8f8"
onLineColor="#94a8c8"
:origin="origin"
>
<template v-slot:node="{meta}">
<div
:class="{'flow-node-begin': meta.type == 0, 'flow-node-end': meta.type == 1, 'flow-node-default': meta.type == 2}"
:id="meta.id"
>
<div class="node_span" @click="clickItem(meta)">{{meta.name}}</div>
</div>
</template>
</super-flow>
</div> </div>
</div> </div>
</div> </div>
...@@ -285,6 +294,34 @@ export default { ...@@ -285,6 +294,34 @@ export default {
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
} }
.flow_options {
width: 84px;
height: 244px;
background-color: #f8f9fd;
border-radius: 42px;
position: absolute;
top: 10px;
right: 0;
text-align: center;
.options_head {
color: #242c43;
font-size: 14px;
font-weight: bold;
margin-top: 30px;
}
.options_item {
margin-top: 20px;
cursor: pointer;
color: #242c43;
&:hover {
color: #515fe7;
}
.options_img {
width: 40px;
height: 40px;
}
}
}
} }
.node-item { .node-item {
@node-item-height: 42px; @node-item-height: 42px;
......
<template> <template>
<div class="fwgl_container"> <div class="fwgl_container">
<side-nav-bar <side-nav-bar
title="数据分析中心" title="运营管控中心"
imgSrc="tool_fuwu" imgSrc="tool_fuwu"
:nav-list="navList" :nav-list="navList"
:title-path="navList[0] && navList[0].path" :title-path="navList[0] && navList[0].path"
...@@ -22,29 +22,29 @@ export default { ...@@ -22,29 +22,29 @@ export default {
data: () => ({ data: () => ({
userNav: [ userNav: [
{ {
name: "我的服务数据分析", name: "服务分析",
path: `/data_analysis/my_service` path: `/data_analysis/my_service`
}, },
{ {
name: "我的应用数据分析", name: "应用分析",
path: `/data_analysis/my_application` path: `/data_analysis/my_application`
}, },
{ // {
name: "组织服务数据分析", // name: "组织服务数据分析",
path: `/data_analysis/org_service` // path: `/data_analysis/org_service`
}, // },
{ // {
name: "组织应用数据分析", // name: "组织应用数据分析",
path: `/data_analysis/org_application` // path: `/data_analysis/org_application`
}, // },
{ // {
name: "运行概况-组织", // name: "运行概况-组织",
path: `/data_analysis/operation_overview` // path: `/data_analysis/operation_overview`
}, // },
{ // {
name: "服务管控-组织", // name: "服务管控-组织",
path: `/data_analysis/service_control` // path: `/data_analysis/service_control`
} // }
], ],
navList: [] navList: []
}), }),
......
...@@ -135,6 +135,8 @@ export default { ...@@ -135,6 +135,8 @@ export default {
let end_id = ""; let end_id = "";
let start_before = 0; let start_before = 0;
let end_after = 0; let end_after = 0;
let in_edge = 0;
let out_edge = 0;
data.nodeList.forEach((item) => { data.nodeList.forEach((item) => {
if (item.meta.type == 0) { if (item.meta.type == 0) {
start_num++; start_num++;
...@@ -144,6 +146,21 @@ export default { ...@@ -144,6 +146,21 @@ export default {
end_num++; end_num++;
end_id = item.id; end_id = item.id;
} }
if (
data.linkList.findIndex((el) => {
return el.startId == item.id;
}) == -1 &&
item.id != end_id
) {
in_edge++;
} else if (
data.linkList.findIndex((el) => {
return el.endId == item.id;
}) == -1 &&
item.id != start_id
) {
out_edge++;
}
}); });
data.linkList.forEach((item) => { data.linkList.forEach((item) => {
if (start_id == item.endId) { if (start_id == item.endId) {
...@@ -168,6 +185,11 @@ export default { ...@@ -168,6 +185,11 @@ export default {
message: "结束节点后面不应连接其它节点", message: "结束节点后面不应连接其它节点",
type: "warning", type: "warning",
}); });
} else if (in_edge != 0 || out_edge != 0) {
this.$message({
message: "请保证每个节点都被连接",
type: "warning",
});
} }
}, },
backToList() { backToList() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment