From f208fc593afa8ccc0063ab5416c19f6926f3601e Mon Sep 17 00:00:00 2001 From: shixiaohua Date: Fri, 31 May 2024 10:56:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=A1=A8=E5=8D=95=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=8F=8A=E5=90=8E=E7=AB=AF=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0pPid.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/task-manager-server.jar | Bin 84473270 -> 84473378 bytes src/ui/task/OperationButton.tsx | 5 +- src/ui/task/calendar/CalShow.tsx | 2 +- src/ui/task/project/DetailModelForm.tsx | 134 ++++++++++++++++++------ 4 files changed, 105 insertions(+), 36 deletions(-) diff --git a/docker/task-manager-server.jar b/docker/task-manager-server.jar index 4be864a731471cb9a5b9bebede9e546619cf364a..f5f5d60cbefa54ba5062c8fbf5d2ca62544f52e6 100644 GIT binary patch delta 19894 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 DRNoyT delta 19781 zcmZwP2|QHo|37{+XNIvaAz22AEZHJtmo{WAgpzhDON&aXNt>mFQWL66Q7K6(q>@zH zM3zuWkqRwRNTmGU?-||q{rUd?pU3C*JlA<&*E#2!GvlChAE!QNX%~IU(w6XWp%}6P zEEY?kD(=>N;%=19P$8|lRdi(r7Eb6@(I>=&7lzZU9#T-?<~^jD@fsf<(!Ox#)X=23 z?T={P{8rmznlHaKyOQR^Z(XdU1#vTR9Qz4v0aXqAkbXk*BbkXTrXcs#6PgHr+;c0+ zfV*Ra#wMi)SWIEAOBJnw-(yrw3*>E=QcVlvhCYQ|LCKxGIm}`*xl5nYHeqjZ%Tt;v zjW=$jW^@CqN}3gs;;@)%-03wm1#W#UZ7zSGW_7gr{C(EZ0{%8;k)8||Q-o_@|Mz9M zZ>8k8I~r&cxUKcHCH!NH)zXZ(9uAZ+*|C$wl;SRb3VS{fNKNHt%2DFnX*D!O?od5# zDtCtt#pJK9ZlF2yj|&|p+~nnyDDT9J2netQ1Yq*>Nkk5Vro-Sh%QlzOHMlCNl+^zn zlxZqYQ{`TY_hewVN^w~uZHEZ&-O##9cjne8(OJZBFN-;@IIoRXMZ=!rZS6EQ25(H2 z7~PBew4EkR7RAE3FBa~kh0E}IlojZHBxy6e_Ttw=v^D$D3plUPh??xn2<1dH7T=@tC##7Px|rSrE<)TdvQ;B7nGn*N6W+F&ov zq&1qwR3!PSET(vIh9f;nnK!fI2|@HrEZ&QN6Y@W!$ftuWrdaX35PFHIG=A9#{O5lW zT;pn*8;Ll?VrmwrMA9u;{1 z$obzMIg-YOx3swU`rm#yiVe55h9<+!uca}I^>5PekG@gVEqW-&UwG@hh6cNis%5X2 zeOFt|YP}>%bCka$p|yh{Ga>nsroD8n+d;08QQEi_TCA3qCZDTCX3dSK_eF*iYDL_tW`?ob)Hy=Yk?bz@u^p8zC#$opQ}ql>tedNrX4~AoYs=OvUCU0t+rGZb z|Abmne3W(k#Ex%i)-yWJl`Obd&j`96`}FM+$;7wgzH6^te@=|swZP!$ipN2F_P6#H zTDxqK+qtYLwxef3)RQp_dYNG{)uJsoA39ciKHN~fas6p-T<-Ea>kK)@B;!HuwQ5J{ zz`R~Xha-kbTgHVXGaE&2TT144h(}#bHQ(aY?izJ7t$6cKo15NSI=XJU&bE3ZI&Ois z#@GIXhs>jN9?++hCf8{Bt&inycs*hAtM{7bn^*^ut?yXQVvKZKA6Pesz4o}3&D9gV zy*VcaSe|1aWlfK3*1PuOeew{eYcy&qKRK-wG11Fukx6aQ8IQuKyfzRkZj{JAW)eMZM`%QsKwNd?EYZB76>dy=v ziI`P!z-{DKb;9f#)r8_bSt@dCcX%_Vg?e%(vA?W|-!!u-A#PkEbIDp0+5EWll!!@E zlCuWSXHThtP^ajpJ4~y<3p*trP>Q4pWtCnPd`NYD+Rgqpc}~O? zJ4H_Nrs$e+Z=?klCBBfBG0BRi>z~nocVPCVQ%OG+^>_A~5H3|YCc zTccO%^~O!<1)G^`o|UmFrMyiwhabsjT5)EqzIIoY<;}V}=}mL=2PtFS8x3g&Hp?gM z$}!Pf>8hn;Iu`%>*RphO^cktniw? zSYWSi$!7(Op_3MzLdvecH9d6IFkjV@Vm;SM9>X+}S79}$~ zgywbaJ+)Tpe8BOt1QBh{s-g|!pY3&Q$jj54{$S4fgkR|kRTBsHUD94_EzOZlX}&DK za#`uJl$F26TSm_OGqAJr-sej>FJ1}z#kV`xJrbUOF{NH+=JCh(a?^ZnF7*2KB0fR- zcb~>5ebqURj-~qq_XuxVz5dRP*eqps)7I%)xJuA8N z9<$3i4bvAZ_Xts6O+Nirsml8^{>+}PLI<_06K_^t2%ckK=pR&?F#ct}=X7SntTX5Q zg6v~f#f)9<5mwRfUKs9baHvWwcLzJbQUyuDQVjgY~3Z^3J7D z)05Rfmx3KgdhL<>`)?_SWo4U2q|D=S_Vbeu3&=-Cn<{@jq` z@~D0PPSzQd*z7TFTZ@y+=N+_pq@CoyW$yiXKQ{gph;evdyKnOS>+0iDv)e+%Hq8up za+vla)>ZMRMbMd`WxCb#S1pdu8Fyf*qwivO+K2U*Ee{3@$1YjBHPJg~xZwV);yY~P z&h`ys>Yv99e0}Kht0({D$wIl?!&2)!oh9fiA~@!%OBCyiXJ26k_bl#?VWpo}YMOU( zzVFBZZDZ@%PVZf1mF|keHh*lFWS=SuSsEI;e4#kY_P+b6pI?<~#I~n% zf_fweb2tu?p62XfjWrzcKgM=Td)$Be?czMPGx^yuyl;10!QPA+>S%&x!U~ zVOzd+*0wjjT02}rmDz3i{Vg|aWNA}}`1S*C<7bxjbwvkWA4+NWRhccsaH?!mXnn0( zaKLQIpuwNzG>%wRzVh@`4avzrE&mjjm$kiFGCWA%Zp~TLF;=8AyS%J@tmkgUt;ZHk z{y8u_ss7+xk#ND0n6mI5)j@Ybl~Z>GN75EG4jKxM93ENG^JY+0t(7o0PIv`%C72`$aJM$>vAeyX!yWc#v_-mTXXU!VBd zz5iU!Rij-Mp_Qw?>gG(!&}A=?OxyS=MJY~wdc~Z!I?qWjeP`WBu6ZQXA=W$Mn4XnC&uG z_Td<=fDXZG?TtE2b({hukyh0mC)>3sg~#=_0oP6x&bP(@E1oi=3_I{1~jn@KJ% zDT=JP+i3jq-W;(B>NAXst{q(=Cn=a_Jm=cdj`SbGL#f**-u(SclOCXd*6aM{W5@i$ zx+bb#EV4H;;G}*1ynmf@jKsz4DN+75;mdTL9*pl;z3Y*0xad&(!<#!ZX(de(V;YZ# z=I_r=(5}4u%h)>MtjUxz(bzS=FYgT4su?%rFxg{h(-f8f=ZM3yOJ!rmJ+6zqw?9tz zMUhz83%~iz_JW^6lJ;6HPkA4)WRsd-`GM}`?(vU(;+or%@}_VG9_zc$o+3EC&>(VU ziMC_kqsy%i4}Ev5zM8c{`|x1>f}kspi*hUC8lClDjej}*%)U2?J6;dmpKyqt{j6Nj zHJ<6xI6fj_qJ)U$(ksbj2f7Z7&>9>UP7F;g}rU3_)GtZA!L3WH`F9aQo0 zX6|X|XZnvx)_-ELUvtiLj%w;ht>zEm#-YU-#|Bpq>DCKUPQPx@?*_iQZ+(5Nen`aK zimu<%Q6UwL0h2=(&UEZ&ELnYbtyS;)nNO*Hr6mRYKKnnJ|NV*Q>p=T!?|9;o5UWoXYAip?_V@=v#))08rEg8BH)MVzD) zqF=W6H$5@0N!)gS=E>g{ExS7=_V~mcdH=cWom7ZWZEfcvGb37m)jIVcTFu!UQT=-T z4SG|TO*XujGu+S@llAWT$4K_6V|y=Wy=&eQ*B7=fU*E>Lq%->Q4V|amTg3a`muBpZ zlBn+qdps*YL&TY#E&VgfB|12Jrp>&Z+NB)R^L2v)i3VTJ7`JSgIo9>Z)NR#a-y`ei z(*~x_4cb(@|DH(u4wbq019FZ_*6+@fn3DI+$o19uQYWEzPjAYRdY!RPufQ*rrs*qc z*6C*T<{WDd(fYDC!XWF#2FWV#bw^izTUF_>g`9b6&t?ye-*zNy*SndHX2ta?x3{rF zXO6gW*41?gq`5Z-Y)Eq>OE6>sJCC0Cbo4Wqi>#G3tzkjp;-#oBC%qCU zRX^Uc_Jj8{e~zTHS!P+v8LzqN29FO}r%sGIT9*{7vn}dqbF9#j8zupUR<+I(6!JT5 z==T`sS6b%0W9=VTG+A`FR^pqoJG=BHHTzM%9gs##OTm%llpZ6suCS$t9~tcBy+>#Tlza7mMB!={cd!QhKSuUuVila@S>Yq(bi?_3w$={zL3(80alTU+Pi3dx0cH9Gy-vzorm8`9>upZyeN@TG$} zTVaV{=sVgIu`RNx(MDP6w+<+z=nc&|D!AoH$h9c>2p2|Lb>NWJHc|OYX@Qv!jGKg4 zoyeM4Q(1oDW#`Mz68jlDZaKQ&`C4(oCnYSuU$*gbPeP2}^IIABew0oq`Z}>d#brsf z;`4j6ptrenizc0&CXhwV^!7AHOun1!cv8ruC#k2q_b~QZN|K_x2$^=-)<1h zYJB&-(QR{<{Z2-1-svMW3r!&%D(BFNP=Tq-ZyggG+BCRst3fTtt)%ny;hNtXnzp`v zC0@ULCAA8}mY;D~v)q30gX6?~>I3iR2T%F#OucQ@nmugu(CSp)>Et_GpWn@L=3E~W zagw^0PQWmk|APZo+W=MuzT$2g2(d!@|8> zr>$aZ7A}^UqqajPSu1-$S!#H)=W6XPVNZu|H`&ckuCDRwb}dfsZOxw6ysmzwx>$4Y zwwI4XY@--mSIhLA_l|3Ed|5}Qzw5H@{NZFY; z&po}y=P*ZJP8c@6A*J9{J;wA-SJa^+I=#^!A{7ODIu^h25wHvLop;MCBco1+ToD^y zz^O@6)hkinWn-II)8lAK9dtXab1VDpwmz$XZ?;>cZCv{gWOaDhv{jzdHuO|r{+TZ` z`u}1xbBQIzb-!5?KS*T?M=;`c|5>ElQ}eY;a%0}$T&s+Yhd0#k>2H={{26$iJ6U9Z zdsv4bPQ9?}nJwtw{&%T&KE| zBTKcXd*1JHonOBTdUNPQDzB42CTXwTF!!f%LXKGclhWv1^DS{plCm+#Q?myv25+SD(=7BS)`kYCdw-cHJ4Lw9obS`Q@{XMT1Uz$MxiT z6q%~`98cE);$#&bdQ&EQexxSX?7XFt zx4Or+?0tK=TaO!bk5`E{INN^9mc8CoJoIFu&-_Q~RX6rW=lA$?8t(;~$rj|-E18{t zw*80k^=!ivF413BnzRmn4VtrPvQ$0yruZ56prtGGJQ96Y>~|VCEaR<^aHH?^?_DAL z_B+&mPm}!;t{c8}pIh_Mrw)37WaU>Gm%LMUDgiG31%zw*(R%B36TfB?;fi%@mbY)C z$?F%aSQzhJ=W7|dY1Y>D99xI_<>59TgwwSTbe3L?HK?C0-e2=x;#!N`Wudrnr>#&L_4>ejH>F$)Ab`p@pU9(leymGkL&xm(3k%j(74 zw<}aWJ#?06oqz7U*F+=zwpW2C-4ZiDT%ER%{Vii&h_^|6P}5wG+Xv`xl{v$G^qL1z z;~mUoX6aaqum4nnH=aKak0%mFl0cn#Hqii zm-*9g>GrUqX#H2K2AZ$6bTc=fZ4uQfxcP?tON|p}w`RbgAo}HCz0(uY_G5(da1mnN z`J=U~WUPR|T6+P3zjqCpyxWGw1&#EHY~JkzxV^)_<0gBgiLO!X+E4G}-;{y7F8_82 zku~Xfm+Hz-`U?JS2%8}OZ3Yo;)i1h8ap(|Te)Kkjo)l$-Hy}icp{H-Ocu0wEz`adT z6N%_CylZ9jhwjC@4aEI4c63L)dwEL59TZi{KSW9$&8qkMI5p`kEu)Kw44wfHG~U*R7eRxk4J)WOkb5>6J})Zs$6 zVDU9?>OTLTPD~(G!h1QzaK@yV|DT&p9$a+?YH~5$VI1JUYIt$>yc>?>$7vQ*skmn) zHJN{_3+~BT6$gb;>ik!{JAz8$zg2JyE3)(~i>Xi?vYwiuj&qGINTnbQ2ooX*5rVKF z!VnRNC`1e*4v~OJLZl$l5E;lAh%7`7A`cl0QGkqtC_5v(anUGnK*$^j)GsFcl2jU8GgSbOHAf6B}$Xv)gh&RLs;tQD%@q_q7 z0w4<@3n77!MUWuKV#pH6QphsMa>xqEN=Psy1hNXU8nOlw3JHURLn0t+A?qOPAsZl( zkd2T{kj;=N$QDR6WGiGFWIKcd*#U`x?1b!s?1t=t?1jWa;vn&m1js(fen=wZ03->L z3`v0;gdBpTLJmWYK)8^jkTgg-Bm;5`avX93LLixtlaN!8EJ!xwG~^8AEF=eV4ssrn z3%LNvgIt89kS54;$O}j_Iv|~pF33m7C&*{W7f3hcE2IbV4e}k*3+aROLw-O8AU`34kRiw~ z$S~wL?K7 zC?MkyMMMcvMpO_sqKc>?>d1IR1DSwmB3j5qL>tjTbP+vd5~7b7Aclw$VvI~iOb}CK z3Sx$sBNoV1#1gSWtPvZ;7O_L@5eH-%;)qN~W*{?>S;%a}32{bTkU5Ae;)b{*9*8I6 zh0I0fA>N1&;)~2j{1AU609k-6L;{gTND#6ZS%NG@mLbcL705~?7zsgEA*+!!NGKA9 zgd-8iT4Wuv9@&6IA{&uS$Yvx8*@8qPTaj(Zc7%iMKw^-c$S!0zvIp6V#3FG>Jd%Ly zL-r$y$N?k?Nk&qTgUBHy6*-I?LAc0KBn?SNGLU1)apVL-kWAzxatg^pvXRrs8RRUI zgPcRoBe}>0BoDcW)n@A~g3n@cxBjv~)hLPXM zA7q3Emp?i*Xb2sl5C+0T1Q8*Gg$N@eh$te4h$9k+BqD`KBQnSsL>7@lOEv=JRd7tuo|A^L~`Vu%iyE1TjUXAZCa; zVu4IWEDvRm1~LBoJAI1R;x&CCE}_8L}K%fviM=kq~4RvKm=~gd$-`I1+)Z zMb;tfkqt;BvJu&YY(}DxEl4!771@StM>xn1BnH`u>_T=Udyu_IEE0#rBMHbpWIvLK z96*wgWF!SSh#W#vk;BLlgo_+S(vWl{1388qM@}FF$wW>fr;scp8##@fLCzvM$T{RZ zl8anG@{o&2K5_{uKrSO!kgG@`QiK#E*N_tAI&uTKiIgI@kTT>pQjXj~?jrY)3gkZW z0C|W!LLMWP$P=UrsYae6HApQ|htwm_kOrg?X+oYOFOX*BCGrYsL0%(okXED(d5g3o z?~wP%2c!e(M7ofV$S348@&)Nez9K!yH{?6gi}WG=$PZ)y`H2i7L&z^=82OF-K}P6s z`JLi4L=iDW9FagI5h+9(kwL~FvWOfakBmhWka372qJ$_T zDhL}=WIUpQOh7adEo361jp!h{h#oQt(MJprL&OL%MkXUBh$%7!F+oLxcnjO zkoCw0Bof((Y(h38QOFh~8rh0$L$)IvWCs$1>_m1UyOBM}UL+QYL*kJHWFN90Nkk4H zNk}r1f*eE+A*sk=?iJkxJwVQiW6_Pmvm=7O6w(k!MH)(ug!6&yg2MGx8F7g|r~AkvB*y(uTZ6+L3q2 zd*lPsfpj8W$VcQ8@)`MpbR%Dp9^@PH9qC2-kbdL`GJyO<29Y7;7cz|eM*bip6kPro z(4Zl7ghChy6A?s&5Edegh#;bf7$S~HAd-j_B8|u(V-Q(H4v|O3A_~YjL=jO!lo1t# zji@4Oh&nPJ(Lg33nur!M5z$6;5M4wMnS|&g28bbIgcu`}5fj7|nSz)h=7l{_vKCo~tVcE= zk;q156S5hJLbf2$$W~+46yg^!#HsmeRj=V$OBOj0s zq!Z~vJ|drx&&U^~8~KX#Am5PhNH5Zd^dmoz0puq#hzudWkYVIE@&_4Vz~zq#4H`m6 zD1?D95kY1dT>hA}V!Sy}R_MZF)(Byf#LZHZ9m!#@NPUy3=?&mqaTDy3y4e$h63a`bAV==kB)~SD5*71LPYoL|L>kUd^ zF%R=vKcU6n%XWD9E0uR1jTdQ9^tjVLhBH(wFjO; zi|4hZlUdAUUMm|~NxYU>3T}aK?Nex_^J;70aV`Fw1>vcz3|?eu`LBh6qdpa0n+Ymm3a zGBtb+>z0@-z5zoDVaMM8Gfey!Z`d@lDTBpS=berWXerTMe)EsWyZvgciqo?AZbUc`t!+`e7GJ2mH^1$T9s!~q(U$aio&Z?3;${9^=Q(^NqL0l)v*oGr#1 zY{32JX-o<3CoxJM{>y7I-abzp$9)KB1$Hrf9(M3+PiU#3`G zsZ0yrEm?ArH*Ve7|1(aUND?>!yonzD5+rdM&eQ~$Xwd&m^tAf_?`D$R9pfoUZra;c z{&dS>S4#Bv6aF1MhNxzaULA=Qw3O)O+W+Z}`D4g!xFSj6oos2Mob`7ideBm$TY3C<4A~1s72e4-OtL@4g@TgCZKi+hP*=3Omr|?Me}D#4FK{uN&>a`|{K1DEkMoNU# zK!+}UV>G{mNanDZ*7QezSA$^Hjjq1q-_1lxHPj5~LNTMYQ!$hb(Kv^D5#0Zuy$F#I zC|Xbp_EX%phG1EI^jMv|fSNwF;}E|_RL--Q=KOE_wju9m@=Pg#FAf%DJ(Mk}$W)57 znF`T#xe~|W7@whNN}b8(7v)LIH6a>{+fxoN0=wk7v5zQO(ZA;arX#T-kdKr31znFC8tdSwG4(D0%{lubz{v}6hE5}ZStFL8jSC&T`Ug#Zb9k1w|M ziN!cl0aa~UDCvgf9BRbImUk5H30qq&5>tPOqVB5VBLy3I%hZTc_KN` zg(uAFDx5HyI`N0)9GKEsSbEaJ$RI2iP$ow*xi^nwP9R$g@sMxS&XVdqUup8(?doUc zNFA?u_w9Lpk&G!~G3_YpmMf#{t6|-gUMNORLc@#7b}i<8F64<=G0x;w?6uK>L9lK? zvAaw8{oK;-QUx+xf%B_}E;f}Xdy89O^;(weEO$$u*k8vU?Q7Vhqs8wb3t`oP{;7&& zLc^QVWIx0$6uI!2<=-tPm%tYEVhvIN4P_DrI?z*#d8_`E(Aj$a7U$2_EAWn?O(hOB z^J_-Gnw3Z<99NqPJNJ@TBky6=j%qb&;Sbqm+QQ#Vge<**Q@h;3>ro;ER&6P5tJgSi z^62!HZ{nDrGOgU0F|B`#QM}@m^j7{ZpQpF}o%=IhPe})_N1lk5;;|=u{>W{c)~8HD zVAYbkYSK$+rx`R&u5ClFC^yu!cg*O)dZ8b_EME8Wha26(Pt1I>7M6=CtMh$$I9XzJ z5B?GZSqA4%nMjo37V5VB|8|KJ4=7qvfq4VG!>~y%Z#`6fWOQBdHqPo%@aQ@>B4lLj z=nP_^i_KVSC_u|7&!eeih#1lSzO)a#F7rHom(Az~?&Yun&5ne@60QV07&M|D!=TxZ zc5B|j{cX->@b|}Ut?d;etxz0C?BEoLkz{CV(}yjH@m&^Ei`V5&zg5p$T}L;wBq{J} z<d$Kb;;3>bsmghGi>2f$REMGD)K+`+Kl!l zD2F~5qKzlc_u*AARveO~ksd&soWKGlD=0<2RpF%Gz`8m7d4jPI@Ry&gAM!M!KLCF= zg1ACKgq#A|v~i>ymTvUlLPYu@eqGz03?OZlxP8P+7E_#jIvD`J4J>?wn-szbHg!Mu ze@6^L)r8V5`frsXG%>QAIRIM9BGBBIx&Pji;#!V$EJmo4p@4^6?5ui zykd^@k^Ru{pyJm)`p-m|M1S3*e~6J%3KdX*%JH&ug4mGH+bmO)#a-h7uFfQASC z&R)_A4S(8HV)cZ@bfNy#efrNH#mNPz+EDvi{##`d!`Gi^ilZ-B4^AYT@#%Rtjd+U7 z(8rJ^prN~KWxYA~judtj)#bx%4zQBNLxLz?j3xw&UtWK1#DpmWRnXUY=KTKvYdnk2x|li~h;Hh+rhC+gs0 z$MA*O@}_J(I@x_tW-~m>eMX0oYABd94(;-#6P4Y*^zlTm9;Z^d)bHs zDZ^Jh0LlRT%=rx8?$=OeGg4PA;+MyeF;Jey_>c^R0=dO>4YCyqwhV)3{}f(AQ)+bc zU(m^BT$&d2ceH&2Zl0GhTF@au$Aajxqob>!6V5d3mbY)4(Xv@1mYs4&%Nisa3U-XH z)_)2|+7{ELM@J9yM(2ND^7oJndY90Z$-*Xl*;lQW{w-gCf(1i-&a%G+(dY0Z7h~@_ zDBu|wLjs{NoiXP;6xLQPgWvM*LSYu8chQyv!P14HJuc+$ySPI+gf2;1 zp=?cwYKD-WW)@R}*cXPtUtPf}o2-Nin_5)+w@=MyHC>PtK-HRlfkVDRBbcFgWA*4B zPdr!+CpBotYB*W^FT`B)07%7LAJTbBhqmLy=psh_$ zJxgvw!xgSq5-s=zTQQz2hK3XMyDphXK}((-t51ecehaj<8KnzS=-jq&PdPF&V9gLB zk|8PZ$487_!;e^u?^&s%ecNGuDkEz_`sjKMtlLusyE8`j=&>h*uFl(|2$}Z=UvJ3L zW21fhVBLnXOqkF~H=s;9p`gvEdI1IBW&&qhBo9A;R;{odT*v)k8Nk>zvz$)EXO+`+ z$Xh6A!?zF7Huyn@vHtB{I*IuL-vLMj6f793s~^*OKcdNzThLS@ub`~W*mw4yvdUZd z36U|PQ$;5u>3gYhWE&K0Xb$8CEPWXR2kj{mbI6|3Bv$QsC`GaimQM7WvLqiG?zBiU z0?U;QqKLOi#G0rS4rHIk8Qc91U z{fPgZlmul(Mz(D`MGWlPDIM|$$|9r{%4~Yc#1ozH&4NZF3t{O`t++ZodX%TIZcCN= zsgT-l_|q;Mjv`2c{8bpT#I_42Oby7Xj`nSX^{I@Qv1$w=s-VU&82vbYhccU{Nu=R` z{)`~_)cpJT(I7VP$$-y*iVfqx-*8_mlUf+=&3Lk7ErT~d2A}aAyMAsTgZGxJk#kTmhj*+EmM+u+^~BLF2GtW8 zGNV5!FM>}Cn`(QSHQKkmCW|3G+Lw=g^rMF4DKuQDPbp=*K?-F5!7_#daqY%);#={z znhfja)a;+PiB&IN#6QEj32iY^`-(p&C%WC`Z9R?{y5D6;@U|8qXP}Qw*=yY!?Q4bg zsZ>)@#psbX7gsQ(M#sAK;8;@fXmo5Myi3Bw`T8S<7o+Kk2NPZ;DAFoAr*0-fnb zYG9Ni;g7xK_KYDpy0=SEXAocPrFZT9&oBqtLGl#J3n-)Ajib|;`5nLADrPi|uAhK) zM@nk)bKbftxiO=CYUq0{;(dx*uNv diff --git a/src/ui/task/OperationButton.tsx b/src/ui/task/OperationButton.tsx index f44c80e..93c6ebe 100644 --- a/src/ui/task/OperationButton.tsx +++ b/src/ui/task/OperationButton.tsx @@ -130,16 +130,17 @@ class OperationButton extends React.Component - + reloadData={handleCancel}/>} } } diff --git a/src/ui/task/calendar/CalShow.tsx b/src/ui/task/calendar/CalShow.tsx index d8e0436..6f3ccbc 100644 --- a/src/ui/task/calendar/CalShow.tsx +++ b/src/ui/task/calendar/CalShow.tsx @@ -245,7 +245,7 @@ const CalShow: React.FC = () => { ) return
{open&&} void } -export type PidSelectTree= { label: string; value: number;pPid:number; children?: PidSelectTree[] } +export type PidSelectTree= { label: string; value: number;pid:number; children?: PidSelectTree[] } export const DetailModelForm: React.FC = (props) => { console.log("DetailModelForm:props:",props,props.itemId!=undefined&&( props.operationId === OPERATION_BUTTON_TYPE.DETAIL || props.operationId === OPERATION_BUTTON_TYPE.UPDATE)) const [form] = Form.useForm(); - const [pPid, setPPid] = useState(0); + const [pid, setPid] = useState(props.pid?props.pid:0); + const [editFormDisable, setEditFormDisable] = useState(props.operationId === OPERATION_BUTTON_TYPE.DETAIL) useEffect(() => { if (props.itemId!=undefined&&( props.operationId === OPERATION_BUTTON_TYPE.DETAIL || props.operationId === OPERATION_BUTTON_TYPE.UPDATE)) { @@ -63,14 +65,14 @@ export const DetailModelForm: React.FC = (props) => { } }) }else if(props.operationId === OPERATION_BUTTON_TYPE.ADD|| props.operationId === OPERATION_BUTTON_TYPE.ADD_CHILD){ - let data={'expectedTimeRange':[props.expectedStartTime?props.expectedStartTime:dayjs(), props.expectedEndTime]}; + let data={'expectedTimeRange':[props.expectedStartTime?props.expectedStartTime:dayjs(), props.expectedEndTime],'pid':props.pid}; form.setFieldsValue(data) } }, [props]) function childReduce(child:DataType[]):PidSelectTree[]{ const result:PidSelectTree[] = []; child.map(data=> { - const resultData:PidSelectTree = {label:data.name,value:data.id,pPid:data.pPid}; + const resultData:PidSelectTree = {label:data.name,value:data.id,pid:data.pid}; if (data.children){ resultData.children=childReduce(data.children); } @@ -98,6 +100,44 @@ export const DetailModelForm: React.FC = (props) => { props.reloadData?.(); }, }} + submitter={props.itemId!==undefined?{ + render: (prop, defaultDoms) => { + return [ + , + } + okText="确认" + cancelText="取消" + onConfirm={() => { + if (props.itemId!==undefined) { + deleteTask(props.itemId).then((response => { + console.log('response', response) + if (response.status.success) { + message.success("删除任务成功:" + response.data) + props.reloadData?.() + } + })); + } + }} + > + + , + ...defaultDoms + ]; + }, + }:undefined} onFinish={async (values) => { console.log('Received values of form: ', values); if (values.pid===undefined){ @@ -115,25 +155,53 @@ export const DetailModelForm: React.FC = (props) => { if (values.actualTimeRange?.[1]!=undefined) { values.actualEndTime=dayjs(values.actualTimeRange[1]).toDate() } - values.pPid=pPid; + values.pid=pid; var result:boolean=false; + + let state = taskStateList.find(taskState => taskState.name === values.state?.toString()); + if (state) { + values.state = state.code + } + let priority = taskPriorityList.find(taskPriority => taskPriority.name === values.priority?.toString()) + if (priority) { + values.priority = priority.code + } // todo 修改 - await addTask(values).then(response => { - console.log('response', response) - if (response.status.success) { - message.success("添加任务成功:" + response.data) - // 树任务重新刷新 - // 四象限任务重新刷新 - // 如果可以直接更新列表而不请求。。。。。。 - console.log('props.reloadData?.()',props.reloadData) - props.reloadData?.() - result= true - }else { - message.error(response.status.message) - result= false + if (props.operationId === OPERATION_BUTTON_TYPE.UPDATE) { + await updateTask(values).then(response => { + console.log('response', response) + if (response.status.success) { + message.success("修改任务成功:" + response.data) + // 树任务重新刷新 + // 四象限任务重新刷新 + // 如果可以直接更新列表而不请求。。。。。。 + console.log('props.reloadData?.()',props.reloadData) + props.reloadData?.() + result= true + }else { + message.error(response.status.message) + result= false + } } - } - ); + ); + }else { + await addTask(values).then(response => { + console.log('response', response) + if (response.status.success) { + message.success("添加任务成功:" + response.data) + // 树任务重新刷新 + // 四象限任务重新刷新 + // 如果可以直接更新列表而不请求。。。。。。 + console.log('props.reloadData?.()',props.reloadData) + props.reloadData?.() + result= true + }else { + message.error(response.status.message) + result= false + } + } + ); + } return result; }} > @@ -150,8 +218,8 @@ export const DetailModelForm: React.FC = (props) => { }} name="pid" label="父级任务" - fieldProps={{onSelect: (e,node) => {console.log('onSelect',e,node);setPPid(node.pPid)}}} - disabled ={props.operationId === OPERATION_BUTTON_TYPE.DETAIL} + fieldProps={{onSelect: (e,node) => {console.log('onSelect',e,node);setPid(node.pid)}}} + disabled ={editFormDisable} /> = (props) => { label="任务名称" tooltip="最长为 24 位" placeholder="请输入任务名称" - disabled ={props.operationId === OPERATION_BUTTON_TYPE.DETAIL} + disabled ={editFormDisable} /> = (props) => { label="任务描述" // tooltip="最长为 24 位" placeholder="请输入任务描述" - disabled ={props.operationId === OPERATION_BUTTON_TYPE.DETAIL} + disabled ={editFormDisable} /> @@ -183,7 +251,7 @@ export const DetailModelForm: React.FC = (props) => { name="priority" label="任务优先级" initialValue='3' - disabled ={props.operationId === OPERATION_BUTTON_TYPE.DETAIL} + disabled ={editFormDisable} /> = (props) => { name="state" label="任务状态" initialValue='8' - disabled ={props.operationId === OPERATION_BUTTON_TYPE.DETAIL} + disabled ={editFormDisable} /> @@ -207,14 +275,14 @@ export const DetailModelForm: React.FC = (props) => { label="期望时间" fieldProps={{allowEmpty:[true, true],showTime:true,needConfirm:false}} placeholder={['开始时间','结束时间']} - disabled ={props.operationId === OPERATION_BUTTON_TYPE.DETAIL} + disabled ={editFormDisable} />