|
@@ -198,6 +198,7 @@ export default class extends Page {
|
|
|
const { id } = this.params;
|
|
|
Course.detail(id).then(result => {
|
|
|
result = this.formatRecord(result);
|
|
|
+ result.have = true;
|
|
|
this.setState({ data: result });
|
|
|
// 选择课时
|
|
|
if (this.state.search.no) {
|
|
@@ -211,7 +212,7 @@ export default class extends Page {
|
|
|
|
|
|
refreshAsk(position) {
|
|
|
const { id } = this.params;
|
|
|
- const { item } = this.state;
|
|
|
+ const { item = {} } = this.state;
|
|
|
Course.listAsk(Object.assign({ page: 1, size: 1000, courseId: id, courseNoId: item.id, position })).then(result => {
|
|
|
this.setState({ asks: result.list });
|
|
|
});
|
|
@@ -269,13 +270,13 @@ export default class extends Page {
|
|
|
}
|
|
|
|
|
|
onTimeUpdate(second) {
|
|
|
- const { position, item, data } = this.state;
|
|
|
+ const { position, item = {}, data } = this.state;
|
|
|
if (!data.have) {
|
|
|
// 如果是试用,则按秒数增加
|
|
|
- second += item.startTrail * 60;
|
|
|
+ second += (item.startTrail || 0) * 60;
|
|
|
}
|
|
|
- const minute = second / 60;
|
|
|
- const nowPosition = (minute / 5) * 5;
|
|
|
+ const minute = parseInt(second / 60, 10);
|
|
|
+ const nowPosition = parseInt(minute / 5, 10) * 5;
|
|
|
if (nowPosition !== position) {
|
|
|
this.refreshAsk(position);
|
|
|
this.setState({ position: nowPosition });
|
|
@@ -306,7 +307,7 @@ export default class extends Page {
|
|
|
}
|
|
|
|
|
|
onVideoAction(key) {
|
|
|
- const { rightTab, showTab, showAsk, showNote, item } = this.state;
|
|
|
+ const { rightTab, showTab, showAsk, showNote, item = {} } = this.state;
|
|
|
switch (key) {
|
|
|
case 'ask':
|
|
|
return this.setState({ showAsk: !showAsk });
|
|
@@ -366,7 +367,7 @@ export default class extends Page {
|
|
|
}
|
|
|
|
|
|
renderView() {
|
|
|
- const { base = {}, data = {}, item = {}, add, progress, rightTab, showTab, showAsk, showNote, dataStructMap = {}, showComment, comment = {}, showFaq, faq = {}, showFinish, note = {}, ask = {}, timelineSelect = [] } = this.state;
|
|
|
+ const { base = {}, data = {}, item = {}, add, rightTab, showTab, showAsk, showNote, dataStructMap = {}, showComment, comment = {}, showFaq, faq = {}, showFinish, note = {}, ask = {}, timelineSelect = [] } = this.state;
|
|
|
const { courseNos = [] } = data;
|
|
|
return (
|
|
|
<div>
|
|
@@ -390,7 +391,7 @@ export default class extends Page {
|
|
|
</div>
|
|
|
</div>
|
|
|
<div className="t-2 m-b-1">授课老师:{data.teacher}</div>
|
|
|
- <div className="detail">
|
|
|
+ <div className={'detail'}>
|
|
|
<div className="left">
|
|
|
{data.have && <div hidden={(item.paper && item.paper.times > 0)} className="left-top">
|
|
|
<span className="d-i-b m-r-1">预习作业</span>
|
|
@@ -404,8 +405,9 @@ export default class extends Page {
|
|
|
<div className="video-layout">
|
|
|
{item && <Video
|
|
|
key={item.id}
|
|
|
- src={item.resource}
|
|
|
- duration={10}
|
|
|
+ src={item.resource || '/1.mp4'}
|
|
|
+ width={750}
|
|
|
+ height={467}
|
|
|
ref={ref => this.setVideo(ref)}
|
|
|
btnList={[
|
|
|
{ title: '提问', key: 'ask', show: data.have, active: showAsk, pause: true },
|
|
@@ -415,10 +417,11 @@ export default class extends Page {
|
|
|
return <Assets name={active ? 'question_on' : 'question_off'} />;
|
|
|
},
|
|
|
full: true,
|
|
|
+ show: true,
|
|
|
active: showTab && rightTab === '1',
|
|
|
},
|
|
|
{ title: '笔记', key: 'note', show: data.have, active: showNote, pause: true },
|
|
|
- { title: '课表', key: 'list', full: true, active: showTab && rightTab === '2' },
|
|
|
+ { title: '课表', key: 'list', show: true, full: true, active: showTab && rightTab === '2' },
|
|
|
]}
|
|
|
onPlay={() => this.playVideo()}
|
|
|
onPause={() => this.pauseVideo()}
|
|
@@ -441,7 +444,7 @@ export default class extends Page {
|
|
|
</Video>}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div className={`right ${progress > 0 ? 'progress' : ''} tab-warpper`}>
|
|
|
+ <div className={`detail-right ${data.have && !(item.paper && item.paper.times > 0) ? 'have' : ''} tab-warpper`}>
|
|
|
<Tabs
|
|
|
type="division"
|
|
|
theme="gray"
|
|
@@ -460,8 +463,8 @@ export default class extends Page {
|
|
|
</div>
|
|
|
<Contact data={base.contact} />
|
|
|
<Footer />
|
|
|
- <AskCourseModal show={showAsk} defaultData={ask} course={data} courseNo={item} selectList={timelineSelect} onConfirm={() => this.setState({ showAsk: false })} onCancel={() => this.setState({ showAsk: false })} />
|
|
|
- <CourseNoteModal show={showNote} defaultData={note} course={data} courseNos={courseNos} noteMap={this.noteMap} onConfirm={() => {
|
|
|
+ <AskCourseModal getContainer={() => document.getElementById(this.video.state.id)} show={showAsk} defaultData={ask} course={data} courseNo={item} selectList={timelineSelect} onConfirm={() => this.setState({ showAsk: false })} onCancel={() => this.setState({ showAsk: false })} />
|
|
|
+ <CourseNoteModal getContainer={() => document.getElementById(this.video.state.id)} show={showNote} defaultData={note} course={data} courseNos={courseNos} noteMap={this.noteMap} onConfirm={() => {
|
|
|
this.setState({ showNote: false });
|
|
|
this.refreshNote();
|
|
|
}} onCancel={() => this.setState({ showNote: false })} />
|
|
@@ -474,9 +477,10 @@ export default class extends Page {
|
|
|
/>
|
|
|
<FaqModal show={showFaq} defaultData={faq} onCancel={() => this.setState({ showFaq: false })} onConfirm={() => this.setState({ showFaq: false, showFinish: true })} />
|
|
|
<FinishModal
|
|
|
+ getContainer={() => document.getElementById(this.video.state.id)}
|
|
|
show={showFinish}
|
|
|
onConfirm={() => this.setState({ showFinish: false })}
|
|
|
- />,
|
|
|
+ />
|
|
|
</div >
|
|
|
);
|
|
|
}
|