mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-14 11:18:02 +00:00
1 line
8.9 KiB
JavaScript
1 line
8.9 KiB
JavaScript
"use strict";(self.webpackChunkadmin=self.webpackChunkadmin||[]).push([[7650],{17220:function(e,t,a){a(44194);var i=a(75365),n=a(54881),r=a(41159),o=a(31549);t.Z=function(e){var t,a,l=e.file,s=e.onDelete,d=e.showDelete,u=void 0===d||d,f=(0,r.useIntl)();return(0,o.jsxs)("div",{style:{position:"relative",width:"50px",height:"50px",border:"1px solid #f0f0f0",borderRadius:"4px",overflow:"hidden"},title:f.formatMessage({id:null!=l&&null!==(t=l.fileType)&&void 0!==t&&t.startsWith("image/")?"upload.preview.image":"upload.preview.file"}),children:[u&&(0,o.jsx)(i.ZP,{type:"text",size:"small",icon:(0,o.jsx)(n.Z,{}),onClick:function(){return s(l.uid)},style:{position:"absolute",top:0,right:0,padding:"2px",background:"rgba(255, 255, 255, 0.8)",border:"none",borderRadius:"0 4px 0 4px",zIndex:1}}),(0,o.jsx)("div",{onClick:function(){return window.open(l.fileUrl,"_blank")},style:{width:"100%",height:"100%",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:null!=l&&null!==(a=l.fileType)&&void 0!==a&&a.startsWith("image/")?(0,o.jsx)("img",{src:null==l?void 0:l.fileUrl,alt:null==l?void 0:l.fileName,style:{width:"100%",height:"100%",objectFit:"cover"}}):(0,o.jsx)("div",{style:{fontSize:"12px",padding:"4px",textAlign:"center",wordBreak:"break-all",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:l.fileName})}),(0,o.jsx)("div",{style:{position:"absolute",bottom:0,left:0,right:0,background:"rgba(0, 0, 0, 0.5)",color:"#fff",fontSize:"10px",padding:"2px",textAlign:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:l.fileName})]},l.uid)}},27650:function(e,t,a){var i=a(90819),n=a.n(i),r=a(89933),o=a.n(r),l=a(76711),s=a.n(l),d=a(73193),u=a.n(d),f=a(45332),c=a.n(f),p=a(44194),g=a(42085),m=a(47944),h=a(30348),v=a(53530),y=a(75365),x=a(28977),w=a.n(x),b=a(55735),M=a(86803),j=a(36310),k=a(17220),T=a(41159),U=a(6397),S=a(40612),N=a(31549),O=h.Z.Dragger;t.Z=function(e){var t=e.type,a=e.acceptType,i=e.isModalOpen,r=e.attachments,l=e.handleSubmit,d=e.handleCancel,f=(0,T.useIntl)(),x=(0,U.j)((function(e){return e.currentKbase})),C=(0,S.u)((function(e){return e.currentOrg})),D=(0,p.useState)([]),L=c()(D,2),Z=L[0],I=L[1],z=(0,p.useState)({file:null,fileName:"test.pdf",fileType:"application/pdf",isAvatar:"false",kbType:t,categoryUid:"",kbUid:null==x?void 0:x.uid,orgUid:null==C?void 0:C.uid,client:b.bVn,extra:{autoGenerateLlmQa:"false",autoLlmSplit:"false"}}),A=c()(z,2),F=A[0],E=A[1],P=(0,p.useState)([]),W=c()(P,2),B=W[0],R=W[1],Y=(0,p.useState)(!1),H=c()(Y,2),_=H[0],G=H[1];(0,p.useEffect)((function(){console.log("UploadDrag currentKbase",x),x&&E((function(e){return u()(u()({},e),{},{kbUid:null==x?void 0:x.uid})}))}),[x]);var K=(0,p.useMemo)((function(){return{name:"file",multiple:!0,accept:a,action:(0,j.M$)(),headers:{Authorization:"Bearer "+localStorage.getItem(b.LA8)},data:u()({},F),fileList:B,showUploadList:!0,beforeUpload:function(e){if(e.size>10485760)return M.yw.error(f.formatMessage({id:"upload.size.limit",defaultMessage:"文件大小不能超过10MB"})),h.Z.LIST_IGNORE;if(a&&"*"!==a){var t,i=a.split(","),n="."+(null===(t=e.name.split(".").pop())||void 0===t?void 0:t.toLowerCase());if(!i.some((function(t){return"*"===t||(t.startsWith(".")?n===t:e.type===t)})))return M.yw.error(f.formatMessage({id:"upload.type.invalid",defaultMessage:"不支持的文件类型: {fileType},请选择 {acceptTypes} 格式的文件"},{fileType:e.type||n,acceptTypes:a})),h.Z.LIST_IGNORE}return R((function(t){return[].concat(s()(t),[u()(u()({},e),{},{status:"done",name:e.name,uid:e.uid,originFileObj:e})])})),!1},onRemove:function(e){R((function(t){return t.filter((function(t){return t.uid!==e.uid}))}))},onChange:function(e){var t;("uploading"===e.file.status&&M.yw.loading(f.formatMessage({id:"upload.uploading"},{filename:e.file.name})),"done"===e.file.status)?200===(null===(t=e.file.response)||void 0===t?void 0:t.code)?(M.yw.destroy(),M.yw.success(f.formatMessage({id:"upload.success"},{filename:e.file.name})),I((function(t){return[].concat(s()(t),[e.file.response.data])}))):(M.yw.destroy(),M.yw.error(f.formatMessage({id:"upload.failed"},{filename:e.file.name}))):"error"===e.file.status&&M.yw.error(f.formatMessage({id:"upload.failed"},{filename:e.file.name}))},onDrop:function(e){if(console.log("Dropped files",e.dataTransfer.files),a&&"*"!==a&&e.dataTransfer.files.length>0){var t=a.split(","),i=Array.from(e.dataTransfer.files).filter((function(e){var a,i="."+(null===(a=e.name.split(".").pop())||void 0===a?void 0:a.toLowerCase());return!t.some((function(t){return"*"===t||(t.startsWith(".")?i===t:e.type===t)}))}));if(i.length>0){var n=i.map((function(e){return e.name})).join(", ");M.yw.error(f.formatMessage({id:"upload.drop.type.invalid",defaultMessage:"拖入的文件包含不支持的类型: {fileNames},请选择 {acceptTypes} 格式的文件"},{fileNames:n,acceptTypes:a}))}}}}}),[F,B,f,a]);(0,p.useEffect)((function(){E((function(e){return u()(u()({},e),{},{kbType:t,categoryUid:""})})),r&&I(r.map((function(e){return e.upload}))),R([])}),[t,r]);var V=function(e){console.log("handleDelete",e),I((function(t){return t.filter((function(t){return t.uid!==e}))}))},$=function(){var e=o()(n()().mark((function e(){var a,i,r,o;return n()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==B.length){e.next=3;break}return M.yw.warning(f.formatMessage({id:"upload.nofiles",defaultMessage:"请先选择文件"})),e.abrupt("return");case 3:return G(!0),a=B.map((function(e){var a=new FormData;if(e.originFileObj)a.append("file",e.originFileObj);else{if(console.error("originFileObj is missing for file:",e),!(e instanceof File))return e.url?(console.error("File has URL but no originFileObj:",e.url),Promise.reject(new Error("No file object available"))):Promise.reject(new Error("Invalid file object and no alternatives"));a.append("file",e),console.log("Used file directly as it is a File instance")}var i=w()(new Date).format("YYYYMMDDHHmmss")+"_"+e.name;return a.append("fileName",i),a.append("fileType",e.type||"application/octet-stream"),a.append("isAvatar","false"),a.append("kbType",t),a.append("categoryUid",F.categoryUid||""),a.append("kbUid",(null==x?void 0:x.uid)||""),a.append("orgUid",(null==C?void 0:C.uid)||""),a.append("client",b.bVn),fetch((0,j.M$)(),{method:"POST",headers:{Authorization:"Bearer "+localStorage.getItem(b.LA8)},body:a}).then((function(e){if(!e.ok)throw new Error("HTTP error! status: ".concat(e.status));return e.json()})).catch((function(t){throw console.error("Upload error for file:",e.name,t),t}))})),e.prev=5,M.yw.loading(f.formatMessage({id:"upload.batch.uploading",defaultMessage:"正在上传文件..."})),e.next=9,Promise.allSettled(a);case 9:i=e.sent,r=i.filter((function(e){var t;return"fulfilled"===e.status&&200===(null===(t=e.value)||void 0===t?void 0:t.code)})).map((function(e){return e.value.data})),o=i.filter((function(e){var t;return"rejected"===e.status||"fulfilled"===e.status&&200!==(null===(t=e.value)||void 0===t?void 0:t.code)})).length,I((function(e){return[].concat(s()(e),s()(r))})),R([]),M.yw.destroy(),0===o?M.yw.success(f.formatMessage({id:"upload.batch.success",defaultMessage:"成功上传 {count} 个文件"},{count:r.length})):M.yw.warning(f.formatMessage({id:"upload.batch.partial",defaultMessage:"成功上传 {success} 个文件,{failed} 个文件上传失败"},{success:r.length,failed:o})),e.next=23;break;case 18:e.prev=18,e.t0=e.catch(5),console.error("上传错误:",e.t0),M.yw.destroy(),M.yw.error(f.formatMessage({id:"upload.batch.error",defaultMessage:"上传过程发生错误"}));case 23:return e.prev=23,G(!1),e.finish(23);case 26:case"end":return e.stop()}}),e,null,[[5,18,23,26]])})));return function(){return e.apply(this,arguments)}}();return(0,N.jsxs)(v.Z,{title:f.formatMessage({id:"upload.modal.title"}),open:i,onOk:function(){l(Z)},onCancel:d,children:[(0,N.jsxs)(O,u()(u()({},K),{},{children:[(0,N.jsx)("p",{className:"ant-upload-drag-icon",children:(0,N.jsx)(g.Z,{})}),(0,N.jsx)("p",{className:"ant-upload-text",children:f.formatMessage({id:"upload.drag.text"})}),(0,N.jsx)("p",{className:"ant-upload-hint",children:a?f.formatMessage({id:"upload.drag.hint.withtype.size",defaultMessage:"支持单个或批量上传 {acceptTypes} 格式的文件,文件大小不超过10MB"},{acceptTypes:a.replace(/\./g,"")}):f.formatMessage({id:"upload.drag.hint.size"})})]})),(0,N.jsx)("div",{style:{marginTop:"16px",textAlign:"center"},children:(0,N.jsxs)(y.ZP,{type:"primary",onClick:$,disabled:0===B.length,loading:_,icon:(0,N.jsx)(m.Z,{}),children:[f.formatMessage({id:"upload.start",defaultMessage:"开始上传"}),B.length>0&&" (".concat(B.length,")")]})}),Z.length>0&&(0,N.jsxs)("div",{style:{marginTop:"16px",maxHeight:"200px",overflowY:"auto"},children:[(0,N.jsx)("h4",{children:f.formatMessage({id:"upload.uploaded.files",defaultMessage:"已上传文件"})}),(0,N.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"12px"},children:Z.map((function(e){return(0,N.jsx)(k.Z,{file:e,onDelete:V},e.uid)}))})]})]})}}}]); |