From 55c7ee26e44fc647e822bed8a5a3cafcffb87545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Thu, 2 Jan 2025 11:16:24 +0800 Subject: [PATCH] =?UTF-8?q?ljm=20=E4=BF=AE=E6=94=B9=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- preview_easy/__manifest__.py | 6 +- preview_easy/static/description/123.xlsx | Bin 0 -> 9303 bytes .../static/description/folder_icon.png | Bin 0 -> 2919 bytes .../static/src/js/preview_many2one.js | 148 ++++++++++++++++++ preview_easy/static/src/scss/qweb.scss | 5 + .../static/src/xml/preview_many2one.xml | 91 +++++++++++ preview_easy/views/preview.xml | 2 + .../wizard/hr_employee_wizard.py | 8 +- .../views/yuthon_property_views.xml | 23 ++- .../models/property_lease_contract.py | 2 +- .../views/property_lease_contract.xml | 69 +++++--- .../wizard/property_contract_wizard.py | 1 - yuthon_will_task/models/yuthon_will_task.py | 13 +- .../views/yuthon_will_task_views.xml | 2 +- 14 files changed, 320 insertions(+), 50 deletions(-) create mode 100644 preview_easy/static/description/123.xlsx create mode 100644 preview_easy/static/description/folder_icon.png create mode 100644 preview_easy/static/src/js/preview_many2one.js create mode 100644 preview_easy/static/src/scss/qweb.scss create mode 100644 preview_easy/static/src/xml/preview_many2one.xml diff --git a/preview_easy/__manifest__.py b/preview_easy/__manifest__.py index b53c89b0f..2622dc98a 100644 --- a/preview_easy/__manifest__.py +++ b/preview_easy/__manifest__.py @@ -11,7 +11,7 @@ 'author': 'zxltwins', 'website': "www.odoo.com", 'version': '17.0', - "depends": ["base", 'sale'], + "depends": ["base",'sale'], "external_dependencies": {"python": ["mammoth"]}, "data": [ 'security/ir.model.access.csv', @@ -22,7 +22,9 @@ ], 'web.assets_backend': [ 'preview_easy/static/src/js/qweb.js', - 'preview_easy/static/src/xml/qweb.xml' + 'preview_easy/static/src/js/preview_many2one.js', + 'preview_easy/static/src/xml/qweb.xml', + 'preview_easy/static/src/xml/preview_many2one.xml', ], 'web.assets_frontend': [ diff --git a/preview_easy/static/description/123.xlsx b/preview_easy/static/description/123.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4f8fc6a73912c76db39b6d8b25a68e84e5c9a3c8 GIT binary patch literal 9303 zcmeHN^;aEP5`H|~-66OKClK7--JOTK2M_M<5FCPAZ~{StYl1_7gy7*JAvo+yX7*%; zo&5`T`-kqn=XTXO_ul%dzN%^!d1x3M02}}T002+`V3T})m_PvlelP$4HUI&rFYe^% z4svui)_CCzax-M{cCaTef&tPO0DzG1|9|}t??83xm}4IshU7)sHF{F3rrB;$B_l9K zD4kht4?fdd>?z60DGJVgH};v1hCrxE3Vp*)p6|B?_+m}FH#8DlpVEqqze~W?o-ViP zG6c|)UA-AjO#LwG17E5G9X)e=@5rVL-xFI!nqEYK#HwaCCsI{^3`LUgQK%*Ql5^5R zWzJwiMCgZ)a^q=ykE+tEa00YX1zO1ROE=MhPPqzk*h>eNMiGo*NWIx|n8a!FuOCER zjTg#*->M|XW?{n-eea0i9s<9I2WWuG-+c#+#y4NY3vHJcVlJwdH+8k|A$fd zm!(%HD=PQ1p@f5FZX<>-=GGE1#N@q1WjZM|0)k{$(VOFnsfpL#(UD+i5QRWX2X+PA zj;^c;#O)7L{P@gO9fO6#Pu1d86P|JH;sMV{>zXd*QoT8V={a{k_ajSM?ghPPR{~>I zTX~`U$U2qOhZBhgj42jvB1G&`l5jl1te1N46?H$EUDiU)iK&0939oPEDcDb$$_ZRZ zFWW;Ej^tH1oXx@=b~CeDs`VSTr#QbN(p0zRwW&ADbLFFaVQgXFb0(4V4*SlJSt)l| zjgkxNl4DAGh^F8?P_K#WWbD<80UpHus^R02;25&0WM{nX zS-qTG?aZ8RjyU=&_OPEm`UF{38h^Ijwq%N$zG zxxn>jp(Qp(9iH?J?D%Ap?HA7NZL4_gClX;6Z&5IX-Xw{Rg}$yf2;05*_VJKPoKdZe zdWQyehBIx~_400IFg)fw_^cTUP>P~jrh%)IuE3#(@!~y`o|wgmq$tkQ!O`Tj0_rrv z(#m1xp%(ut@@ffYF>;~c-VFKl=}bBgQTe%Gglufs@1XaLONF>2(i=#W^By4Dx8(q{ zUe~fbVigMr8g1Vs%_vHp~o6B3RupZ=k9z5}kJ z(zs+gZ8RwfyMmTMoeOn__vuym6P6%GRqZd?Uokwc7YWJj+FH*HdVsdVqqw*~F@c4Og^2 z^g2_|_%Kf|o?1_>AHeca?kYUf?h888^@EM-qEJq>q_^zwMYc+mUiE#7jkz&|?~C=q zpC>!BfhRA!mj8Tw#$AA0FwnNslVq@%-UpVw4;@R%Htic@d7=20Si6##@JLIH34gh+ zPr->97)^Z&9M1Bi686BzV`x|EiET~B`yY8}4C|r8189*xLPn0+8-nthaF&EYK#Qh@ z0F{=}Aod@V=R(I#mUu-}QZ8fGND&ngR8sTAa*En8wiEWLaVbvjuLq_B&R3}kbBTAY zB6Xv4C_PuOlIh$`cPrXwyx`higA4RMXf!!PiV3FsYX$jQ;cIP_ee(8xz{f9n`Nk8r zH*lUz(w$fw?p^QJKDkZ!G*7_4D}rPl42-p*zjk_ax;6YasjU2JISFzkN^ zG42115OER9&Kr;!W(WX?00>YJ4S68W*Qvwxldyq)FjSRj@ zS`>3s_`6&h>7KF63Bi-(yfCe65*MQwJG4PT(r$kNXKCuHp~k`I%6NnVH(RIp|70Hu z`tE$n&;S5G3IIR=Iru-FqnkAd%sohOXenz{N#1v;IwPBbnt*n0Wv0(W{rw( zRmWN!Ck397+KPSU_0g+PU|L&&RFvS!=^f_};cWX@TBc)BUVW9klGLEIS`AO5>5Eny zaC$OE7;~5>9#Th`2;G;ln3?4($#N)4(O^{A8gqNs_rcY@k%?_^PbW1di7`(WrgW_Z zA{$pMxW;C`XA>4aUBh$@MC;c~OFrJ%nhlEMkA!EY+$OV~3l*Fgc5{}x9BkZ^wIY%j zPt|f+5oKWK2+Y>s8B{P|BNoC)wioCo47lr3;0Y+QNd3;z#z-q;*_o?6M%GAyeJa9N z^Y9dfj18S>&S(QO?T(cuz{3P2t@Dsye*j%A$db>hsXJZw{bJ8_YK2yi`=;HA?@1bx zQ(H~6cR7;J&>6!{YMk_|mqIwz{rQ;^?7pz59KdL2IlaKiT>U2Gd}n$|i(R}X8H!@P zUO{Wa=^^5#ODnoy3Z(jwzIE?9?r$V_hq8!iI{TNO=MxIHJtUSylMPKPYP3&XZvdi2 zva0+ei8qk5dU${w)WbvS+`4TD8$tMqJ|?S4_WV5!Zi}Dsk$7%>ajnK)OQ$iCIn^Gv z&SW2Y(oo3d@|8n29$|W6>%v9CzE7p1;Y7x!K*R?ZeeL`*;`d(;G8E39zsgWw6RO$& z6n`O|ulRh;$2>>hDd$AmScSB*fU#1!8FBF4QdRKb4ZMJ5F`tI0rbfPPY8T6}kvVsz zIIf1|d4<%Hp{QrXQaPHY3hvx%B9IeOBTr`Bz6z|Ss(+=bXIuC~ce4Jtlt+1RWx3EC zy{~p+SHHbR1Y>#hzIt5a1?-aV@5vjLME{=OlZyI{Jk025jmUN34{zC+-UM#6bz3uY zx@9emjhk5FadKw8&6-$04E()4T=AkveIh85bsSrOc}hyT*TmX}IH7qaO*VApDTz{& z%3zJdqj&Ev!P;27g)?7E95*Z!!G$nZPNL{h3AuUY*e=0EwbZeTaHI^1N8uqabm}}e zQs1{(m|r#PJ6myoxe>z@PvH9i*BIsS^1(6U2L_#}3jejm)e{mX(?%0ru&9nAwC)d5 z`gb48Sa;M1W6t>`C93|}Nh=BmJq?AhlOUp>`SmXlx?6)BK&-#+zwmdcJLR;(jnj?3 z_&~mUq}M{Tgtm{BLUXns2`O?sfkgb5&ldygTtv?93Vv}*l z!`yO|ut-ItZ=t|*mjqm!CP1Lx_e~&M_r1OpUvLsoDt8O#RMJ^?v0D&W=-mrdl;s1r zT}b!Kjd`?*?BS@Ue~$0$TkUFixUyQ9$%}LeCaqV#da~cvfDzMWo2Fbqcw%S&Qr(-| zTsIhI)$(kgOMGX8r*N)gCu|NT>7$2QYS0S*8^SCTD{8}z8@nB7q}Ga!MpLmj*n338 zcu4$$HL@_qCy|zughizI*IA8cm;p}>A}ColM2F5l=IgJ$Gm`WT!^Gvcf7V%e&2)$q zvS(v>o;5L)qvS7q+<)}`9Z;nqj+hI6lYI439l({F;%c|bRGh%dU+}z0}gnz zUQXye5ojLc#*-)vT_@5W7>F!PB84FddFK_XA1KjH@cZ?;+Q-x7xb8&c4I9lMtK2$m zguz{OZq1WOSRA3{&3_y*;j{TxLiCw^rMxG*dBvip9iq=bBL#puky2Dmx*E?roK|HJ zv&bSBb0>1#oc=AW9ASiI-4SXR+--)iv0+7IfnY3`-3W5#aSiRr&}K^PQ;DH2L?c7g zQ|CPrHp~>+nJQN^9g-sVTK%`zS1W-KHhy)}nr|d{!vg+JnRjrR@h;%*G(p&S=gE6L zxXr1M8l z$9PWa?Hg8(y3lWlKxR?E%DvHhn$&wvJ((V?Jz9j{_b?OksWRF9Q2M*kjeq7$bSIN=f79?M+pD-(&iV9qf@V8yv9 zK&^z1X(uCPVUMF`<1T|WJT@wYq2@5Kefjc(`A6=3AtBDBV?A7 z;#I`XgUBc_S7h?48>8ZhouRVw%tv#3aoil=w5RlXHko9Ni;~WtHYbZHQ!)-tWK}GwF>Hk6SmwYrUX-<)30S6!NU;mbsHcYg;ejSjslaE z)3azY;4`zpU!o^5v>2f)og!a|&B~|U1((5->3#UN?+0t^=yfZ^_h};X+=1_H!KY5= z2hoY6VvrAhzg?rCm4EV~a`Lx(Fpcj*r{B4lp)KdIXS7;$2FcPV_TVuXM(mhv=_zg-p&Vz?P633*vW-H^e0Ki6xu9<%4gA`CO%5z3Ei=d7m%o^1yE zlzb7;Z=!}z@$U^&K}jw%(gKsvwGwpNA)yGlys6Zr+Gv65s9c&vMQwBY@XQd|xH}0P;i^je?!XM%hSp zetufPqUkxr)fC{Sx? zo8ByRix+twtofCoEv}iTI||~OTh%uBAJBP5?5am)KboY;w=Q!Zs~s%c)r5#OPhw?^ zcQ~<8SbrRyM6pdiX+e>nV9`^w)ovr7ro=poT(OL=m-=jI6;R)))9f0oQ^%yaS(QL~ zeSyFo0P}e!B4wQh*Ps-uo7(~b&;M%4g@yPyS^#g52(va9B*k}x&ANN7Dj3OV#6+NR z8xGdg6Kz%9gA*<0MzA${ryYod9TSCl(VsGhG; z8QpfhrB(&L-};P!@rusWf6=kY*R*tP7mX?4-9lwkalQ6lgz6jNLut_}LBD-IE2Kj& z;v_OOy|j8fNnGLY)OT8)v)>QSYu683-~uje8e(52?VPF(0Q;)Ezda!T6LSo*$?Tbe zWEJg@z=irp&~kHsVGnZqNf%2rCmcVBV02TRpjCBs-pi6C4|_^x>s4w{m*7Pmyf>n& zI#O=xL_~`u#?K4IzKBLv4jDCPv*V8|ri@;ef6LE#Gr{vtR>`h+Cf&9_Rl&s@%R~ZH zC`X&Y5a9L7*E}|srjgn}Hv2Q_vr8`DD@u0Hp}o0iwHSa{Hcnl&p|bxv4ijS}uc{rR zs5%34WLTBawPg(hL!2*l8yRfxFn*})Dy4$ti7qU37+x%Ar(Hc8*5G$D zhBR7aG>rpi86=GeD$+td@GGua_y8EDCXUKRx}bxqN;6o08L!XEerhC%fGZmr(?j?f z)x+ih%Gv1!_c4Pj=X4D@y%414B3=f9PPcrAC+e)ywN7ao3eiHh9qF83a@<@Ye zQh0LkS$5RP2+Mk_{trGEUtYhdj5P6EkfWlrj$X?`gsbopTc5EWAz4+(-DV#b6$eQ+ zy=<{vLJd#2vRNfO9(oRjT}Nt!=@?LBcAG9b^6SzUPsJkYC`GQ6uF1$g?4v&tJSL9N zZB*$9g<5{S25Q3vA-+xvtAD0nySh;M?3N|9dD=o(jiXT`**T-}F6IcZiIaN9#A5-j zqB`slbER@MWgW%oZ|krCCt%2U*`F-O^n;6=7pKA{Jv?I3BL$bGOTcSX3qXc@58s=c z6@2SyG$1o~tUm377y;YZbz*RjW={vAQ?eTvmP2(m+P}Q7twxPb>(;9kne@eh(U5?sy{6MXEyz3&h$rm{X28|m0X7=^hWow;YeOU--~QyJ%mRs~A6UAxp_P>6qJ|Q6aFH9rRH^R>`U3`*8sZTv5{0&xWTRfN zja<8jMVP7P(gzpVx^<20B0No!u;OuGx=?S^2gWTP19If0~ zAC1{r%xoMFQ^(}`MR39&xQr@UG%zHbDOgG+<-dSzY$~;g)U&lZu%hEIrb|i~iav`O z+yFoKUm^$vG2zz^z&jT|3`Em2O0FVU^<}wbaaz%m^*3yo;!^;d7RGxbGvjlN)mK^=KWo`G~s|8>cj%cRpq^ z!hHO*mIEG-%wEMw=PTr$*B`FG3|6$wlNo8s-BAIZz?B(H>ue(pl{t)FC=1Vffm)ZN z3+0@-ZZgF|G!}&N>IzTKfaykE`({X+u6`IK2>1{e83gL1v>@-!d)Slw4f8F};^ zcfE<UF<-R{aUU%X6cG_25a9b{y5k@8-+>tj0m)+R8BbA+scszDmaRdY?3UZjx zAPfwkn8;rST^Qbw)BVqCQs}Pfv?6523gY)MA=M-cCvz27CucWSb0=5OpKZYZ7m*-< z@Jm*;gWx@E9sUNL2JApoRa970kD5=5vc0&dFH_sRSV9q1b$?S@<4GDXxSf~6x?_-B ztJH|p-Lu%JMM$X{3siZFSIWroy~QvB8AoR*)kL#~T->VOI&FQu)Ii;c*qgl>?u%Ug zOF9Pm_Q~l_yo&5Ce(1?d!~CiEUd>74SH%qVmbX1fJt@!g%n{=ew+S3y7CwpG4aV^k z*)Oi(3)&!HOf1M9q^7(aI_QzP*$Go38Rdp-r=^xizYJS%;})!u);9v z2`c4rgSGMJ%C~e0$}7)C>DaTvP6T4D^cxE-WK;I6Zm#QY9L594SqblHl*%Y5OmpqO zgwi6uVv!zTB3C|{SQviyk2c6>_#HDFGJ^q0^)dcxgQm{T|2IL1?frS>Cign7{A~Qd zUZaH{#pOEEhl^;bmN5A&)&pdHv_X7$jPk()L?d~i3{tp5RL|uV_ns%kO>t#PE9y?v zfu9$o)js>JELMkQ#(Kf#D7mJ;{Lszis9t}*zrTe&hQ+AOctDC{4zXN zGy@fK29g$4IN^@$!gM(o#Zr>m)gpZfmt$KUWAWzf!3`YA=?4MfFZGhnG^uo^PQ!3R zx-sBq%w0#9vlF)X2s+U*7}YaKHgZ>UySpiMY&UP`Okl}kf_Kvkz{S0<#$m}`n^mNR z@e+>7Ex`l};}1M5ceFtUnI#tu>LL^Qk0)O#+3|yxYUHLjaUfkC`iRiEW>i_Sl|;7D zz`y{(+q;v89j9JdGF$)Wj-*4|#koIFaY(p5;h^CWBSM)%@Mc?W3n{yy1W2JTP@s>3 z-c&<5d%KMU+Si|4;SZk*1!M;Nx8E!NeSZIb{=?4} zD)N6<@b@8vc8u;jx~_ zCFtLpRv?MTe=A5o*7CT9_FIbyr0ECI^0=b*Si$3b=C=Y|yk81_XE%>U9}~jgqUeN= zSMZPY@Ughbs&+j^|@@4@@GN&o0P(~OLk?11Clr7iXFGDeeL8XRNLk%;z zGbkHHMMa5(k&bJ*$K+1VyU+P@zMtRk{LY89)`zv8_1xC_KM(ad$x>KQRuBLHVJo7A z1G2XLJs<&OE^#T%M;5*y2TL=cv{QZ(0ECpREC`NaXJ+pa0=Wkz@aWV1D^O>rzC$N% zeYd-6BfaeI@~X+>o&8%h9~hA3^P&ff z$LujA8!N@ZBr)4NCMbw8dUU@!h-tNApifu=gy6xV@kD@PWMy!E3c2AwmBtr9i^DBR z@9pgD6wM)NKkk{<`%fnZia&8?O%lt~55Mp1Y&>LYs->u)&>QMXw7w4O(BagVBi~r8 z7&c4u*U!aM*D*1cwoNHdrhMkPR%F8fBDTDsko+2#jq zdHKU9rS$Z#iAs4^xU^DNrS-A>m)j~!r}yUC7C1$NB4R2RJ1g9W{z`qz;0COnWj4MM zm&W0G`Y%i6lpKD^W}cg*KkP+64Ws?7@Y#b4tqUt1J+Fr;dw+Ar+EE}Ai`IolrPI0M zV+?X2S?iUX#kCqA)lZUz8>OR>jB%|b2`Zc1K!57qmC`a@$Ag!1PsrF8fz;EM1Dv$8 z0*&ibUfL&eh`ZyKnfk^0(*lj+UNW_lF272Ns>H89GzA)6ONQR+*p@kxhZ%lcO;B=q z^7#~QYPsgiDfx7^UX5hoZ2N6?`0GpZiK)`rvp)u!85+4A6K_6VJ=#wxoKWO8q55C< zplVz*&fhlG?=4m9zgO=M4M&I7OiL9T(;GMHSiT-AS^J5&wI@qgqwD;4zxl&rUqpaa zCBIeFw*4Ql?s}%sa)-GY6kF}L@vY5PCuCLH@C|ikCZwfgI?MV6q~~Bbm75fHMj)f^ zS@`8aM)qKfb3|V{tc=cbo%7N)*E-gISOe0_f)~o8TlR78ZHk)K_!W;WYEvY{5}ygj zg4!;!+Ime#Xjp!$O)t-v^ZXk|+Qx?uZ?E^x{cs4vf-=suIuG8&q4ix=F^Tu-wN6eU zKZVO7JqBDHPNXJg$j?1bvb)@Eysjfe5Fz<)^NC%UE>MpeyCP~DHIh#+;F-}9P7K5X zp$cPsoP+-6w1!Qu98wzlZjxt*d3s}cJlyYY+GOUzMT_QePj}Eeyvv44Ts>5U2#Xt$ zp~9SdZJA47NbzuBy1J8I&DK3X^=+m&fyBBb`q>59bipOx=pH+!E1LO8g5a5_=KN-0 z@sU$Axi)qDjLbPOGl1^-+x1hE)i@%(%hS4iFqgESQYd4~vG^M3PdyNm`T*PN zaWcK{agX^*dY?o#Q&4HMhcjDNcA(Uc+hh(k8Q4~t_O^_#s%^D>Nn~n?2t=*GKm0G4 zE`bDrw>dNT;*Byd%ZEJ*@m)iN1lV%!Qt|kZvf)KCQ*LvK3pqSU)p;i?y8giqPoOOX zE=^?0c&CX*7cpPKZL9SWOS_6c*GQ6k3rWAXcKARJ<<`Nx%nbhAbIUye^|dV4w_3Eb zQ_Yap)-Um|YMUc6P3;^}-9a;&inpMPGG@Envms{V!OlZ)a?MP)f^IzNCbx&(CMrW# zN;cXfQGE>mqt9WfMFG=F?)7z+;(PwFeyaEelyyr$@U$vT_D|ol598pI`lM%-=otX~)hWA~`nV%oKo9RBqoc#0M^9`Hnauw3Ixk z8II8MjGk?tCPK>>M^&{ET3SD*p7?K+s%aCW5~HK+N4=}+!^6T{*c$fj`{S*I78kcf z2Bh=rW@W%%Hs_`&QE6rCvwx2aapX9E0>brJGpZnNNgNQ_D14orm#x<#cBcWx zI;&f4TK^h99`%tLbG386m}ixdVtHCj9!`h@~?9GOsSVQXtCbDM@+Xh zE34*o=Pfw28~^qRk~j9vd zWscR*YV)XA9nMeNYUW(`wl>C6*L?1&2f=m3Ipq?f-x zyQ=FcB(}Hn8*lzuE`9mD&%XWqH+iH~{4q?&_oI8;V(k?BE#>F$_FX>cJZNoN(s@;| z>*v;Ruc@k~D$#?XaLT((D$fk%Q{axGw%0$kV}Vw}RU`8<uk(D>Ly8uC4bMq-MS-lTUbx?3rRGxoE3W zvlkuB*A9W{w&#*d>~;!?CER{znJ%2ft5?@)<1h&zL2Tt-muwti%qT3Y(M~mp{65;IKMI{1%lEHm>UV|Omz4R|WEUYwI4RH^+Ylo71tHZCg%zrGL0 z8(}joEhPD8~hMDy0mRcPANWXc_RveG%o_rYa2n`b_cU_6;MqWs8gpZpq s3UV;nk@wYr57fP { + const resIds = Array.isArray(resId) ? resId : [resId]; + const values = resIds.map((id) => ({ id })); + return this.update(values); + }, + onCreateEdit: ({ context }) => this.openMany2X({ context }), + onUnselect: isToMany ? undefined : () => this.update(), + }); + } + + async onFileUploaded(files) { + for (const file of files) { + if (file.error) { + return this.notification.add(file.error, { + title: _t("Uploading error"), + type: "danger", + }); + } + await this.update([{id: file.id, display_name: file.filename}]); + } + } + + async onFileRemove(deleteId) { + await this.update(false); + } + + get uploadText() { + return this.props.record.fields[this.props.name].string; + } + + // 获取文件 + getFile() { + const jsonData = { + id: Math.floor(Math.random() * 1000 * 1000 * 1000), + jsonrpc: "2.0", + method: "call", + params: { + args: [ + [this.resId], + ["id", "name", "mimetype"] + ], + kwargs: { + context: this.context, + }, + method: "read", + model: this.relation, + } + }; + let file; + $.ajax({ + url: "/web/dataset/call_kw/ir.attachment/read", + method: "POST", + dataType: 'json', + async: false, // 设置为同步请求 + beforeSend: (xhr) => {xhr.setRequestHeader('Content-Type', 'application/json');}, + data : JSON.stringify(jsonData), + success: (result) => { + file = result.result[0]; + } + }) + return file; + } + + getUrl(id) { + return "/web/content/" + id + "?download=true"; + } + + preview_Obj(id, name) { + var winStr = 'height=600,width=1000,top=' + (screen.height - 600) / 2 + ',left=' + (screen.width - 1000) / 2 + ',toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,location=no'; + var newWin = window.open('/web/content/preview/'+ id , name, winStr); + newWin.focus(); + } + + getExtension(file) { + return file.name.replace(/^.*\./, ""); + } + + async onExternalBtnClick() { + const domain = this.getDomain(); + this.selectCreate({ + domain, + context: this.props.record.context, + filters: [], + title: "Search", + }); + } + + get documentsInstalled() { + try { + const result = $.ajax({ + url: "/web/document_module/installed", + type: "POST", + async: false, // 设置为 false 表示同步请求 + contentType: "application/json", + data: "{}" + }); + return result?.responseJSON?.result?.installed; + } catch (error) { + console.error('Error fetching document installed status:', error); + return false; // 或者其他默认值 + } + } +} + +export const previewMany2OneField = { + ...many2OneField, + component: PreviewMany2OneField, + extractProps({ attrs, context, decorations, options, string }, dynamicInfo) { + const result = many2OneField.extractProps.apply(this, arguments); + return { + ...result, + acceptedFileExtensions: options.accepted_file_extensions, + showSelectBtn: options.show_select_btn === undefined ? true : options.show_select_btn, + previewType: options.preview_type, + previewString: options.preview_string, + className: attrs.class, + }; + }, +}; + +registry.category("fields").add("preview_many2one", previewMany2OneField); diff --git a/preview_easy/static/src/scss/qweb.scss b/preview_easy/static/src/scss/qweb.scss new file mode 100644 index 000000000..9e8f9832b --- /dev/null +++ b/preview_easy/static/src/scss/qweb.scss @@ -0,0 +1,5 @@ +.o_field_preview_many2many { + .oe_add { + + } +} \ No newline at end of file diff --git a/preview_easy/static/src/xml/preview_many2one.xml b/preview_easy/static/src/xml/preview_many2one.xml new file mode 100644 index 000000000..e8c2bf88f --- /dev/null +++ b/preview_easy/static/src/xml/preview_many2one.xml @@ -0,0 +1,91 @@ + + + + + + + + + + +
+ + + + + +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + +
+
+ + +
+ +
+ +
+ +
+
+ +
+
Uploading
+
+
+ +
+
×
+
+
+
+
+ +
diff --git a/preview_easy/views/preview.xml b/preview_easy/views/preview.xml index 24839367e..817df3f15 100644 --- a/preview_easy/views/preview.xml +++ b/preview_easy/views/preview.xml @@ -8,8 +8,10 @@ + + \ No newline at end of file diff --git a/yuthon_hr_employee/wizard/hr_employee_wizard.py b/yuthon_hr_employee/wizard/hr_employee_wizard.py index 59d67b804..2951878fe 100644 --- a/yuthon_hr_employee/wizard/hr_employee_wizard.py +++ b/yuthon_hr_employee/wizard/hr_employee_wizard.py @@ -35,11 +35,11 @@ class YuthonHrEmployeeWizard(models.Model): def employee_user_data(self, row): employee_name = self.env['hr.employee'].search([('name', '=', row[0].value)]) - date1 = pd.to_datetime(row[1].value, unit='d', origin='1899-12-30') - month2 = row[2].value + # date1 = pd.to_datetime(row[1].value, unit='d', origin='1899-12-30') + # month2 = row[2].value employee_date = { - 'open_start_time': date1, - 'interrupt_work_month': month2, + 'work_email': row[1].value, + # 'interrupt_work_month': month2, } if employee_name: employee_name.write(employee_date) diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml index 696362ee9..36d593ef4 100644 --- a/yuthon_property/views/yuthon_property_views.xml +++ b/yuthon_property/views/yuthon_property_views.xml @@ -33,14 +33,15 @@

- +

- +

- +
@@ -75,7 +76,7 @@ - + @@ -86,17 +87,15 @@ - - - - - + + - + - + + @@ -171,7 +170,7 @@ - + diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py index d68e5fb5c..8f3bdaa28 100644 --- a/yuthon_property_approval/models/property_lease_contract.py +++ b/yuthon_property_approval/models/property_lease_contract.py @@ -111,7 +111,7 @@ class PropertyLeaseContract(models.Model): legal_entity_id = fields.Many2one('ir.attachment', string="法人身份证") power_attorney_id = fields.Many2one('ir.attachment', string="授权委托书") handle_cards_id = fields.Many2one('ir.attachment', string="经办人身份证") - confirmation_transaction_id = fields.Many2one('ir.attachment', string="成交确认书)") + confirmation_transaction_id = fields.Many2one('ir.attachment', string="成交确认书") responsibility_book_id = fields.Many2one('ir.attachment', string="安全生产责任书") contract_time = fields.Date(string="合同签订日期") handover_time = fields.Date(string="交接日期") diff --git a/yuthon_property_approval/views/property_lease_contract.xml b/yuthon_property_approval/views/property_lease_contract.xml index 6d0a408f8..e08754e1b 100644 --- a/yuthon_property_approval/views/property_lease_contract.xml +++ b/yuthon_property_approval/views/property_lease_contract.xml @@ -23,8 +23,10 @@
-
@@ -33,27 +35,28 @@ - - - - - - + + + + + + -