|
|
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9416],{44065:function(n,e,t){t.r(e),t.d(e,{default:function(){return Q}});var a=t(59301),i=t(7880),l=t(87876),r=t(82242),s=t.n(r),c=t(7557),o=t.n(c),u=t(41498),d=t.n(u),f=t(79800),p=t.n(f),h=t(8591),v=t(21068),m=t(6848),x=t(95237),_=t(6457),g=t(26123),j=t(27065),w=t(51136),b=t(43418),y="File___Vzzv4",Z="deletfileIcon___snNZ9",N="wrap___eGzSn",k="row___qfnoA",C="img___Ftdlp",P=t(90963),R=t(1565),S={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"},E=t(99194),L=function(n,e){return a.createElement(E.Z,(0,R.Z)({},n,{ref:e,icon:S}))};var I=a.forwardRef(L),z=t(37712),V=function(n){var e,t,i=n.visible,l=n.data,r=n.onClose,c=void 0===r?function(){}:r,u=n.sendUrl,f=(0,a.useState)([]),m=p()(f,2),g=m[0],R=m[1],S=g.map((function(n){var e;return n.response?s()(s()({},n),{},{linkProps:{download:!0},url:null==n||null===(e=n.response)||void 0===e?void 0:e.url}):n}));(0,a.useEffect)((function(){var n;i&&R((null==l||null===(n=l.attachments)||void 0===n?void 0:n.map((function(n){return{name:n.title,status:"done",linkProps:{download:!0},response:{id:n.id,url:n.url}}})))||[])}),[i]);var E={multiple:!0,withCredentials:!0,fileList:S,beforeUpload:function(n){return!(n.size/1024/1024>150)||(h.ZP.error("《".concat(n.name,"》文件无法上传。超过文件大小限制(150M)")),v.Z.LIST_IGNORE)},itemRender:function(n,e){var t;return(0,z.jsxs)(x.Z,{wrap:!1,align:"middle",justify:"space-between",className:"ant-upload-list-item ant-upload-list-item-done ".concat(y),children:[(0,z.jsxs)("a",{download:"download",onClick:function(n){var t;console.log(e,"file"),n.preventDefault(),(0,_.Nd)("","".concat(j.Z.API_SERVER).concat(null==e||null===(t=e.url)||void 0===t?void 0:t.replace("disposition=inline","")))},title:null==e?void 0:e.name,href:e.url,children:[(0,z.jsx)(I,{className:"mr10 c-grey-666"}),(0,_.tP)(null==e?void 0:e.name,35)]}),(null==e||null===(t=e.response)||void 0===t?void 0:t.id)&&(0,z.jsx)("i",{className:"iconfont icon-shanchu14 font14 ".concat(Z),onClick:d()(o()().mark((function n(){return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,L(null==S?void 0:S.filter((function(n){return n.response.id!=e.response.id})));case 2:0==n.sent.status&&(h.ZP.success("删除成功"),R(null==S?void 0:S.filter((function(n){var t,a;return(null==n||null===(t=n.response)||void 0===t?void 0:t.id)!=(null==e||null===(a=e.response)||void 0===a?void 0:a.id)}))));case 4:case"end":return n.stop()}}),n)})))})]})},action:"".concat(j.Z.API_SERVER,"/api/attachments.json"),onChange:function(n){var e=(0,_.uD)(n);R(e),e.every((function(n){return"uploading"!==n.status}))&&L(e)}},L=function(){var n=d()(o()().mark((function n(e){var t;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,(0,w.ZP)(u,{method:"post",body:{graduation_task_id:l.id,attachment_ids:e.filter((function(n){return"done"===n.status})).map((function(n){var e;return null==n||null===(e=n.response)||void 0===e?void 0:e.id}))}});case 2:return(t=n.sent).status,n.abrupt("return",t);case 5:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}();return(0,z.jsx)(b.Z,{centered:!0,destroyOnClose:!0,onCancel:c,open:i,footer:null,title:"任务书详情",width:620,className:"pb20",afterClose:function(){R([])},children:(0,z.jsxs)("div",{className:N,children:[(0,z.jsxs)("div",{className:k,children:[(0,z.jsx)("div",{children:"课题名称"}),(0,z.jsx)("div",{title:l.name,children:l.name})]}),(0,z.jsxs)("div",{className:k,children:[(0,z.jsx)("div",{children:"指导老师"}),(0,z.jsx)("div",{children:null!=l&&null!==(e=l.teachers)&&void 0!==e&&e.length?null==l||null===(t=l.teachers)||void 0===t||null===(t=t.map((function(n){return n.real_name})))||void 0===t?void 0:t.join("、"):"--"})]}),(0,z.jsxs)("div",{className:k,children:[(0,z.jsx)("div",{children:"课题来源"}),(0,z.jsx)("div",{children:l.source||"--"})]}),(0,z.jsxs)("div",{className:k,children:[(0,z.jsx)("div",{children:"选题学生"}),(0,z.jsx)("div",{children:l.real_name||"--"})]}),1===l.status&&(0,z.jsx)("div",{className:"".concat(C," iconfont icon-yixiada")}),(0,z.jsx)(v.Z,s()(s()({},E),{},{children:(0,z.jsxs)(x.Z,{align:"middle",className:"mt10",children:[(0,z.jsxs)(P.op,{style:{borderRadius:2},children:[(0,z.jsx)("i",{className:"icon-shangchuan3 mr5"}),"上传文档"]}),(0,z.jsx)("div",{className:"ml10 font14",style:{color:"#5F6367"},onClick:function(n){n.stopPropagation()},children:"上传任务书,单个文档大小不超过150M"})]})})),(0,z.jsx)("div",{style:{height:"20px"}})]})})},A=(0,i.connect)((function(n){return{graduations:n.graduations}}))((function(n){var e,t=n.graduations,l=n.dispatch,r=(0,i.useParams)(),c=(0,a.useState)([]),u=p()(c,2),f=u[0],b=u[1],y=(0,a.useState)({}),Z=p()(y,2),N=Z[0],k=Z[1],C=(0,a.useState)(!1),P=p()(C,2),R=P[0],S=P[1],E=(0,a.useState)(1),L=p()(E,2),I=L[0],A=L[1],T=(0,a.useRef)(null),W=(0,a.useRef)([]),F=null===(e=location.pathname.split("/"))||void 0===e?void 0:e[3],M=t.menus.find((function(n){return n.clazz===F}))||{},D="/api/graduations/".concat(r.id,"/graduation_stages/").concat(null==M?void 0:M.id,"/submit.json"),G={multiple:!0,withCredentials:!0,fileList:f,showUploadList:!1,beforeUpload:function(n){return!(n.size/1024/1024>150)||(h.ZP.error("《".concat(n.name,"》文件无法上传。超过文件大小限制(150M)")),v.Z.LIST_IGNORE)},action:"".concat(j.Z.API_SERVER,"/api/attachments.json"),onChange:function(n){l({type:"globalSetting/setGlobalLoading",payload:{show:!0,text:"正在上传中,请稍候"}});var e=(0,_.uD)(n);b(e),e.every((function(n){return"uploading"!==n.status}))&&U(e)}},U=function(){var n=d()(o()().mark((function n(e){var t;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,(0,w.ZP)(D,{method:"post",body:{graduation_task_id:T.current,attachment_ids:null===(t=e.filter((function(n){return"done"===n.status})).map((function(n){var e;return null==n||null===(e=n.response)||void 0===e?void 0:e.id})))||void 0===t?void 0:t.concat(W.current)}});case 2:0===n.sent.status&&(h.ZP.success("提交成功"),A(I+1)),b([]),T.current=null,W.current=[],l({type:"globalSetting/setGlobalLoading",payload:{show:!1,text:""}});case 8:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),O=[{title:"课题名称",dataIndex:"name",ellipsis:!0,render:function(n){return(0,z.jsx)(m.Z,{placement:"topLeft",title:n,children:(0,z.jsx)("span",{className:"c-grey-333",children:n||"--"})})}},{title:"指导老师",dataIndex:"teachers",width:156,ellipsis:!0,render:function(n){var e,t=null!=n&&n.length?null==n||null===(e=n.map((function(n){return n.real_name})))||void 0===e?void 0:e.join("、"):"";return(0,z.jsx)(m.Z,{placement:"topLeft",title:t,children:(0,z.jsx)("span",{className:"c-grey-333",children:t||"--"})})}},{title:"选题学生",width:156,ellipsis:!0,dataIndex:"real_name",render:function(n){return(0,z.jsx)(m.Z,{placement:"topLeft",title:n,children:(0,z.jsx)("span",{className:"c-black",children:n||"--"})})}},{title:"文档",dataIndex:"attachments",width:156,ellipsis:{showTitle:!1},render:function(n,e){var t;if(null==n||!n.length)return"--";var a,i="";null!=n&&n.length&&(i=(0,_.tP)(null==n||null===(a=n[0])||void 0===a?void 0:a.title,6));return(0,z.jsx)(m.Z,{placement:"topLeft",title:null==n||null===(t=n[0])||void 0===t?void 0:t.title,children:(0,z.jsx)("span",{onClick:function(){var e;(0,_.Nd)("","".concat(j.Z.API_SERVER).concat(null===(e=n[0])||void 0===e||null===(e=e.url)||void 0===e?void 0:e.replace("disposition=inline","")))},className:"current",style:{color:"#3061D0"},children:i})})}},{title:"状态",dataIndex:"status",width:90,render:function(n){return(0,z.jsxs)(z.Fragment,{children:[0===n&&(0,z.jsx)("span",{className:"c-black",children:"未下达"}),1===n&&(0,z.jsx)("span",{className:"c-black",children:"已下达"})]})}},{title:"操作",dataIndex:"action",align:"right",width:100,render:function(n,e){return(0,z.jsxs)(x.Z,{align:"middle",justify:"end",children:[(0,z.jsx)(v.Z,s()(s()({},G),{},{children:(0,z.jsx)("span",{onClick:function(){var n;T.current=e.id,W.current=null==e||null===(n=e.attachments)||void 0===n?void 0:n.map((function(n){return n.id}))},className:"current font14 c-light-primary",children:"提交"})})),(0,z.jsx)("span",{onClick:function(){S(!0),k(s()({},e))},className:"current font14 c-light-primary ml20",children:"详情"})]})}}];return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(g.Z,{tags:[{id:"",name:"全部"},{id:0,name:"未下达"},{id:1,name:"已下达"}],tagsTitle:"下达状态",tagsTitleWidth:56,placeholder:"请输入课题名称进行搜索",columns:O,updateKey:I,inputWidth:222}),(0,z.jsx)(V,{visible:R,data:N,sendUrl:D,onClose:function(){S(!1),k({}),A(I+1)}})]})})),T=t(91232),W=t.n(T),F=t(37205),M=t.n(F),D={flex_box_center:"flex_box_center___YhVJ8",flex_space_between:"flex_space_between___ZwNFf",flex_box_vertical_center:"flex_box_vertical_center___zVi38",flex_box_center_end:"flex_box_center_end___XiBd9",flex_box_column:"flex_box_column___wlJ_z",wrap:"wrap___btDZi",card:"card___ynWkb",title:"title___ZK2i5",teacherWrap:"teacherWrap___mwbsp",titleCol:"titleCol___Yw1us",head:"head___Eh7hH",rowWrap:"rowWrap___iqlIh",row:"row___ysuMF",name:"name___Vp5LK",btns:"btns___TQ4qx"},G=t(24905),U=t(7406),O=t(13281),q=t(84143),K=t(86129),B=t.n(K),H=t(89392),J=(0,i.connect)((function(n){return{graduations:n.graduations}}))((function(n){var e,t=n.graduations,r=(n.dispatch,(0,i.useParams)()),s=(0,a.useState)(!0),c=p()(s,2),u=c[0],f=c[1],v=(0,a.useState)([{}]),g=p()(v,2),y=g[0],Z=g[1],N=(0,a.useState)([{}]),k=p()(N,2),C=k[0],P=k[1],R=(0,a.useState)([]),S=p()(R,2),E=S[0],L=S[1],I=(0,a.useState)([]),V=p()(I,2),A=V[0],T=V[1],F=(0,a.useState)(0),K=p()(F,2),J=K[0],Y=K[1],Q=(0,a.useRef)(),X=t.menus,$=t.details,nn=X.find((function(n){return"tasks"===n.clazz}))||{};(0,a.useEffect)((function(){null!=nn&&nn.id&&en()}),[null==nn?void 0:nn.id]);var en=function(){var n=d()(o()().mark((function n(){var e,t,a,i,l,s;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return f(!0),n.next=3,(0,w.ZP)("/api/graduations/".concat(r.id,"/graduation_stages/").concat(null==nn?void 0:nn.id,".json"),{method:"get"});case 3:0===(e=n.sent).status&&(Z((null==e||null===(t=e.data)||void 0===t?void 0:t[0])||{}),L((null==e||null===(a=e.data)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.attachments)||[]),s=0,(0,H.isEmpty)(null==e||null===(i=e.data)||void 0===i?void 0:i[0])?s=1:0===(null==e||null===(l=e.data)||void 0===l||null===(l=l[0])||void 0===l?void 0:l.status)&&(s=2),Y(s)),f(!1);case 6:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}(),tn=function(n,e,t){var a=[];"all"===t&&n?a=E.map((function(n){return n.id})):"all"!==t&&(a=n?[].concat(M()(A),[e]):A.filter((function(n){return n!==e}))),T(a)},an=function(){var n=d()(o()().mark((function n(e){var t;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if("txt"!==e.file_type){n.next=5;break}return n.next=3,(0,w.ZP)(e.url,{method:"get",headers:{"Content-Type":"application/xml"}});case 3:t=n.sent,Q.current=t;case 5:P({type:e.file_type,content:j.Z.API_SERVER+e.url});case 6:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),ln=function(){var n=d()(o()().mark((function n(e){var t,a,i,l,r,s,c,u,f,p,v=arguments;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=v.length>1&&void 0!==v[1]?v[1]:[],a=null==t?void 0:t.filter((function(n){return""!=n.url})),0!=a.length){n.next=5;break}return h.ZP.warning("暂无下载文件"),n.abrupt("return");case 5:if(i=b.Z.info({width:500,icon:null,title:(0,z.jsxs)("div",{children:["正在批量导出任务文件,",(0,z.jsx)("span",{className:"c-red",children:"请勿关闭或操作当前浏览器窗口"})]}),content:(0,z.jsxs)("div",{children:["当前进度: ",(0,z.jsx)("span",{className:"c-blue",children:0}),"/",a.length]}),maskClosable:!1,className:D.modal,onOk:function(){}}),l=new(B()),r=[],s=function(){var n=d()(o()().mark((function n(e,t){var s,c,u;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,fetch(j.Z.API_SERVER+e.url,{method:"get"});case 3:return s=n.sent,n.next=6,s.blob();case 6:return c=n.sent,u=function(){var n=d()(o()().mark((function n(e){var t,a,i,s=arguments;return o()().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:t=s.length>1&&void 0!==s[1]?s[1]:0,(a=e.split(".")).pop(),i="".concat(a.join(""),"(").concat(t,").").concat(e.split(".").at(-1)),0==t&&r.includes(e)||r.includes(i)?u(e,t+1):(r.push(0==t?e:i),l.file(0==t?e:i,c));case 5:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),n.next=10,u(null==e?void 0:e.title);case 10:i.update({content:(0,z.jsxs)("div",{children:["当前进度: ",(0,z.jsx)("span",{className:"c-blue",children:t}),"/",a.length]})}),n.next=16;break;case 13:n.prev=13,n.t0=n.catch(0),h.ZP.error("".concat(null==e?void 0:e.title,"下载失败,原因:").concat(n.t0));case 16:case"end":return n.stop()}}),n,null,[[0,13]])})));return function(e,t){return n.apply(this,arguments)}}(),!(a.length>0)){n.next=29;break}c=0,u=W()(a),n.prev=12,u.s();case 14:if((f=u.n()).done){n.next=20;break}return p=f.value,n.next=18,s(p,++c);case 18:n.next=14;break;case 20:n.next=25;break;case 22:n.prev=22,n.t0=n.catch(12),u.e(n.t0);case 25:return n.prev=25,u.f(),n.finish(25);case 28:l.generateAsync({type:"blob"}).then((function(n){(0,_.FH)(e,window.URL.createObjectURL(n))}));case 29:i.destroy();case 30:case"end":return n.stop()}}),n,null,[[12,22,25,28]])})));return function(e){return n.apply(this,arguments)}}();return console.log(C,"previewData"),(0,z.jsxs)("div",{className:D.wrap,children:[(0,z.jsx)(O.Z,{title:"任务书",status:null==nn?void 0:nn.status,startAt:null==nn?void 0:nn.start_at,endAt:null==nn?void 0:nn.end_at}),(0,z.jsxs)(l.Z,{active:!0,loading:u,children:[!!J&&(0,z.jsx)(U.Z,{customText:1===J?"当前阶段暂时无法开启,请先完成之前阶段的任务":"当前老师还未下达任务书哦"}),!J&&(0,z.jsxs)("div",{className:D.card,children:[(0,z.jsxs)(x.Z,{align:"middle",children:[(0,z.jsx)("span",{style:{color:"#5f6368"},className:"mr20 font14",children:"课题名称"}),(0,z.jsx)(m.Z,{title:null==y?void 0:y.name,children:(0,z.jsx)("span",{style:{color:"#333",fontSize:16},children:(0,_.Pq)(null==y?void 0:y.name,59)})})]}),(0,z.jsxs)("div",{className:D.title,children:[(0,z.jsx)("span",{style:{flexShrink:0,marginTop:4,color:"#5f6368"},className:"mr20",children:"指导老师"}),(0,z.jsx)("div",{className:D.teacherWrap,children:null==y||null===(e=y.teachers)||void 0===e?void 0:e.map((function(n,e){return(0,z.jsxs)("div",{className:D.titleCol,children:[(0,z.jsx)("img",{width:28,height:28,style:{borderRadius:"50%"},src:"".concat(null===j.Z||void 0===j.Z?void 0:j.Z.IMG_SERVER,"/images/").concat(null==n?void 0:n.avatar_url)}),(0,z.jsx)("span",{className:"c-grey-333 ml10 font16",children:n.real_name})]},e)}))})]}),(0,z.jsxs)("div",{className:D.head,children:[(0,z.jsx)(G.Z,{onChange:function(n){return tn(n.target.checked,null,"all")},checked:!!A.length&&A.length===E.length,indeterminate:!!A.length&&A.length!==E.length}),(0,z.jsx)("span",{className:"ml10",children:"任务书"}),!(null==A||!A.length)&&(0,z.jsxs)("span",{onClick:function(){if(A.length){var n=E.filter((function(n){return A.includes(n.id)}));ln((null==$?void 0:$.name)+"-任务书",n)}else h.ZP.warning("请选择文件")},style:{marginLeft:"auto"},className:"c-light-primary current",children:[(0,z.jsx)("i",{className:"iconfont icon-xiazai4 mr5 font14"}),"批量下载"]})]}),(0,z.jsx)("div",{className:D.rowWrap,children:null==E?void 0:E.map((function(n){return(0,z.jsxs)("div",{className:D.row,children:[(0,z.jsx)(G.Z,{onChange:function(e){return tn(e.target.checked,n.id)},checked:A.includes(n.id)}),(0,z.jsx)("span",{className:D.name,title:n.title,children:(0,_.tP)(n.title,60)}),(0,z.jsxs)("span",{className:D.btns,children:[(0,z.jsxs)(m.Z,{className:"mr20",title:"预览",children:[" ",(0,z.jsx)("i",{onClick:function(){return an(n)},className:"iconfont icon-chakanshenqingjilu c-light-primary current font14"})]}),(0,z.jsxs)(m.Z,{title:"下载",children:[" ",(0,z.jsx)("i",{onClick:function(){var e;(0,_.Nd)("","".concat(j.Z.API_SERVER).concat(null===(e=n.url)||void 0===e?void 0:e.replace("disposition=inline","")))},className:"iconfont icon-xiazai4 c-light-primary current font14"})]})]})]},n.id)}))})]})]}),(0,z.jsx)(q.Z,{close:!0,data:null==C?void 0:C.content,type:null==C?void 0:C.type,hasMask:!0,monacoEditor:{value:Q.current,language:"txt",onChange:function(){},options:{readOnly:!0,fontSize:14,minimap:{enabled:!1}}},onClose:function(){P({content:"",type:""})}})]})})),Y=t(89918),Q=(0,i.connect)((function(n){return{loading:n.loading,graduations:n.graduations}}))((function(n){n.graduations,n.dispatch;var e=n.loading;return(0,z.jsx)(l.Z,{style:{margin:"20px 0 0 45px"},loading:e.effects["graduations/getGraduationsDetails"],children:(0,Y.tu)()?(0,z.jsx)(A,{}):(0,z.jsx)(J,{})})}))}}]); |