From 1e483afbd7278471d04e3095f06d39c10eb9dfe2 Mon Sep 17 00:00:00 2001 From: jl-zhoujl2 Date: Wed, 14 Sep 2022 10:34:01 +0800 Subject: [PATCH] =?UTF-8?q?9.14=20=E4=BF=AE=E6=94=B99.9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/screen/going_01.png | Bin 21260 -> 20202 bytes src/assets/screen/going_02.png | Bin 20308 -> 19451 bytes src/assets/zjl_style.less | 40 ++++++++ .../ElecBidEvaluation/BidEvalAppointment.tsx | 24 ++++- .../ElecBidEvaluation/MeetingReservation.tsx | 88 ++++++++++++++---- .../ElecBidEvaluation/ScreenWarnBack.tsx | 56 ++++++++++- src/components/ElecBidEvaluation/service.ts | 11 +++ .../ProjectMonitorRoom/index.tsx | 55 ++++++++++- .../ProjectMonitorRoom/style.less | 37 ++++++++ 9 files changed, 282 insertions(+), 29 deletions(-) diff --git a/src/assets/screen/going_01.png b/src/assets/screen/going_01.png index ea2a1cb69cc2af7cdc9d82ed2dfac112142bbf6a..0acdc428153cd8d05676897d03d8b91541489153 100644 GIT binary patch delta 2703 zcma)8X*3iJ7dGM@WF3R-`)-(NFhjD7v6dmqmXS%3AtXyPQW$G76H~TV_BBFOLM6ml zvX*TU8Nw)xrNXE0`+oHPd+)F3p7T8C+~=P2oO@GB0AF(f_axX^2>dBhb+Uy#TzU|w zo)ZkA4}+5Wc?|w+!My)y&+{58V4)Xvec*anh%OR_fWUpVu@DRvssr&xLa|8b#p8M~ z1f0~ui%{@J!k|!H@8b|827`t8`e+{_#6>s+i_t-9!=M*+;7DDP2%pivBS!Mk{vGi^ z0Qsi_6HpAvNFe9mjr~t;y$J{oXQM(nSV%W4GzpxVD03618xt$JxBx-AXgeW%f9=9C z_E=L^CvXO!;%}Xb=ZrUxc!>5`Rj9*Jly7gDJxdoec%lq(^gW4q1E^i1v6 zV%4_&670}XE*)A1e5lxy;lm|YB15Fa&Qt2M7mm@BKH~J(odnR$4yWhp6*O`d@%Uzi z_kys})Lg&}S;Z<%l}LFVI<&?gfZ*g)Z(*7Ir9BS(D3hL!-j%0^kirPlx^AGPMq#HT zp$eADrudzT&c1i02BD}Tb1G`13F#(yj+Cz_mYW@&(=)Y&%E@9NTQa%6g|&6k0jbIH znES=9I^44%!jt+}4WnNT2qab!^;84(TGC%$Jr+58fGM%DK6IfbvPPiwW_|pblT!bZ zRuJ4i>mn^$H6!#1K>&FO)cfUquVvO?&MZ8=mfN~HV97HBpgbOK>B~RR-*MQJ0H#U9 zkQkLb9D=jgTKK?tW_9_JSRte!QZqs9npZCSN#SV`LY}EvRK-UP8RC=qT zD=y6#vA8lm8@C!>vOSwmMCao@mM}N!`d?&X`p%J3K^6pokRDWf`1Ihene;*TIQ>bV z`r+cGMO(6Go=&|r0-OR@DkjM-kk=c{1|6%IexYfjIG31lktGQzSp2SNp

vDsV9f z0q|GM$nX)iSdilt*~Aa@=II1Rw%MkoUEe2DR+VPc6o4U;K6U-ltYW2Ws!#KX8%$lJ zzQEKC8|2hsxdp>R(0Tr=tQrq%a^A**zs;4X+A9u#-1n%#oB=9CS5cOo0)`^srxVAms zSM^Hbmf%Xk+A+tf?^n!Y#Y7gaxc{oVI}Gv`K;M)2BYiOT|Htq*&~TmrQonAPje!z7 z=6A=mz=l&-2`d!(P^4GYw|DEE7KjXS0J#7j3GeGTD`W4el4ovGIpH zF}wB>r`tTG3}ohJG=w%_P59k3-y=cqYPTg<6YJ}T2()W(#+~6p>vRJdtQ!I2{?28G zId=5S3t^cnXmq#XvMD2NN$i{j6?ZT9{(ffR$zV;9{7MU0IU4_q*W`dfU&qplQ4s_4HpC}Q@miRLaa zWs*nG3Xfd2Zjidr>XvM~NnU-w$n-l;yEyasNI`R9g~dxzO(o;GxmP87xpj)XcRb6# z=``?BM!mQdX}Xfm-|H=Avc?BCHq*jW4hgq|EuFPCmJ>Xyxg>f=OQ#B(7D&&kje-f} zs?D!`ahu})81$kQ9*fk&=GV<66L&dwRtZU;_9lI`QWPqO3x{aHs+-I7h|XV~#Hah_ z$c2;|n^hE23($3u3WAm9^nGdVE~ZQ$r#OYdEaUjX#ZRoK#!kmeCZ#BB7ked`F-lep z2l~ShEZpa>pjuIVkm2%o-7xiaCOkmsyvsr)vU zdBTT}9bfK%v&%|(spSYha{WV*vY-Tf)}0`e9VV<0HnC~e(}JOm z*ru#!4FYX7VI7jrlDyBdxvEtc9=6ujJ4S#e!Ge^<_0Q)|jR zKHZ=6v!E```8l*O@~YLix{th(o`N#6u$re*CxGki5sa~D-x4XpaJj>{S@LDAJ8mWD z;j#Sg`>&l+#+5_llrWhb2*LhL_uWf15<1w0wQ*9A+_Gg``e)f|LKE<#^tnb6Qf%bkf2G(`wse2!-+NGmSWoA(VoCE;Gu3GKq|r7-?)>nR+}~dqOis zLF?5btM?gPd~!td4c*#6tu0+&caM m%z0P8lIByF!-8 zmL*#>mO>=^GO9_Gkad3D`^WcnfB)U{$9cWZ^LoyCKF@idKhBq2U{VS2zW6a9*QwU{ z8tFnX4+^fXX{({FtFDzk1lIp|D8%>wLPtIWme@^y4R7^h-K>zy#=LEyk4Fz)kn`)K->R-8a=L8W54!Nk8Tj_x&suZw|+4*y} zfm5vy40$4P;<2Y?ITB0!)GIl=J|x;#CWZqb_fk6w2)tKiAGl0z8Ly zGJ_g2=@9=xiH?>r!w)~X0RR@u^?=1{mqwfM@}u6IC$d9CMMaYm1}^iqA?VRH3H=U8 z?kj1n225xdr_20H`q%-@@C9)6YX#zTf=rArxJuHLyzJp;qbv0O2F9Cze0KL< z{e|cRimXoaEv=5StP2mGp7KmF+}O^Xn%!y76mY_fz>gT#@>S1PHB_?xo`Fb{4+l6`opx3w8Hd9et-M2+*Xg(5nDw@9&cfEZt3Pd{J1st`3^*ba&@a|S*3_bl6tt!vZB;hx7;pCq{c z(iWoz4q!-}vE+VdP}t6qre$O@x^uaQCOYMEL@1*aFtB6QV9VtW4I+_?ww1iVkpXbh z!Lr@9*_O);BbTxE@;XmBb+qmEb=0paV7_ItK#$ohL7T5oq9x#lZ_D?wx7DYH#PQ(_ zqWm68*&tm1qJ8ix6T)kd;peTfUDucql+TZnje?}Mm7YD^QcHGJ*5tI)j!Pbp4dz34 zP)5e3nR4<*@e-g+5+TckuEfM&&bC+bDOL;G>)K)Lv~NYKBxN^IMe~+;&-@g?VY_h_ zw4xyc&~C@{-j`AhPfwTJ#Gp6(bF5+%Rn+_N*Ut6I-@uBthb9nzXU?&9*ApMPUJBVm zY<8C#x)o1K3sdKg4t1`sx_QA$DAPYh2s#nRUM=OZLU2ItD_4p-#wYKvplUyg#P4?S zou~C1Gj07BNAqai8NrRUhgqwJ;v-kEG#UGT+#9>XHTqkB#ypr_SJ-JJydnM%&9B$2 zE(+mA!$>5F0Fr}=idl@N5Li#B@rACXANN6olypHPUuCYIiL0yNc}je#HG8fgh8{Il z%=NJ_POH}G4e6SnG;hrv{}(g4G(KHjP>Z&5%Xa0yL3P}2#x>HT!&&m|diH8)=10XU z72YLyp*o-fFbNw}kt`^p^>lg2)CHc1w=_?Vx0FfmcsV_AA)%rfB6@SS`!Ht2pY zj0WY5^y1F4mcEF$rr^UGsTUW`L{J&bvuYbF&CxzGqjFy6qD3?ZS4(+~M&hCpVC)uE zYS0g;6;Zuao0==A4*g4jYk(^dT~WgrcDpfgCeQoK+^;7oSpgpU?XnBnF-`mF&NZjo zEf*C5(`g%0go1SB=4pfwK=t0IeSH4g;ib?s$yFEqhpkk6C|IhswENZvSP(KWfcT{D>_zPBn1lMfYsA4G+ZV^G4cQ{}%1=>sXV@EYXUwTIrcuQpi53-7=v6 zA{Y-D^`ukXYkQlalPao2O|9Dvv;C`I?_@d7&{df&(>bP!x!rWQg6YSQ2=bgD!Dq&n z=jFzs68ftuPK@QIqgYAZeyST{>FOiCySH(xu0$-W9`%AMBVrxI!EuEN$1 zx$i9O`nr&`p=#ek8iM&5-QE$i*j(;h^|bl%SmJ}nWg-nPa>ef5!0YwzhE+Hhs|cTB zkV9WR?U{2hDL*B9m9Vl|Z+8>H^Z*#;#%0fy3ulqd5d3l;r&*6g4PJXT{Gmi%ui1zH z;G$Gdyj+_#Gds-m_t&vid+2!G!kW>2<4J(*&FzN3-NR^7wQ)P}^L}IcEZ;31$g{0hheN`$ zW$*CrSpl54iQoMVPm!SdrmR$ne&G{qVgi)kJn9YvR)O8|aRpL8GGA^cdOQVn{qjBf z`CN#nfIH>Ym?s-80b-U;%u*SmQcvK-b`+c%pvYSbuKo*Nj2K=j@w=;Ypq3a|=XKg( zQ-7Xb($)>o!Sg_>3C2#5W!{zpV@DbiDL(=UCP_pZ=-~* z?$XH$F9A==CC>vlggTZ}&}MOgM^pR>X=jl7$k#CUZOjRnWn{G3iKYuBf|Dml7P8ex z(jaeMUNb)idVf(=x59=b&h5(^{qECc4i4X3;B5@X^h~nkrkP%(Bl=v5Lx|^A6W+wA z+9owZ1}_4P5n-BC=1huQ<_s{3^QJ^#fZxmuY_ztX>niAg^$tV#3P< zg&w>WR@{;5223^QIPh`m>K8K21&;9;{V)-jlf3gdQ_14hw8*oIqS>p%y_L2JPn~A= z1b>;YxIYo9^X;DHxO=EHl=T2^ix*^Mxcf=5N!7mJ**n>oe;c{>aN|R;^)$tS`RKC5 zz9d3i_gmy?z?AvOc6uz~G4k#r=vt*J$mXF(5)DBTolX=twctpaOb`U{DK#pvCx!_V z4!J{sfYXf|QC#%ljaRy4s<`iQycN?fd;@sAE%;h*l8h7>Abvl5z^i%h9HN3k&B@@d zx3KV)KnP!#x_?#$7q? zr>U&ic6aRttfpiio4ek22?Y(R7uSOEOH?Hq^nLWYG|uYk{x7 zP9e0qa4dRfnCCJQ&@DpWj}+?V)=3RR?)Q2g_!Myh=%46>hWV=Ra(T1~Z#BzV!SUpP z_e?JToobo*3>Bq5&~H2?b#||frB1bP+LZ>vDgDN! zh0E%cZbb;iy|@|TA$283*&9Y_I9b$7(fn*)Q$-LNR4@!Z>Bt=REkAl_s1&wHBnPO5 zt<%IN<}-sWQY*BWLqaPTm}$wvDQ24$xk7O}e_)FTJ9|D+FA2u3_PN)F>h`eCJ}LP_ zgtHFPwZfAM;~0>W_Nz9Q6ibm0-9LM~tl|8JBL{`T&cgFN!AHrO13&B zvAFd`$<{h#-iM3&GiZ4zebW*DS?&*g)dhq7nd-HWKk{vYwJ3jsw&HWo$O)@JFv-VA!y18#>{lfCB_z Zg20cjSb)y|-ckT&Cf4VxjB&uo{{utx;feqN diff --git a/src/assets/screen/going_02.png b/src/assets/screen/going_02.png index 2fceb991be41704644d4552cb11e198b5ecd1845..c815c27100ebdac7d0446defbce33bceafd7ab34 100644 GIT binary patch delta 1961 zcma)6XHb)g7Nsl2Kq!l12t)${4nY1JV`{r3=c62t))yV40ma^JaX1ynoKjnRD-)d*{p@%V*!CvfqPnvjIXW&>C3L zi4zzlWsE&iLsJ=}iNa8ZPhfsx#6dqZ?jS8V0i%u~c%hY*@G2-ZC4z=3UI~rFC@Ueo zk!nb!x{8Jx5l?9bX~31e)QK86JX*<{h{7wWYN!&F&}!Z&B?1nmfmg+;dJ|AcinyTO zuL*Am&i`7CrdDd6l z97GdZw}st`(}F4pF^$8e<7Z+PD^8pDUg~L-bMbRKZa|448_3yB#h-|=A404uU|~(k z?qZp#LNSeCIQ@#))FlajaS?t*3XGdSd*W5@M04{?fK_!n`}=L7oaO24IF;Gln}aRa zh>&33f)CL;32*?0L3crZo`ZYOh1)OozPwCH55JLTN8O5R zqIOL;_g&Fr87g<(JoQ6`FnImxhMqtTcwDEb0gf+8{s@J!$N$CaL>rh1qbRQbBy=fl zrm6#Sbvd+5p+}f5W+qFh>u9I?LcV0ugy|(rK;3K8BGQS;+w>(l=7|K>!~zB{wMl)m ztyo8D8k{H>#&Yd|C#MbQ;rzyJ6x#G+0C~E_CRH9@+H)xnrfnv$oT4-I(;^}7RcjEW!X!H;1G6Nl}KK6A35o6$gv zKJO0O4v6O9DMP$T%1yfB?FU2d%akaDfOqz5-l8F|@O(R>3Hzj5rE_M?$kGpI12zpz z#{beUIf&nXg1hRSJ9jziKMX}^!iL;RaYkpr0j%k~3EP_^IM-!tU$u6k1mC~rV z5SD3aH5cY_!SV9U$}UTCZ`+`qwhxdjxE>u!g+S9MqHVctagnhTQDWM6Olj?U^@~9t zIMW$bYy#CDuq;|0fdZRjtIkAiJ|m3TY7c5F2+nyl9o^!Mu=(2;8=B`r%I96`Sx#;2 z{zM{fZP6U^Tl87d5B%20Ky5R=s?LBv=3r@JZcryt051}dH*&6`AHm)PY@h`cxpIoZ zkf)3C3}L$3V3);`phaiP_sXS7 zlKHATMJtf;_h?7?gdyYq&FOz}nFjWB^14R@*cKTNAwMJwIH}Q9(FWqcYpzr(N%6v$ zwW-fvMOLx0vJ6#apIPeEts$4|qX!1k{?LRt>PB+DI4j+ztNp#AGjS!0<_s?o^j^Dt zDwr5)C1DA?wWA?Gsabck2~ZEDzjEQW~-i3${inxZSXq+*yH|IzGVY zO|@9sfYlo{2`R{5AnpfiM(O0032Mi;LhC6`03^pDm2Kl(yKp?DH;2}^@*)#v?ubew z-xyKF#(4MkiAByGbKe>X8!jgFZRtBIaFu?4R^H&fm@e-jkB=l*SZ)wRg0x}$cbD?g zGNAo^p_T(L8QZVoLb>O%bfWLOmH~RP&T2sx;}Vx~kk`=fy}gd`z>zG!m4A;G2w>HRYqL1o zO0qA4xBT9ruv4{G^nP960sBU{$!WSZZaE!U8+fer^W)1RM^ml{B61(Qzizir=rUpE zDi@4w5T`TUEWbx^2ZCuF z(T+V;Mb;G=J-;)NG{Xv__Uhy9&3$t#zyr)m#`dG`SCI6ws?y%bvC2QDDjmj$4@k2_ zrsVZ+HeX9=2ch*6>lCP6QnoSXL8XXRub;H*weUXB)7GcoDrh&njJ-0P*9nIk6hx{^}*I$5-vJ@cal%-hj!~ c7M}GGHZ%}i?_K0x#&%SuMplMT4LoE10fU8iT>t<8 delta 2825 zcma)7X*3iH8#c^D8q3%T*|%$$#mpeG`(BF0b{ z;shLR3PYG0!I*s_CjXkqivD|YTJ*365|4l(Nd82q9}I?u`uQ2bp?G7sF%*M!C-abl`CKYfp$-w!?(R?`I?}l!(sD1lr-ncLNmzg|IBPSt#zCG;j{%QD(PN^=9 z?SeR;K-2&7eyfO*OgP3qpW{*!npovqR9ut{J`DzgA)HQ&(=P{h>=Q=hbc=eTXG=Y& z<+_tHbNy9gm-HQf=K-Bu5b|^w=pX5*J;7`|U7);Z!v52u+f-tn^+%jX?b{f)MJr)& z6T2iHq$MXx+3gbVXtTe~C7Jd2&liTyJ3s7{DN*^-51a z0vh`hndj%r8Ru69znPJD`&MORN@)t{yJeI5&GKd+Lu*g^0Hdi_2Am9@xe0HgSRq9; zYIccV%{`E!`t3N)58#B(HF64)j(Y7}`b9O_<>)z#ns&k59xqoHI`ZNY$&`m6Dadox ziu;_>iP_JEI*?=#1~H11>nE8S0bi@d#_V?!$}HTx6e+0p!8eI8O(B1=k*JF6Kf50c z!_cYSx05H{y_q6F@tB)jp>oxm%|5?X^1^sNv zB0R;Awe#1_F6Xtn9JCgXYfX7#@2a3vm}F&Lycre{!MB{K2P)eU))9J)Ew1a2OV^4P z9RcoVm__aIU9w(KcI_Q?8!^y-DZjeib059Itlrp;)ZX5BJ;EL1>J9jq$i_A>^guyT z-tSN7sc6@)giX|czI_eQJ{{&OwbwUajwt^Tx-l`L!e`!3LY>#9DJhZ z6?;zhdi}4J$MJ%%%oC3r4Y?kJ+C!q9Lxr5Fx)Q7;xwA65Pc9+ly%Sk<=_f&ACUX(C zGBa5bJt*!4-*&+C&pK%Vy@+AT=G&A0Z(e9=GG!+8rYwn794@{C810HKe)y_&uDFMZG?&27a_&q%u;R@~EIvSlYa`Zyv-+c^g0Y9)Hl6o`S*R@wj@isDt1|B zWs0&P+C?1>1AO+HeT`W|qX)^Y(W&}l>+J|1oaiG=5fr-&Li&|x2kvOhQDw?O zWv_}0zjB#%V``2wSRF#AW7T)s#|?ZeCt0cNOxY*VVn;&@`KEa|JJ34)7ec3ryr~0< z=kSV{>Ln(V3m+6ivAT%LUu|RIzT(DwKLE;r;|d-L+pUBa?UA6e?(~fC6+ZQ^Qft-m z^D7=0kdJ2|WmrwaKS}p0AT5?&4H%+A%xd{p6$yumyIq;x00X`|>(7tRpexxQHSWSu zKsc^Q))>^>8E(ISVuK;oS`jAn1b^oGe*J-r>JXYVJY4ol!I?Ti~Nw;c;)A{Ae&HU zc)+H`nSCudZ#`kRuYzVPQ^+c6CJS4CSyiK)&cfO|tHSLh!LCawEX>g1XTYViVPVUh zFiOKc;%vi0*Cq4x%tt>9Ms?KY!&{_3uLTPxU9F^6$1U03-oJ!&6e%XDOxA5ST{ln4 zzjupu!JoBBBVGwr27cqRt3=4Z1Y9E=SiPv_sQt*gk@LfHdEd;%>ZRg@hw>vwGkQyn zYtQ4(!QVBwdD(MWa+*zH1j_tT&U!nDq(lijr>bUJre1uq$VHdlFm14?e2SBt>kaud zCTO6r9io+SmfCRMVjtlJujs>U=L?i4ws)fQ;Mml-BNu(=ZLpCdtXOK1cR3s9cx9dI z9MyfKVuF*`)3zSZ^Slz-@KE|0^1RuQMxuUjHI-GnRjTR#K<+_IZo&exAoqDh>O6(* z~nEv(bIa=j}^<4z{)@R~||_!t+$WA2@Zg_z^qYN3!^}R0v.ant-collapse-content-box { padding: 16px 0; } +} + +.screen-warn-p { + + // .ant-drawer-close { + // color: #fff; + + // &:focus, + // &:hover { + // color: #fff; + // } + // } + + // .ant-drawer-content { + // background-color: rgba(0, 0, 0, 0.35); + // } + + .ant-drawer-body { + text-align: center; + padding: 0; + + &>div { + height: 100%; + } + + &>div>img { + position: relative; + top: 50%; + transform: translateY(-50%); + -moz-user-select: 'none'; + /* Firefox私有属性 */ + -webkit-user-select: 'none'; + /* WebKit内核私有属性 */ + -ms-user-select: 'none'; + /* IE私有属性(IE10及以后) */ + user-select: 'none'; + /* CSS3属性 */ + } + } + } \ No newline at end of file diff --git a/src/components/ElecBidEvaluation/BidEvalAppointment.tsx b/src/components/ElecBidEvaluation/BidEvalAppointment.tsx index 8eb5c8d..c075b85 100644 --- a/src/components/ElecBidEvaluation/BidEvalAppointment.tsx +++ b/src/components/ElecBidEvaluation/BidEvalAppointment.tsx @@ -1,8 +1,8 @@ import React, { useEffect, useRef, useState } from 'react'; import { Col, DatePicker, Descriptions, Form, Input, message, Modal, Row, Spin } from 'antd'; import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; -import { getBidEvalRoom, handleTakeEffectReserve, saveAppointmentEdit } from './service'; -import { dateFormat, disabledDate, disabledDateTime, validateMessages } from './MeetingReservation'; +import { getBidEvalRoom, getTimeByAreaId, handleTakeEffectReserve, saveAppointmentEdit } from './service'; +import { dateFormat, disabledDate, otherDisabledDateTime, validateMessages } from './MeetingReservation'; import moment from 'moment'; import { dateTimeFormatter } from '@/utils/DateUtils'; import { getProId } from '@/utils/session'; @@ -65,6 +65,8 @@ const BidEvalAppointment: React.FC = (props) => { const [selectedRecord, setSelectedRecord] = useState(); //loading const [loading, setLoading] = useState(false); + //不可选择日期 + const [disabledMap, setDisabledMap] = useState({}); const columns: ProColumns[] = [ { valueType: 'index', @@ -172,12 +174,26 @@ const BidEvalAppointment: React.FC = (props) => { } }) } + //获取不可选择时间 + const getDisabledTime = (rowKeys: any[]) => { + getTimeByAreaId(rowKeys[0]).then(res => { + if (res?.code == 200) { + const data = res?.data; + setDisabledMap(data); + } + }) + } useEffect(() => { setSelectedRowKeys([]); setSelectedRecord(null); + setDisabledMap({}); }, [values]) + useEffect(() => { + selectedRowKeys.length > 0 && getDisabledTime(selectedRowKeys); + }, [selectedRowKeys]) + return ( = (props) => { rules={[{ required: true, message: '请选择' }]} extra={预约时间范围 7:00 ~ 18:00} > - + otherDisabledDateTime(current, disabledMap)} showMinute={false} showSecond={false} format={dateFormat} style={{ width: '100%' }} renderExtraFooter={() => "注:若时间被占用,则置灰不可选"} /> @@ -293,7 +309,7 @@ const BidEvalAppointment: React.FC = (props) => { name="reserveEndDate" rules={[{ required: true, message: '请选择' }]} > - + otherDisabledDateTime(current, disabledMap)} showMinute={false} showSecond={false} format={dateFormat} style={{ width: '100%' }} renderExtraFooter={() => "注:若时间被占用,则置灰不可选"} /> diff --git a/src/components/ElecBidEvaluation/MeetingReservation.tsx b/src/components/ElecBidEvaluation/MeetingReservation.tsx index 4dc2a16..2c9803b 100644 --- a/src/components/ElecBidEvaluation/MeetingReservation.tsx +++ b/src/components/ElecBidEvaluation/MeetingReservation.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import { Button, DatePicker, DatePickerProps, Form, Input, message, Modal, Select, Skeleton, Spin } from 'antd'; import moment from 'moment' -import { cancelMeeting, getMeetingData, saveMeeting } from './service'; +import { cancelMeeting, getMeetingData, saveAppointmentEdit, saveMeeting } from './service'; import { isNotEmpty } from '@/utils/CommonUtils'; import { ExclamationCircleOutlined } from '@ant-design/icons'; import { dateTimeFormatter, echoDateTimeFormatter } from '@/utils/DateUtils'; @@ -36,6 +36,20 @@ export function disabledDate(current: any) { export const disabledDateTime = () => ({ disabledHours: () => [...range(0, 7), ...range(19, 24)], }); +//不可选小时(额外不可选) +export const otherDisabledDateTime = (current: any, disabledMap: any) => { + let otherHour: any[] = range(0, 24); + if (current) { + otherHour = []; + if (Object.keys(disabledMap).length != 0) { + const time = moment(current).format("yyyy-MM-DD"); + disabledMap[time] && (otherHour = [...disabledMap[time]]); + } + } + return ({ + disabledHours: () => [...range(0, 7), ...range(19, 24), ...otherHour], + }) +}; //时间选择框日期格式化 export const dateFormat: DatePickerProps['format'] = value => value?.startOf('hour').format('YYYY-MM-DD HH:mm:ss'); /** @@ -59,9 +73,10 @@ const MeetingReservation: React.FC = (props) => { const [meetType, setMeetType] = useState("meeting"); //会议室预约是否可修改 true-不可修改 false-可修改 const [isEditMeet, setIsEditMeet] = useState(false); + //存一份预约数据 + const [meetingData, setMeetingData] = useState(); const onFinish = (values: any) => { - console.log(values); if (values.reserveStartDate < moment().format(dateTimeFormatter)) { message.info("开始时间不可早于当前时间"); return; @@ -70,14 +85,25 @@ const MeetingReservation: React.FC = (props) => { params.reserveStartDate = moment(params.reserveStartDate).format(dateTimeFormatter); params.reserveEndDate = moment(params.reserveEndDate).format(dateTimeFormatter); setLoading(true); - saveMeeting(params).then(res => { - if (res?.code == 200) { - message.success("保存成功"); - onSubmit && onSubmit(); - } - }).finally(() => { - setLoading(false); - }) + if (meetType == "meeting") {//会议室保存 + saveMeeting(params).then(res => { + if (res?.code == 200) { + message.success("保存成功"); + onSubmit && onSubmit(); + } + }).finally(() => { + setLoading(false); + }) + } else { + saveAppointmentEdit({ ...meetingData, ...params }).then(res => {//评标室保存 + if (res?.code == 200) { + message.success("保存成功"); + onSubmit && onSubmit(); + } + }).finally(() => { + setLoading(false); + }) + } }; //获取预约信息 @@ -87,8 +113,9 @@ const MeetingReservation: React.FC = (props) => { if (res?.code == 200) { setSkeleing(false); const data = res?.data; - const isEdit: boolean = data.reserveStartDate <= moment().format(dateTimeFormatter); + const isEdit: boolean = data.reserveType == "meeting" ? data.reserveStartDate <= moment().format(dateTimeFormatter) : data.status != 0; setIsEditMeet(isEdit); + setMeetingData(data); setMeetType(data.reserveType);//变更窗口类型 if (data.reserveType == "meeting") { data.reserveStartDate = echoDateTimeFormatter(data.reserveStartDate); @@ -117,6 +144,16 @@ const MeetingReservation: React.FC = (props) => { onCancel() { }, }); } + + const editMeeting = () => { + if (meetType == "eval") {//评标室预约修改 + const data = JSON.parse(JSON.stringify(meetingData));//深拷贝 + data.reserveStartDate = echoDateTimeFormatter(data.reserveStartDate); + data.reserveEndDate = echoDateTimeFormatter(data.reserveEndDate); + form.setFieldsValue(data); + } + setModalStatus("1"); + } useEffect(() => { if (isNotEmpty(meetId)) { getMeetData(); @@ -135,10 +172,10 @@ const MeetingReservation: React.FC = (props) => { , - , - ,