From c7f6ff651454e3fe0d4b6c8e4f0e216c0f313c58 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Thu, 15 Apr 2021 23:10:28 +0800 Subject: [PATCH] feat: add flowChart components --- package-lock.json | 25 +- package.json | 4 +- src/components/FlowChart/index.ts | 0 src/components/FlowChart/src/AddPanel.vue | 115 ++++++++ src/components/FlowChart/src/Bpmn.vue | 0 src/components/FlowChart/src/Control.vue | 74 +++++ src/components/FlowChart/src/DataDialog.vue | 22 ++ src/components/FlowChart/src/NodePanel.vue | 124 ++++++++ .../FlowChart/src/adpterForTurbo.ts | 166 +++++++++++ .../FlowChart/src/background/click.png | Bin 0 -> 2666 bytes .../FlowChart/src/background/download.png | Bin 0 -> 2028 bytes .../FlowChart/src/background/end.png | Bin 0 -> 4889 bytes .../FlowChart/src/background/push.png | Bin 0 -> 2286 bytes .../FlowChart/src/background/start.png | Bin 0 -> 3950 bytes .../FlowChart/src/background/time.png | Bin 0 -> 2988 bytes .../FlowChart/src/background/user.png | Bin 0 -> 40754 bytes src/components/FlowChart/src/config.ts | 55 ++++ src/router/index.ts | 41 ++- .../components/seamless-scroll/index.vue | 16 +- src/views/flow-chart/dataTurbo.json | 272 ++++++++++++++++++ src/views/flow-chart/index.vue | 132 +++++++++ 21 files changed, 1029 insertions(+), 17 deletions(-) create mode 100644 src/components/FlowChart/index.ts create mode 100644 src/components/FlowChart/src/AddPanel.vue create mode 100644 src/components/FlowChart/src/Bpmn.vue create mode 100644 src/components/FlowChart/src/Control.vue create mode 100644 src/components/FlowChart/src/DataDialog.vue create mode 100644 src/components/FlowChart/src/NodePanel.vue create mode 100644 src/components/FlowChart/src/adpterForTurbo.ts create mode 100644 src/components/FlowChart/src/background/click.png create mode 100644 src/components/FlowChart/src/background/download.png create mode 100644 src/components/FlowChart/src/background/end.png create mode 100644 src/components/FlowChart/src/background/push.png create mode 100644 src/components/FlowChart/src/background/start.png create mode 100644 src/components/FlowChart/src/background/time.png create mode 100644 src/components/FlowChart/src/background/user.png create mode 100644 src/components/FlowChart/src/config.ts create mode 100644 src/views/flow-chart/dataTurbo.json create mode 100644 src/views/flow-chart/index.vue diff --git a/package-lock.json b/package-lock.json index 78791df4f..6c256ccd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -390,9 +390,18 @@ } }, "@logicflow/core": { - "version": "0.2.9", - "resolved": "https://registry.npm.taobao.org/@logicflow/core/download/@logicflow/core-0.2.9.tgz", - "integrity": "sha1-wTU8PV0P58QNm7jPq+PMbVmF5PE=" + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@logicflow/core/-/core-0.3.0.tgz", + "integrity": "sha512-FPRTuj0y6Yny+YDZ+faTzA8pZyouEWX1Vr6rH91wJR0J3NOHgb7pV/TJoHSosavFuyyw87nLw9UsyUUgHKVV+A==" + }, + "@logicflow/extension": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@logicflow/extension/-/extension-0.3.0.tgz", + "integrity": "sha512-vMmYT8H53oFhOpNftCYQMbNYbTiXqQUxOOKlPcrKkZb0FsXSiEZ/MUKBF3mAarvFlzdMaB5xJjakMfy07/bdvw==", + "requires": { + "@logicflow/core": "^0.3.0", + "ids": "^1.0.0" + } }, "@nodelib/fs.scandir": { "version": "2.1.4", @@ -1235,6 +1244,11 @@ "integrity": "sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=", "dev": true }, + "ids": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ids/-/ids-1.0.0.tgz", + "integrity": "sha512-Zvtq1xUto4LttpstyOlFum8lKx+i1OmRfg+6A9drFS9iSZsDPMHG4Sof/qwNR4kCU7jBeWFPrY2ocHxiz7cCRw==" + }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", @@ -1958,6 +1972,11 @@ "@vue/devtools-api": "^6.0.0-beta.7" } }, + "vue-json-pretty": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-2.0.2.tgz", + "integrity": "sha512-Vn7SX3XR9cfvGRNoTDNID89GmvVUMb7/fLUX3C3n0Qptga0N7hp7Zwspui1I1XN5pE+PeoVghCSYty+bi8KnjA==" + }, "vue-router": { "version": "4.0.6", "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-4.0.6.tgz", diff --git a/package.json b/package.json index 82191772f..fd2e4f0da 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ }, "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", - "@logicflow/core": "^0.2.9", + "@logicflow/core": "^0.3.0", + "@logicflow/extension": "^0.3.0", "@vueuse/core": "^4.8.1", "await-to-js": "^2.1.1", "axios": "^0.21.1", @@ -27,6 +28,7 @@ "v-contextmenu": "^3.0.0-alpha.4", "vue": "^3.0.11", "vue-i18n": "^9.1.2", + "vue-json-pretty": "^2.0.2", "vue-router": "^4.0.6", "vue-types": "^3.0.2", "vuedraggable": "^4.0.1", diff --git a/src/components/FlowChart/index.ts b/src/components/FlowChart/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/components/FlowChart/src/AddPanel.vue b/src/components/FlowChart/src/AddPanel.vue new file mode 100644 index 000000000..d61ba14f1 --- /dev/null +++ b/src/components/FlowChart/src/AddPanel.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/components/FlowChart/src/Bpmn.vue b/src/components/FlowChart/src/Bpmn.vue new file mode 100644 index 000000000..e69de29bb diff --git a/src/components/FlowChart/src/Control.vue b/src/components/FlowChart/src/Control.vue new file mode 100644 index 000000000..3b57f33f6 --- /dev/null +++ b/src/components/FlowChart/src/Control.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/components/FlowChart/src/DataDialog.vue b/src/components/FlowChart/src/DataDialog.vue new file mode 100644 index 000000000..c83352a95 --- /dev/null +++ b/src/components/FlowChart/src/DataDialog.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/FlowChart/src/NodePanel.vue b/src/components/FlowChart/src/NodePanel.vue new file mode 100644 index 000000000..cf22fada8 --- /dev/null +++ b/src/components/FlowChart/src/NodePanel.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/components/FlowChart/src/adpterForTurbo.ts b/src/components/FlowChart/src/adpterForTurbo.ts new file mode 100644 index 000000000..5b98a377c --- /dev/null +++ b/src/components/FlowChart/src/adpterForTurbo.ts @@ -0,0 +1,166 @@ + +const TurboType = { + SEQUENCE_FLOW: 1, + START_EVENT: 2, + END_EVENT: 3, + USER_TASK: 4, + SERVICE_TASK: 5, + EXCLUSIVE_GATEWAY: 6, +} + +function getTurboType(type) { + switch (type) { + case 'bpmn:sequenceFlow': + return TurboType.SEQUENCE_FLOW + case 'bpmn:startEvent': + return TurboType.START_EVENT + case 'bpmn:endEvent': + return TurboType.END_EVENT + case 'bpmn:userTask': + return TurboType.USER_TASK + case 'bpmn:serviceTask': + return TurboType.SERVICE_TASK + case 'bpmn:exclusiveGateway': + return TurboType.EXCLUSIVE_GATEWAY + default: + return type + } +} + +function convertNodeToTurboElement(node) { + const { id, type, x, y, text = '', properties } = node + return { + incoming: [], + outgoing: [], + dockers: [], + type: getTurboType(node.type), + properties: { + ...properties, + name: text && text.value || '', + x: x, + y: y, + text, + logicFlowType: type, + }, + key: id, + } +} + +function convertEdgeToTurboElement(edge) { + const { + id, + type, + sourceNodeId, + targetNodeId, + startPoint, + endPoint, + pointsList, + text = '', + properties } = edge + return { + incoming: [sourceNodeId], + outgoing: [targetNodeId], + type: getTurboType(type), + dockers: [], + properties: { + ...properties, + name: text && text.value || '', + text, + startPoint, + endPoint, + pointsList, + logicFlowType: type, + }, + key: id, + } +} + +export function toTurboData(data) { + const nodeMap = new Map() + const turboData = { + flowElementList: [], + } + data.nodes.forEach((node) => { + const flowElement = convertNodeToTurboElement(node) + turboData.flowElementList.push(flowElement) + nodeMap.set(node.id, flowElement) + }) + data.edges.forEach((edge) => { + const flowElement = convertEdgeToTurboElement(edge) + const sourceElement = nodeMap.get(edge.sourceNodeId) + sourceElement.outgoing.push(flowElement.key) + const targetElement = nodeMap.get(edge.targetNodeId) + targetElement.incoming.push(flowElement.key) + turboData.flowElementList.push(flowElement) + }) + return turboData +} + + +function convertFlowElementToEdge(element) { + const { incoming, outgoing, properties, key } = element + const { + text, + startPoint, + endPoint, + pointsList, + logicFlowType + } = properties + const edge = { + id: key, + type: logicFlowType, + sourceNodeId: incoming[0], + targetNodeId: outgoing[0], + text, + startPoint, + endPoint, + pointsList, + properties: {} + } + const excludeProperties = ['startPoint', 'endPoint', 'pointsList', 'text', 'logicFlowType'] + Object.keys(element.properties).forEach(property => { + if (excludeProperties.indexOf(property) === -1) { + edge.properties[property] = element.properties[property] + } + }) + return edge +} + +function convertFlowElementToNode(element) { + const { properties, key } = element + const { x, y, text, logicFlowType } = properties + const node = { + id: key, + type: logicFlowType, + x, + y, + text, + properties: {} + } + const excludeProperties = ['x', 'y', 'text', 'logicFlowType'] + Object.keys(element.properties).forEach(property => { + if (excludeProperties.indexOf(property) === -1) { + node.properties[property] = element.properties[property] + } + }) + return node + +} + +export function toLogicflowData(data) { + const lfData = { + nodes: [], + edges: [], + } + const list = data.flowElementList + list && list.length > 0 && list.forEach(element => { + if (element.type === TurboType.SEQUENCE_FLOW) { + const edge = convertFlowElementToEdge(element) + lfData.edges.push(edge) + } else { + const node = convertFlowElementToNode(element) + lfData.nodes.push(node) + } + }) + return lfData +} \ No newline at end of file diff --git a/src/components/FlowChart/src/background/click.png b/src/components/FlowChart/src/background/click.png new file mode 100644 index 0000000000000000000000000000000000000000..9679fb5e798a9d1f8ca0882d5005fb1f427f5078 GIT binary patch literal 2666 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 V^C3Ihj`u?XONy=eJ+f!w{{Z@=uJ8Z= literal 0 HcmV?d00001 diff --git a/src/components/FlowChart/src/background/download.png b/src/components/FlowChart/src/background/download.png new file mode 100644 index 0000000000000000000000000000000000000000..d28cf951e5b623c31a351b80e5004a7db9e86295 GIT binary patch literal 2028 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 R59wcCz~rI@l61i(_CFa}1PTBE literal 0 HcmV?d00001 diff --git a/src/components/FlowChart/src/background/push.png b/src/components/FlowChart/src/background/push.png new file mode 100644 index 0000000000000000000000000000000000000000..be493f4d12a25039a26f37682c6ab5199cf61044 GIT binary patch literal 2286 zcmVE!XYEKa%AqXMF+SvElcd@q`f>>LE*h*~iMGyqBFBJ`q ztv(?kgfBiw$X`bDwtde%bI!~;ceY8Iwz;!C|L1q-oIA@iV<;(W1;%7;eKDQ_K;{q> z015z^E0DSQv5o-y0owyRn7=1wSun=6?&=qlw+I0Pq#CMH9m^&N~yBXKQ~9 z0O;AK=YC1{3TVW9*Cu-m0DJ~au`#CPS)#ywz^OKRgbu)1;8z<%N}i<@_z;+8qeP*4a@$UtWQ!z(;k$gbu(-z}z|`%IBjhus85V zoi?EZAc{YzGopN+E&!_m3xG|FlN&3L#0Vg(_X1vTYA0A%(=;9EQUv(J?z0P^Za!1urk*}HhK0LcO%v&Wmq!MX*4N(GVzKvu73rimxl zK=4>(lSu~vXPT*87rv7RK;mez=mlW63Z*6hi(OP4Qd!yc60nOy`&j@Webxk?0QAin znJxxqIS4rHqT1fI(4iC20B|I5wxM0SUFWxOoL0V`1P&S@m>vy_90UxZs3yQP5!NO} z0l+oD)uUMVG;l;it5-B5!C__*L;}Q~s`Rn3D|i6vjB5jd7Pn3SzOz{gvr%!#dFnJ8 z)V-hqur;g=1Vi?j*XC_?8m-Y_0cdJe&JZ-!Y9t6j0?^i=Tp?(ymp}*(08MV(=`cX% z2thIctP1FG$A%67sAz5wBm;m>^6E6JkCYPx$pGMc88;UQk^w;9{I`K!eGCDnjvOFJ z3II*hJ`Y~w5~U77QUK_Sd#IVS*R-v#lrjX#0U)PqBzOu~*%tu`|2jw#0Qp@@w}N2x z0>MB9k_A9kE6|f5Si3+_sX)>I$m$v9onV~;!Kex(4}h%R(~Jb;3Ixk3kOcs;TJr;X z9Bfb^SW1Cx0Fc!?8wfTo5G+w3D*$BmPUfA!=V{=W=Lxa{KoD$aMuN@DNI;eV$nRSl z2pUJe8~{y>BSE$R$d4|@S8)&<1TGo`wE#cmtjePaHdz&DaahjiyWJ~+>-%ohqP<=K*w@_2>vM0ug>AuP(Z!TE1k;Ts)>@9t&|zWbG%y;!J zIz+oI+{NfB2j~vs+kAVchx%N!h!Ox7gRA^;9&mdP&g!BG7d@f_z{S`q@y`M7=)yBS z)#;*1Q~*`0Nog(6Ue$c z##cHCc+gj6f!31@04I9>rmDV&0(F|tZY2YN&xjw#0}uODIpDgI0bn2C6%Rrm2R!1T zo>;0#1_0OJv?_lr@MtWa^VH9z0C0ie7~nBaqQ+EBasae};AnGhAtuN9>T8k!G=bnK z6Fl0Npt04HEC4nT9BJYOH+7oIO*ZrBP0NOsKWPA}AovB)lJ5K#-q2x>8%;T@nXndZ z^jRc%03@c)CTau6j>hRao4=@q%I7Y#@iT>A4X*==ncOB>eF4U_sX4$hS`Az_s6%KG zznaSC8Z0{-0JP=1YQMjNJ!lw>E$KZ*{nnw~wkZn$Y@U&Nr}(0+ibE(j$=kMGu)M-%X{=mx(@++&( zDQL_3FjEo$*v#~GDY6!&w6xqbX)3qtFn4u*Dge|eWbyfnz`+*zmd!E__^CxXpG67) z9@Lx#=n9!OX@R+iu}xVYWeNZuRMg2My@#|(znXc1Hf4R3DFAp-QPa+CBB^VtT4jfs zk^n$Eg@zgANlVFXf@crfqtF)=6M)5ajfK7==s@75IwLy%Tp{KZYR)!k@=E&;HnACmdqFAg(ldz>Ps)TYn@SPS^Q){1^I=zQaA z1Devp(DT6V{d8wwE7s>JLI*%r>Ou!C!i11CD=7%HTlZ(vA?;?C(=QKXMerGO@rRXO zF#sS#^cc|NAf%)|jSs}>BX!ZUU+(}`DHZ_M8}W^^GAz?f8ZC7Vj&+I!02!p|RZY!K zv$ig;j5-me$55jb69E4krnvvJ8(Eol=I4y#wQSuu#R!0mTp!rZ{F!3@-`My_3;YOt zY__Dy=|8yG5i0;LHkYy^6es{>jza;U0Fb!?nVVlmfXo5-7bfw&kh<$aTmS$707*qo IM6N<$g3qS_Gynhq literal 0 HcmV?d00001 diff --git a/src/components/FlowChart/src/background/start.png b/src/components/FlowChart/src/background/start.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c3a5014f40ee0d63deead370faa7f3d965745a GIT binary patch literal 3950 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 p^i)& = [ } }, { - path: '/user', - name: 'user', + path: '/flowChart', + name: 'flowChart', component: Layout, - redirect: '/user/base', + redirect: '/flowChart/index', children: [ { - path: '/user/base', - component: () => import(/* webpackChunkName: "user" */ '../views/user.vue'), + path: '/flowChart/index', + component: () => import(/* webpackChunkName: "user" */ '../views/flow-chart/index.vue'), meta: { - // icon: 'el-icon-user', - title: 'baseinfo', + title: 'flowChart', showLink: false, savedPosition: true } }, ], meta: { - icon: 'el-icon-user', - title: 'usermanagement', + icon: 'el-icon-set-up', + title: 'flowChart', showLink: true, savedPosition: true } @@ -178,6 +177,30 @@ const routes: Array = [ savedPosition: true } }, + { + path: '/user', + name: 'user', + component: Layout, + redirect: '/user/base', + children: [ + { + path: '/user/base', + component: () => import(/* webpackChunkName: "user" */ '../views/user.vue'), + meta: { + // icon: 'el-icon-user', + title: 'baseinfo', + showLink: false, + savedPosition: true + } + }, + ], + meta: { + icon: 'el-icon-user', + title: 'usermanagement', + showLink: true, + savedPosition: true + } + }, { path: '/error', name: 'error', diff --git a/src/views/components/seamless-scroll/index.vue b/src/views/components/seamless-scroll/index.vue index 18209383f..20e2494a1 100644 --- a/src/views/components/seamless-scroll/index.vue +++ b/src/views/components/seamless-scroll/index.vue @@ -4,10 +4,18 @@ diff --git a/src/views/flow-chart/dataTurbo.json b/src/views/flow-chart/dataTurbo.json new file mode 100644 index 000000000..639a67e6f --- /dev/null +++ b/src/views/flow-chart/dataTurbo.json @@ -0,0 +1,272 @@ +{ + "flowElementList": [ + { + "incoming": [], + "outgoing": [ + "Flow_33inf2k" + ], + "dockers": [], + "type": 2, + "properties": { + "a": "efrwe", + "b": "wewe", + "name": "开始", + "x": 280, + "y": 200, + "text": { + "x": 280, + "y": 200, + "value": "开始" + }, + "logicFlowType": "bpmn:startEvent" + }, + "key": "Event_1d42u4p" + }, + { + "incoming": [ + "Flow_379e0o9" + ], + "outgoing": [], + "dockers": [], + "type": 3, + "properties": { + "a": "efrwe", + "b": "wewe", + "name": "结束", + "x": 920, + "y": 200, + "text": { + "x": 920, + "y": 200, + "value": "结束" + }, + "logicFlowType": "bpmn:endEvent" + }, + "key": "Event_08p8i6q" + }, + { + "incoming": [ + "Flow_0pfouf0" + ], + "outgoing": [ + "Flow_3918lhh" + ], + "dockers": [], + "type": 6, + "properties": { + "a": "efrwe", + "b": "wewe", + "name": "网关", + "x": 580, + "y": 200, + "text": { + "x": 580, + "y": 200, + "value": "网关" + }, + "logicFlowType": "bpmn:exclusiveGateway" + }, + "key": "Gateway_1fngqgj" + }, + { + "incoming": [ + "Flow_33inf2k" + ], + "outgoing": [ + "Flow_0pfouf0" + ], + "dockers": [], + "type": 4, + "properties": { + "a": "efrwe", + "b": "wewe", + "name": "用户", + "x": 420, + "y": 200, + "text": { + "x": 420, + "y": 200, + "value": "用户" + }, + "logicFlowType": "bpmn:userTask" + }, + "key": "Activity_2mgtaia" + }, + { + "incoming": [ + "Flow_3918lhh" + ], + "outgoing": [ + "Flow_379e0o9" + ], + "dockers": [], + "type": 5, + "properties": { + "a": "efrwe", + "b": "wewe", + "name": "服务", + "x": 760, + "y": 200, + "text": { + "x": 760, + "y": 200, + "value": "服务" + }, + "logicFlowType": "bpmn:serviceTask" + }, + "key": "Activity_1sp8qc8" + }, + { + "incoming": [ + "Event_1d42u4p" + ], + "outgoing": [ + "Activity_2mgtaia" + ], + "type": 1, + "dockers": [], + "properties": { + "name": "边", + "text": { + "x": 331, + "y": 200, + "value": "边" + }, + "startPoint": { + "x": 298, + "y": 200 + }, + "endPoint": { + "x": 370, + "y": 200 + }, + "pointsList": [ + { + "x": 298, + "y": 200 + }, + { + "x": 370, + "y": 200 + } + ], + "logicFlowType": "bpmn:sequenceFlow" + }, + "key": "Flow_33inf2k" + }, + { + "incoming": [ + "Activity_2mgtaia" + ], + "outgoing": [ + "Gateway_1fngqgj" + ], + "type": 1, + "dockers": [], + "properties": { + "name": "边2", + "text": { + "x": 507, + "y": 200, + "value": "边2" + }, + "startPoint": { + "x": 470, + "y": 200 + }, + "endPoint": { + "x": 555, + "y": 200 + }, + "pointsList": [ + { + "x": 470, + "y": 200 + }, + { + "x": 555, + "y": 200 + } + ], + "logicFlowType": "bpmn:sequenceFlow" + }, + "key": "Flow_0pfouf0" + }, + { + "incoming": [ + "Gateway_1fngqgj" + ], + "outgoing": [ + "Activity_1sp8qc8" + ], + "type": 1, + "dockers": [], + "properties": { + "name": "边3", + "text": { + "x": 664, + "y": 200, + "value": "边3" + }, + "startPoint": { + "x": 605, + "y": 200 + }, + "endPoint": { + "x": 710, + "y": 200 + }, + "pointsList": [ + { + "x": 605, + "y": 200 + }, + { + "x": 710, + "y": 200 + } + ], + "logicFlowType": "bpmn:sequenceFlow" + }, + "key": "Flow_3918lhh" + }, + { + "incoming": [ + "Activity_1sp8qc8" + ], + "outgoing": [ + "Event_08p8i6q" + ], + "type": 1, + "dockers": [], + "properties": { + "name": "边4", + "text": { + "x": 871, + "y": 200, + "value": "边4" + }, + "startPoint": { + "x": 810, + "y": 200 + }, + "endPoint": { + "x": 902, + "y": 200 + }, + "pointsList": [ + { + "x": 810, + "y": 200 + }, + { + "x": 902, + "y": 200 + } + ], + "logicFlowType": "bpmn:sequenceFlow" + }, + "key": "Flow_379e0o9" + } + ] +} \ No newline at end of file diff --git a/src/views/flow-chart/index.vue b/src/views/flow-chart/index.vue new file mode 100644 index 000000000..398b607b1 --- /dev/null +++ b/src/views/flow-chart/index.vue @@ -0,0 +1,132 @@ + + + +