From 662cc93d85cbc0cc5ab3e5241de5c64139166cbc Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 1 Apr 2025 17:59:24 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - src/api/trials.js | 32 ++ src/assets/file_icon/doc.png | Bin 0 -> 1340 bytes src/assets/file_icon/docx.png | Bin 0 -> 1340 bytes src/assets/file_icon/folder.png | Bin 0 -> 22057 bytes src/assets/file_icon/pdf.png | Bin 0 -> 9330 bytes src/assets/file_icon/ppt.png | Bin 0 -> 1291 bytes src/assets/file_icon/pptx.png | Bin 0 -> 1521 bytes src/assets/file_icon/xls.png | Bin 0 -> 1112 bytes src/assets/file_icon/xlsx.png | Bin 0 -> 1246 bytes src/assets/file_icon/zip.png | Bin 0 -> 7385 bytes .../trial-document/components/uploadFiles.vue | 128 ++--- .../components/auditDocument/contextmenu.vue | 78 ++- .../components/auditDocument/detail.vue | 370 +++++++++++++ .../components/auditDocument/index.vue | 521 +++++++++++------- .../components/auditDocument/uploadFiles.vue | 509 ----------------- .../components/clinicalData.vue | 2 +- 17 files changed, 809 insertions(+), 832 deletions(-) create mode 100644 src/assets/file_icon/doc.png create mode 100644 src/assets/file_icon/docx.png create mode 100644 src/assets/file_icon/folder.png create mode 100644 src/assets/file_icon/pdf.png create mode 100644 src/assets/file_icon/ppt.png create mode 100644 src/assets/file_icon/pptx.png create mode 100644 src/assets/file_icon/xls.png create mode 100644 src/assets/file_icon/xlsx.png create mode 100644 src/assets/file_icon/zip.png create mode 100644 src/views/trials/trials-workbench/components/auditDocument/detail.vue delete mode 100644 src/views/trials/trials-workbench/components/auditDocument/uploadFiles.vue diff --git a/package.json b/package.json index 74a605a3..42d86ad0 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,6 @@ "pdfobject": "^2.3.0", "qrcodejs2": "^0.0.2", "screenfull": "^6.0.2", - "sortablejs": "^1.15.5", "streamsaver": "^2.0.6", "svg-sprite-loader": "^4.1.3", "svgo": "^1.2.2", diff --git a/src/api/trials.js b/src/api/trials.js index 2ebd6066..2feb004a 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -3995,3 +3995,35 @@ export function deleteTrialFileType(id) { }) } +// 工作台-获取稽查文档 +export function getAuditDocumentData(data) { + return request({ + url: `/AuditDocument/getAuditDocumentData`, + method: 'post', + data + }) +} +// 工作台-新增稽查文档 +export function addAuditDocument(data) { + return request({ + url: `/AuditDocument/addAuditDocument`, + method: 'post', + data + }) +} +// 工作台-获取当前目录层级 +export function getBreadcrumbData(data) { + return request({ + url: `/AuditDocument/getBreadcrumbData`, + method: 'post', + data + }) +} +// 工作台-修改稽查文档 +export function updateAuditDocument(data) { + return request({ + url: `/AuditDocument/updateAuditDocument`, + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/assets/file_icon/doc.png b/src/assets/file_icon/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..e202e60949915cc986d1831de04ff030aef0a32b GIT binary patch literal 1340 zcmZux3rtgI6h60)w6q1v=0HH`Wr%{3Sd4onL(O2mrKp3UwJnIz;dDMGAdH8^p*(7fBA`6(Ze28co%}i9cmDHC{y%5GDDqQV zmJ162Y{OQDL<1lsMSw{qA@!_OOhTn-wK$YS)ZLxu$|Da!5S8Co98@SQW;2fCo05`A zS4kAO+QR&y`RflY@oEwYJ z^q0&EN}3g%=`A_zBf-7J>e*tPOqngg7j7tDmsc&yIP+ro_2s6nY?Z$B)Gxs)6)jzZ z$1Xl-df5A<|HV1|qtyMid&?UG)~VBWnbbBq0z)Yac<7@K2ei zIC?>_HLuEGc0SoG0HAqLZKEibzEyX9Z5QEeTeLuXP7>ADS0>YM zBIX?V?Az#7K9#Dss;w&}@uenpvtWxCp+o!(XM1Z;Fq{jSNW1cLJHx zkomDsh8&^Lm|RqdK{%gO@2zBStEEi!uXQdEaR>Lf8wIV{HsWgNs&3mAV(sH;SFi2M z(kZG{DX;G~8$fHyGvx6D$IBH78rm|58=urf_3upcZ$e9!P_BI8DPMcyAWPKOT7 z=MOo<&pK#}J0G5v?d%O=$t`mzC*=jLj4D&zuWL95;Cx-Dy=Hw(_yR%U$SHGxrrAF* z{n!lf{i*0f!)o^kDA9ZB%qAwIA2H@5j1h_6yf?xD92Hre@lypieJIBK6y5MWmR(pZ zU3nu{|J~HkZvyVuG_I+wfO;l}_sNM_@I1%e<+V%K#3Ip9BJ*d)4E5#dE5ZY#K-cTn z(>Gs4ImD&kZCFu0(tJI=r>KIB4i#x828$cRj~yVZ(-~_%noqA2BeLae*E;t{8?MCA zF?z85+8a-w_vO!lv_MyR@#GW6G#@tlN-+y#iN-j#7= ze3ix&=>!gCKf3vi-EZ^Y0DDcl1JzDN7fRa>O&{}ClB9F2==h~ll!Iw6?Ybi=<7111 zLpe2enUL7Z_Pfj4M&d57Lex&i(ZnTK`k_YBez@Ze;Z?JFNkaB8!fl?{XlbINTjKY7 z+@zv|)gKf*U}(R&?#g5IQ>8IBhBM^?Q%AiG#^;9IvujL<9iJDm)Z~ZK;(H@(%qn5S zsMG}@uh9Bs-bwd-+Iu>a`Ib_kqNcI=$q3EKE5P&gMcb&uaJ4od*KIVu1R8GLZ|@m+ vF@7|F2S%dZy6^rYM&&tj`K=^d{aY|bahz`5v&$`yt)8&Z$dL1&$nyULc=R2q literal 0 HcmV?d00001 diff --git a/src/assets/file_icon/docx.png b/src/assets/file_icon/docx.png new file mode 100644 index 0000000000000000000000000000000000000000..e202e60949915cc986d1831de04ff030aef0a32b GIT binary patch literal 1340 zcmZux3rtgI6h60)w6q1v=0HH`Wr%{3Sd4onL(O2mrKp3UwJnIz;dDMGAdH8^p*(7fBA`6(Ze28co%}i9cmDHC{y%5GDDqQV zmJ162Y{OQDL<1lsMSw{qA@!_OOhTn-wK$YS)ZLxu$|Da!5S8Co98@SQW;2fCo05`A zS4kAO+QR&y`RflY@oEwYJ z^q0&EN}3g%=`A_zBf-7J>e*tPOqngg7j7tDmsc&yIP+ro_2s6nY?Z$B)Gxs)6)jzZ z$1Xl-df5A<|HV1|qtyMid&?UG)~VBWnbbBq0z)Yac<7@K2ei zIC?>_HLuEGc0SoG0HAqLZKEibzEyX9Z5QEeTeLuXP7>ADS0>YM zBIX?V?Az#7K9#Dss;w&}@uenpvtWxCp+o!(XM1Z;Fq{jSNW1cLJHx zkomDsh8&^Lm|RqdK{%gO@2zBStEEi!uXQdEaR>Lf8wIV{HsWgNs&3mAV(sH;SFi2M z(kZG{DX;G~8$fHyGvx6D$IBH78rm|58=urf_3upcZ$e9!P_BI8DPMcyAWPKOT7 z=MOo<&pK#}J0G5v?d%O=$t`mzC*=jLj4D&zuWL95;Cx-Dy=Hw(_yR%U$SHGxrrAF* z{n!lf{i*0f!)o^kDA9ZB%qAwIA2H@5j1h_6yf?xD92Hre@lypieJIBK6y5MWmR(pZ zU3nu{|J~HkZvyVuG_I+wfO;l}_sNM_@I1%e<+V%K#3Ip9BJ*d)4E5#dE5ZY#K-cTn z(>Gs4ImD&kZCFu0(tJI=r>KIB4i#x828$cRj~yVZ(-~_%noqA2BeLae*E;t{8?MCA zF?z85+8a-w_vO!lv_MyR@#GW6G#@tlN-+y#iN-j#7= ze3ix&=>!gCKf3vi-EZ^Y0DDcl1JzDN7fRa>O&{}ClB9F2==h~ll!Iw6?Ybi=<7111 zLpe2enUL7Z_Pfj4M&d57Lex&i(ZnTK`k_YBez@Ze;Z?JFNkaB8!fl?{XlbINTjKY7 z+@zv|)gKf*U}(R&?#g5IQ>8IBhBM^?Q%AiG#^;9IvujL<9iJDm)Z~ZK;(H@(%qn5S zsMG}@uh9Bs-bwd-+Iu>a`Ib_kqNcI=$q3EKE5P&gMcb&uaJ4od*KIVu1R8GLZ|@m+ vF@7|F2S%dZy6^rYM&&tj`K=^d{aY|bahz`5v&$`yt)8&Z$dL1&$nyULc=R2q literal 0 HcmV?d00001 diff --git a/src/assets/file_icon/folder.png b/src/assets/file_icon/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..d721fa4a2bb928524ff8a1df5b09d8914b910d4f GIT binary patch literal 22057 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 E4-JoCnE(I) literal 0 HcmV?d00001 diff --git a/src/assets/file_icon/ppt.png b/src/assets/file_icon/ppt.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc9d650a5ec2700dd371a7b0eaca843122db10c GIT binary patch literal 1291 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 Cu8)!c literal 0 HcmV?d00001 diff --git a/src/assets/file_icon/xls.png b/src/assets/file_icon/xls.png new file mode 100644 index 0000000000000000000000000000000000000000..ed5ff73b0b16f59066ef19b893cd5d09e6df63f4 GIT binary patch literal 1112 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5FnKw;1l8sq?P65l;!1t=>Px! z%a$yi(9`qb{red+W@M&kwCoSjH^%Y=u`#9&8jM2*;llz zTcOy!Vg0nt7Y-;EyQ`P`K70Ra$K@ldPVM~k{mZQVYx;I93Y%K&(wU-F>2K8>^X_Sy z9?(kOk|4iehBOC;|Nn2i1X}x_f%)Rv3y9kr31F{9A_#e;~sHHb#J3E1VG}Ul7 zfmE;mukvH(#Sf?BznM#ad!G06XrrHA-x$W!E(5j;tj`|uEa28TB;g<)aj(^|L2pA0h%DG&WG8x!_1f$L)&SORzk7kIt9X(b zVizdwVf@B@M^qxm5>i=p?gb7OlsW57&c1UjU00V89o|Chg;6d&*h{7eZyFR1a_IWTs? zn*O7ujjf-%1!EI-7Sx$8Bx)78&qol`;+0P2aP!vFvP literal 0 HcmV?d00001 diff --git a/src/assets/file_icon/xlsx.png b/src/assets/file_icon/xlsx.png new file mode 100644 index 0000000000000000000000000000000000000000..81b20c14c200623a29174bdb0462ea922428b203 GIT binary patch literal 1246 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5FoWZz$e5NNGr?9Da*?P(f|Md zmn~U3p{M7=`}Z?u%*ag7Xx%qIwk`*#;M4anC+=L@dF5#Tjzx{@r-x51@$AWzFLHbG z?&a#!JBychTerk26uK!m8!7~t$wyf#6uQV3xyTi{$pIOKuChgLVN;76)=%r(v1rw) zokh#Kt(s$WsscZL`+WS)#W@Gp?znv9@!JIk~T@za_h?GNv`( zw;|QGCc3z%KBPIztTJ@sw8OxLtC)5j;A}Y16W^4sEG0L;KHmJz>-(Rs@|&*iyvlHabwOQ&=W&q+1{MVdMh*uC zCIKk(fE)u~41*TKjvX=i>$Y8AdV)d1PmG~$GRuQBix`FjA8wz$`)%I@)`o{Fj0qN= z3}yWN{yg)8*6JU;`}y?i+rQlvxfu?7G94(G#5m>utI4(2C-Nj(8X2lO?=f&IzM1gk z-}Kkn!V(L9>sTFLmALr1d}LUwGS~rg5KaKP=Engcgwq1lHQ;WvW1diVJ+YJF!HbDT z-}by0WolUQ-oy0RJx<}K=m)PB?s-3D-((4ff}PvvK2gzZs@(gyFjz&X;YzY>HfN4X zzvGoXzh6I=HEm=$P`%;!`Q_|F4a)?x-X~m-5t_sC;J|b{uLRzC6D3~#6P9o@72b2< zm#GSapo8Sw0w>D^CWoi5>qWE}Oq_q1cW^MA6$o3%{6Y1VXNA#~XDd1d4t!@xn9b?t zdO`hZz!kSM$1Fw9DW~zeHOy#|Qf}~d%>KaWGIz0+e1mSFw5-Dw(>2A63XDcU4V(ubTUkn{@)lZv}^LhZF723#TZl?a@V&{ zV0h4#ytZQ|>w;YIITM*glnw98)o3&yW4y5Kop|a7Hbw@a1OM|R84r9beV>2sZ+*ii z`)}XPpKH_`3BTNW=IiW*@4vkh<7|}RS@d9T*>r)rclCN#M3@?zM11=Dvc86%VP;4; zsLBD%S7_kCbP1S9gSSA#m1#F--I@2`k@)1?<2~Sr)mvv4FO#snukwOaDD?(_-k|jh* zS}ar6N--2OTyx*s@BO|1y)%E@^LfsB*7JRy^PGDV9qp~Q5VjEj0N7$B#dMdqFJ8e(7t8J6mQk7!Tm~&vTWWT$W%(X~&R-5(e z>gwadYol+gpO$6(c$f0G*;rOetn5LGx|%HOx&Ca~j=Zd>U%!4OoKo_3vpIZ7A3A$5 zG14yX@+n&zi{*DAsCMte#t-gZ6&J#t4=~F}IzKu(y56eq;NWn;SS~EsXJll=++^n- zEr~5etihf=LqkJTQ&ZjdOeprsZ&M`)2i}a2j~_pNe6dtF4UdDYP| zUAFyW&el_>PIY&8_x1I4c6OSXnIU5r*V_!n?rke7DspjgnJ(Sl)6-L1TZ_hdy>S=v zIZRJaucD%YhldCG7|gEMT`X62Fq4joirQ!~@b^Eu-lPvV=)QdU^7{4b8}z-04jqCZ zNK{mGqj9&bt!+|LQg(LsMvIY}n%c8x&)BtER4Ntu8hh^CxzyCu57}E+o@yZDw5+VG z%F0StS68HEPkMTKQ&ZDMlYT-%!sokN(S7IV=hx8C*t>V{yL8E%oE!@a^Z5Aq?c2Bi zsa6XQ54(N)_Js=i;)S%cv+DLhMd1ud_MLI1`o;-=r4Sjumk*3`U>T;(U(rb;pbwQf+kro4_-*&xY zFVbO#e7%kgIPH|(bB#Yf!kZwz)bszH11?jOy zx(^^dR!FZc(sKamJ&3$@Lf$$fy*9|(!^nUG(rV+E(=BZha>Z{uY59Y6s$$*!Ys~P}ob+@rFbBX-?E051Z z)crnVc75gky=awL`#h7isP5*u+*0vbcId$Rfpb zSNk!Y_qqKu&F7wd$_l9AGM_KdB(U)05y5eb*4b&#N?yXU=IyE~es8POHeV*-Uws6& zw!QI|Zvt;vR_Sbyl#8C(=wOcnx{E^KQp^z*G$Yrg!r*h#$y(JY0k zZVrZ;Oby7&(zc5_2G?ynq-OKU%Z6M1-WNmfnXBn9S<3f&XU-K@coovGuu_q_`Suhd zj<5L?{0=VO+)W95$QBU&v8r(crMuH14e#%EjQsbM^gLe9mm5k=gd(cr97~RTY2WYMOr2XUStME4eW5>*_ zyk07a;MsMG^flZuml0#k3NkgbW_d4-^y$vMd-r+x1)hQR<``jAdKy)$GOF#Ep4928 zkf7_ZSm*qoFe3gi^*QUTP0TQntz7v+0`zwe61@|gHA63q!brKc zEZc1|-zNyjZ+}lJ1AhQdb`%G;0kM(^|3L@&cR!YcN83E(6p68u1p)ZBTV9CrOrP>MG4)$)vRB@gV*a~hK4aA~CkXC+6T(-5^7Zbrv z^pN9z;K>5iVulIKMTa;7%UxnWCIikdcLB0x2%$68Hay@%j_Xdw6`H(H0$rK5+^ff~ zE_H?!kPdZ2d$vUo`OU9N&Ol!8y~QWUlo=5FR{acvc?XZUD3cRt#)lK=5B>hBaaAU#(Tr^q z=#R66WnWcmVcOtHWjXF|H^vTd}dM-ABmAW;KeF4Cre2U~OTAwVM zuaiaV>o}1_g zu?a_QIO^>^3PK-)T5G${qUKw6kr5CB`Euf6i!Z{#|z1} zrn)k^lJIF$`8!3wg?xXAwPr=rfk5u#-E!Q62O&k|Y>0$xENv$xf&P>ipEk1^fjP%6 z(bx}Pw!E94-Aa4ggzNs6|61rsIS(|IVK*`*|j0#8n=n#cALMy3$dkvBj4Bl z?M#b1bcx%u$q^CjKTjmgNavWW7hZ?r-0s;Ab-Qvm!W2<>$r_`tn=68E)2?6kD($KmG9G1{U!XSmwY ztt`rRQ9;lAG3&p$i?3dZz52H??k)C=Kb(P)E0Yt_s*F3J=sajw*w_H_r7>6cV(J;R zm)IT1LS%5y>s!$&xW6tGYH8_Qb-}+qy9;@LB~4&ENp}3;A+e2(4M#|kp3T>w#9bbv z!tT7dzWXK;^SB!~zI$%e0)a6L!l9>ON_Z?QB*d=##$IpJfgqiL@9XQC8GA_Du@mLk zQF+Auo@OXqJtVbn(@h$AUEn9FM~k6^42M@o-GIEOc|p~fdoz;RGJK)^w7+)MLZQ7d zWy9O)5kS9<<|(b`GBX$4QdJ5>$(WzBomM3I*oo8FhE`;FQlNTsoC!55 z>hhJd4$OmlAIQY`Y@*lWL$Aw7dPt>93Z*w(;w z(@vDCKKXE5_{kG>y)ACUi+1Al3;0mfn3EGunf`BXJnj$qRi!x1ijD{BIU#AM%_@Ay zCdQ9MF|xda%TKE*qcgF5RYb$6t$Ni!#_i{{sf zQ*EWiUdj>%a<9}SCMJH4_o}>|)kT^FMZeO`J{+HO@94`F5f!eF)E$$}SYn^>g7jd6 z?%%mu<%#$KJ@11*4bf6`!UNimQj=a5U*p+Y!1*$k(Hx~eFJgTW-la}f;|}x?K4Oj^ z^E#tcuu)s)V3mgvG^`*XxZq%#9#r&;;;bTJ2)6fkzfM$-k_-QCY>Z>OQw9fBUfS3eJ&&1AOO9=k(ql0*vv ziPa2jhDWTAc!yYBEFKSf{5^F&^wI(97SO zqI6t(#AN#y0x^;7LP+_pK5_H4Tyc%3#I)80Kg=C=b*7LIix59b4t$c2uuOE~_Q>&9aaNZ7xe~&HT`4$}>2Lo96FF*@FmwYk^sN2jb~3@!?`eeV zFDkD4>uL(*bPzD*PWE{~!H6HNCPGs!bs`qjS)#;&+ag62me?k0fDB@}-eE1WPgg#5 zf(M*iS-3@~PSLHEHRl9~$;sXoHz+T6Fxu_Sq)9QDL+h)r_epZJ^`xjii{!Fy#m9I>%ejyts{dbu#$-&XlUCqu?bH#io5@6? zy6>RF>&Y%{CRQD_JwQ)$u1Ccjj*XR2Zqx28HTSy+)5alB;1uF}kyil;cv@UEn738B z%phyFb}xF$BH%Mfq;$g^tXZTeXL|n#`k>L$SYB^kFTR3L0c>LWz|u)t6<`c!{}NGH zc>)>7G=p<2fnn}jP=`f%qEDw1a8u<23yQ?{-`U~8aWTQ-12I~&uU8;u5QmcVGI-HM~cesaiou*v)>o6g?QrqFq+f#Qwm zUs5TsJ4ZyJX)Aih@NMV%59LyrqR@XVi%}#uQO!KWawXHdkT31gCH~aUV5ieMFOE7% zw^+kjSy_>i?9;r6bji#v`l*TW8|C90I4#WN&o<0gKpwZnC~;4zlWc>USQ50wE=w~S^$Ba#?4TbpH{ z@n8+hfxTZp@6iuc2RkJ(D1!LzDJmt?v_E11V2Ma|TVUo$~w)mK$_w^-a?) z37u=7Ne2LFu5Djos0ZXKBfVX$${>em^LR4fHHd4r`DO~hgIubA2X=Nku3Hfq9keS# zgYVwwI{d|LQ9ASR5?3gRa{EdkLDC<4NEZxcQDhGv{#ti+)aIPCDd~p8)&`zfXs7}R zf+garq$Q^5c#Z&ZQGoyVk>v|XM8kdpql?!1{RivzG3OMT;nyn?2Ce*z99rmN`@UP^ z&}aI{cx!hmHqYips)LVsedO0RT(Y$;*Dr$iqw@?yU~|g6cTo*ARJsv;hID{Se5jTg zdG1YxQ7d}qKY7$5g%;Vq(-DB^6)E{h>zQaVak3P09>@GjCx5u*wWQ}3H|)4~tt zajqLQTT1{+3^^n=);mj#oJuQQNfn0@5fFB3XwAjY34ucluB`qo(Mg$c@-NIEAz2mV zOX)U855{}ZQ-~^B;RYVG3a%=u>Bh)HpLxhcodi*6DrEZ(CtrrB0yRS%tvMR2KhE9+ z%wozwRZQ#`!*$XTAQC%Yf)+iJtwTy&95yacLEZyxO@nYX(Lf)v2S!nouarG>f-lxy zHu6n{r-N{#vU7?IAK+imYL6-PJvSx7I9Pzk2SYMA}jK5H6^YpGS@qL=>VgfsX6E*nhTE zMVQ(gOv$f;D!ok~VGU;}7crS=h$GMtJLIVx$gt7n7H!}2%O4l|nU+Ke#AIfkTrELM zt`#URU+agFll#+=AW3p3Zym;jvc<%8zN-S;5u+tt5{b@Rl&xuNd0wH{MmOdrq!+2t z(NB`bxcskTs|c~&T}Su(yH9Pa5I?RV+ZiI^=;qehOA^O~t*_3J&(3Zg*GdV2uFNsohv-K-Zy$mPea+ zc$#{%e3?CqF!&ws-nk=5Qx5<1bdGmp1C~~J#lFr48{i~-gVgxwwvf2RH)ux#9^vit ze19hVbfwY5(2XH*bFyUCjb*S<9sXp_)hYqWKgIre1sO<>`@?U(5^p{x)=PNQv?ov@^Gu+^T5S+J@qO3T>8^%lWWR`lJV)l68+mK~#2HNe z@V@v`D1v=T%gb9}Onu#bgqmu0iIu`ANzBB=J|^gx7*i$oI+1}Yp&EzrfB|z9fqX; z`z*f`=GEe`M(qdu$hP?US|^!f$7JpdQzN*UyYHS$9857XTW!Q-_%5kK|oO{TzYUzc7D(RB{gsy}T%Dixx@nyf<&H|yA zuL-KqX`K9B;j8)Zo_&Z~*xv?gE=P>ny-*CTDivi8@i{t34xS?T?0TTjKm~|+KJRA7 zyZCBp6$7hGc@B~wT$BA6Fhy)uvCWD?mJwXbzQc8MiR1?Hgb$}KhTuhEW0bX}GWcV2 zfzj5&uWKn@&WeZ+CP0M)2NT$z!)wp3(EjXDXX1VKwGo&tlL<`Tr_1>%z?%3^b-mZ; z%bIM`(ZKB3+cVp>lbk@=Pp)_fL~*Y_{9ShUAWicse|-Eh@)mzW!Vq1cMoyb}1Z>%d zHnMdIz;Uka+>f*A@E4RjETM}=C;|LpbTQ4=B0|s%^6#YRA*nM5<)U!~u)nBmoAzPo z0NeZ%$06)*-)hpJ8gU&-aCAS%3LG~)Rt@Yy*x2`pi@hR(Yjt-}`N??_y9Wj) zNWq_;2C(M-1GjA)6VXL+LC1)Md|D8=t%E(yrz$9d>g#q+9xf2rqNLZy*<*#_hs~K? zT1>&QEqZW?4nc4>TZyc&(ujiMap0FRr~8&;2c4{r81rNC?@3d$c*Blznh$!d?iDNu zfj`FsYhP&Sw(T7u-J->yZ&>g$sen7|4E{NDL(9tzjdzaZSwowofq^L*d}R7z%;<(p z#|cU7N6svf(O@c=fsf#d95D&5i+@r-EH;Wr;j-?9RUn!9eu9jz5~q4cg&A*X8EB8q zN_>3cn@F~1^788HT?tVO{w;hn6NRAt(o(7!G*f)CW2X`|^3GP`ZjaY?1=1>6=m<5dQ-HADD*O3lxuz0(Us4j zRY966Qa{mzMxs(x)R_)Q&l?(H%*|a9xhclzMbj6%nOP3-BRbLEV@KCJ60Et6V8qh$ z!gJsR&&QomFKP2af#i+g^1HeC7jgJ^_i4JAeHZq!nlu?bKoy!NDsu@&gJT1p$CehX z(TX*s1x?F@(jq(xq!@zyaC=-2Rg09CKlHXH>zQgE%?)6Zb~9$($&l4%!zBR`{ENMJ zpQ)y#Vw-W;`5mE5l2JhdARx(P{hKO-o~btTgsM|jNXTn^148-D(m-^s6kOPDl-$OV z**fJ47$7`6+N$SnOZxKI!|m9s!FuP!aYH0MJT_==A3n4Xv3Z3ZMH~!q#&cm@36xdR zC|O}YPNy6HvD*dm=ZcAtyMF%R+SO)=~B zH`bamYWSq^M$+>Y(q^4
-
- + + " />
{{ $t('trials:trialDocument:button:selectFolder') }}
- +
{{ $t('trials:trialDocument:button:select') }}
@@ -54,30 +31,14 @@
- - + + - + - + - + - + - + @@ -139,13 +78,8 @@ {{ $store.state.trials.uploadTip }} - + {{ $t('trials:trialDocument:action:upload') }}
@@ -265,11 +199,11 @@ export default { type: extendName.split('.')[1], status: 0, file: files[i], - id: `${files[i].lastModified}${ - files[i].name - }${new Date().getTime()}${i + 1}`, + id: `${files[i].lastModified}${files[i].name + }${new Date().getTime()}${i + 1}`, fileType: files[i].type, uploadFileSize: 0, + webkitRelativePath: files[i].webkitRelativePath } this.fileList.push(obj) this.$refs.filesTable.toggleRowSelection(obj, true) @@ -300,7 +234,7 @@ export default { ) } }) - .catch(() => {}) + .catch(() => { }) }, // 开始上传文件 async beginUpload() { @@ -348,7 +282,8 @@ export default { FileName: file.name, FilePath: this.$getObjectName(res.url), FileSize: file.size, - FileFormat: fileType, + FileFormat: fileType.split('.')[1], + catalogue: file.webkitRelativePath }) let flag = arr.every((item) => item.status === 2) if (flag) { @@ -431,7 +366,6 @@ export default { } else { this.fileInput.accept = this.faccept.join(',') } - console.log(this.fileInput) this.fileInput.click() }, }, @@ -481,6 +415,7 @@ export default { background: #428bca; border-color: #428bca; color: #fff; + .select-file { height: 30px; width: 90px; @@ -491,6 +426,7 @@ export default { opacity: 0; font-size: 0; } + .btn-select { //给显示在页面上的按钮写样式 width: 90px; diff --git a/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue b/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue index 1ff3d6f8..15c51b30 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue @@ -1,5 +1,7 @@ @@ -43,15 +64,19 @@ export default { default: () => { return [] } - } + }, }, data() { return { - visible: false + visible: false, + type: 'file', + zIndex: 9 }; }, methods: { - init(row, column, event) { + init(event, row, type, zIndex = 9) { + this.type = type + this.zIndex = zIndex // 设置菜单出现的位置 // 具体显示位置根据自己需求进行调节 this.visible = true @@ -121,7 +146,6 @@ export default { background-position: top 0 right 0; background-repeat: no-repeat; box-shadow: 0 0 0 .5px #88888830, 0 10px 40px 0 #88888840; - z-index: 9; } .contextmenu__item:hover { diff --git a/src/views/trials/trials-workbench/components/auditDocument/detail.vue b/src/views/trials/trials-workbench/components/auditDocument/detail.vue new file mode 100644 index 00000000..d415179b --- /dev/null +++ b/src/views/trials/trials-workbench/components/auditDocument/detail.vue @@ -0,0 +1,370 @@ + + + \ No newline at end of file diff --git a/src/views/trials/trials-workbench/components/auditDocument/index.vue b/src/views/trials/trials-workbench/components/auditDocument/index.vue index 70361888..b60cd5d7 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/index.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/index.vue @@ -16,7 +16,7 @@ - + @@ -30,10 +30,10 @@ {{ $t('trials:trials-workbench:auditDocument:button:addFolder') }} - + {{ $t('trials:trials-workbench:auditDocument:button:uploadFile') }} - + {{ $t('trials:trials-workbench:auditDocument:button:uploadFolder') }} @@ -44,20 +44,28 @@ - - +
+ {{ $t('trials:trials-workbench:auditDocument:catalogue:title') }} + + {{ item.Name }} + +
+ + - + + - + + + + + + + + - \ No newline at end of file diff --git a/src/views/trials/trials-workbench/components/clinicalData.vue b/src/views/trials/trials-workbench/components/clinicalData.vue index 84a79129..77912ceb 100644 --- a/src/views/trials/trials-workbench/components/clinicalData.vue +++ b/src/views/trials/trials-workbench/components/clinicalData.vue @@ -238,7 +238,7 @@ :reading-id="selected.ReadingId" :clinical-form-id="selected.ClinicalFormId" :open-type="'look'" - @close="" + @close="false" /> From a6b958ce4ef435c7e9119159438ecd0eac362665 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 3 Apr 2025 09:45:50 +0800 Subject: [PATCH 02/22] =?UTF-8?q?dicom=E6=96=87=E4=BB=B6maxValue=20tag?= =?UTF-8?q?=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/metaDataProvider.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/utils/metaDataProvider.js b/src/utils/metaDataProvider.js index 85bd0116..dfdc27a8 100644 --- a/src/utils/metaDataProvider.js +++ b/src/utils/metaDataProvider.js @@ -99,5 +99,27 @@ function metaDataProvider(type, imageId) { columnPixelSpacing, }; } + if (type === 'imagePixelModule') { + return { + samplesPerPixel: dataSet.uint16('x00280002'), + photometricInterpretation: dataSet.string('x00280004'), + rows: dataSet.uint16('x00280010'), + columns: dataSet.uint16('x00280011'), + bitsAllocated: dataSet.uint16('x00280100'), + bitsStored: dataSet.uint16('x00280101'), + highBit: dataSet.uint16('x00280102'), + pixelRepresentation: dataSet.uint16('x00280103'), + planarConfiguration: dataSet.uint16('x00280006'), + pixelAspectRatio: dataSet.uint16('x00280034'), + smallestPixelValue: null, + largestPixelValue: null, + redPaletteColorLookupTableDescriptor: dataSet.string('x00281101'), + greenPaletteColorLookupTableDescriptor: dataSet.string('x00281102'), + bluePaletteColorLookupTableDescriptor: dataSet.string('x00281103'), + redPaletteColorLookupTableData: dataSet.string('x00281201'), + greenPaletteColorLookupTableData: dataSet.string('x00281202'), + bluePaletteColorLookupTableData: dataSet.string('x00281203') + } + } } export default metaDataProvider; \ No newline at end of file From 866dc923c723f1b1174542d98e9dfe10f34fcb01 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 3 Apr 2025 09:46:21 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E4=B8=AD=E5=BF=83=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9trialSiteId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trials/trials-panel/trial-summary/upload-monitor/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/trials/trials-panel/trial-summary/upload-monitor/index.vue b/src/views/trials/trials-panel/trial-summary/upload-monitor/index.vue index 9b604fdf..572734d5 100644 --- a/src/views/trials/trials-panel/trial-summary/upload-monitor/index.vue +++ b/src/views/trials/trials-panel/trial-summary/upload-monitor/index.vue @@ -15,7 +15,7 @@ v-for="(item, index) of siteOptions" :key="index" :label="item.TrialSiteCode" - :value="item.SiteId" + :value="item.TrialSiteId" /> From 31c9db368c89c4e2715ddf0c6146c5f24eefacf5 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 3 Apr 2025 10:28:59 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/auditDocument/index.vue | 72 ++++++++++++++++--- 1 file changed, 62 insertions(+), 10 deletions(-) diff --git a/src/views/trials/trials-workbench/components/auditDocument/index.vue b/src/views/trials/trials-workbench/components/auditDocument/index.vue index b60cd5d7..2e803a52 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/index.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/index.vue @@ -46,9 +46,12 @@
{{ $t('trials:trials-workbench:auditDocument:catalogue:title') }} - - {{ item.Name }} + + + + {{ item.Name }} +
Date: Thu, 3 Apr 2025 17:35:25 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trials.js | 24 +++ .../components/auditDocument/contextmenu.vue | 14 +- .../components/auditDocument/detail.vue | 162 ++++++++++++------ .../components/auditDocument/index.vue | 133 ++++++++++++-- 4 files changed, 262 insertions(+), 71 deletions(-) diff --git a/src/api/trials.js b/src/api/trials.js index 2feb004a..fe6f1f6d 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -4026,4 +4026,28 @@ export function updateAuditDocument(data) { method: 'post', data }) +} +// 工作台-删除稽查文档 +export function deleteAuditDocument(data) { + return request({ + url: `/AuditDocument/deleteAuditDocument`, + method: 'post', + data + }) +} +// 工作台-稽查文档获取历史版本 +export function getHistoricalVersion(data) { + return request({ + url: `/AuditDocument/getHistoricalVersion`, + method: 'post', + data + }) +} +// 工作台-稽查文档设置当前版本 +export function setCurrentVersion(data) { + return request({ + url: `/AuditDocument/setCurrentVersion`, + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue b/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue index 15c51b30..57e96cbc 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue @@ -11,7 +11,7 @@ {{ $t('trials:trials-workbench:auditDocument:menu:download') }} - + \ No newline at end of file diff --git a/src/main.js b/src/main.js index 574da621..76e99388 100644 --- a/src/main.js +++ b/src/main.js @@ -54,6 +54,8 @@ import upload from '@/components/element-ui/upload' Vue.use(upload) import Preview from '@/components/Preview/index' Vue.use(Preview) +import Onlyoffice from '@/components/Preview_onlyoffice/index' +Vue.use(Onlyoffice) import MFA from '@/components/MFA/index' Vue.use(MFA) import FB from '@/components/feedBack/index' diff --git a/src/utils/onlyOffice_type.js b/src/utils/onlyOffice_type.js new file mode 100644 index 00000000..b7f6e7c9 --- /dev/null +++ b/src/utils/onlyOffice_type.js @@ -0,0 +1,66 @@ +let TYPES = ['word', 'cell', 'slide', 'pdf'] + +let DOCUMENTTYPE = { + '.doc': TYPES[0], + '.docm': TYPES[0], + '.docx': TYPES[0], + '.dot': TYPES[0], + '.dotm': TYPES[0], + '.dotx': TYPES[0], + '.epub': TYPES[0], + '.fb2': TYPES[0], + '.fodt': TYPES[0], + '.htm': TYPES[0], + '.html': TYPES[0], + '.mht': TYPES[0], + '.mhtml': TYPES[0], + '.odt': TYPES[0], + '.ott': TYPES[0], + '.pages': TYPES[0], + '.rtf': TYPES[0], + '.stw': TYPES[0], + '.sxw': TYPES[0], + '.txt': TYPES[0], + '.wps': TYPES[0], + '.wpt': TYPES[0], + '.xml': TYPES[0], + '.csv': TYPES[1], + '.et': TYPES[1], + '.ett': TYPES[1], + '.fods': TYPES[1], + '.numbers': TYPES[1], + '.ods': TYPES[1], + '.ots': TYPES[1], + '.sxc': TYPES[1], + '.xls': TYPES[1], + '.xlsb': TYPES[1], + '.xlsm': TYPES[1], + '.xlsx': TYPES[1], + '.xlt': TYPES[1], + '.xltm': TYPES[1], + '.xltx': TYPES[1], + '.xml': TYPES[1], + '.dps': TYPES[2], + '.dpt': TYPES[2], + '.fodp': TYPES[2], + '.key': TYPES[2], + '.odp': TYPES[2], + '.otp': TYPES[2], + '.pot': TYPES[2], + '.potm': TYPES[2], + '.potx': TYPES[2], + '.pps': TYPES[2], + '.ppsm': TYPES[2], + '.ppsx': TYPES[2], + '.ppt': TYPES[2], + '.pptm': TYPES[2], + '.pptx': TYPES[2], + '.sxi': TYPES[2], + '.djvu': TYPES[3], + '.docxf': TYPES[3], + '.oform': TYPES[3], + '.oxps': TYPES[3], + '.pdf': TYPES[3], + '.xps': TYPES[3] +} +export default DOCUMENTTYPE \ No newline at end of file diff --git a/src/views/trials/trials-workbench/components/auditDocument/index.vue b/src/views/trials/trials-workbench/components/auditDocument/index.vue index d977f916..4b4d0da4 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/index.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/index.vue @@ -67,6 +67,8 @@
+ {{ scope.row.Name }} + + + Image +
+ + + +
+ + + + \ No newline at end of file From 91d31b4226f0dbfe43d3896977e60bab1039700d Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 8 Apr 2025 16:17:54 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/onlyOffice/viewer.html | 49 +++++------------------------------ 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/static/onlyOffice/viewer.html b/static/onlyOffice/viewer.html index f2a3c0e0..f0d2c0a8 100644 --- a/static/onlyOffice/viewer.html +++ b/static/onlyOffice/viewer.html @@ -29,54 +29,19 @@ obj[arr[0]] = window.decodeURIComponent(arr[1]) }) var docEditor = new window.DocsAPI.DocEditor("placeholder", { + type: "embedded", "document": { "fileType": obj.type, "key": "Khirz6zTPdfd7" + Date.now(), "title": obj.title, - "url": url - }, - permissions: { - edit: false, // 👈 禁止编辑 - download: false, // 允许下载 - print: false, // 允许打印 - review: false, // 关闭审阅模式 - comment: false, // 禁用评论 - copy: false, // 禁用内容复制 - modifyFilter: false // 禁止修改格式 - }, - editorConfig: { - mode: 'view', // 强制进入查看模式 - user: { - name: obj.userName, - permissions: "Read Only" - }, - customization: { - features: { - edit: false, // 隐藏编辑按钮 - save: false, // 隐藏保存按钮 - print: false, // 显示打印按钮 - download: false, // 显示下载按钮 - comment: false, // 隐藏评论功能 - rightMenu: false, // 禁用右键菜单 - showReviewChanges: false, // 隐藏修订标记 - toolbar: false, // 完全隐藏工具栏(可选) - downloadAs: false, // 隐藏"另存为"按钮 - plugins: false, //定义是否将启动插件并可用。默认值为true - }, - }, - events: { - onRequestDownload: () => { - console.warn('下载请求已被阻止'); - return false; - }, - onRequestPrint: () => { - console.warn('打印请求已被阻止'); - return false; - } - } + "url": url, }, + // editorConfig: { + // lang:'zh' + + // }, "documentType": obj.documentType, - "height": "100%" + "height": "100%", }); From 318954b36027ee738e4b500a95641de76ec3f9e9 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 8 Apr 2025 17:28:40 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/auditDocument/contextmenu.vue | 2 +- .../components/auditDocument/detail.vue | 8 ++ .../components/auditDocument/index.vue | 102 ++++++++++++++++-- vue.config.js | 8 +- 4 files changed, 105 insertions(+), 15 deletions(-) diff --git a/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue b/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue index 6a995a3d..5b5183ae 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/contextmenu.vue @@ -29,7 +29,7 @@ {{ $t('trials:trials-workbench:auditDocument:menu:rename') }} -
+
{{ $t('trials:trials-workbench:auditDocument:menu:del') }}
diff --git a/src/views/trials/trials-workbench/components/auditDocument/detail.vue b/src/views/trials/trials-workbench/components/auditDocument/detail.vue index c3c99f64..a2616395 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/detail.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/detail.vue @@ -5,6 +5,8 @@
+
@@ -200,6 +202,8 @@ export default { .file_icon { width: 50px; height: 50px; + display: flex; + align-items: center; i { display: inline-block; @@ -214,7 +218,11 @@ export default { font-style: normal; pointer-events: none; } +.name_image{ + max-width:90%; + max-height:100%; +} .name_pdf { background-image: url(@/assets/file_icon/pdf.png); } diff --git a/src/views/trials/trials-workbench/components/auditDocument/index.vue b/src/views/trials/trials-workbench/components/auditDocument/index.vue index 4b4d0da4..e01d7915 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/index.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/index.vue @@ -27,7 +27,7 @@ - + {{ $t('trials:trials-workbench:auditDocument:button:addFolder') }} @@ -54,8 +54,8 @@
- { + if (item.Name === data.Name) { + data.repeat++; + data.Name = `${this.$t("trials:trials-workbench:auditDocument:opt:addFloder")}(${data.repeat})` + } + }) + this.tableData.unshift(data) + this.addRenameId(data) + } else { + if (!this.rowData.AuditDocumentTypeEnum) { + parentData = this.getData(this.tableData, this.rowData.Id) + data.ParentId = parentData.Id + parentData.Children.forEach(item => { + if (item.Name === data.Name) { + data.repeat++; + data.Name = `${this.$t("trials:trials-workbench:auditDocument:opt:addFloder")}(${data.repeat})` + } + }) + if (!this.expandedRows.includes(parentData.Id)) { + this.expandedRows.push(parentData.Id) + this.$refs.auditDocumentTable.toggleRowExpansion(parentData, true) + } + parentData.Children.unshift(data) + this.addRenameId(data) + } else { + let fileData = this.getData(this.tableData, this.rowData.Id) + if (fileData.ParentId === this.Id) { + data.ParentId = this.Id + this.tableData.forEach(item => { + if (item.Name === data.Name) { + data.repeat++; + data.Name = `${this.$t("trials:trials-workbench:auditDocument:opt:addFloder")}(${data.repeat})` + } + }) + this.tableData.unshift(data) + this.addRenameId(data) + } else { + parentData = this.getData(this.tableData, this.fileData.ParentId) + data.ParentId = parentData.Id + parentData.Children.forEach(item => { + if (item.Name === data.Name) { + data.repeat++; + data.Name = `${this.$t("trials:trials-workbench:auditDocument:opt:addFloder")}(${data.repeat})` + } + }) + parentData.Children.unshift(data) + this.addRenameId(data) + } + } + } + }, // 获取当前目录层级 async getBreadcrumbData() { if (!this.Id) return this.catalogueData = [] @@ -398,9 +464,23 @@ export default { } }) }, - rename(row) { - this.renameId = null - this.updateData(row) + async rename(row) { + try { + this.renameId = null + if (row.Type === 'addFolder') { + delete row.Id + let data = [row] + let res = await addAuditDocument(JSON.stringify(data)) + if (res.IsSuccess) { + this.getList() + } + } else { + this.updateData(row) + } + } catch (err) { + console.log(rtt) + } + }, handleExpandChange(row, expanded) { if (expanded && !this.expandedRows.find(Id => Id === row.Id)) { @@ -421,6 +501,7 @@ export default { this.renameId = null this.copyList = [] this.shearList = [] + this.rowData = {} }, // 跳转至目录 toCatalogue(row) { @@ -784,7 +865,8 @@ export default { console.log(key, row) this.type = key; if (key === 'rename') { - this.renameId = this.checkList[0] + // this.renameId = this.checkList[0] + this.addRenameId(row) } if (key === 'version') { this.visible = true @@ -1024,12 +1106,12 @@ export default { } .icon_image { - height: 20px; - width: 20px; + max-height: 20px; + max-width: 20px; padding: 0px; line-height: 20px; margin-right: 6px; - margin-top: 6px; + // margin-top: 6px; } .icon { diff --git a/vue.config.js b/vue.config.js index b2790c5d..382970be 100644 --- a/vue.config.js +++ b/vue.config.js @@ -24,10 +24,10 @@ module.exports = defineConfig({ productionSourceMap: false, devServer: { port: '8080', - headers: { - 'Cross-Origin-Opener-Policy': 'same-origin', - 'Cross-Origin-Embedder-Policy': 'require-corp' - }, + // headers: { + // 'Cross-Origin-Opener-Policy': 'same-origin', + // 'Cross-Origin-Embedder-Policy': 'require-corp' + // }, // open: true, client: { overlay: { From 236a565250dac71083d8c0d4a6095cbe5b7f8710 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 9 Apr 2025 10:05:30 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E7=A8=BD?= =?UTF-8?q?=E6=9F=A5=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trials.js | 8 ++ .../components/auditDocument/detail.vue | 18 ++-- .../components/auditDocument/index.vue | 90 +++++++++++++++++-- src/views/trials/trials-workbench/index.vue | 10 ++- 4 files changed, 110 insertions(+), 16 deletions(-) diff --git a/src/api/trials.js b/src/api/trials.js index 1f89d4b8..3a3086b8 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -4066,4 +4066,12 @@ export function copyFileOrFolder(data) { method: 'post', data }) +} +// 工作台-稽查文档授权 +export function setIsAuthorization(data) { + return request({ + url: `/AuditDocument/setIsAuthorization`, + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/views/trials/trials-workbench/components/auditDocument/detail.vue b/src/views/trials/trials-workbench/components/auditDocument/detail.vue index a2616395..419cd4c2 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/detail.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/detail.vue @@ -6,7 +6,7 @@
+ :src="OSSclientConfig.basePath + rowData.FilePath" alt="" class="name_image">
@@ -33,7 +33,7 @@ @click.stop="getHistoricalVersion" /> {{ $t('trials:trials-workbench:auditDocument:detail:title:uploadNewVersion') - }} + }}
@@ -42,7 +42,7 @@
{{ $t('trials:trials-workbench:auditDocument:detail:title:currentVersion') - }} + }}
v{{ item.Version }} @@ -203,7 +203,7 @@ export default { width: 50px; height: 50px; display: flex; - align-items: center; + align-items: center; i { display: inline-block; @@ -218,11 +218,13 @@ export default { font-style: normal; pointer-events: none; } -.name_image{ - max-width:90%; - max-height:100%; -} + .name_image { + max-width: 90%; + max-height: 100%; + + } + .name_pdf { background-image: url(@/assets/file_icon/pdf.png); } diff --git a/src/views/trials/trials-workbench/components/auditDocument/index.vue b/src/views/trials/trials-workbench/components/auditDocument/index.vue index e01d7915..bc7cca2d 100644 --- a/src/views/trials/trials-workbench/components/auditDocument/index.vue +++ b/src/views/trials/trials-workbench/components/auditDocument/index.vue @@ -26,7 +26,7 @@ {{ $t('common:button:reset') }} - + {{ $t('trials:trials-workbench:auditDocument:button:addFolder') }} @@ -36,6 +36,9 @@ {{ $t('trials:trials-workbench:auditDocument:button:uploadFolder') }} + + {{ $t('trials:trials-workbench:auditDocument:button:auth') }} + {{ $t('trials:trials-workbench:auditDocument:button:download') }} @@ -71,13 +74,13 @@ :src="OSSclientConfig.basePath + scope.row.FilePath" alt="" class="icon_image"> {{ scope.row.Name }} - + v-if="(hoverId === scope.row.Id || checkList.includes(scope.row.Id)) && isManage" />
@@ -94,9 +97,21 @@ {{ formatFileSize(scope.row) }} - + + - + + + @@ -114,7 +129,7 @@
+ From 7614f7a327980ab4bd16c3c7d29cd4151544d00d Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 9 Apr 2025 15:59:36 +0800 Subject: [PATCH 16/22] 1 --- src/icons/svg/resetSuccess.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/icons/svg/resetSuccess.svg diff --git a/src/icons/svg/resetSuccess.svg b/src/icons/svg/resetSuccess.svg new file mode 100644 index 00000000..96c094b7 --- /dev/null +++ b/src/icons/svg/resetSuccess.svg @@ -0,0 +1 @@ + \ No newline at end of file From aaa366934b100f88e4fccdee04985898e40ac410 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 10 Apr 2025 09:56:02 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E9=80=80=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trials.js | 29 +- src/api/trials/visit.js | 8 + .../trials-panel/visit/crc-upload/index.vue | 1417 +++++------------ .../trials-panel/visit/qc-check/index.vue | 880 ++++------ .../visit/reupload-audit/index.vue | 440 +++++ .../components/ReuploadAudit.vue | 120 ++ src/views/trials/trials-workbench/index.vue | 16 +- 7 files changed, 1253 insertions(+), 1657 deletions(-) create mode 100644 src/views/trials/trials-panel/visit/reupload-audit/index.vue create mode 100644 src/views/trials/trials-workbench/components/ReuploadAudit.vue diff --git a/src/api/trials.js b/src/api/trials.js index 3a3086b8..98d554af 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -1035,7 +1035,27 @@ export function getQCVisitList(param) { data: param }) } - +export function getImageBackList(param) { + return request({ + url: `/QCList/getImageBackList`, + method: 'post', + data: param + }) +} +export function getImageBackApplyUserList(params) { + return request({ + url: `/QCList/getImageBackApplyUserList`, + method: 'get', + params + }) +} +export function auditImageBack(params) { + return request({ + url: `/QCOperation/auditImageBack`, + method: 'put', + params + }) +} export function getQCChallengeList(param) { return request({ url: `/QCList/getQCChallengeList`, @@ -3308,6 +3328,13 @@ export function getReReadingApplyToBeDoneList(param) { data: param }) } +export function getPMImageBackToBeDoneList(param) { + return request({ + url: `/PersonalWorkstation/getPMImageBackToBeDoneList`, + method: 'post', + data: param + }) +} export function deleteClinicalForm(param) { return request({ diff --git a/src/api/trials/visit.js b/src/api/trials/visit.js index c27c3972..cdcf92f1 100644 --- a/src/api/trials/visit.js +++ b/src/api/trials/visit.js @@ -287,4 +287,12 @@ export function forwardSVDicomImage(param) { data: param }) } +// crc、iqc申请影像退回 +export function requestImageBack(params) { + return request({ + url: `/QCOperation/requestImageBack`, + method: 'put', + params + }) +} diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 969f39ee..14ee89aa 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -4,67 +4,27 @@