From 2576735adeb42ddd39bbaae6f4f5662df781b83a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=9D=E8=A3=B3?= <1923740402@qq.com> Date: Sat, 17 Apr 2021 06:06:08 +0800 Subject: [PATCH] feat: add flowChart Component (#488) --- package.json | 3 + src/components/FlowChart/index.ts | 22 ++ src/components/FlowChart/src/Control.vue | 150 +++++++++++ src/components/FlowChart/src/DataDialog.vue | 18 ++ src/components/FlowChart/src/NodePanel.vue | 145 +++++++++++ .../FlowChart/src/adpterForTurbo.ts | 160 ++++++++++++ .../src/assets/background/bpmn-end.png | Bin 0 -> 921 bytes .../background/bpmn-exclusiveGateway.png | Bin 0 -> 830 bytes .../src/assets/background/bpmn-start.png | Bin 0 -> 697 bytes .../src/assets/background/bpmn-user.png | Bin 0 -> 754 bytes .../FlowChart/src/assets/background/click.png | Bin 0 -> 2666 bytes .../src/assets/background/download.png | Bin 0 -> 2028 bytes .../FlowChart/src/assets/background/end.png | Bin 0 -> 4889 bytes .../FlowChart/src/assets/background/push.png | Bin 0 -> 2286 bytes .../FlowChart/src/assets/background/start.png | Bin 0 -> 3950 bytes .../FlowChart/src/assets/background/time.png | Bin 0 -> 2988 bytes .../FlowChart/src/assets/background/user.png | Bin 0 -> 40754 bytes .../src/assets/iconfont/iconfont.css | 48 ++++ .../src/assets/iconfont/iconfont.eot | Bin 0 -> 3408 bytes .../FlowChart/src/assets/iconfont/iconfont.js | 61 +++++ .../src/assets/iconfont/iconfont.json | 58 +++++ .../src/assets/iconfont/iconfont.svg | 47 ++++ .../src/assets/iconfont/iconfont.ttf | Bin 0 -> 3240 bytes .../src/assets/iconfont/iconfont.woff | Bin 0 -> 2136 bytes .../src/assets/iconfont/iconfont.woff2 | Bin 0 -> 1652 bytes src/components/FlowChart/src/config.ts | 55 ++++ src/locales/lang/en/routes/demo/comp.ts | 1 + src/locales/lang/zh_CN/routes/demo/comp.ts | 1 + src/router/menus/modules/demo/comp.ts | 7 + src/router/routes/modules/demo/comp.ts | 8 + src/views/demo/comp/flow-chart/dataTurbo.json | 240 ++++++++++++++++++ src/views/demo/comp/flow-chart/index.vue | 133 ++++++++++ yarn.lock | 23 ++ 33 files changed, 1180 insertions(+) create mode 100644 src/components/FlowChart/index.ts 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/assets/background/bpmn-end.png create mode 100644 src/components/FlowChart/src/assets/background/bpmn-exclusiveGateway.png create mode 100644 src/components/FlowChart/src/assets/background/bpmn-start.png create mode 100644 src/components/FlowChart/src/assets/background/bpmn-user.png create mode 100644 src/components/FlowChart/src/assets/background/click.png create mode 100644 src/components/FlowChart/src/assets/background/download.png create mode 100644 src/components/FlowChart/src/assets/background/end.png create mode 100644 src/components/FlowChart/src/assets/background/push.png create mode 100644 src/components/FlowChart/src/assets/background/start.png create mode 100644 src/components/FlowChart/src/assets/background/time.png create mode 100644 src/components/FlowChart/src/assets/background/user.png create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.css create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.eot create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.js create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.json create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.svg create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.ttf create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.woff create mode 100644 src/components/FlowChart/src/assets/iconfont/iconfont.woff2 create mode 100644 src/components/FlowChart/src/config.ts create mode 100644 src/views/demo/comp/flow-chart/dataTurbo.json create mode 100644 src/views/demo/comp/flow-chart/index.vue diff --git a/package.json b/package.json index 105d24198..6d62756fd 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,8 @@ }, "dependencies": { "@iconify/iconify": "^2.0.0-rc.6", + "@logicflow/core": "^0.3.0", + "@logicflow/extension": "^0.3.0", "@vueuse/core": "^4.8.1", "@zxcvbn-ts/core": "^0.3.0", "ant-design-vue": "^2.1.2", @@ -52,6 +54,7 @@ "vditor": "^3.8.4", "vue": "3.0.11", "vue-i18n": "9.0.0", + "vue-json-pretty": "^2.0.2", "vue-router": "^4.0.6", "vue-types": "^3.0.2", "xlsx": "^0.16.9" diff --git a/src/components/FlowChart/index.ts b/src/components/FlowChart/index.ts new file mode 100644 index 000000000..61f1cb6b4 --- /dev/null +++ b/src/components/FlowChart/index.ts @@ -0,0 +1,22 @@ +import { App } from 'vue'; +import control from './src/Control.vue'; +import nodePanel from './src/NodePanel.vue'; +import dataDialog from './src/DataDialog.vue'; + +export const Control = Object.assign(control, { + install(app: App) { + app.component(control.name, control); + }, +}); + +export const NodePanel = Object.assign(nodePanel, { + install(app: App) { + app.component(nodePanel.name, nodePanel); + }, +}); + +export const DataDialog = Object.assign(dataDialog, { + install(app: App) { + app.component(dataDialog.name, dataDialog); + }, +}); diff --git a/src/components/FlowChart/src/Control.vue b/src/components/FlowChart/src/Control.vue new file mode 100644 index 000000000..a90843155 --- /dev/null +++ b/src/components/FlowChart/src/Control.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/components/FlowChart/src/DataDialog.vue b/src/components/FlowChart/src/DataDialog.vue new file mode 100644 index 000000000..a8272e3f6 --- /dev/null +++ b/src/components/FlowChart/src/DataDialog.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/components/FlowChart/src/NodePanel.vue b/src/components/FlowChart/src/NodePanel.vue new file mode 100644 index 000000000..2945b7b48 --- /dev/null +++ b/src/components/FlowChart/src/NodePanel.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/components/FlowChart/src/adpterForTurbo.ts b/src/components/FlowChart/src/adpterForTurbo.ts new file mode 100644 index 000000000..5c0e0411d --- /dev/null +++ b/src/components/FlowChart/src/adpterForTurbo.ts @@ -0,0 +1,160 @@ +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; +} diff --git a/src/components/FlowChart/src/assets/background/bpmn-end.png b/src/components/FlowChart/src/assets/background/bpmn-end.png new file mode 100644 index 0000000000000000000000000000000000000000..2263e16c788f7ea4b2e981aa9c6eb85163acbd6c GIT binary patch literal 921 zcmV;K17`e*P)74Oiy@~_(&V1jT@67i% z18}7J?X2dFg_FWxRiCwPnd-BTP}OgzC3yxopao|jg~S zd$_Fgop+TUQa=MMCX=Z9e#I;j;D!J?)&UjQ!aP<&#Tz2(LmZMjkX~IzOJLFCeAI^G zWq6YjD4gd=uuJQ8pqLBuc)*AosVp#%s|@04WT*gCo*^C2<$L*SJv752C*PD2VLTm4 zhV$}~{C^b`0^Da7_9hZ&2-5}^QFj6fDqayF@2^epnm1Vr6?-x``WAR)*eq-TB$S}G5 z4}}G*twzy) zY@Q=gZ$uR7H%^u-7QF{jmUNn6+ChLK*#cy)BFhyYVa6wYnXJ zL36w2x=k@r52>pcXq%B|r=C)aD_1P`C^2(P;_ebPAcb0b)gv;7+(EK2dODx*P&x0L zUvWZ}jt|2pRfgD3XVYg(>FtQPbblLVP?5m6W`&_yt+tg+dg-*Mb%b5FC70eM*8@L+ zodR*p=%>EbyxoZHIc#JrE?xar9`%HVGrSD@ayeKw{%gwh3Y(xyVf(s6=+zJlQO*54 zFUiq?0T{h8l(Q^O8}S>rUKRE{9AEHFUaw#}=U%AO4lE!KrNKmD0ONevtRC7RzzbEH zwyqZ)p^)y$3vg4dBbh_S<2Hepx>!;uwD2KqrP)1A^Ye7UPSizn=wf5ja^dO1{DF}jB zLA;1fT%!03il9G1Jk^_0Pof7sw1QX_q%D>dF{y~srs?kZzRA926H{;?nK$o!^UXK! zy;&eN4DEc`{;|M<^ADEodcF?u~4z&3UrKV&`Mx77#s_1Z!JVanN1qB9pR1d;hHpE z(S(>e=;N${Gt}hy7>Sui2TS&s9P?9hJX~!tXKPI~JW@v?R(X_EYDSV)li&VA*-lY{ zWAt&krBOsvyy_u<)w2z(_ySrF%oBHOrhy=W$xL7x#I<9j!NGJ8Ok0^~cOCKo28w|_ z(iv=H>BXeJ+_ZA3`FA;R%$sh(A5d3S)xf;79&U)gPx5(7ly9@om5{g(f!UGkx^|Ixzu5gUw}!OF@i4?oA;`&z z&vG6v)hYGO8HW?VkY_Z74;>-@5*6U*vVu|NMml-s8Q2ZJt3zWjdR|MOfmnE zYJiFFB;SlM+fAA7(Roi&1-K`+i|5iphoo3LQivJ7reZqhzpGS%quDJVGynhq07*qo IM6N<$g28HnW&i*H literal 0 HcmV?d00001 diff --git a/src/components/FlowChart/src/assets/background/bpmn-start.png b/src/components/FlowChart/src/assets/background/bpmn-start.png new file mode 100644 index 0000000000000000000000000000000000000000..d6da20bec6cacc0c9a7163e663c73601cdd6187d GIT binary patch literal 697 zcmV;q0!ICbP)2BMZp#q!NGq(-3%g_MVe=qx^%Mg-u0Z@cW+)o6x$2Q@B7@}*L?s_t>eCm z4jC^Mf75N}JX>qK7efPsenqK~xYI%KhEd;OBAxEI^Zad}c^sutVjCszr^N&%@!4iU@7;SB{J?K#*#ZVI)?0Em|Bd z*&{nh%zFww4fKGtp#{;S%y0l~(3;P&tRLq!B^Flqh~vhxtWmNHZ-m${np(C;Uh}Tc z;G$QkvT zQ*mg~X@|-imn@$At-VVBS&l2L^8x2|DDE~$*ivL6-*Z@MzO*Wmfr8I3{w@Xi0!&2->p< z3U)Il6bX1#v|dEeKcLp$Jg5hI2qNl1L<$jU61Bk}RB20gpWmByme~Xy$h_a*eDmgQ zh_D8IUJ&WYrif-l(%=NMD~(eXsyy&(iQXG4+K?NHk@2}EGASFNY61cn17v(z&4+Q` z6JvC5dCl3#C#A@ow+?T3k~79&+LujYPSVQr!O1hiYZ91XRabR-C9rd3f< z+~x`I?>lbr7VCiBE^1!8hIP6!=kw7RTN@N&sQwm_wE@Vi&o^yXldR|sg_K@drUsl& z8c_%nB-`SQkwxM(JO>g)=NHOq)>fI96GPxtf*$PgC=Zk=9C^+r89AbPGx){c&vKFk zgH+e*2VO02D@{`sEnC~|%U7U%0?FBSK;y{-ZM8`;IXcPP!R1)Y3B%kD&s2i$V@#rp zAn;0UpyQ2e>a!Apo}w#_vZ}fW*$NkUm0knp9%UxD?gm|5rdB|t>l@wcx=BBmU?u3R z;p7HHm$yShFNux;T7?MFqLi^cy4$?2#zpU5Jz!|p2NdqcD;1ksy>JV_Y(MNd+~-TH zta5Hl^r$;x3|Dv*Kx1I@vKvU^81x!qPtn!vP?`6M&t1LDN_+>O@kJC(ZyTV~Z!fFg zQhM0aGY*y467fAFTFmd8rPlo~BhI&$LXFX0O=mN&9<@h4i9k0lVyN7t4 zM*ythxHNvsV_HO0KH@bxQDT>(v}SKAq^t1z=vUu*{2dCPqc?Q`H}JhB6;lr5u?zYk z_(x2hq7JTBEqJ7#Y1L5}vPC5Hf&SRP=&v8pBXXJ#;vZ-Z{rv;LO)`uDPU>F?X&z(I kQ}90r+F*K)s<4RPUslfuaLm=eX#fBK07*qoM6N<$f-(e8SO5S3 literal 0 HcmV?d00001 diff --git a/src/components/FlowChart/src/assets/background/click.png b/src/components/FlowChart/src/assets/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/assets/background/download.png b/src/components/FlowChart/src/assets/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/assets/background/push.png b/src/components/FlowChart/src/assets/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/assets/background/start.png b/src/components/FlowChart/src/assets/background/start.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c3a5014f40ee0d63deead370faa7f3d965745a GIT binary patch literal 3950 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', + s = (s = document.getElementsByTagName('script'))[s.length - 1].getAttribute('data-injectcss'); + if (s && !c.__iconfont__svg__cssinject__) { + c.__iconfont__svg__cssinject__ = !0; + try { + document.write( + '' + ); + } catch (c) { + console && console.log(c); + } + } + function h() { + n || ((n = !0), o()); + } + (t = function () { + var c, t, e, o; + ((o = document.createElement('div')).innerHTML = i), + (i = null), + (e = o.getElementsByTagName('svg')[0]) && + (e.setAttribute('aria-hidden', 'true'), + (e.style.position = 'absolute'), + (e.style.width = 0), + (e.style.height = 0), + (e.style.overflow = 'hidden'), + (c = e), + (t = document.body).firstChild + ? ((o = c), (e = t.firstChild).parentNode.insertBefore(o, e)) + : t.appendChild(c)); + }), + document.addEventListener + ? ~['complete', 'loaded', 'interactive'].indexOf(document.readyState) + ? setTimeout(t, 0) + : ((e = function () { + document.removeEventListener('DOMContentLoaded', e, !1), t(); + }), + document.addEventListener('DOMContentLoaded', e, !1)) + : document.attachEvent && + ((o = t), + (a = c.document), + (n = !1), + (l = function () { + try { + a.documentElement.doScroll('left'); + } catch (c) { + return void setTimeout(l, 50); + } + h(); + })(), + (a.onreadystatechange = function () { + 'complete' == a.readyState && ((a.onreadystatechange = null), h()); + })); +})(window); diff --git a/src/components/FlowChart/src/assets/iconfont/iconfont.json b/src/components/FlowChart/src/assets/iconfont/iconfont.json new file mode 100644 index 000000000..6f91abb60 --- /dev/null +++ b/src/components/FlowChart/src/assets/iconfont/iconfont.json @@ -0,0 +1,58 @@ +{ + "id": "2491438", + "name": "liu'c'tu", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "755619", + "name": "自适应图标", + "font_class": "full-screen-hs", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "14445801", + "name": "查看", + "font_class": "watch-hs", + "unicode": "e766", + "unicode_decimal": 59238 + }, + { + "icon_id": "9712640", + "name": "下载", + "font_class": "download-hs", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "1029099", + "name": "放大", + "font_class": "enlarge-hs", + "unicode": "e765", + "unicode_decimal": 59237 + }, + { + "icon_id": "20017362", + "name": "上一步", + "font_class": "previous-hs", + "unicode": "e84c", + "unicode_decimal": 59468 + }, + { + "icon_id": "1010015", + "name": "缩小", + "font_class": "zoom-out-hs", + "unicode": "e744", + "unicode_decimal": 59204 + }, + { + "icon_id": "20017363", + "name": "下一步", + "font_class": "next-step-hs", + "unicode": "e84b", + "unicode_decimal": 59467 + } + ] +} diff --git a/src/components/FlowChart/src/assets/iconfont/iconfont.svg b/src/components/FlowChart/src/assets/iconfont/iconfont.svg new file mode 100644 index 000000000..657d7c73f --- /dev/null +++ b/src/components/FlowChart/src/assets/iconfont/iconfont.svg @@ -0,0 +1,47 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/FlowChart/src/assets/iconfont/iconfont.ttf b/src/components/FlowChart/src/assets/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b332ae7da76f676ca4423391844bbe32f343007b GIT binary patch literal 3240 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 literal 0 HcmV?d00001 diff --git a/src/components/FlowChart/src/config.ts b/src/components/FlowChart/src/config.ts new file mode 100644 index 000000000..d98bf3f5d --- /dev/null +++ b/src/components/FlowChart/src/config.ts @@ -0,0 +1,55 @@ +export const nodeList = [ + { + text: '开始', + type: 'start', + class: 'node-start', + }, + { + text: '矩形', + type: 'rect', + class: 'node-rect', + }, + { + type: 'user', + text: '用户', + class: 'node-user', + }, + { + type: 'push', + text: '推送', + class: 'node-push', + }, + { + type: 'download', + text: '位置', + class: 'node-download', + }, + { + type: 'end', + text: '结束', + class: 'node-end', + }, +]; + +export const BpmnNode = [ + { + type: 'bpmn:startEvent', + text: '开始', + class: 'bpmn-start', + }, + { + type: 'bpmn:endEvent', + text: '结束', + class: 'bpmn-end', + }, + { + type: 'bpmn:exclusiveGateway', + text: '网关', + class: 'bpmn-exclusiveGateway', + }, + { + type: 'bpmn:userTask', + text: '用户', + class: 'bpmn-user', + }, +]; diff --git a/src/locales/lang/en/routes/demo/comp.ts b/src/locales/lang/en/routes/demo/comp.ts index c68ea5cd9..11bbfc8e9 100644 --- a/src/locales/lang/en/routes/demo/comp.ts +++ b/src/locales/lang/en/routes/demo/comp.ts @@ -35,4 +35,5 @@ export default { time: 'Relative Time', cropperImage: 'Cropper Image', + flowChart: 'Flow Chart', }; diff --git a/src/locales/lang/zh_CN/routes/demo/comp.ts b/src/locales/lang/zh_CN/routes/demo/comp.ts index 2bd3614a1..291c8c415 100644 --- a/src/locales/lang/zh_CN/routes/demo/comp.ts +++ b/src/locales/lang/zh_CN/routes/demo/comp.ts @@ -34,4 +34,5 @@ export default { time: '相对时间', cropperImage: '图片裁剪', + flowChart: '流程图', }; diff --git a/src/router/menus/modules/demo/comp.ts b/src/router/menus/modules/demo/comp.ts index 15e91f434..c9909ea60 100644 --- a/src/router/menus/modules/demo/comp.ts +++ b/src/router/menus/modules/demo/comp.ts @@ -123,6 +123,13 @@ const menu: MenuModule = { content: 'new', }, }, + { + path: 'flowChart', + name: t('routes.demo.comp.flowChart'), + tag: { + content: 'new', + }, + }, { path: 'countTo', name: t('routes.demo.comp.countTo'), diff --git a/src/router/routes/modules/demo/comp.ts b/src/router/routes/modules/demo/comp.ts index c6597ab66..47c70eaaa 100644 --- a/src/router/routes/modules/demo/comp.ts +++ b/src/router/routes/modules/demo/comp.ts @@ -240,6 +240,14 @@ const comp: AppRouteModule = { title: t('routes.demo.comp.cropperImage'), }, }, + { + path: 'flowChart', + name: 'flowChartDemo', + component: () => import('/@/views/demo/comp/flow-chart/index.vue'), + meta: { + title: t('routes.demo.comp.flowChart'), + }, + }, { path: 'timestamp', name: 'TimeDemo', diff --git a/src/views/demo/comp/flow-chart/dataTurbo.json b/src/views/demo/comp/flow-chart/dataTurbo.json new file mode 100644 index 000000000..f6432c4e0 --- /dev/null +++ b/src/views/demo/comp/flow-chart/dataTurbo.json @@ -0,0 +1,240 @@ +{ + "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" + } + ] +} diff --git a/src/views/demo/comp/flow-chart/index.vue b/src/views/demo/comp/flow-chart/index.vue new file mode 100644 index 000000000..273d95d9f --- /dev/null +++ b/src/views/demo/comp/flow-chart/index.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/yarn.lock b/yarn.lock index 29004d1fc..96f956fc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1151,6 +1151,19 @@ resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0.tgz#d85b3b5f9033f377c5cf2202cf2459aa49948f36" integrity sha512-0r4v7dnY8g/Jfx2swUWy2GyfH/WvIpWvkU4OIupvxDTWiE8RhcpbOCVvqpVh/xGi0proHQ/r2Dhc0QSItUsfDQ== +"@logicflow/core@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@logicflow/core/-/core-0.3.0.tgz#910ca7865487fbe6c45a450d13627875c6965bf4" + integrity sha512-FPRTuj0y6Yny+YDZ+faTzA8pZyouEWX1Vr6rH91wJR0J3NOHgb7pV/TJoHSosavFuyyw87nLw9UsyUUgHKVV+A== + +"@logicflow/extension@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@logicflow/extension/-/extension-0.3.0.tgz#cea4470de3a8e4b7da69b17d7507b2d8edd76b50" + integrity sha512-vMmYT8H53oFhOpNftCYQMbNYbTiXqQUxOOKlPcrKkZb0FsXSiEZ/MUKBF3mAarvFlzdMaB5xJjakMfy07/bdvw== + dependencies: + "@logicflow/core" "^0.3.0" + ids "^1.0.0" + "@nodelib/fs.scandir@2.1.4": version "2.1.4" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" @@ -4895,6 +4908,11 @@ icss-utils@^5.0.0: resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== +ids@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ids/-/ids-1.0.0.tgz#df67f2d37b81d7c2effc87e03d17ebff95a58c05" + integrity sha512-Zvtq1xUto4LttpstyOlFum8lKx+i1OmRfg+6A9drFS9iSZsDPMHG4Sof/qwNR4kCU7jBeWFPrY2ocHxiz7cCRw== + ieee754@^1.1.13: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -9284,6 +9302,11 @@ vue-i18n@9.0.0: "@intlify/shared" "9.0.0" "@vue/devtools-api" "^6.0.0-beta.5" +vue-json-pretty@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vue-json-pretty/-/vue-json-pretty-2.0.2.tgz#cb8f559af15ea3a2ee53b2742672c7791826d6a3" + integrity sha512-Vn7SX3XR9cfvGRNoTDNID89GmvVUMb7/fLUX3C3n0Qptga0N7hp7Zwspui1I1XN5pE+PeoVghCSYty+bi8KnjA== + vue-router@^4.0.6: version "4.0.6" resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.6.tgz#91750db507d26642f225b0ec6064568e5fe448d6"