(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5bc3a2f2"],{"116b":function(t,e,i){"use strict";i("f00f")},"13d5":function(t,e,i){"use strict";var s=i("23e7"),n=i("d58f").left,r=i("a640"),o=i("1212"),a=i("9adc"),c=!a&&o>79&&o<83,l=c||!r("reduce");s({target:"Array",proto:!0,forced:l},{reduce:function(t){var e=arguments.length;return n(this,t,e,e>1?arguments[1]:void 0)}})},1859:function(t,e,i){t.exports=i.p+"img/experiment-no-list.a0467855.png"},"819a":function(t,e,i){"use strict";i.r(e);var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"h5-exp-page"},[e("div",{staticClass:"status-tabs"},t._l(t.statusTabs,(function(i){return e("button",{key:i.value,class:t.currentStatus===i.value?"status-tab active":"status-tab",attrs:{type:"button"},on:{click:function(e){return t.changeStatus(i.value)}}},[t._v(" "+t._s(i.label)+" ")])})),0),e("div",{staticClass:"summary-card"},[e("div",[e("div",{staticClass:"summary-label"},[t._v(t._s(t.statusText[t.currentStatus]||"进行中"))]),e("div",{staticClass:"summary-title"},[t._v(t._s(t.experimentCount)+" 个实验安排")])]),e("i",{staticClass:"el-icon-notebook-2"})]),e("div",{directives:[{name:"loading",rawName:"v-loading",value:t.listLoading,expression:"listLoading"}],staticClass:"list-area"},[t.list.length>0?t._l(t.list,(function(i){return e("section",{key:i.id||i.name,staticClass:"semester-section"},[e("div",{staticClass:"semester-title"},[e("span"),t._v(" "+t._s(i.name)+" ")]),t._l(i.studentExperimentPreVoList,(function(s,n){return e("article",{key:s.id||n,staticClass:"experiment-card"},[e("div",{staticClass:"card-top"},[e("img",{staticClass:"experiment-cover",attrs:{src:s.icon,alt:""}}),e("div",{staticClass:"experiment-main"},[e("div",{staticClass:"experiment-name"},[t._v(t._s(s.experimentname))]),e("div",{staticClass:"teacher-name"},[t._v("授课老师："+t._s(s.teachername||"暂无"))])])]),2!==s.experimentstatus?e("div",{staticClass:"meta-grid"},[e("div",[e("span",[t._v("开始")]),e("strong",[t._v(t._s(t.formatDate(s.openstarttime)||"未设置"))])]),e("div",[e("span",[t._v("结束")]),e("strong",[t._v(t._s(t.formatDate(s.openendtime)||"未设置"))])])]):t._e(),e("div",{staticClass:"result-row"},[e("span",{class:s.isfinishexp?"finish-tag done":"finish-tag"},[t._v(" "+t._s(s.isfinishexp?"已完成实验":"未完成实验")+" ")]),e("span",{staticClass:"score-text"},[t._v(" "+t._s(s.isfinishexp&&0!==s.experimentstatus?t.formatScore(s.experimentscore)+"分":"暂无成绩")+" ")])]),e("div",{staticClass:"action-row"},[0===s.experimentstatus?e("button",{staticClass:"report-btn disabled",attrs:{type:"button"}},[t._v(" 未开始 ")]):[t.canWriteReport(s)?e("button",{staticClass:"report-btn primary",attrs:{type:"button"},on:{click:function(e){return t.openWriteReport(s,n,i)}}},[t._v(" 填写实验报告 ")]):e("button",{staticClass:"report-btn",attrs:{type:"button"},on:{click:function(e){return t.openViewReport(s)}}},[t._v(" 查看实验报告 ")])]],2)])}))],2)})):t._e(),0===t.list.length&&t.listLoaded?e("div",{staticClass:"empty-state"},[e("img",{attrs:{src:i("1859"),alt:""}}),e("div",[t._v("没有"+t._s(t.statusText[t.currentStatus])+"的实验")])]):t._e()],2),e("transition",{attrs:{name:"sheet"}},[t.report.visible?e("div",{staticClass:"report-sheet-mask"},[e("div",{staticClass:"report-sheet"},[e("div",{staticClass:"sheet-header"},[e("button",{attrs:{type:"button"},on:{click:t.closeReport}},[e("i",{staticClass:"el-icon-arrow-left"})]),e("div",{staticClass:"sheet-title"},[t._v(t._s(t.reportTitle))]),"edit"===t.report.mode?e("button",{attrs:{type:"button",disabled:t.write.actionPosting},on:{click:t.submitReport}},[t._v(" "+t._s(t.write.actionPosting?"提交中":"提交")+" ")]):e("span")]),"view"===t.report.mode?e("div",{staticClass:"sheet-body"},[t.view.content?e("div",{staticClass:"report-html html-view",domProps:{innerHTML:t._s(t.view.content)}}):e("div",{staticClass:"report-empty"},[t._v("暂无实验报告内容")])]):e("div",{staticClass:"sheet-body edit-body"},[e("div",{staticClass:"edit-tip"},[t._v("在老师批改前，您可以多次修改实验报告。")]),e("div",{staticClass:"mobile-editor-toolbar"},t._l(t.editorActions,(function(i){return e("button",{key:i.key,attrs:{type:"button"},on:{click:function(e){return t.runEditorAction(i)}}},[i.icon?e("i",{class:i.icon}):e("span",[t._v(t._s(i.label))])])})),0),e("div",{staticClass:"mobile-editor-actions"},[e("button",{attrs:{type:"button",disabled:t.write.imageUploading},on:{click:t.chooseReportImage}},[e("i",{staticClass:"el-icon-picture-outline"}),t._v(" "+t._s(t.write.imageUploading?"上传中":"上传图片")+" ")]),e("span",[t._v("支持上传截图、照片。")])]),e("input",{ref:"reportImageInput",staticClass:"hidden-file-input",attrs:{type:"file",accept:"image/*"},on:{change:t.uploadReportImage}}),e("div",{ref:"reportEditor",staticClass:"mobile-rich-editor",attrs:{contenteditable:"true","data-placeholder":"请输入实验报告内容"},on:{input:t.onEditorInput,blur:t.saveEditorSelection,keyup:t.saveEditorSelection,mouseup:t.saveEditorSelection,touchend:t.saveEditorSelection}})])]),e("transition",{attrs:{name:"confirm-fade"}},[t.submitConfirmVisible?e("div",{staticClass:"h5-confirm-mask"},[e("div",{staticClass:"h5-confirm-panel"},[e("div",{staticClass:"h5-confirm-title"},[t._v("提交实验报告")]),e("div",{staticClass:"h5-confirm-content"},[t._v("确认要提交吗？在老师批改前，您可以多次修改。")]),e("div",{staticClass:"h5-confirm-actions"},[e("button",{staticClass:"cancel",attrs:{type:"button"},on:{click:function(e){t.submitConfirmVisible=!1}}},[t._v("取消")]),e("button",{staticClass:"primary",attrs:{type:"button",disabled:t.write.actionPosting},on:{click:t.confirmSubmitReport}},[t._v(" "+t._s(t.write.actionPosting?"提交中":"提交")+" ")])])])]):t._e()])],1):t._e()])],1)},n=[],r=(i("13d5"),i("e9f5"),i("9485"),i("d7f5")),o=i("9204"),a=i("2f62"),c=i("e698"),l={name:"studentH5ExpList",computed:{...Object(a["b"])({userInfo:t=>t.user}),experimentCount(){return this.list.reduce((t,e)=>t+(e.studentExperimentPreVoList||[]).length,0)},reportTitle(){return"view"===this.report.mode?"实验报告":this.write.experiment.experimentname||"填写实验报告"}},data(){const t=String(this.$route.query.status||"1");return{statusTabs:[{label:"进行中",value:"1"},{label:"未开始",value:"0"},{label:"已结束",value:"2"}],statusText:{0:"未开始",1:"进行中",2:"已结束"},currentStatus:t,list:[],listLoading:!1,listLoaded:!1,report:{visible:!1,mode:"view"},submitConfirmVisible:!1,view:{content:""},write:{actionPosting:!1,imageUploading:!1,experiment:{},index:0,semester:null,content:""},editorSelection:null,editorActions:[{key:"p",label:"正文",command:"formatBlock",value:"P"},{key:"h3",label:"标题",command:"formatBlock",value:"H3"},{key:"bold",label:"B",command:"bold"},{key:"ul",icon:"el-icon-tickets",command:"insertUnorderedList"},{key:"ol",icon:"el-icon-s-order",command:"insertOrderedList"},{key:"left",icon:"el-icon-s-fold",command:"justifyLeft"},{key:"center",icon:"el-icon-s-operation",command:"justifyCenter"}]}},mounted(){this.fetchList()},methods:{async fetchList(){this.listLoading=!0,this.listLoaded=!1;const t=this.userInfo.schoolId||this.userInfo.schoolid;try{const e=await r["a"].getList({experimentstatus:this.currentStatus,schoolId:t});this.list=e||[]}catch(e){this.list=[]}this.listLoaded=!0,this.listLoading=!1},changeStatus(t){this.currentStatus!==t&&(this.currentStatus=t,window.history.replaceState(null,"","/student-h5/expList?status="+t),this.fetchList())},formatDate(t){return Object(o["a"])(t)},formatScore(t){return t||0===t?Number(t).toFixed(0):"0"},canWriteReport(t){return!t.labreportchecktime||"59977128740917248"===this.userInfo.schoolId},openWriteReport(t,e,i){t.isfinishexp?(this.report.mode="edit",this.report.visible=!0,this.write.experiment=t,this.write.index=e,this.write.semester=i,this.write.content=t.labreportcontent||"",this.$nextTick(()=>{this.$refs.reportEditor&&(this.$refs.reportEditor.innerHTML=this.write.content,this.editorSelection=null)})):this.$message.error("您尚未完成该实验，无法提交报告。如果您确认已完成，请刷新后再试。")},openViewReport(t){this.report.mode="view",this.report.visible=!0,this.view.content=t.labreportcontent||""},closeReport(){this.report.visible=!1,this.view.content="",this.write.content="",this.write.experiment={},this.editorSelection=null,this.submitConfirmVisible=!1},saveEditorSelection(){const t=window.getSelection();if(!t||0===t.rangeCount||!this.$refs.reportEditor)return;const e=t.getRangeAt(0);this.$refs.reportEditor.contains(e.commonAncestorContainer)&&(this.editorSelection=e.cloneRange())},restoreEditorSelection(){const t=this.$refs.reportEditor;if(!t)return;if(t.focus(),!this.editorSelection)return;const e=window.getSelection();e.removeAllRanges(),e.addRange(this.editorSelection)},onEditorInput(){this.syncEditorContent(),this.saveEditorSelection()},runEditorAction(t){this.restoreEditorSelection(),document.execCommand(t.command,!1,t.value||null),this.syncEditorContent(),this.saveEditorSelection()},chooseReportImage(){this.$refs.reportImageInput&&this.$refs.reportImageInput.click()},uploadReportImage(t){const e=t.target.files&&t.target.files[0];t.target.value="",e&&("image"===c["a"].getFileType(e)[0]?c["a"].checkFileSize(5120,e)&&(this.write.imageUploading=!0,c["a"].qiNiuUpload(e,{next:()=>{},error:()=>{this.write.imageUploading=!1,this.$message.error("上传失败")},complete:t=>{const i=c["a"].getBucketDomain(e),s=i+"/"+t.key;this.insertEditorContent(`<p><img src="${s}" style="max-width:100%;height:auto;" /></p>`),this.write.imageUploading=!1,this.$message.success("图片已插入")}})):this.$message.error("请选择图片文件"))},insertEditorContent(t){this.restoreEditorSelection(),document.execCommand("insertHTML",!1,t),this.syncEditorContent(),this.saveEditorSelection()},syncEditorContent(){this.$refs.reportEditor&&(this.write.content=this.$refs.reportEditor.innerHTML)},hasReportContent(t){const e=t.replace(/<[^>]+>/g,"").replace(/&nbsp;/g,"").trim(),i=/<(img|video|audio|embed|table)\b/i.test(t);return Boolean(e||i)},async submitReport(){this.syncEditorContent(),this.hasReportContent(this.write.content)?this.submitConfirmVisible=!0:this.$message.error("请填写内容后再提交")},async confirmSubmitReport(){if(this.write.actionPosting)return;this.write.actionPosting=!0;const t=await r["a"].postReport(this.write.experiment.id,this.write.content).catch(()=>!1);if(t){this.$message.success("提交成功");const t=this.write.semester.studentExperimentPreVoList;this.$set(t[this.write.index],"labreportcontent",this.write.content),this.submitConfirmVisible=!1,this.closeReport()}this.write.actionPosting=!1}}},u=l,d=(i("116b"),i("2877")),p=Object(d["a"])(u,s,n,!1,null,"beff3958",null);e["default"]=p.exports},8558:function(t,e,i){"use strict";var s=i("cfe9"),n=i("b5db"),r=i("c6b6"),o=function(t){return n.slice(0,t.length)===t};t.exports=function(){return o("Bun/")?"BUN":o("Cloudflare-Workers")?"CLOUDFLARE":o("Deno/")?"DENO":o("Node.js/")?"NODE":s.Bun&&"string"==typeof Bun.version?"BUN":s.Deno&&"object"==typeof Deno.version?"DENO":"process"===r(s.process)?"NODE":s.window&&s.document?"BROWSER":"REST"}()},9204:function(t,e,i){"use strict";i.d(e,"a",(function(){return n})),i.d(e,"b",(function(){return r})),i.d(e,"d",(function(){return o})),i.d(e,"c",(function(){return c}));var s=i("cf45");const n=(t,e)=>{if(t){let i="yyyy/MM/dd HH:mm";return e&&(i=e),Object(s["f"])(t,i)}return""},r=(t,e)=>{if(t){let i="yyyy-MM-dd HH:mm:ss";return e&&(i=e),Object(s["f"])(t,i)}return""},o=(t,e)=>{if(t||0===t){let i=0;return e&&(i=e),t.toFixed(i)}return""};function a(t){return t<10&&(t="0"+t),t}const c=function(t){t=Math.round(t/1e3);let e=0,i=0;return t<60?e=Number(t).toFixed(0):(i=Math.floor(t/60),e=Math.floor(t-60*i)),`${a(i)}分${a(e)}秒`}},9485:function(t,e,i){"use strict";var s=i("23e7"),n=i("2266"),r=i("59ed"),o=i("825a"),a=i("46c4"),c=i("2a62"),l=i("f99f"),u=i("2ba4"),d=i("d039"),p=TypeError,m=d((function(){[].keys().reduce((function(){}),void 0)})),h=!m&&l("reduce",p);s({target:"Iterator",proto:!0,real:!0,forced:m||h},{reduce:function(t){o(this);try{r(t)}catch(d){c(this,"throw",d)}var e=arguments.length<2,i=e?void 0:arguments[1];if(h)return u(h,this,e?[t]:[t,i]);var s=a(this),l=0;if(n(s,(function(s){e?(e=!1,i=s):i=t(i,s,l),l++}),{IS_RECORD:!0}),e)throw new p("Reduce of empty iterator with no initial value");return i}})},"9adc":function(t,e,i){"use strict";var s=i("8558");t.exports="NODE"===s},a640:function(t,e,i){"use strict";var s=i("d039");t.exports=function(t,e){var i=[][t];return!!i&&s((function(){i.call(null,e||function(){return 1},1)}))}},d58f:function(t,e,i){"use strict";var s=i("59ed"),n=i("7b0b"),r=i("44ad"),o=i("07fa"),a=TypeError,c="Reduce of empty array with no initial value",l=function(t){return function(e,i,l,u){var d=n(e),p=r(d),m=o(d);if(s(i),0===m&&l<2)throw new a(c);var h=t?m-1:0,f=t?-1:1;if(l<2)while(1){if(h in p){u=p[h],h+=f;break}if(h+=f,t?h<0:m<=h)throw new a(c)}for(;t?h>=0:m>h;h+=f)h in p&&(u=i(u,p[h],h,d));return u}};t.exports={left:l(!1),right:l(!0)}},d7f5:function(t,e,i){"use strict";i.d(e,"a",(function(){return a}));var s=i("8ce4"),n=i("7b67");async function r(t){return Object(s["a"])(n["c"]+"consumer/studentexperiment/myExperiment","get",t)}async function o(t){return Object(s["a"])(n["c"]+"consumer/studentexperiment/addExperimentReport","post_json",t)}class a{static async getList(t){let[e]=await r(t);return e.data}static async postReport(t,e){let[i]=await o({id:t,labreportcontent:e});if(2e4===i.code)return!0}}},f00f:function(t,e,i){}}]);