This commit is contained in:
yumoqing 2025-04-13 20:41:51 +08:00
parent 9964ab1ca0
commit f3bf42bbf4

View File

@ -21,7 +21,7 @@ bricks.QAFrame = class extends bricks.VBox {
url: url:
} }
2: 2:
type:ask_ready type:askready
data:{ data:{
total_q total_q
cur_q cur_q
@ -85,22 +85,60 @@ bricks.QAFrame = class extends bricks.VBox {
this.ws.bind('onopen', this.start_question_answer.bind(this)); this.ws.bind('onopen', this.start_question_answer.bind(this));
this.ws.bind('onquestion', this.show_question.bind(this)); this.ws.bind('onquestion', this.show_question.bind(this));
this.ws.bind('oncourseware', this.show_courseware.bind(this)); this.ws.bind('oncourseware', this.show_courseware.bind(this));
this.ws.bind('onask_start', this.show_courseware.bind(this)); this.ws.bind('onaskstart', this.show_conform.bind(this));
this.ws.bind('oncourseware', this.show_courseware.bind(this)); this.ws.bind('oncourseware', this.show_courseware.bind(this));
this.ws.bind('oncourseware', this.show_courseware.bind(this)); this.ws.bind('oncourseware', this.show_courseware.bind(this));
if (this.courseware){
this.play_course();
} else {
this.show_conform();
}
} }
show_question(d){ show_question(d){
console.log('show_question(), d=', d); console.log('show_question(), d=', d);
this.qtotal_w.set_text(str(d.total_q));
this.qcur_w.set_text(str(d.cur_q));
var w = bricks.widgetBuild(d.q_desc, this);
this.main_w.clear_widgets();
if (w){
this.main_w.add_widget(w);
}
} }
show_courseware(d){ show_courseware(d){
var w;
this.main_w.clear_widgets();
console.log('show_courseware(), d=', d); console.log('show_courseware(), d=', d);
switch(d.type){
case 'video':
w = new bricks.VideoPlayer({
width:'100%',
height:'100%',
url:d.url,
autoplay:true
});
break;
case 'audio':
w = new bricks.AudioPlayer({
width:'100%',
height:'100%',
url:d.url,
autoplay:true
});
break;
case 'image':
w = new bricks.Image({
width:'100%',
height:'100%',
url:d.url,
});
break;
case 'markdown':
w = new bricks.MdWidget({
height:'100%',
width:'100%',
md_url: d.url
});
break;
} }
show_conform(){ this.main_w.add_widget(w);
}
show_conform(d){
this.main_w.clear_widgets();
var btn = new bricks.Button({ var btn = new bricks.Button({
label: 'Start ?' label: 'Start ?'
}); });
@ -112,9 +150,16 @@ bricks.QAFrame = class extends bricks.VBox {
var btn = new bricks.Button({ var btn = new bricks.Button({
label:'press to start' label:'press to start'
}); });
btn.bind('click', this.start_answer_question.bind(this)); btn.bind('click', this.conform_start.bind(this));
this.bottom_w.add_widget(btn); this.bottom_w.add_widget(btn);
} }
conform_start(){
var d = {
type: 'conform_start',
data: null
}
this.ws.send(d);
}
start_question_answer(){ start_question_answer(){
this.main_w.clear_widgets(); this.main_w.clear_widgets();
var d = { var d = {
@ -124,7 +169,7 @@ bricks.QAFrame = class extends bricks.VBox {
v: 100 v: 100
} }
}; };
this.ws.send(d) this.ws.send(d);
} }
async send_audio_answer(e){ async send_audio_answer(e){
var audio = e.data; var audio = e.data;