You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
17 KiB
1 line
17 KiB
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[98885],{89136:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(1565),i=n(59301),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"},a=n(68475),s=function(e,t){return i.createElement(a.Z,(0,r.Z)({},e,{ref:t,icon:o}))};var l=i.forwardRef(s)},7406:function(e,t,n){var r=n(82242),i=n.n(r),o=(n(59301),n(93314)),a=n(3113),s=n(37712);t.Z=function(e){var t=e.img,n=e.buttonProps,r=void 0===n?{}:n,l=e.styles,u=void 0===l?{}:l,c=e.customText,d=e.ButtonText,f=e.ButtonClick,p=e.Buttonclass,m=e.ButtonTwo,v=e.imgStyles,x=e.loading,h=void 0!==x&&x;return(0,s.jsxs)("section",{className:"tc animated fadeIn",style:i()(i()({},{color:"#999",margin:"100px auto",visibility:h?"hidden":"visible"}),u),children:[(0,s.jsx)("img",{src:t||o,style:i()(i()({},v),{},{pointerEvents:"none",userSelect:"none"})}),(0,s.jsx)("p",{className:"mt20 font14",children:c||"暂时还没有相关数据哦!"}),d&&(0,s.jsx)(a.ZP,i()(i()({className:p,onClick:f},r),{},{children:d})),m&&m]})}},82393:function(e,t,n){n.r(t),n.d(t,{default:function(){return I}});var r=n(7557),i=n.n(r),o=n(41498),a=n.n(o),s=n(82242),l=n.n(s),u=n(79800),c=n.n(u),d=n(59301),f=n(7880),p=n(24905),m=n(56511),v=n(20834),x=n(14491),h=n(51136),_={flex_box_center:"flex_box_center___t6ZRf",flex_space_between:"flex_space_between___iLqvT",flex_box_vertical_center:"flex_box_vertical_center___vhciq",flex_box_center_end:"flex_box_center_end___Ajnyq",flex_box_column:"flex_box_column___voQHo",containerTitle:"containerTitle___jrfsf",menu:"menu___hWawk",export:"export___p1CrQ",selecGroup:"selecGroup___npKNz",zhankai:"zhankai___HixZB"},g=n(6457),b=n(99232),y=n.n(b),w=n(37712),C=[{type:"shixun",sorter:{field:"",order:""},column:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.field,r=void 0===n?"":n,i=t.order,o=void 0===i?"":i;return[{title:"序号",dataIndex:"number",align:"center",width:70,render:function(t,n,r){return e.limit*(e.page-1)+r+1}},{title:"姓名",dataIndex:"user_name",ellipsis:!0},{title:"学号",dataIndex:"student_id",ellipsis:!0},{title:"分班",dataIndex:"course_group_name",ellipsis:!0},{title:"挑战实训数",dataIndex:"shixuns_count",sortOrder:"shixuns_count"===r&&o,sorter:!0,width:104,render:function(e){return e||0}},{title:"通关实训数",dataIndex:"passed_count",sortOrder:"passed_count"===r&&o,sorter:!0,width:104,render:function(e){return e||0}},{title:"完成关卡数",dataIndex:"passed_game_count",sortOrder:"passed_game_count"===r&&o,sorter:!0,width:104,render:function(e){return e||0}},{title:"评测次数",dataIndex:"evaluate_count",sortOrder:"evaluate_count"===r&&o,sorter:!0,width:90,render:function(e){return e||0}},{title:"所用时间",dataIndex:"cost_time",sortOrder:"cost_time"===r&&o,sorter:!0,width:130,render:function(e){return e&&(0,g.li)(e)||0}},{title:"操作",width:60,dataIndex:"user_id",render:function(t,n){return null===(null==n?void 0:n.shixuns_count)?"":(0,w.jsx)("a",{href:"/classrooms/".concat(null==e?void 0:e.coursesId,"/student_statistics/").concat(null==e?void 0:e.categoryId,"/").concat(t,"/shixun"),target:"_blank",children:"详情"})}}]}},{type:"video",sorter:{field:"",order:""},column:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.field,r=void 0===n?"":n,i=t.order,o=void 0===i?"":i;return[{title:"序号",dataIndex:"number",align:"center",width:70,render:function(t,n,r){return e.limit*(e.page-1)+r+1}},{title:"姓名",width:120,dataIndex:"user_name",ellipsis:!0},{title:"学号",dataIndex:"student_id",width:70,ellipsis:!0},{title:"分班",width:100,dataIndex:"course_group_name",ellipsis:!0},{title:"学习视频数",dataIndex:"num",sortOrder:"num"===r&&o,sorter:!0,width:104},{title:"累计学习时长",dataIndex:"total_duration",sortOrder:"total_duration"===r&&o,sorter:!0,width:130,render:function(e){return e&&(0,g.li)(e)||0}},{title:"平均学习完成度",dataIndex:"rate",sortOrder:"rate"===r&&o,sorter:!0,width:130,render:function(e){return e&&"".concat(e,"%")||0}},{title:"开始学习时间",dataIndex:"start_at",width:100,render:function(e){return e&&y()(e).format("YYYY-MM-DD")||"-"}},{title:"最后学习时间",dataIndex:"end_at",width:100,render:function(e){return e&&y()(e).format("YYYY-MM-DD")||"-"}},{title:"操作",width:60,fixed:"right",dataIndex:"user_id",render:function(t,n){return""===(null==n?void 0:n.total_duration)?"":(0,w.jsx)("a",{href:"/classrooms/".concat(null==e?void 0:e.coursesId,"/student_statistics/").concat(null==e?void 0:e.categoryId,"/").concat(t,"/video"),target:"_blank",children:"详情"})}}]}},{type:"files",sorter:{field:"",order:""},column:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.field,r=void 0===n?"":n,i=t.order,o=void 0===i?"":i;return[{title:"序号",dataIndex:"number",align:"center",width:70,render:function(t,n,r){return e.limit*(e.page-1)+r+1}},{title:"姓名",dataIndex:"user_name",ellipsis:!0},{title:"学号",dataIndex:"student_id",ellipsis:!0},{title:"下载资源次数",dataIndex:"num",sortOrder:"num"===r&&o,sorter:!0,render:function(e){return e||0}},{title:"最后下载时间",dataIndex:"end_at",render:function(e){return e&&y()(e).format("YYYY-MM-DD HH:mm:ss")||"-"}},{title:"操作",dataIndex:"user_id",width:60,render:function(t,n){return null===(null==n?void 0:n.num)?"":(0,w.jsx)("a",{href:"/classrooms/".concat(null==e?void 0:e.coursesId,"/student_statistics/").concat(null==e?void 0:e.categoryId,"/").concat(t,"/files"),target:"_blank",children:"详情"})}}]}}],j=n(89392),k=n(7406),S=n(84717),I=(0,f.connect)((function(e){return{classroomList:e.classroomList,globalSetting:e.globalSetting}}))((function(e){e.classroomList,e.globalSetting,e.dispatch;var t=(0,f.useSearchParams)(),n=c()(t,1)[0],r=(0,f.useParams)(),o=(0,d.useState)(l()(l()({},r),{},{page:1,limit:10})),s=c()(o,2),u=s[0],g=s[1],b=(0,d.useState)(!0),y=c()(b,2),I=y[0],O=y[1],E=(0,d.useState)(!0),Z=c()(E,2),z=Z[0],N=Z[1],P=(0,d.useState)(n.get("type")||"shixun"),M=c()(P,2),T=M[0],B=M[1],D=(0,d.useState)([]),L=c()(D,2),Y=L[0],A=L[1],$=function(e){return C.find((function(t){return t.type===e}))},K=(0,d.useState)($(T).column(u)),R=c()(K,2),q=R[0],Q=R[1],G=(0,d.useState)($(T).sorter),F=c()(G,2),H=F[0],U=F[1],V=(0,d.useState)(0),J=c()(V,2),W=J[0],X=J[1],ee=(0,d.useState)([]),te=c()(ee,2),ne=te[0],re=te[1],ie=(0,d.useState)([]),oe=c()(ie,2),ae=oe[0],se=oe[1],le=p.Z.Group,ue=(0,d.useState)(),ce=c()(ue,2),de=ce[0],fe=ce[1],pe=(0,d.useState)(!1),me=c()(pe,2),ve=me[0],xe=me[1],he=(0,d.useState)(!0),_e=c()(he,2),ge=_e[0],be=_e[1],ye=(0,d.useState)(0),we=c()(ye,2),Ce=we[0],je=we[1],ke=function(){var e=a()(i()().mark((function e(t){return i()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:fe(t.checkAll?ae.map((function(e){return e.value})):[]),xe(!1),be(t.checkAll),Se(l()(l()({},t),{},{course_group_id:t.checkAll?"":[]}));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Se=function(){var e=a()(i()().mark((function e(t){var n,r;return i()().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return O(!0),e.next=3,(0,h.ZP)("/api/courses/".concat(null==t?void 0:t.coursesId,"/").concat(null==t?void 0:t.menuKey,"_statistic.json"),{params:{sort_by:null==t?void 0:t.field,sort_direction:null!=t&&t.order?null==t||null===(n=t.order)||void 0===n?void 0:n.slice(0,-3):"",page:null==t?void 0:t.page,limit:null==t?void 0:t.limit,course_group_id:null==t?void 0:t.course_group_id}});case 3:if(null==(r=e.sent)||!r.data){e.next=18;break}if(A((null==r?void 0:r.data)||[]),X(null==r?void 0:r.count),O(!1),0!==ne.length){e.next=18;break}if(re([null==r?void 0:r.shixuns_count,null==r?void 0:r.videos_count,null==r?void 0:r.files_count]),N(!1),null!=r&&r.shixuns_count){e.next=18;break}if(null==r||!r.videos_count){e.next=15;break}return B("video"),e.abrupt("return");case 15:if(null==r||!r.files_count){e.next=18;break}return B("files"),e.abrupt("return");case 18:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();(0,d.useEffect)((function(){ge&&fe(ae.map((function(e){return e.value})))}),[ae]),(0,d.useEffect)((function(){(0,h.ZP)("/api/courses/".concat(null==u?void 0:u.coursesId,"/course_group_list_other.json"),{}).then((function(e){e.course_groups&&(e.course_groups.length>6&&je(1),se(e.course_groups.map((function(e){return{label:e.name,value:e.id}}))))}));var e=l()(l()(l()({menuKey:T},u),{},{page:1,limit:10},$(T).sorter),{},{course_group_id:de||""});g(l()(l()({},u),{},{page:1,limit:10})),Q($(T).column(e)),Se(e)}),[T]);return(0,w.jsxs)("section",{className:_.bg,children:[(0,w.jsx)("div",{className:_.containerTitle,children:(0,w.jsx)("div",{className:"font16",children:"学生分析"})}),(0,w.jsx)(m.Z,{loading:z,active:!0,paragraph:{rows:5},children:ne.every((function(e){return!e}))?(0,w.jsx)(k.Z,{}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(v.Z,{style:{position:"relative"},className:_.menu,mode:"horizontal",onClick:function(e){B(e.key)},selectedKeys:T,children:[[{name:"实践项目",id:"shixun"},{name:"视频",id:"video"},{name:"教学课件",id:"files"}].map((function(e,t){return ne[t]?(0,w.jsx)(v.Z.Item,{className:"font16",style:{padding:"0 0 12px 0 ",margin:"0 30px"},children:e.name},e.id):null})),"files"!==T&&(0,w.jsx)("span",{className:_.export,onClick:function(){(0,S.D9)(l()(l()({},u),{},{checkedList:de,menuKey:T}))},children:"导出"})]}),"files"!==T&&(0,w.jsxs)("div",{style:{display:"flex",padding:"10px 0",position:"relative",overflow:"hidden",height:1===Ce?70:"auto"},className:"bg-white",children:[(0,w.jsx)("div",{className:_.selecGroup,style:{width:ae.length>5?"116px":"56px",whiteSpace:"nowrap"},children:"选择班级:"}),(0,w.jsx)(p.Z,{style:{width:"121px",fontSize:"13px",whiteSpace:"nowrap"},indeterminate:ve,onChange:function(e){return ke(l()(l()(l()({menuKey:T},u),{},{page:1,limit:10},$(T).sorter),{},{checkAll:e.target.checked}))},checked:ge,children:"全部"}),(0,w.jsx)(le,{options:ae,value:de,onChange:function(e){fe(e),xe(!!e.length&&e.length<ae.length),be(e.length===ae.length);var t=l()(l()(l()({menuKey:T},u),{},{page:1,limit:10},$(T).sorter),{},{course_group_id:e||[]});Se(t)}}),!!Ce&&(0,w.jsxs)("div",{className:_.zhankai,children:[1===Ce&&(0,w.jsxs)("span",{onClick:function(){return je(2)},style:{whiteSpace:"nowrap"},children:["展开",(0,w.jsx)("i",{className:"iconfont icon-xiala"})]}),2===Ce&&(0,w.jsxs)("span",{onClick:function(){return je(1)},style:{whiteSpace:"nowrap"},children:["收起",(0,w.jsx)("i",{style:{transform:"scale(0.5) rotate(180deg) translateY(2px)"},className:"iconfont icon-xiala"})]})]})]}),(0,w.jsx)(x.Z,{scroll:{x:830},className:"table-layout bg-white mb20",columns:q,dataSource:Y,rowKey:function(e){return e.id},loading:I,onChange:function(e,t,n){var r={field:n.field,order:n.order};if(!1===(null==n?void 0:n.order)&&(r={field:"",order:""}),!(0,j.isEqual)(r,H)){n.order||(r=$(T).sorter);var i=l()(l()(l()({menuKey:T},u),{},{page:1,limit:10},r),{},{course_group_id:de||""});return g(l()(l()({},u),{},{page:1,limit:10})),U(r),Se(i),void Q($(T).column(i,r))}var o=l()(l()(l()({menuKey:T},u),{},{page:e.current,limit:e.pageSize},r),{},{course_group_id:de||""});g(l()(l()({},u),{},{page:e.current,limit:e.pageSize})),Q($(T).column(o,r)),Se(o)},pagination:{pageSize:u.limit,total:W,current:u.page,showQuickJumper:!0,hideOnSinglePage:!0,position:["bottomCenter"]}})]})})]})}))},98135:function(e,t,n){n.d(t,{Z:function(){return P}});var r=n(92310),i=n.n(r),o=n(59301),a=n(36355),s=n(32441),l=n(9937);var u=e=>{const{getPrefixCls:t,direction:n}=(0,o.useContext)(a.E_),{prefixCls:r,className:u}=e,c=t("input-group",r),d=t("input"),[f,p]=(0,l.ZP)(d),m=i()(c,{[`${c}-lg`]:"large"===e.size,[`${c}-sm`]:"small"===e.size,[`${c}-compact`]:e.compact,[`${c}-rtl`]:"rtl"===n},p,u),v=(0,o.useContext)(s.aM),x=(0,o.useMemo)((()=>Object.assign(Object.assign({},v),{isFormItemInput:!1})),[v]);return f(o.createElement("span",{className:m,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},o.createElement(s.aM.Provider,{value:x},e.children)))},c=n(9432),d=n(1565),f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z"}},{tag:"path",attrs:{d:"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z"}}]},name:"eye-invisible",theme:"outlined"},p=n(68475),m=function(e,t){return o.createElement(p.Z,(0,d.Z)({},e,{ref:t,icon:f}))};var v=o.forwardRef(m),x=n(89136),h=n(70521),_=n(16863),g=n(59412),b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n};const y=e=>e?o.createElement(x.Z,null):o.createElement(v,null),w={click:"onClick",hover:"onMouseOver"};var C=o.forwardRef(((e,t)=>{const{visibilityToggle:n=!0}=e,r="object"==typeof n&&void 0!==n.visible,[s,l]=(0,o.useState)((()=>!!r&&n.visible)),u=(0,o.useRef)(null);o.useEffect((()=>{r&&l(n.visible)}),[r,n]);const d=(0,g.Z)(u),f=()=>{const{disabled:t}=e;t||(s&&d(),l((e=>{var t;const r=!e;return"object"==typeof n&&(null===(t=n.onVisibleChange)||void 0===t||t.call(n,r)),r})))},{className:p,prefixCls:m,inputPrefixCls:v,size:x}=e,C=b(e,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:j}=o.useContext(a.E_),k=j("input",v),S=j("input-password",m),I=n&&(t=>{const{action:n="click",iconRender:r=y}=e,i=w[n]||"",a=r(s),l={[i]:f,className:`${t}-icon`,key:"passwordIcon",onMouseDown:e=>{e.preventDefault()},onMouseUp:e=>{e.preventDefault()}};return o.cloneElement(o.isValidElement(a)?a:o.createElement("span",null,a),l)})(S),O=i()(S,p,{[`${S}-${x}`]:!!x}),E=Object.assign(Object.assign({},(0,h.Z)(C,["suffix","iconRender","visibilityToggle"])),{type:s?"text":"password",className:O,prefixCls:k,suffix:I});return x&&(E.size=x),o.createElement(c.Z,Object.assign({ref:(0,_.sQ)(t,u)},E))})),j=n(11013),k=n(92343),S=n(3113),I=n(19716),O=n(33234),E=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n};var Z=o.forwardRef(((e,t)=>{const{prefixCls:n,inputPrefixCls:r,className:s,size:l,suffix:u,enterButton:d=!1,addonAfter:f,loading:p,disabled:m,onSearch:v,onChange:x,onCompositionStart:h,onCompositionEnd:g}=e,b=E(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd"]),{getPrefixCls:y,direction:w}=o.useContext(a.E_),C=o.useRef(!1),Z=y("input-search",n),z=y("input",r),{compactSize:N}=(0,O.ri)(Z,w),P=(0,I.Z)((e=>{var t;return null!==(t=null!=l?l:N)&&void 0!==t?t:e})),M=o.useRef(null),T=e=>{var t;document.activeElement===(null===(t=M.current)||void 0===t?void 0:t.input)&&e.preventDefault()},B=e=>{var t,n;v&&v(null===(n=null===(t=M.current)||void 0===t?void 0:t.input)||void 0===n?void 0:n.value,e,{source:"input"})},D="boolean"==typeof d?o.createElement(j.Z,null):null,L=`${Z}-button`;let Y;const A=d||{},$=A.type&&!0===A.type.__ANT_BUTTON;Y=$||"button"===A.type?(0,k.Tm)(A,Object.assign({onMouseDown:T,onClick:e=>{var t,n;null===(n=null===(t=null==A?void 0:A.props)||void 0===t?void 0:t.onClick)||void 0===n||n.call(t,e),B(e)},key:"enterButton"},$?{className:L,size:P}:{})):o.createElement(S.ZP,{className:L,type:d?"primary":void 0,size:P,disabled:m,key:"enterButton",onMouseDown:T,onClick:B,loading:p,icon:D},d),f&&(Y=[Y,(0,k.Tm)(f,{key:"addonAfter"})]);const K=i()(Z,{[`${Z}-rtl`]:"rtl"===w,[`${Z}-${P}`]:!!P,[`${Z}-with-button`]:!!d},s);return o.createElement(c.Z,Object.assign({ref:(0,_.sQ)(M,t),onPressEnter:e=>{C.current||p||B(e)}},b,{size:P,onCompositionStart:e=>{C.current=!0,null==h||h(e)},onCompositionEnd:e=>{C.current=!1,null==g||g(e)},prefixCls:z,addonAfter:Y,suffix:u,onChange:e=>{e&&e.target&&"click"===e.type&&v&&v(e.target.value,e,{source:"clear"}),x&&x(e)},className:K,disabled:m}))})),z=n(1643);const N=c.Z;N.Group=u,N.Search=Z,N.TextArea=z.Z,N.Password=C;var P=N}}]); |