From 8e81bad181e12581fa73be677d28b26668e1d130 Mon Sep 17 00:00:00 2001 From: zuohuaijun Date: Wed, 14 Aug 2024 01:16:05 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E1=E3=80=81=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E7=AB=99=E5=86=85=E4=BF=A1=E6=8E=A5=E5=8F=A3=20=202=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E4=BB=B6=E6=9D=83=E9=99=90=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin.NET.Core/Admin.NET.Core.csproj | 4 +- Admin.NET/Admin.NET.Core/Entity/SysFile.cs | 4 +- .../SeedData/SysMenuSeedData.cs | 1 - .../Service/File/Dto/FileInput.cs | 2 +- .../Service/File/SysFileService.cs | 15 +- .../Service/Notice/SysNoticeService.cs | 2 +- .../wwwroot/upload/logo.png | Bin 15178 -> 6793 bytes Web/package.json | 6 +- Web/src/api-services/apis/sys-file-api.ts | 8 +- Web/src/api-services/apis/sys-notice-api.ts | 146 ++---------------- Web/src/api-services/models/file-input.ts | 2 +- .../models/sys-file-upload-file-body.ts | 8 + Web/src/api-services/models/sys-file.ts | 24 +++ .../models/upload-file-from-base64-input.ts | 8 + Web/src/views/home/notice/index.vue | 6 +- Web/src/views/system/dict/index.vue | 4 +- Web/src/views/system/file/index.vue | 14 +- 17 files changed, 88 insertions(+), 166 deletions(-) diff --git a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj index 93cce6fe..e6f6cb00 100644 --- a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj +++ b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj @@ -17,7 +17,7 @@ - + @@ -39,7 +39,7 @@ - + diff --git a/Admin.NET/Admin.NET.Core/Entity/SysFile.cs b/Admin.NET/Admin.NET.Core/Entity/SysFile.cs index aec7f774..9121cb2c 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysFile.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysFile.cs @@ -104,8 +104,8 @@ public partial class SysFile : EntityBaseData /// /// 是否公开 - /// 如果设置true,所有人都可以查看,默认只有自己或有权限的人可以查看 + /// 若为true则所有人都可以查看,默认只有自己或有权限的可以查看 /// - [SugarColumn(ColumnDescription = "是否公开", DefaultValue = "false")] + [SugarColumn(ColumnDescription = "是否公开")] public bool IsPublic { get; set; } = false; } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs b/Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs index bea23d1b..2fbac9d2 100644 --- a/Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs +++ b/Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs @@ -74,7 +74,6 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData new SysMenu{ Id=1310000000174, Pid=1310000000171, Title="增加", Permission="sysNotice/add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 }, new SysMenu{ Id=1310000000175, Pid=1310000000171, Title="删除", Permission="sysNotice/delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 }, new SysMenu{ Id=1310000000176, Pid=1310000000171, Title="发布", Permission="sysNotice/public", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 }, - new SysMenu{ Id=1310000000177, Pid=1310000000171, Title="撤回", Permission="sysNotice/cancel", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 }, new SysMenu{ Id=1310000000181, Pid=1310000000101, Title="三方账号", Path="/system/oAuthUser", Name="sysOAuthUser", Component="/system/oAuthUser/index",Icon="ele-ChatDotRound", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 }, new SysMenu{ Id=1310000000182, Pid=1310000000181, Title="查询", Permission="sysOAuthUser/page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 }, diff --git a/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs b/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs index 93933b7f..27224c3c 100644 --- a/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs +++ b/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs @@ -20,7 +20,7 @@ public class FileInput : BaseIdInput /// /// 是否公开 - /// 如果设置true,所有人都可以查看,默认只有自己或有权限的人可以查看 + /// 若为true则所有人都可以查看,默认只有自己或有权限的可以查看 /// public bool IsPublic { get; set; } diff --git a/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs b/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs index ddb028f1..a18eafbe 100644 --- a/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs +++ b/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs @@ -44,16 +44,17 @@ public class SysFileService : IDynamicApiController, ITransient [DisplayName("获取文件分页列表")] public async Task> Page(PageFileInput input) { - //获取所有公开附件 + // 获取所有公开附件 var publicList = _sysFileRep.AsQueryable().ClearFilter().Where(u => u.IsPublic == true); - //获取私有附件 + // 获取私有附件 var privateList = _sysFileRep.AsQueryable().Where(u => u.IsPublic == false); - //合并公开和私有附件并分页 - return await _sysFileRep.Context.UnionAll(publicList, privateList).WhereIF(!string.IsNullOrWhiteSpace(input.FileName), u => u.FileName.Contains(input.FileName.Trim())) - .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()), + // 合并公开和私有附件并分页 + return await _sysFileRep.Context.UnionAll(publicList, privateList) + .WhereIF(!string.IsNullOrWhiteSpace(input.FileName), u => u.FileName.Contains(input.FileName.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()) && !string.IsNullOrWhiteSpace(input.EndTime.ToString()), u => u.CreateTime >= input.StartTime && u.CreateTime <= input.EndTime) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPagedListAsync(input.Page, input.PageSize); + .OrderBy(u => u.CreateTime, OrderByType.Desc) + .ToPagedListAsync(input.Page, input.PageSize); } /// diff --git a/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs b/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs index c5896ba2..fe38d7aa 100644 --- a/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Notice/SysNoticeService.cs @@ -141,7 +141,7 @@ public class SysNoticeService : IDynamicApiController, ITransient /// /// [DisplayName("获取接收的通知公告")] - public async Task> GetPageReceived([FromQuery] PageNoticeInput input) + public async Task> PageReceived(PageNoticeInput input) { return await _sysNoticeUserRep.AsQueryable().Includes(u => u.SysNotice) .Where(u => u.UserId == _userManager.UserId) diff --git a/Admin.NET/Admin.NET.Web.Entry/wwwroot/upload/logo.png b/Admin.NET/Admin.NET.Web.Entry/wwwroot/upload/logo.png index 5de6838f98ff076058d38ba125b4d1cbd6040804..ffb581952accf9ad5afbc83d4bab1e59bdc90f77 100644 GIT binary patch literal 6793 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 literal 15178 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ΝQ9n_#gO?R_K!1ibz22Dysub2CW zFPc)Q?;Yq{61gCT7G{CzH|1Pujq2+V$2=Rs3!C4l?yHH67OyZjjm8cLc`PJCSOL7g z80J(l+zC;R9BOe)Jmk@HN8&ecm#tS_oAT9%ZFcH1H|^}bIKxBU`@i&!9U|C$A3Qh9 z1$7A0$H>qS)Yg`4rQb$Ll$<-}3T8}c1s^&)Prbn4>XQYq;@sdSQ7`HQQBIV8atgz- zH;0HuCe)u)7=!$xfN>|!ePZqQ>m((Heq6gqQY&Qeb$?IyRJc(YE*OAzFh#|h%6hDt zW8Aw{>sf0J&IE1>w@2TeE6}<~=`m%%{7;m|B$`M%bGd7c^w@(I5W`n{prqCPqYy`3 zH*}rE8-+`*W+O0Xp_e+()}|g|*iy;UsJ-9KIk?uI4LUMq?t4W%{C+PHA8ZYocthRv|r)gC`Ljr8c0oOFXaOH z56z?x>mt3c>kj7=^nU-gGE}#;)Md#5HMAy1ECW}WSI(Bw9qskTPp~u(Oa203Z6$fsw;d;*`X)Z zX#@vrIJ?f)R?)5i_1`Tah}xc0>#F5#CRG|B=V$xktq+QK5tyQ0o}*Zl!5b^Dcv$?l zDXl2?gmbIlxkbaC4Fg=1lDRfPph?NLf^dI1*X1Ed*AnnJ$Kc7JlaHRLY=*91s_E$H z#G(j1&D-S(JoO!~E?&Nr%{TSzTO~=$e6BmWtMq=~v`w-iQnu^gNqTkKK6)gY87PQ3 zM3iL*mS>@HqoPnNAh_!=y~{3cb!}Qr>+c`NO`8H&qPIBBmwJ6pcGbqgQuSbNzIP zJ`sNCt;%J$QZy@%_oY?AI;4)Q|Gh{1L`DGxaN`T+DU2lA0Oof_<$t9+)Dn*qNs6Qr zG)Ll;j7xfP`G2PO@NB{(75L`|Mvr`)CB|NsuA0iDH&>`Qck0}E*+p##)QF|2Ux8}f z=meAMLL467er

e%8jy!2D+V8s#!s>Hi2gKdnqy-mYCJ+ zfTpyNIsk^#Az~t;Hz*dIXc>LPba33DQt!vgscy4%lF2V@t^s^nbpoCJ^eIR7Y0*%4 zIm!=N_Pr)4m)+#5nyMtoLF|f;m#DTjhwZBLHJsxCn@wxvS%XPg%c+1x)K&FymKu9f zAuzj2O53j2jS1SzMD?*u0x&Z>muCCTv|TZA(?P6R+;?4zWQ^mS{@B#!ZGXL0DtQ(; zj*%$E%Fru!sCu-=HPd0pV0bio%B?xFF;k`*MCrKHG5cn@t@VO&J^WvXMU00iG9|(P z^m!4zNx{gH6Z_k+$Bdx=rTng@3!04^blbP4{)h>{b)8z7DR{AvPm)zBVP zC71)XyTTLlebFxuN`;Wo%7U`M4;p#>Ka*!fz+xImrj$!<7o1O|fHlyLmj5OJdLag{;PLt-quxy3}uM-*qv)^ z8wJJAQ>I9HZ!e~(m-`USI~?EBkQW>xwcbt|$mZS@zkEFe1&5Mv=6{xeX1;((WsBqE%jpAINTpRv#UD7mURh#5u?(a*&t4=F zp_B>(6G4eaJpmK8O~lP^3c*1vY%dkpkA~r!O?#n0&6&gliS%dW4EjQRlGMIVGL%R z=@YO@BQv?&5)w<8W-^h_Z42An)V@g`H6BQe7G5nH=EppeV;Y#rYV(G-UbRPi1Tkh} zSQ%1&A{{{4=SR`Y1!?x@E>$1$7)G*RA@}!o=j>lX^`=|Kt+tSDB1%T=_4V@C(4hZz z-tO}24*&8@*gT&L!*>nmRwIlRzFuvhhC#iZmgu7ETkMRg;NLc}XKet<1oU~Q0IfKe z9Xrks>elt-R+78Vf2wKc8Yr4N0r3Xa2i*nwRO)M}#=6L(e? zBFWDft5+0URMgq`b`R8cOY&6dSm;MQ!o-O$lI0mnB|kB+nTR7-UWF#uSVxg++!@g{ zEl=~wD`lJ62!m}#VX1Jp$#mjJ$I+g?$b)c?QF|Iw@AeZ#*2c6pvY?RdIeMOYU!A+B zYTwK@(-cBz)}l3V8YjOR!_E>u!o)c$Uh_S$y8Q)C;g??IFN9zLG>67n!T+b*6``Si zv{H^#^558~xX4I!4pfxN4s}+ADROBSP}%v+iua3S^Zn6>QID_o zlCU>*Y*ou|8A9VhoyGTl$#$PhHbi<-fTI9Pa~0XJ!UWL5T&kpioUFr_-;9sIaf;Tn z>7|zVc@-(C+~0KIa?>_GuW0{PXlSTo5aq^do9A#33^9ejJQ$u_1EH6vWEkD%cGxfOShLApKnx?*p7$hV19kwvsk4)b-)U0jRo&G(3B$a6 zvqq%agp{V3I^)B#CvX95@2-bwlqoU2oTJss9$*_BM5}l+7R%>noiyEYkSu4vyLc*n zxTa$2*x!H`*b~tTK9Q^hasBA(n0_%BbL$YUL`VZ?Uk(b_R%+Dke~(r`*tS;F_4Z5S zXvi`P8X#Vqm2^^=4cC{YyXRQrh9-f7P9ic0bAg6)LiatUunfOKww+CXPDbf`o}8%v z{pF6*UsJDJnbAhn>G`dum?`*cVMMNu3o#X~v7%Iu&?x87(CHt|fi=1)npePSHOb(p z4!xu6hBgkm-K$J895G3L*PxpV){OPOH+g z8dow!Jg|x5&cjL;W=u?f1@gR8PF!5vW9MuR82EVvO2+`lz-CnL13SR6Kh;Hy#O(8o zIC7aLfonR;dJ?U~sISU9--NchIiJ1rJlE3$&T!r%Z&3(SI+LL^C~`a$ZQ?5;k(Y~| zbV*f}a>8dwA^&{?DrwdqRtq9nie%jjqoF5tc^yXARi8u88Ml&1?orQE43% zG4KJxhudLdBM>i7s+AgKtd>4s(NCskAG&@sDUI0{=1%8B|m^#9^J2gNq-n z2=HA69kTub*G5#W0$Vbzt-Odc4eMQBZ|52-Blow@ww1eJ8DNN+8K74fNn%H+aXCVM zZxS?D4S4wYYRPz!WM)Mn+&`9K5@b@SXoC|)n~iLFauX7elVxoNeazZrWIZAm=uC#r3R(5=r}bDuq#hYUi{Eb6 zE<>6eV#Ul}eGorKS@Gzo?70l6ob(9qppWmZ4?*l+ZL#O$BGRP;{yIRRGG{*(tv z1`1i~91;V>OSihrJ|xcNy=ZQr2ERT)F}DDvPB`s%2$o^pzJ6=@mR81KK;UgRmWN8*z@@t?; zvQ8K5egv#}@xWuw0JE>V>h7<%@1A&^H33XPd+Z+R;ETz7Wzb*A`}fj`$OmviZgnsU zV{aUK^$BViB|2#}a0|2{V~R-1Iz;cI<<#{BE)oq0oYc)rjV>5=w#5UeCUz_F1gd{S zD<|^OVrsk=ef@|Oa#N1Od8l#fo@oIc-Ly1_A_xk*Fj(AAU!V?kKTyf%^x@1Eq5;N_ z|0k}~Q^MaL$7ViFEwsbDG;kzrM6Qu0v%!N5D`pQnznE}0igRDk`|7*6X!OoLRmHbeMu1h1)c&P*sMCsU}rU zT=O~WhGpa{ZhlN?I~5Lwswr3)u-g;4Z}6kuC1HM#JX?(3LK>cGL@wK=r(#88ymOo$ z+{`Sf5?J_Tt2o{RwIrkmk0XlEK>Xn${);a)5h=F@&w`W zLIyHfYOk-a3gFO4zMD>UKN)gJv%HUUJ*L{9w|utaAB9^_zI(}X7if*_8R^qhia|#$ zT_=F!&YlO&$pfPMa-Kjr`2MCso4z>Wsbt3)MvWChJ#ePgg?u?LKMAg-2y+($?J@k| z#A{L-?R1Dm^FA3Y0~>r%-P|&2)Ml)t=-QcK?6*IaeoZ<07b)ockq=L}$@@sKa^O{t zZHGjxm#IVs#Ths%Czb0ov7t{i%dweziA&;BJddB?qKyv*?Xe_%EoPiFhzndDf0)~}5U3zT$j@Y5)@o%vAAK!jOa>9hd! z$O@@`?)qQ}w=H1gF5rY+%Wzy!Vb|CcbH)(Y6E-H%k>uL#R7XRJa|Km!fgRdDN0?g~ zq^LuasUmY=AY?Z6aqbNm>piAXwHl_o_RMk$>v?0onu|cA6wXizHh|4dVQRh&g$f}5 z;Lt$s)9xt9p2d+)o#yCgdT@2FXK0Rf)}(_MVld3v3tO!5@~t1e8Tr;jPo$MQbF@qA zEL)6{MR3<{0|I4T$iWgESi>PS$G{=0phK9B@UX@HnyG3CANEK?zihGDPihHO9Qez6 z-z?pF5XJJrU+!Hx)eb5Ha{%N~Nm#J>dl`@zWoQF+^o4~wLVb0_KD+1hdT_FW!Zcd0 ztcza=GU6k(ru%rig`lWs$zm5T47Py`f((T4zN!eT0jWw6BTh2M`UZS2Vsl%BNd%OV zePdo@7ZT({yrX#zkWG**RZql0i-!C}=<#KfIvsXBkTk>ZLJ+dO9b+;fIbm0Fga z{|D!lfrSBQGlvpJ4^3scZ>u1iTq50sqY&q8ogTP=e8qq+yjo2W=Yq935R1$1U!bqt z^YRKrSKkcpk7gDDQ#@@VP?$I(C|Pvy`$VzE%bE27F&vYnynkr5c*B}@UkY17#1xt` zfU(pZ0QV>z%p%lGhP-LyPs>iVR{4lB(~ILu^>=NKqRN6~+|HaWgnOXr&v^0Q>_^wu z+7DD0!MB?dLPA1DU!QIYu{fHHmJv)wT^;E{Kw<_R#IK!Si`9-nxLhy(KmzYHP?Nh7 zOAcw_AShNFqbSM_SC3|d!=PzYcyu!FsKkqTbufyoAFc8Eo&j6#RLdh7YbGbAIldx2x zP7rsk0zr9M=*%V_*VTdA4a_V=NriRd;`MCF&+Vx+)oWTETSCRR z_>gK0BiiS7%i%smr#YO75DXK`O36*cKyesnZ%20tMVcw=Lq)I$!7!z_ivwe0=w^>! z$0<{W`G|}J8a>c#0``!?Zu~+fe5ZkotJ_;RS*!Y~=0B@2o!Czzmyx{}&hxXOxf?Gs zia$2TpPi?FpPzewdO-rI5GOVsxp^G4_3O?PYLqkn=4Pm0a_m!?wTF z12|=R2wQuyed0w3lS6k@f2`A~8lgI*!JU_d8GP8(Y=hM_X5034&DmnbvZ>VTNwltg zW~(3w{3?8hzl7~2GIAr0RxEP3jf7D7g2m<4Qdx1Q&-0f&wN{UL9%jX}bgJ9pBimou zf&Ilx^LlbK2aMJ*1jYjxdKvfj`h(LN54{58Djmwyv@}idTmMRSQl!+(w7k4)2TNx0 zz8@$?m4F|kkm)#kykxCw@uwWny?S+?O#ojv`~eNG&b!^gt2-cotPt{Nt(+Zc4j4fJ zfON>(L@ED7V_zn*!#cTxW@|By5z?vR_doFC@7Euw19W=oGTx|yU@DaL4C)lfjOBIW zTa%2Su;ux}L{`OhQ+qNcFGj$5{P#>DE*_RO&Z+lL6@YJXdSv>Q_4qw^kkTlV+|JVNxwc2oYR6^d`m&{11Ue{WuiAJli`w)ipyTB~b zlNA2$6}kXJ(6oC@>9ls((7P4?`Pvp8ECSva|3YyqKRr?~%sLLQ??k+C_;4d>=Z3q3 zhBvfU_ai2+Pn)Gmb_5ZhKFq4@ph#WsK}@ZWi9=^ef+BswTS1A8`_N~__N%t@t@VF4 zT1hFSz%fEqCrFxbjJbZSL{O(5p`Z-PBWVbtxm3{vH6#VAlg z6)Eof5g45@!9j&EO~zBQU`7hpR*o^V(<9K*j;Nfn*&|BKW>+R!3_LR`Q~8wA?6?hAjIP|~oq)W_Cs1lV3m z1#st!a&vSFM`wkEQ8GzM9Tf*^+u8}Id`&?q4F)$>6PCw6*r~pHIaV0MRA+aRUqx!J zZEaGS-MM5n{Io&wDzx$kH8mfd*keSEY;l44DWUeTm9;64S4T8{52d~tombPQF>DTh zQ+X71177;-Ark%Sw5qNza0^U=Zmn@I@m9e1r_qpQE;sZYr!_+OVSn5rkGtG*Faz!e zt5i54fYM^{^1w4KTt>v?28K!m47a=?d*5ni&p2=u?_k($azUEI@;Q4J$uTQ;bXNdf z!VcBBZX63gYw<@;X2iL;p^hGQvLqnfw^cAd>&n4lr&AC2o`_#fQBrf#5}F|Z$vv0V z^<*X>nEuM{=g*Z9F3JOhzva=tf|QzyDDVV4YssR$uVgM#gk%i31`qbBMud<4b2#+kbXV5MynPaopzbrwcF4&U{9`)aPNleN0B0M%Y%PH7L!Pa`sy_kTRP zsH7}1Rd+Zk@C$qFwEc4<$1*t7#c}9;i`EI-6#$Q>Ye>AEVY_GfL>0nODMlwt7h6tQ z1{Y-w4GCKaI*82>+JrI4HbDjz+4}W^4r3*2iIr>U$^ZU6)>|tnyK~GX##m1m@Gi4d zO4!l&a?2vf<^aRu4tD2*5n)ra0QuR0J{`36)2T^Ym8V}OlT^zYdAtZa@zt2uC z8uEoHW^!yjWZd~|G8+JAA#Ac#snZQ6>Lb<99KK3N(U03uaI@4SqBf}5npshzLDpJ*&IN~{ zs=XMCzltfp?14mhs|Go&xC_-(Z9MH)HIHK^X!21uAs)kSII z!b#-htV;<}fn*r|-TbPYqhpVyhNqf%j7}VLsi8$bKUPDgPjP&PWujgbBCYMd3`r5W zX_PQnZ39PdK~N{$jAftDc(t~(5W~WpOgTf;F5egFZpWf0$x|68Hw)Zo^w*92N319O z)4)B74E#xosTudNj<#!5-_pxlCfEWx3JN2Fm1)_ZsFw4oL>FzJ{Qd1QNr-cESZZ zj)FdAMPZ0xb_bbs{>N{o2SVGxk}L+7Yq+)e8e>I%#I6hiaKI>-B!BAcm{agka>*~8 zIf&b;nDHT|*|y6>6&b5i{1mp1#IHx{p>jB#E5^28YdjT;yu))81s_nxIj_Z6Ek?`Z zHbJbo)!|&K1O48Pb3@#D7eJ`4n7;&^U!qhDs;%V=Lz)!u?}AZ-KoYb&?)I6Hz_(v+ zv^Id7lj>Pu?=AEJw-p@kv9Cy%tb5TEo;m%*ft57!MrW8U$FuHEYK<6@4<0e4ui}tN z5BstC_IjLm4?7`~*Ehl0$Q#U!vX|0S;P7m0ck|drhhh%Rb*pK6rhwvtf3x)~r}=l> zuR>(ky6ggi$2mD>LC7)W;k|bxjr$A-4U+MzG|($uL<84|b*~&BCHV@NJkGhk^yK(!6YY6MPFOL*Q&m~T7`+$Yxz zZ0JmSfvRO5l}xpDn}GxwHXcd#!O2JD63Z%}b^Blz!YwD0u>N3nC?6H32{jt`i^9BU#I0$ z`sWWtU@HXcG00MZ|4=OMB5{d^=%Xg3NnnOs8-JZPY<{m7DPr;QKDMRIQTzY} [searchFields] 字段名称集合 - * @param {string} [searchKeyword] 关键字 - * @param {string} [keyword] 模糊查询关键字 - * @param {FilterLogicEnum} [filterLogic] 过滤条件 - * @param {Array} [filterFilters] 筛选过滤条件子项 - * @param {string} [filterField] 字段名称 - * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符 - * @param {any} [filterValue] 字段值 + * @param {PageNoticeInput} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - apiSysNoticePageReceivedGet: async (title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options: AxiosRequestConfig = {}): Promise => { + apiSysNoticePageReceivedPost: async (body?: PageNoticeInput, options: AxiosRequestConfig = {}): Promise => { const localVarPath = `/api/sysNotice/pageReceived`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, 'https://example.com'); @@ -208,7 +190,7 @@ export const SysNoticeApiAxiosParamCreator = function (configuration?: Configura if (configuration) { baseOptions = configuration.baseOptions; } - const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options}; + const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options}; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; @@ -221,65 +203,7 @@ export const SysNoticeApiAxiosParamCreator = function (configuration?: Configura localVarHeaderParameter["Authorization"] = "Bearer " + accessToken; } - if (title !== undefined) { - localVarQueryParameter['Title'] = title; - } - - if (type !== undefined) { - localVarQueryParameter['Type'] = type; - } - - if (page !== undefined) { - localVarQueryParameter['Page'] = page; - } - - if (pageSize !== undefined) { - localVarQueryParameter['PageSize'] = pageSize; - } - - if (field !== undefined) { - localVarQueryParameter['Field'] = field; - } - - if (order !== undefined) { - localVarQueryParameter['Order'] = order; - } - - if (descStr !== undefined) { - localVarQueryParameter['DescStr'] = descStr; - } - - if (searchFields) { - localVarQueryParameter['Search.Fields'] = searchFields; - } - - if (searchKeyword !== undefined) { - localVarQueryParameter['Search.Keyword'] = searchKeyword; - } - - if (keyword !== undefined) { - localVarQueryParameter['Keyword'] = keyword; - } - - if (filterLogic !== undefined) { - localVarQueryParameter['Filter.Logic'] = filterLogic; - } - - if (filterFilters) { - localVarQueryParameter['Filter.Filters'] = filterFilters; - } - - if (filterField !== undefined) { - localVarQueryParameter['Filter.Field'] = filterField; - } - - if (filterOperator !== undefined) { - localVarQueryParameter['Filter.Operator'] = filterOperator; - } - - if (filterValue !== undefined) { - localVarQueryParameter['Filter.Value'] = filterValue; - } + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; const query = new URLSearchParams(localVarUrlObj.search); for (const key in localVarQueryParameter) { @@ -291,6 +215,8 @@ export const SysNoticeApiAxiosParamCreator = function (configuration?: Configura localVarUrlObj.search = (new URLSearchParams(query)).toString(); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); return { url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, @@ -538,26 +464,12 @@ export const SysNoticeApiFp = function(configuration?: Configuration) { /** * * @summary 获取接收的通知公告 - * @param {string} [title] 标题 - * @param {NoticeTypeEnum} [type] 类型(1通知 2公告) - * @param {number} [page] 当前页码 - * @param {number} [pageSize] 页码容量 - * @param {string} [field] 排序字段 - * @param {string} [order] 排序方向 - * @param {string} [descStr] 降序排序 - * @param {Array} [searchFields] 字段名称集合 - * @param {string} [searchKeyword] 关键字 - * @param {string} [keyword] 模糊查询关键字 - * @param {FilterLogicEnum} [filterLogic] 过滤条件 - * @param {Array} [filterFilters] 筛选过滤条件子项 - * @param {string} [filterField] 字段名称 - * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符 - * @param {any} [filterValue] 字段值 + * @param {PageNoticeInput} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await SysNoticeApiAxiosParamCreator(configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, searchFields, searchKeyword, keyword, filterLogic, filterFilters, filterField, filterOperator, filterValue, options); + async apiSysNoticePageReceivedPost(body?: PageNoticeInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysNoticeApiAxiosParamCreator(configuration).apiSysNoticePageReceivedPost(body, options); return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; return axios.request(axiosRequestArgs); @@ -660,26 +572,12 @@ export const SysNoticeApiFactory = function (configuration?: Configuration, base /** * * @summary 获取接收的通知公告 - * @param {string} [title] 标题 - * @param {NoticeTypeEnum} [type] 类型(1通知 2公告) - * @param {number} [page] 当前页码 - * @param {number} [pageSize] 页码容量 - * @param {string} [field] 排序字段 - * @param {string} [order] 排序方向 - * @param {string} [descStr] 降序排序 - * @param {Array} [searchFields] 字段名称集合 - * @param {string} [searchKeyword] 关键字 - * @param {string} [keyword] 模糊查询关键字 - * @param {FilterLogicEnum} [filterLogic] 过滤条件 - * @param {Array} [filterFilters] 筛选过滤条件子项 - * @param {string} [filterField] 字段名称 - * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符 - * @param {any} [filterValue] 字段值 + * @param {PageNoticeInput} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options?: AxiosRequestConfig): Promise> { - return SysNoticeApiFp(configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, searchFields, searchKeyword, keyword, filterLogic, filterFilters, filterField, filterOperator, filterValue, options).then((request) => request(axios, basePath)); + async apiSysNoticePageReceivedPost(body?: PageNoticeInput, options?: AxiosRequestConfig): Promise> { + return SysNoticeApiFp(configuration).apiSysNoticePageReceivedPost(body, options).then((request) => request(axios, basePath)); }, /** * @@ -766,27 +664,13 @@ export class SysNoticeApi extends BaseAPI { /** * * @summary 获取接收的通知公告 - * @param {string} [title] 标题 - * @param {NoticeTypeEnum} [type] 类型(1通知 2公告) - * @param {number} [page] 当前页码 - * @param {number} [pageSize] 页码容量 - * @param {string} [field] 排序字段 - * @param {string} [order] 排序方向 - * @param {string} [descStr] 降序排序 - * @param {Array} [searchFields] 字段名称集合 - * @param {string} [searchKeyword] 关键字 - * @param {string} [keyword] 模糊查询关键字 - * @param {FilterLogicEnum} [filterLogic] 过滤条件 - * @param {Array} [filterFilters] 筛选过滤条件子项 - * @param {string} [filterField] 字段名称 - * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符 - * @param {any} [filterValue] 字段值 + * @param {PageNoticeInput} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof SysNoticeApi */ - public async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options?: AxiosRequestConfig) : Promise> { - return SysNoticeApiFp(this.configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, searchFields, searchKeyword, keyword, filterLogic, filterFilters, filterField, filterOperator, filterValue, options).then((request) => request(this.axios, this.basePath)); + public async apiSysNoticePageReceivedPost(body?: PageNoticeInput, options?: AxiosRequestConfig) : Promise> { + return SysNoticeApiFp(this.configuration).apiSysNoticePageReceivedPost(body, options).then((request) => request(this.axios, this.basePath)); } /** * diff --git a/Web/src/api-services/models/file-input.ts b/Web/src/api-services/models/file-input.ts index 13792ff4..542c8e70 100644 --- a/Web/src/api-services/models/file-input.ts +++ b/Web/src/api-services/models/file-input.ts @@ -45,7 +45,7 @@ export interface FileInput { fileType?: string | null; /** - * 是否公开 如果设置true,所有人都可以查看,默认只有自己或有权限的人可以查看 + * 是否公开 若为true则所有人都可以查看,默认只有自己或有权限的可以查看 * * @type {boolean} * @memberof FileInput diff --git a/Web/src/api-services/models/sys-file-upload-file-body.ts b/Web/src/api-services/models/sys-file-upload-file-body.ts index fa808d9e..0839b354 100644 --- a/Web/src/api-services/models/sys-file-upload-file-body.ts +++ b/Web/src/api-services/models/sys-file-upload-file-body.ts @@ -36,6 +36,14 @@ export interface SysFileUploadFileBody { */ fileType?: string; + /** + * 是否公开 如果设置true,所有人都可以查看,默认只有自己或有权限的人可以查看 + * + * @type {boolean} + * @memberof SysFileUploadFileBody + */ + isPublic?: boolean; + /** * 文件路径 * diff --git a/Web/src/api-services/models/sys-file.ts b/Web/src/api-services/models/sys-file.ts index e37dac9a..1b8964ad 100644 --- a/Web/src/api-services/models/sys-file.ts +++ b/Web/src/api-services/models/sys-file.ts @@ -84,6 +84,22 @@ export interface SysFile { */ isDelete?: boolean; + /** + * 创建者部门Id + * + * @type {number} + * @memberof SysFile + */ + createOrgId?: number | null; + + /** + * 创建者部门名称 + * + * @type {string} + * @memberof SysFile + */ + createOrgName?: string | null; + /** * 提供者 * @@ -187,4 +203,12 @@ export interface SysFile { * @memberof SysFile */ fileType?: string | null; + + /** + * 是否公开 若为true则所有人都可以查看,默认只有自己或有权限的可以查看 + * + * @type {boolean} + * @memberof SysFile + */ + isPublic?: boolean; } diff --git a/Web/src/api-services/models/upload-file-from-base64-input.ts b/Web/src/api-services/models/upload-file-from-base64-input.ts index 4dbb2b7a..e3245504 100644 --- a/Web/src/api-services/models/upload-file-from-base64-input.ts +++ b/Web/src/api-services/models/upload-file-from-base64-input.ts @@ -59,4 +59,12 @@ export interface UploadFileFromBase64Input { * @memberof UploadFileFromBase64Input */ fileType?: string | null; + + /** + * 是否公开 如果设置true,所有人都可以查看,默认只有自己或有权限的人可以查看 + * + * @type {boolean} + * @memberof UploadFileFromBase64Input + */ + isPublic?: boolean; } diff --git a/Web/src/views/home/notice/index.vue b/Web/src/views/home/notice/index.vue index ca53c114..050e6b9a 100644 --- a/Web/src/views/home/notice/index.vue +++ b/Web/src/views/home/notice/index.vue @@ -5,7 +5,7 @@ - + @@ -24,7 +24,7 @@ - 查询 + 查询 重置 @@ -142,7 +142,7 @@ onMounted(() => { // 查询api const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => { const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as PageNoticeInput; - return getAPI(SysNoticeApi).apiSysNoticePageReceivedGet(params); + return getAPI(SysNoticeApi).apiSysNoticePageReceivedPost(params); }; // 查询操作 diff --git a/Web/src/views/system/dict/index.vue b/Web/src/views/system/dict/index.vue index 2cbba354..a20c946c 100644 --- a/Web/src/views/system/dict/index.vue +++ b/Web/src/views/system/dict/index.vue @@ -32,7 +32,7 @@