z`W8+1h6~2WB`4@n;CE-
w#*#n!l2Z$+qkdXxt7bjg@9f))n6ns5xuV1pTSDSUSVklwQE?@PUVVJy4b%9Vsy*a3ukP3W&i*J
zJOBU()c^ns7>m7UZfIp;WB>pP6aWAKF8}}lHY(c09cXA}VE_OML;wH)8~^|SBnRFD
zj%aOkcmMzjU;qFB4*&oFG&BGJ0Bmn#VE_OMZ~y=R8~^|S91)%q;B8@eZ~y=bi~s-t
z9{>OVAORvO0J3gjZDjxe3akJC0YCr%0%s7TJg{(Yb94Xz3+w;@0DAxc0H^Bvr0bIi
z0fT>%u?>Sj3`PGPgph~H?C@RCu>jcTB2CBw@#&pppKN{k
zK7a#&Ot~vL5Z(x|cxg4HdWLhV=Xhv-!__JTBU^UtIdJ5}MQUkeURU7P+fD?X`~8^0
zBTgt#se+hPT~tx2O~vlK|A{Ky&re1;_OpMCj&2Za9o;3^Il5J_cT(@*m=icUuo;tM
zPT}I1JEV5>M<9)3ZjsqRxdDXCO85W(0C=3OR%>hLP)J)CGyht_o<8R)7S5kWf5u?$~XL7XC4FeeQYO9CFEbP(RDgP
zCdn?cpAawv@aRU;3Ko=bQP;R)p$erum~H)iP%M;7NmDmGZb=D`Lr~HH$Dz8)mGT@d
zXdnq-+a4)B8(0*8QkgVbiV=`bs1wuX8Qx%GuWrp
z^YOecY_h~a^DX?J+?YBrRvRBs;J#?C!2FOjZ(x`0?#?1lT!_O3`Zs!#@Fagg6w-}I
z=yK80Ej_5G@E4MG%anCl4^oui2hcNVKWp!W=O^tqz_?}Ko`S>h%_;j$(7C0x*KgTN
zQ_yF7zOeTCuiypyDd;24H?Gk?&~0P@v0f&J2}u~KJXES+B~$n!r1(l-D*mGzb5^~nw>4)M*~yy%K>boXZ-Uk>z9u`9@fyNio&Zp?0u
zL6_Up>4sjJre{_IXu(!d7e%NsH5ntt#TOT^G*TQG-fro##K3evvBFEP*
z?OHu?Y;&!)`PhloU6*S97kN){WadoCT)9}|J2`$+$Yah;4+n$8({pBL#7*sMJ~8Np
zIltfjzNbs{Rhxu(5Vs%E6DI&Q5>0MR2-aFoWD@V^-CQIpma}3fSaWta4Ts7NMjoJ=|qzu(X+G>(6qN_3JZ<77Ko#P~Z&
z&XOyLqvU3ZT`CvCG6qg6k%uZM9U4FjAH%I6fUP=!VE%sv8S9GMG+6wX82rV8Vi~64
zVQNXyKnWKx%+bP;Pj|^V>USPsdd^
zoDFn!1%A$m{r7-KOPm~aD7+Y8GYv)g_D8&8ZiAiR+aKY@xee{&hIZcu`#$eoHgNyN
z{tV7$&ns+NP~VsdKBs5LY6Krv&p$zbOdrEsiQqmH7U+LfP6L@$;8rHIpa*Bmv9Rl?
z?Y$EMRj#OGf-spQ^A~FI4}asy{WGhLk%N`W!G{@v!=jXJWbHjjq+ZFaFATtUs}EKs
zIJp1GXCH~zF3dMpXW)(Ya3t$nBw;Pr$YvY4H9L3qFt2^bZCF#+Wy@ge8v5tu`8~UtwgfysuQ+_W?%WvVBmg
zsrEiqg)3@Jf#+rJxV`3&ciLa{`{86~+z%^$?n`Y?BzCIpiUeHnbyc;O(b3+kFz3k$
zbY?D&pWj~NO~Tq5-?{{=hU`-n^LJlhKS(gPTH^2{Y2X9_j0gzXH-vZy-4h-o(k$zX<$ijpK6{W$m@D;uVgk#Kh%weD2kgoQm@3p0St~yLR$Ij7T&_}VJ4wEHkH8(71apwrPFryTWa}H=vv7K27-9ZE|StWLaTX`;(6gU|VewL?hlWi!yy1pjLvPged
z7-f8KvG;9XA*QG24wdTF+<^zMJLoD1CE}DfM3>{U)E%QATz|*7N^8)+T{T`Gw7SRe^MAogXE=<8S*hxu9?;c
zb!>2?-KP}R>2MToh*4iK=!=R!@oifiqt@b#aKm-8bNk{bS6P@5UUR+LIgLsB@V*SK+FY%3=IFldatd&EdT4-fqWB>pN@Bjb+F8}}lHY$%X!Dwh@VE_OLAOHXW8~^|SBnRFD
zjA(6icmMziJOBUy4*&oFEGz&30Bmn#VE_OLOaK4?7ytkO7!8aMoNZxvZ~y=aWB>pF
z9smFUAORpM0J3gjZDjxe34{Ou0YCr%0%s7TJg{(Yb94Xz3d8^a0B8UJ0E}5g1q71_
z0fT>$%?-jZ3`Sr26QJV2rS#GfSg;ZUWE4&ux=MF&4jrP{ac`6faP%VilkG(QfEK8g
zhtfcJ6R>!x8j4=i6}{o9`JJ08QIJYTnIy?9OYZZK*KLDe`auMp^?mF&Ehl}gqtcoS
zXQCFz!x{e-*K(&l>ulSOIVhE5j>_oh9+7{^F?S_7rFV9)zQr-ebMNTp$%CUFkXMKJ
z0Wiiq0C=3OR%>hL%S~cVTUk3W029KmLG#Yk@u2-Dt0jS85a}ypBoT(qoF!!mX)v%I|xFo~`9C9+*
zx%oC!(X>zB2jX&A)A&G0EA)SjbK{Bp{_$o)&T7T|yQ_%?_v2)DbJAK8Vtp|onb)fS
z1?v=(HBGBEEKRePlldeLu4;eL$48Z5EEbGL(%DOw2F<>NB!^T`5y)hkoJ<19->>Km
znnEo`bW$Lbec{u`7wVyDiT<3K(zo!
z=Kpsg3*hyb2Fw2{qrXyCEyFat43<<4RHck*juwtY_eXJn$|*tnPa(mjgdiRg?7PuK
z6vqi(42!%YmU%HE`g|z(*&b^3)Qn?ucB%ZH%6obn{AU-AylZ{wSg}+p9$Q)uhC;!W
zBMX<4x}LneaO9hZ7cPINVjg%h6p4g>%7p#*kVvbXoNy$(5@L}?6MXkaeBy9Vo#wkg
z!i$SNbft%$>Z$Mb-BUvkT^k(2XpX{1WTl^4L&5$)egfd*I6u|U|GBTHACsSkbih1Gxgt@hZNdi~7fOu)mU
zlyB$l<0zzl$!sl;z_%NZG$c5)`odS9NHwo6wYTQsx83b1b`DCy_Ha9&Zx3$^66%HJ
zmf3iui3`Gd;&b$Gbkm79N5)yi_eDurPur_m9SFx6i1}n0+c1gB!7?3SX1C3-)#}6|g@W48mi9R1h|T+~>NU
zDC}(46$QB9%dwcfhK}}0l{wE$qcd}H{DSs2ZxRmAam7XG6+B0T5T29kDrPE-@(`tI
zcQ_57fm`Xj(r2xUfZ<)X#d2%10FbQ=bwN6@W;5j_O&Nq&AtjB1$BqK
z{4y+ki`^;X==bzB+9DbTa&n)Xq>+Uuy^h=w9EDMGt*ncruR&6q2
z+8seMnBgO$B#Fi#Zobb7>Ha~s6oE?OIYD|+kZylV!g*#p@2D^KRyX@{_uF!PHyx#0
zV^`?U=u_BFN6882HZm;evLbo1`feS;r1J^4u%c9rb3V}CO1HAoy2FT(!K1Q|e}T(p
z1Wv{eKdV!Z$u5-M+}RdoS)?0GGQGdj|CYa;)N_mLwbtVY08C>f@D`%-&e!RHEZTn+
z<-vbUJPxH}#mpf~iz$OcyXX};Da)F&t%$GU_UTFUoyF?<`~c9|541|BGo?91Ulo=4
z=R{c%CobgTGwH%R${ZxBhthg8K5}tPRAiCmAs+sh+$GGwNpg@J##*(qRczcCv6nRw
z0sk{;;JGa%L%z4r%gH^9o3)v0O@p4oCPsf8eHubRS?hdWlY^n565m`oAm(!}FUUhh
z|MWvM!blDzABCZkpP7a`IlZXkfV15>tFlRlbMU5^@Q1_xg!n`M+{y&CR_28_U3UTx
zu8ec_<$2*pt~Ua+h}V|e>*!N3Kv%o-QItkOC;tZh`MI0`004NLV_;-pU;yH+*XDn8
z#q-;IW#DFE0D;HbzuiU9|La*8n7e^o4hANWC;)*>4ORenoMT{QU|??e-@p*V!TE-!KA!8
z*%NA|#P6^k1YpsRF=&(I+9p7I9VJ~L83Vbc057+A-C;vP=-CS+LswAk9^;N{Ailx`
z?NjX@@TGPC;(rE+YS1usF>P3F!3Kgx=stfp~I)0+QlYazKha(e_Vl(E31
zia0TB47464NGz&Pf4mriw^46fz`KG*F&}~kN)?1wpu{0810@FG6R_okBcK=%E`y`I
z@Dvms!ZX-^LqJVqinN5LpjZ(82fMR_z%j;Y0SpBF02qgm#n~3G@BE-Dq$6spoX(gS
z;O=Awl?$TvooYuBtRCJ}4tu6>XXq=YL
z=F3-QP`>V$u30KN5Ia*LgR}kx%T}Fsd7XDlX?T}^&q`-MXMT70AN7x1xYIc}z2Dn+
zN}W02A3Qt9l!ep1<{*WwDAb%pr0&cBk-`E2jy^pgwW6YGl9|=?YFU&Lq^n+vlzPSS
z>2)2g>R}%lOxNrje8p}
zNUvX7{y(I$u9r>+YuEajj0!^^C7L-;OHCqw=g(ON88jBknooQT@Z93`Nd(DqIeD~W
zN|lcIn1B~WGnYNsD;AfUU)FQH(i+
z)j16BysR5s6uQ*BOZVPPrZ(Q}?4~z2TAX;v%Rcp`iSD>%*5oRaQuukxMh3Yq)wAN9
zvQ?He|Dtq+-zBXZPH>)y*c-=dvF8CLZpI=}zrblqzpZ+JxE(Yhwvh&sHnHjbuR`90J;eF7R
zLQY1$GABpTQ3CSF&!CfAi8>fo#?YkEmEKXo1Q-0v3B+Z21E+SXKnAw`
z8!!#%jlQB5q0Ld__rQQWO)VN>`5BOKh&&*Q
zigb05n&tJf)R1l!q$QyAYPOEOO3MZS^lk8)!2fQIBfIctuosfPMeG^;E+ZS&%D#P-
zs=Jll%FDZXR1k8HGh8Bf550soDL+@G%FSDsC%{g~pF}H3i;jeUz>Pv-BV4eKZ?CJf
z3(on$|H=ERRDEZtV9IAW`7}4mJC~Gn#tBG{(+cNN7cQ^~dM;VeQ_#9(X{*4xbg7gg
zatNHx-Oy^6uCiNYHTbuE2N#SrH#Kj%GW1^SaVWx!1)waEai3(AeF_5tWKD_D9hd88B_^0!^t@kl&
zq)L`J@A$r^_5TVSrmE_5fjBxNE}saQUmW{6lHm>9Vo`s`SZpDLt;pimJ059Y-)k8Bsi=q3EGe
z%9Nx@GdTS^_Q`3fOe1l5js*;R-bMk}=_hvzSuHH#&Xe?`GkNmRrk70t;!;{uu5#?L
zl8}TGvk*mpSkn(zh{~fH^P_#7j1T34!?Sp@u;=7uw8lKuweCrP2O=JT<|d9#=2Qtp
z@F)lXYd!{YhT4<*-sUrKMqi-
z83wpW9Rv`g{}AB)1?Z35g`eJe^xChX5q}EZ{=9pCAVNge_74R0c~Sl8&a&Chd!Z|{
zQR5j6j*(P*8e4<8!yY0MG{91tzz2L-1MamWHe}0wUc`o;g+>)EiJqj{ff&&2VPPT}
zKw{7wZDG+9*~F5Dc%UMTIM9W`un^Q^rG-WvP7@uP$B6;W>lP+Wcur!_{A*#65K+^U
zbP;BM34x&`W`Uahki+bDSygw^>S+UJ^Wi8F7vCNuybi=dMMz;dRe`xMqKXl`t+ry4
zv_e+G?S$mVg<&}EhCGD31v8U~og_WgJf1aa1jOui0to~dD5PQ20z@-@hYrlRabazo
z3_iXFFl_k1K_Qr`?E?tBf}x&66oF94P*w1ME>@*IDd?pY8^w?mUQ9;)Ffjaj)o(!S{2;5^%|N_kd}(1b1wVTzcj64fFuEb)E*
zGDp-wE_dJ#pV^MNY(?ST#f6ZB!)C*XV8ZPqF(Sx<;ix~{OQHl>;PYZcn8RhpeO^Z*
lD;8*Wd;Gz6)Mdf3Fsv;hAO!WSnetXF)PoWzj$=3g002P;1gHQ2
delta 2324
zcmV+v3G4R66qphicTYw#00961000RX01E&B000pP000Qfkr*C-HVTt0kP87e0we=0
z3m5
zW_JC=ktSx1=%rsIYJ>!#dm?%BQq)VhDcZC>j_6@Y14Q(Q$uy*5K!liKF(+wEiQct-
z*E$euJz^Diq^2Q%?;784Ew4nvN7XILvn7u{H~SZdUM5SfLYw~ITC2LRA5H8`8lh1t
zsr=bJWOmQyd^yZKK@~8h3!;VY8|Zul&%v_jry=>E
zrQbl*>CB=rIIbcks4BDzWx;e>M65hXM-QX?h(a?Ti$yngL(HhT5Y5}0Z>5Pk2#$7u
zd(8+LL$hX;hMgo5zbYE!l-zYGX3~Ek-CO|&~lFQ3`V1#-yo4%Jv5>ncjen5poir
zs2U9=CwdGUH`kd@>E%u?8BIX$`J4-Q6c7Ub0>>8mnucQSZf`j4d!KtVB{oJ(KoCAj
zj)PKv^$@2>J1{uPF4Xjw?f(lAV=_#mA$xmqt(H)$TLkD{oY|UqiY)%h3LzvLBCKC0
z(s)d!e|{5?3ZqeRjHe_F8qx}YYdT#Pv8KTEdeUgb4F=VXCmIaavWa$H@TYq(NGLq9!}tn<
z?jeZN?Mpvscm`Pf)fJZQ)Ga+PMZON2Z)vx=1+;D=+$fwhLc0ux`6s`{A^e2e(A)8!jjHSv)AZ7era}(_W|EY_~YYp-Uhr`_t@=Ak|62JKmf30NZtk}2eagtjoyB$Kev{$c5vU`RX&Zv
zM&E4-70*6TtzoTkm(X|%1#B?eLHBU-pg+te=Fpw
zC6-tx-AY!pIo>D9FS8&$BqcaFB_!=~NP5AAzODk=<#0MpmgFAq+SuqC@18W_o+wbk
zc()|Ci9|O5*yo_i1GBl3_1S_xx4lix``r2j+3O|ov0YuUac>sp&Yz!uTNkjgu9}a-
zJI~}Zwgvjf#rX#u3^1I`z-(HK7Vaw2Pi?D2XI0_1{5LQ>8bDyk9-Ojm9LO=J@
zJh0L1XwgyK>bEV=+U4(m-_`1y59Wca<~-F!j)fXH-45L^Suh1c_qaxS;PxmJ+T$K2
zq7nzxA<}`DoIBs4P*jN8()i797~Jb0v3IN
zRg6fca#UuZgA6{y?gB5v<`eS6GQ_gLFF3emnmp13Au?d+F
zIQ9aoVMe({F|!0$F=Oj|ATjfl%hf=auXj6sbXSCg`Q|6Y=JQfTlv;5_9S||m9QGsY
z=&xM@uezLKisxZ*p4*vG%sE>QwAiO2W1W4t7d<33W$uU6D2GUwC@+uhj84Dh3+M2h
zHTMFJTu?&bE%VNQ8IkL9SJ9a}%p3h7(U#J$q?Cv-hSWcH<4wK=`}RO^jFt3H85BOB
zE(!dnxMOF@1J?#Z#8%$w^B9tVI72=cgb0rJpomlP-eO
zXLAiK5WdR8u)DAaJ`a<^?fH9HCH$B#!QsMx^JN$=gykoH@Cp#7=694vxpg{s4LgW@
z=F;CRk-ys!-%tJiMkKBDP{HXeT6vRUGcu_zhuLNEES#cE5@u)Y;GRU{o^T&^L+Xs5
z_4f4oIkr~P*3UK4q_Gy~DQX=qpteaXgMGLLbyC{fPQ3D9P91x$e64EejT$)UJ
zjx(rRxPUT$N-K*@xCV9Mzx3X3Jgx7+bC?$aD;hfOG??Jq7_=DeC%W0PjAi^n(m)zj
zdD+kVfQKBhKw7$5wWU^qqjzm*ur^SXFv4iwtHxtdv{MV@Cb+{30ZcRH207V74vfHS
zyVma8`vjet#f0hp%Znsv8a=7xN{0If=UGkONabX6(Wxo%ElRLZu0!4p09!pfAaOc#
z1jcpc`W>0kQ4w|3a=HBSdiP~>zPo0_4GobZM~N!xXrhfS`uHQ6$IV3 {
}
/** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */
-watch(
- detailForm.value,
- (newValue) => {
- if (newValue && Object.keys(newValue.value).length > 0) {
- // 记录之前的节点审批人
- tempStartUserSelectAssignees.value = startUserSelectAssignees.value
- startUserSelectAssignees.value = {}
- // 加载最新的审批详情
- getApprovalDetail({
- id: props.selectProcessDefinition.id,
- processVariablesStr: JSON.stringify(newValue.value) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
- })
- }
- },
- {
- immediate: true
- }
-)
+// watch(
+// detailForm.value,
+// (newValue) => {
+// if (newValue && Object.keys(newValue.value).length > 0) {
+// // 记录之前的节点审批人
+// tempStartUserSelectAssignees.value = startUserSelectAssignees.value
+// startUserSelectAssignees.value = {}
+// // 加载最新的审批详情
+// getApprovalDetail({
+// id: props.selectProcessDefinition.id,
+// processVariablesStr: JSON.stringify(newValue.value) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
+// })
+// }
+// },
+// {
+// immediate: true
+// }
+// )
/** 获取审批详情 */
const getApprovalDetail = async (row: any) => {
diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue b/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue
index 8d1d3fc6..540bb62c 100644
--- a/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue
+++ b/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue
@@ -85,7 +85,9 @@ const setSimpleModelNodeTaskStatus = (
if (
simpleModel.type === NodeType.START_USER_NODE ||
simpleModel.type === NodeType.USER_TASK_NODE ||
- simpleModel.type === NodeType.TRANSACTOR_NODE
+ simpleModel.type === NodeType.TRANSACTOR_NODE ||
+ simpleModel.type === NodeType.CHILD_PROCESS_NODE ||
+ simpleModel.type === NodeType.ASYNC_CHILD_PROCESS_NODE
) {
simpleModel.activityStatus = TaskStatusEnum.NOT_START
if (rejectedTaskActivityIds.includes(simpleModel.id)) {
diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue b/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
index b7891249..f93a2d9c 100644
--- a/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
+++ b/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
@@ -181,6 +181,8 @@ import conditionSvg from '@/assets/svgs/bpm/condition.svg'
import parallelSvg from '@/assets/svgs/bpm/parallel.svg'
import finishSvg from '@/assets/svgs/bpm/finish.svg'
import transactorSvg from '@/assets/svgs/bpm/transactor.svg'
+import childProcessSvg from '@/assets/svgs/bpm/child-process.svg'
+import asyncChildProcessSvg from '@/assets/svgs/bpm/async-child-process.svg'
defineOptions({ name: 'BpmProcessInstanceTimeline' })
withDefaults(
@@ -249,7 +251,11 @@ const nodeTypeSvgMap = {
// 条件分支节点
[NodeType.CONDITION_NODE]: { color: '#14bb83', svg: conditionSvg },
// 并行分支节点
- [NodeType.PARALLEL_BRANCH_NODE]: { color: '#14bb83', svg: parallelSvg }
+ [NodeType.PARALLEL_BRANCH_NODE]: { color: '#14bb83', svg: parallelSvg },
+ // 子流程节点
+ [NodeType.CHILD_PROCESS_NODE]: { color: '#14bb83', svg: childProcessSvg },
+ // 异步子流程节点
+ [NodeType.ASYNC_CHILD_PROCESS_NODE]: { color: '#14bb83', svg: asyncChildProcessSvg }
}
// 只有只有状态是 -1、0、1 才展示头像右小角状态小icon
@@ -269,6 +275,8 @@ const getApprovalNodeIcon = (taskStatus: number, nodeType: NodeType) => {
nodeType === NodeType.START_USER_NODE ||
nodeType === NodeType.USER_TASK_NODE ||
nodeType === NodeType.TRANSACTOR_NODE ||
+ nodeType === NodeType.CHILD_PROCESS_NODE ||
+ nodeType === NodeType.ASYNC_CHILD_PROCESS_NODE ||
nodeType === NodeType.END_EVENT_NODE
) {
return statusIconMap[taskStatus]?.icon
--
Gitee
From 9c9f09fbed4e4d2a8c8e968ca7403d0755cbe4c3 Mon Sep 17 00:00:00 2001
From: Lesan <1960681385@qq.com>
Date: Mon, 24 Feb 2025 09:40:52 +0800
Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BB=A3=E7=A0=81=E5=AE=A1=E6=9F=A5?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/assets/svgs/bpm/async-child-process.svg | 1 -
.../src/NodeHandler.vue | 10 +--
.../SimpleProcessDesignerV2/src/consts.ts | 17 ++--
.../nodes-config/ChildProcessNodeConfig.vue | 77 +++++++++++--------
.../detail/ProcessInstanceSimpleViewer.vue | 3 +-
.../detail/ProcessInstanceTimeline.vue | 4 -
6 files changed, 53 insertions(+), 59 deletions(-)
delete mode 100644 src/assets/svgs/bpm/async-child-process.svg
diff --git a/src/assets/svgs/bpm/async-child-process.svg b/src/assets/svgs/bpm/async-child-process.svg
deleted file mode 100644
index 2a27773d..00000000
--- a/src/assets/svgs/bpm/async-child-process.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue b/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue
index 2b600c68..22d113f9 100644
--- a/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue
+++ b/src/components/SimpleProcessDesignerV2/src/NodeHandler.vue
@@ -69,12 +69,6 @@
子流程
-
@@ -303,8 +297,8 @@ const addNode = (type: number) => {
type: NodeType.CHILD_PROCESS_NODE,
childNode: props.childNode,
childProcessSetting: {
- calledElement: '',
- calledElementName: '',
+ calledProcessDefinitionKey: '',
+ calledProcessDefinitionName: '',
async: false,
skipStartUserNode: false,
startUserSetting: {
diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts
index e9d0bde5..8e9328ab 100644
--- a/src/components/SimpleProcessDesignerV2/src/consts.ts
+++ b/src/components/SimpleProcessDesignerV2/src/consts.ts
@@ -39,15 +39,10 @@ export enum NodeType {
TRIGGER_NODE = 15,
/**
- * 触发器节点
+ * 子流程节点
*/
CHILD_PROCESS_NODE = 20,
- /**
- * 触发器节点
- */
- ASYNC_CHILD_PROCESS_NODE = 21,
-
/**
* 条件节点
*/
@@ -804,11 +799,11 @@ export const TRIGGER_TYPES: DictDataVO[] = [
* 子流程节点结构定义
*/
export type ChildProcessSetting = {
- calledElement: string
- calledElementName: string
+ calledProcessDefinitionKey: string
+ calledProcessDefinitionName: string
async: boolean,
- inVariable?: IOParameter[],
- outVariable?: IOParameter[],
+ inVariables?: IOParameter[],
+ outVariables?: IOParameter[],
skipStartUserNode: boolean,
startUserSetting: StartUserSetting,
}
@@ -823,5 +818,5 @@ export type IOParameter = {
export type StartUserSetting = {
type: number
formField?: string
- emptyHandleType?: number
+ emptyType?: number
}
diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue
index 26df65ef..a7d9aee6 100644
--- a/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue
+++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ChildProcessNodeConfig.vue
@@ -27,9 +27,16 @@
-
+
+
+
+
@@ -48,11 +55,11 @@
inactive-text="不跳过"
/>
-
-
+
+
-
+
添加一行
-
+
-
+
添加一行
@@ -227,7 +234,8 @@ const activeTabName = ref('child')
const formRef = ref() // 表单 Ref
// 表单校验规则
const formRules = reactive({
- calledElement: [{ required: true, message: '子流程不能为空', trigger: 'change' }],
+ async: [{ required: true, message: '是否异步不能为空', trigger: 'change' }],
+ calledProcessDefinitionKey: [{ required: true, message: '子流程不能为空', trigger: 'change' }],
skipStartUserNode: [
{ required: true, message: '是否自动跳过子流程发起节点不能为空', trigger: 'change' }
],
@@ -238,10 +246,10 @@ const formRules = reactive({
startUserFormField: [{ required: true, message: '发起人表单不能为空', trigger: 'change' }]
})
const configForm = ref({
- calledElement: '',
+ calledProcessDefinitionKey: '',
skipStartUserNode: false,
- inVariable: [],
- outVariable: [],
+ inVariables: [],
+ outVariables: [],
startUserType: 1,
startUserEmptyType: 1,
startUserFormField: ''
@@ -257,17 +265,18 @@ const saveConfig = async () => {
const valid = await formRef.value.validate()
if (!valid) return false
const childInfo = childProcessOptions.value.find(
- (option) => option.key === configForm.value.calledElement
+ (option) => option.key === configForm.value.calledProcessDefinitionKey
)
currentNode.value.name = nodeName.value!
if (currentNode.value.childProcessSetting) {
- currentNode.value.childProcessSetting.calledElement = childInfo.key
- currentNode.value.childProcessSetting.calledElementName = childInfo.name
+ currentNode.value.childProcessSetting.async = configForm.value.async
+ currentNode.value.childProcessSetting.calledProcessDefinitionKey = childInfo.key
+ currentNode.value.childProcessSetting.calledProcessDefinitionName = childInfo.name
currentNode.value.childProcessSetting.skipStartUserNode = configForm.value.skipStartUserNode
- currentNode.value.childProcessSetting.inVariable = configForm.value.inVariable
- currentNode.value.childProcessSetting.outVariable = configForm.value.outVariable
+ currentNode.value.childProcessSetting.inVariables = configForm.value.inVariables
+ currentNode.value.childProcessSetting.outVariables = configForm.value.outVariables
currentNode.value.childProcessSetting.startUserSetting.type = configForm.value.startUserType
- currentNode.value.childProcessSetting.startUserSetting.emptyHandleType =
+ currentNode.value.childProcessSetting.startUserSetting.emptyType =
configForm.value.startUserEmptyType
currentNode.value.childProcessSetting.startUserSetting.formField =
configForm.value.startUserFormField
@@ -280,13 +289,15 @@ const saveConfig = async () => {
const showChildProcessNodeConfig = (node: SimpleFlowNode) => {
nodeName.value = node.name
if (node.childProcessSetting) {
- configForm.value.calledElement = node.childProcessSetting.calledElement
+ configForm.value.async =
+ node.childProcessSetting.async
+ configForm.value.calledProcessDefinitionKey =
+ node.childProcessSetting.calledProcessDefinitionKey
configForm.value.skipStartUserNode = node.childProcessSetting.skipStartUserNode
- configForm.value.inVariable = node.childProcessSetting.inVariable
- configForm.value.outVariable = node.childProcessSetting.outVariable
+ configForm.value.inVariables = node.childProcessSetting.inVariables
+ configForm.value.outVariables = node.childProcessSetting.outVariables
configForm.value.startUserType = node.childProcessSetting.startUserSetting.type
- configForm.value.startUserEmptyType =
- node.childProcessSetting.startUserSetting.emptyHandleType ?? 1
+ configForm.value.startUserEmptyType = node.childProcessSetting.startUserSetting.emptyType ?? 1
configForm.value.startUserFormField = node.childProcessSetting.startUserSetting.formField ?? ''
}
loadFormInfo()
@@ -304,13 +315,13 @@ const deleteVariable = (arr, index: number) => {
arr.splice(index, 1)
}
const handleCalledElementChange = () => {
- configForm.value.inVariable = []
- configForm.value.outVariable = []
+ configForm.value.inVariables = []
+ configForm.value.outVariables = []
loadFormInfo()
}
const loadFormInfo = async () => {
const childInfo = childProcessOptions.value.find(
- (option) => option.key === configForm.value.calledElement
+ (option) => option.key === configForm.value.calledProcessDefinitionKey
)
const formInfo = await getForm(childInfo.formId)
childFormFieldOptions.value = []
diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue b/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue
index 540bb62c..e1d11091 100644
--- a/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue
+++ b/src/views/bpm/processInstance/detail/ProcessInstanceSimpleViewer.vue
@@ -86,8 +86,7 @@ const setSimpleModelNodeTaskStatus = (
simpleModel.type === NodeType.START_USER_NODE ||
simpleModel.type === NodeType.USER_TASK_NODE ||
simpleModel.type === NodeType.TRANSACTOR_NODE ||
- simpleModel.type === NodeType.CHILD_PROCESS_NODE ||
- simpleModel.type === NodeType.ASYNC_CHILD_PROCESS_NODE
+ simpleModel.type === NodeType.CHILD_PROCESS_NODE
) {
simpleModel.activityStatus = TaskStatusEnum.NOT_START
if (rejectedTaskActivityIds.includes(simpleModel.id)) {
diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue b/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
index f93a2d9c..30afe69c 100644
--- a/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
+++ b/src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue
@@ -182,7 +182,6 @@ import parallelSvg from '@/assets/svgs/bpm/parallel.svg'
import finishSvg from '@/assets/svgs/bpm/finish.svg'
import transactorSvg from '@/assets/svgs/bpm/transactor.svg'
import childProcessSvg from '@/assets/svgs/bpm/child-process.svg'
-import asyncChildProcessSvg from '@/assets/svgs/bpm/async-child-process.svg'
defineOptions({ name: 'BpmProcessInstanceTimeline' })
withDefaults(
@@ -254,8 +253,6 @@ const nodeTypeSvgMap = {
[NodeType.PARALLEL_BRANCH_NODE]: { color: '#14bb83', svg: parallelSvg },
// 子流程节点
[NodeType.CHILD_PROCESS_NODE]: { color: '#14bb83', svg: childProcessSvg },
- // 异步子流程节点
- [NodeType.ASYNC_CHILD_PROCESS_NODE]: { color: '#14bb83', svg: asyncChildProcessSvg }
}
// 只有只有状态是 -1、0、1 才展示头像右小角状态小icon
@@ -276,7 +273,6 @@ const getApprovalNodeIcon = (taskStatus: number, nodeType: NodeType) => {
nodeType === NodeType.USER_TASK_NODE ||
nodeType === NodeType.TRANSACTOR_NODE ||
nodeType === NodeType.CHILD_PROCESS_NODE ||
- nodeType === NodeType.ASYNC_CHILD_PROCESS_NODE ||
nodeType === NodeType.END_EVENT_NODE
) {
return statusIconMap[taskStatus]?.icon
--
Gitee
From 2f8f5454b35f67dae717b8bd25773d2cd7ce7101 Mon Sep 17 00:00:00 2001
From: Lesan <1960681385@qq.com>
Date: Mon, 24 Feb 2025 09:54:22 +0800
Subject: [PATCH 3/3] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=E5=BF=85?=
=?UTF-8?q?=E8=A6=81=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue
index 803322e9..04f1d0a1 100644
--- a/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue
+++ b/src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue
@@ -157,6 +157,7 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
}
/** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */
+// TODO @芋艿:这里我执行填写表单的时候不知道为啥一直报错,先注释了
// watch(
// detailForm.value,
// (newValue) => {
--
Gitee