import React, { useState, useEffect } from 'react'; import classnames from 'classnames'; import { AnswerStatus, WordSection } from '../components/AnswerResult'; import Audio from '../components/Audio'; import { replaceToBright, replaceToWrap, queryStrToParse } from '../utils'; import { getSingleQuestionReport } from '../services'; interface IProps { env?: string; className?: string; prefixCls?: string; reportId: string | number; snapStepId: string | number; detailId: string | number; platform: number; children?: React.ReactNode; onNext: () => void; isLast: boolean; // 是否是最后一题 loadingNode?: any; // 加载component } const Answer: React.FC = ({ env = 'prod', className = '', prefixCls = 'ewt-homework-words-answer-result', reportId, snapStepId, detailId, platform, children, onNext, isLast, loadingNode = null, }) => { const [answerResult, setAnswerResult] = useState({}); const [loading, setLoading] = useState(true); // 视频播放 const onVideo = (info: any) => { const homeworkId = queryStrToParse('homeworkId', window.location.hash); // PC 跳转 if (platform === 1) { // 面包屑 let breadCrume:any = [{title:'我的假期',url:''}]; try { let breadUrl = ''; const matchStr = 'holiday/student/special-plan/test'; const breadTitle = sessionStorage.getItem('breadTitle'); if (window.location.href.indexOf(matchStr) && breadTitle) { breadUrl = window.location.href.replace(matchStr, 'holiday/student/special-plan/detail'); breadCrume = [...breadCrume, { title: breadTitle, url: breadUrl ||'#'}]; } } catch (err) { console.log(err) } window.open(`${info.url}&homeworkId=${homeworkId}&fromPage=${encodeURIComponent(JSON.stringify(breadCrume))}`, '_blank'); return; } // h5 native const schoolId = localStorage.getItem('schoolId'); try { if (window.mstJsBridge) { window.mstJsBridge.openNative({ domain: 'media', action: 'commonPlayer', params: { schoolId, playVideoId: info.lessonId, isOffLineMode: false, functions: '2',// 1:视频课程打点,2:认真度检测 videoType: 3, homeworkId, }, }); } } catch (error) { console.error(`mstJsBridge error: ${error}`); } } useEffect(() => { const getQuestionAnswer = async () => { const { data } = await getSingleQuestionReport({ reportId, snapStepId, detailId, }, env); setAnswerResult(data); setLoading(false); } getQuestionAnswer(); }, [reportId, snapStepId, detailId]) if (loadingNode && loading) { return loadingNode; } return (
{answerResult?.answerStatus && ( )} {(answerResult?.words || []).length > 0 && (
{answerResult?.words.map((n: string, index: number) => {n} )}
)} {(answerResult?.wordStudyList || []).map((item: any, index: number) => (
{(item?.pronunciations || []).length > 0 && (
{item?.pronunciations.map((n: any, index: number) => (
{n.phonetics} {!!n?.audioUrl && }
))}
)} {(item?.chineseMeanings || []).length > 0 && (
{item?.chineseMeanings.map((n: string, index: number) => (

))}

)}
))}
{answerResult?.wordDisassembly?.rootWord && (
{/*

出去改变自己的学生是交换生。

*/} )} {answerResult?.wordMnemonics && ( answerResult?.wordMnemonics?.enMnemonics || answerResult?.wordMnemonics?.chMnemonics || answerResult?.wordMnemonics?.sourceMnemonics || answerResult?.wordMnemonics?.image ) && (
{answerResult?.wordMnemonics?.chMnemonics &&

} {answerResult?.wordMnemonics?.sourceMnemonics &&

例句来源:{answerResult?.wordMnemonics?.sourceMnemonics}

} {answerResult?.wordMnemonics?.image && } )} {(answerResult?.videoInfoList || []).length > 0 && (
{answerResult?.videoInfoList.map((n: any) => (
onVideo(n)}>
))}
)}
{children}
); }; export default Answer;