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 8d1d3fc6e..540bb62cc 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 b78912496..f93a2d9c6 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 bfe43369ef09c62613b893e5a8deded0010cad45 Mon Sep 17 00:00:00 2001
From: jason <2667446@qq.com>
Date: Fri, 21 Feb 2025 22:46:27 +0800
Subject: [PATCH 39/88] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E3=80=91=20=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4?=
=?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=95=B0=E6=8D=AE=E8=A7=A6=E5=8F=91=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SimpleProcessDesignerV2/src/consts.ts | 17 +-
.../src/nodes-config/TriggerNodeConfig.vue | 156 ++++++++++++++++--
.../components/ConditionDialog.vue | 3 +-
3 files changed, 158 insertions(+), 18 deletions(-)
diff --git a/src/components/SimpleProcessDesignerV2/src/consts.ts b/src/components/SimpleProcessDesignerV2/src/consts.ts
index 7270b104e..303db1ec4 100644
--- a/src/components/SimpleProcessDesignerV2/src/consts.ts
+++ b/src/components/SimpleProcessDesignerV2/src/consts.ts
@@ -748,9 +748,13 @@ export enum TriggerTypeEnum {
*/
HTTP_REQUEST = 1,
/**
- * 流程表单更新触发器
+ * 表单数据更新触发器
*/
- FORM_UPDATE = 2
+ FORM_UPDATE = 2,
+ /**
+ * 表单数据删除触发器
+ */
+ FORM_DELETE = 3
}
/**
@@ -777,11 +781,14 @@ export type FormTriggerSetting = {
conditionExpression?: string
// 条件组
conditionGroups?: ConditionGroup
- // 更新表单字段
- updateFormFields?: Record
+ // 更新表单字段配置
+ updateFormFields?: Record,
+ // 删除表单字段配置
+ deleteFields?: string[]
}
export const TRIGGER_TYPES: DictDataVO[] = [
{ label: 'HTTP 请求', value: TriggerTypeEnum.HTTP_REQUEST },
- { label: '修改表单数据', value: TriggerTypeEnum.FORM_UPDATE }
+ { label: '修改表单数据', value: TriggerTypeEnum.FORM_UPDATE },
+ { label: '删除表单数据', value: TriggerTypeEnum.FORM_DELETE }
]
diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue
index b2e2e330f..01c611a4c 100644
--- a/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue
+++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/TriggerNodeConfig.vue
@@ -26,7 +26,7 @@
-
+
+
@@ -150,8 +151,8 @@
type="success"
effect="light"
closable
- @close="deleteFormUpdateCondition(formSetting)"
- @click="openFormUpdateCondition(index, formSetting)"
+ @close="deleteFormSettingCondition(formSetting)"
+ @click="openFormSettingCondition(index, formSetting)"
>
{{ showConditionText(formSetting) }}
@@ -160,7 +161,7 @@
v-else
type="primary"
text
- @click="addFormUpdateCondition(index, formSetting)"
+ @click="addFormSettingCondition(index, formSetting)"
>
添加条件
@@ -231,6 +232,76 @@
添加设置
+
+
+
+
+
+
+
+
删除表单设置 {{ index + 1 }}
+
+
+
+
+
+
+
+ handleConditionUpdate(index, val)"
+ />
+
+
+ {{ showConditionText(formSetting) }}
+
+
+
+ 添加条件
+
+
+ 删除表单字段设置
+
+
+
+
+
+
+
+
+
+
+
+ 添加设置
+
+
@@ -292,7 +363,8 @@ const configForm = ref({
formSettings: [
{
conditionGroups: DEFAULT_CONDITION_GROUP_VALUE,
- updateFormFields: {}
+ updateFormFields: {},
+ deleteFields: []
}
]
})
@@ -308,6 +380,46 @@ const optionalUpdateFormFields = computed(() => {
}))
})
+let originalSetting: TriggerSetting | undefined
+
+/** 触发器类型改变了 */
+const changeTriggerType = () => {
+ if (configForm.value.type === TriggerTypeEnum.HTTP_REQUEST) {
+ configForm.value.httpRequestSetting = originalSetting?.httpRequestSetting || {
+ url: '',
+ header: [],
+ body: [],
+ response: []
+ }
+ configForm.value.formSettings = undefined
+ } else if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) {
+ configForm.value.formSettings =
+ originalSetting?.type === TriggerTypeEnum.FORM_UPDATE && originalSetting.formSettings
+ ? originalSetting.formSettings
+ : [
+ {
+ conditionGroups: DEFAULT_CONDITION_GROUP_VALUE,
+ updateFormFields: {},
+ deleteFields: []
+ }
+ ]
+ configForm.value.httpRequestSetting = undefined
+ } else if (configForm.value.type === TriggerTypeEnum.FORM_DELETE) {
+ console.log('originalSetting?.type', originalSetting?.type)
+ configForm.value.formSettings =
+ originalSetting?.type === TriggerTypeEnum.FORM_DELETE && originalSetting.formSettings
+ ? originalSetting.formSettings
+ : [
+ {
+ conditionGroups: DEFAULT_CONDITION_GROUP_VALUE,
+ updateFormFields: undefined,
+ deleteFields: []
+ }
+ ]
+ configForm.value.httpRequestSetting = undefined
+ }
+}
+
/** 添加 HTTP 请求返回值设置项 */
const addHttpResponseSetting = (responseSetting: Record[]) => {
responseSetting.push({
@@ -325,7 +437,8 @@ const deleteHttpResponseSetting = (responseSetting: Record[], in
const addFormSetting = () => {
configForm.value.formSettings!.push({
conditionGroups: DEFAULT_CONDITION_GROUP_VALUE,
- updateFormFields: {}
+ updateFormFields: {},
+ deleteFields: []
})
}
@@ -335,16 +448,16 @@ const deleteFormSetting = (index: number) => {
}
/** 添加条件配置 */
-const addFormUpdateCondition = (index: number, formSetting: FormTriggerSetting) => {
+const addFormSettingCondition = (index: number, formSetting: FormTriggerSetting) => {
const conditionDialog = proxy.$refs[`condition-${index}`][0]
conditionDialog.open(formSetting)
}
/** 删除条件配置 */
-const deleteFormUpdateCondition = (formSetting: FormTriggerSetting) => {
+const deleteFormSettingCondition = (formSetting: FormTriggerSetting) => {
formSetting.conditionType = undefined
}
/** 打开条件配置弹窗 */
-const openFormUpdateCondition = (index: number, formSetting: FormTriggerSetting) => {
+const openFormSettingCondition = (index: number, formSetting: FormTriggerSetting) => {
const conditionDialog = proxy.$refs[`condition-${index}`][0]
conditionDialog.open(formSetting)
}
@@ -397,9 +510,18 @@ const saveConfig = async () => {
currentNode.value.showText = showText
if (configForm.value.type === TriggerTypeEnum.HTTP_REQUEST) {
configForm.value.formSettings = undefined
- }
- if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) {
+ } else if (configForm.value.type === TriggerTypeEnum.FORM_UPDATE) {
+ configForm.value.httpRequestSetting = undefined
+ // 清理删除字段相关的数据
+ configForm.value.formSettings?.forEach((setting) => {
+ setting.deleteFields = undefined
+ })
+ } else if (configForm.value.type === TriggerTypeEnum.FORM_DELETE) {
configForm.value.httpRequestSetting = undefined
+ // 清理修改字段相关的数据
+ configForm.value.formSettings?.forEach((setting) => {
+ setting.updateFormFields = undefined
+ })
}
currentNode.value.triggerSetting = configForm.value
settingVisible.value = false
@@ -419,6 +541,14 @@ const getShowText = (): string => {
}
}
showText = '修改表单数据'
+ } else if (configForm.value.type === TriggerTypeEnum.FORM_DELETE) {
+ for (const [index, setting] of configForm.value.formSettings!.entries()) {
+ if (!setting.deleteFields || setting.deleteFields.length === 0) {
+ message.warning(`请选择表单设置${index + 1}要删除的字段`)
+ return ''
+ }
+ }
+ showText = '删除表单数据'
}
return showText
}
@@ -426,6 +556,7 @@ const getShowText = (): string => {
/** 显示触发器节点配置, 由父组件传过来 */
const showTriggerNodeConfig = (node: SimpleFlowNode) => {
nodeName.value = node.name
+ originalSetting = node.triggerSetting
if (node.triggerSetting) {
configForm.value = {
type: node.triggerSetting.type,
@@ -438,7 +569,8 @@ const showTriggerNodeConfig = (node: SimpleFlowNode) => {
formSettings: node.triggerSetting.formSettings || [
{
conditionGroups: DEFAULT_CONDITION_GROUP_VALUE,
- updateFormFields: {}
+ updateFormFields: {},
+ deleteFields: []
}
]
}
diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue
index 7b45901e3..9d6260d5d 100644
--- a/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue
+++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/components/ConditionDialog.vue
@@ -1,4 +1,5 @@
-
+
+